rs6000-c.c (altivec_resolve_overloaded_builtin): Add location argument to build_decl...
[gcc.git] / gcc / ChangeLog
1 2009-06-12 Aldy Hernandez <aldyh@redhat.com>
2
3 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
4 Add location argument to build_decl call.
5 * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Same.
6 (rs6000_init_builtins): Same.
7 (spe_init_builtins): Same.
8 (rs6000_gimplify_va_arg): Add location argument to
9 create_artificial_label call.
10
11 2009-06-12 Steven Bosscher <steven@gcc.gnu.org>
12
13 * timevar.def (TV_COMBINE_STACK_ADJUST): New timevar.
14 * combine-stack-adj.c (pass_stack_adjustments): Use it.
15 * Makefile.in: Fix GGC dependency for gcse.o.
16
17 2009-06-12 Aldy Hernandez <aldyh@redhat.com>
18
19 * tree-pretty-print.c (dump_generic_node): Dump column numbers.
20 * gimple-pretty-print.c (dump_gimple_stmt): Same.
21 * gimplify.c (gimplify_modify_expr): Set location for GIMPLE_ASSIGNs
22 created.
23 * c-parser.c (c_parser_binary_expression): Use current column while
24 building binary operations.
25 * common.opt (fshow-column): Enable by default.
26 * tree-vrp.c (check_array_ref): Use warning_at.
27 (check_array_bounds): Use location from call back if expr has no
28 location.
29 * tree.h: Add location argument to maybe_fold_*.
30 * tree-ssa-ccp.c (ccp_fold): Pass location to maybe_fold_*.
31 (maybe_fold_offset_to_array_ref): Add location argument and use it.
32 (maybe_fold_offset_to_component_ref): Same.
33 (maybe_fold_offset_to_reference): Same.
34 (maybe_fold_offset_to_address): Same.
35 (maybe_fold_stmt_indirect): Same.
36 (maybe_fold_stmt_addition): Same.
37 (fold_stmt_r): Pass location to maybe_fold_*.
38 (fold_gimple_assign): Same.
39 * c-tree.h: Add location argument to finish_decl,
40 default_function_array_conversion, store_init_value.
41 * c-decl.c (define_label): Use error_at.
42 (c_make_fname_decl): Pass location to finish_decl.
43 (finish_decl): New location argument.
44 (build_compound_literal): Pass location to store_init_value.
45 (grokdeclarator): Pass location to finish_decl.
46 (grokfield): Same.
47 * c-typeck.c (array_to_pointer_conversion): New location argument.
48 (function_to_pointer_conversion): Same.
49 (default_function_array_conversion): Same.
50 (parser_build_unary_op): Pass location to overflow_warning.
51 (parser_build_binary_op): Same. Use warning_at.
52 (build_unary_op): Pass location to array_to_pointer_conversion.
53 (build_c_cast): Pass location to digest_init.
54 (build_modify_expr): New location argument.
55 (convert_for_assignment): Same.
56 (store_init_value): Same.
57 (digest_init): Same.
58 (output_init_element): Pass location to digest_init and
59 array_to_pointer_conversion.
60 (c_finish_return): Pass location to convert_for_assignment.
61 * gimplify.c (gimplify_conversion): Pass location to
62 maybe_fold_offset_to_address.
63 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Pass location
64 to maybe_fold_stmt_addition.
65 * c-omp.c (c_finish_omp_atomic): Pass new location to
66 build_modify_expr.
67 (c_finish_omp_for): Same.
68 * c-common.c (overflow_warning): New argument.
69 * c-common.h: New argument to build_modify_expr, overflow_warning.
70 * c-parser.c (c_parser_declaration_or_fndef): Pass location to
71 finish_decl.
72 (c_parser_initializer): Pass location to
73 default_function_array_conversion.
74 (c_parser_initelt): Same.
75 (c_parser_initval): Same.
76 (c_parser_asm_operands): Same.
77 (c_parser_expr_no_commas): Same. Pass location to build_modify_expr.
78 (c_parser_conditional_expression): Same.
79 (c_parser_binary_expression): Add location info to stack. Use it.
80 (c_parser_unary_expression): Pass location to
81 default_function_array_conversion, parser_build_unary_op,
82 build_indirect_ref, c_parser_postfix_expression_after_primary.
83 (c_parser_postfix_expression_after_primary): New location argument.
84 Use it.
85 (c_parser_expression_conv): Pass location to
86 default_function_array_conversion.
87 (c_parser_expr_list): Same.
88 (c_parser_omp_atomic): Same.
89 (c_parser_omp_for_loop): Same.
90 * c-tree.h: (struct c_declarator): Add comment to id_loc.
91 (build_array_declarator): New argument.
92 * c-decl.c (build_array_declarator): Add location argument.
93 (grokdeclarator): Set id_loc for cdk_array.
94 * c-parser.c (c_parser_direct_declarator_inner): Pass location to
95 build_array_declarator.
96 * tree.c (build_omp_clause): Add location argument.
97 * tree.h (OMP_CLAUSE_HAS_LOCATION): New macro.
98 (OMP_CLAUSE_LOCATION): New macro.
99 (struct tree_omp_clause): Add location field.
100 (build_omp_clause): Add argument.
101 * testsuite/gcc.dg/gomp/for-1.c: Fix column.
102 * cp/pt.c (tsubst_omp_for_iterator): Pass location to
103 build_omp_clause.
104 * cp/parser.c (cp_parser_omp_var_list_no_open): Same.
105 (cp_parser_omp_clause_collapse): Same.
106 (cp_parser_omp_clause_default): Same.
107 (cp_parser_omp_clause_if): Same.
108 (cp_parser_omp_clause_nowait): Same.
109 (cp_parser_omp_clause_num_threads): Same.
110 (cp_parser_omp_clause_ordered): Same.
111 (cp_parser_omp_clause_schedule): Same.
112 (cp_parser_omp_clause_untied): Same.
113 (cp_parser_omp_for_loop): Same.
114 (cp_parser_omp_parallel): Pass location to c_split_parallel_clauses.
115 * c-tree.h (c_start_case): Add location argument.
116 (c_process_expr_stmt): Same.
117 (c_finish_goto_*): Same.
118 * tree-parloops.c (initialize_reductions): Pass location to
119 build_omp_clause.
120 (create_parallel_loop): Same.
121 * fortran/trans-openmp.c (gfc_trans_omp_variable_list): Same.
122 (gfc_trans_omp_reduction_list): Same.
123 (gfc_trans_omp_clauses): Same.
124 (gfc_trans_omp_do): Same.
125 * c-typeck.c (c_finish_goto_label): Same.
126 (c_finish_goto_ptr): New location argument.
127 (c_start_case): Same.
128 (emit_side_effect_warnings): Same.
129 (c_process_expr_stmt): Same.
130 (c_finish_stmt_expr): Same.
131 (c_finish_omp_clauses): Use error_at instead of error.
132 * gimplify.c (gimplify_adjust_omp_clauses_1): Pass location to
133 build_omp_clause.
134 * c-omp.c (c_split_parallel_clauses): New location argument.
135 * tree-nested.c (convert_nonlocal_reference_stmt): Pass location
136 to build_omp_clause.
137 (convert_local_reference_stmt): Same.
138 (convert_gimple_call): Same.
139 * c-common.h (c_split_parallel_clauses): New argument.
140 * c-parser.c (c_parser_statement_after_labels): Pass location to
141 c_finish_goto_label.
142 (c_parser_switch_statement): Pass location to c_start_case.
143 (c_parser_for_statement): Pass location to c_finish_expr_stmt,
144 and c_process_expr_stmt.
145 (c_parser_omp_variable_list): Add location argument.
146 (c_parser_omp_clause_collapse): Pass location to
147 build_omp_clause.
148 (c_parser_omp_clause_default): Same.
149 (c_parser_omp_clause_if): Same.
150 (c_parser_omp_clause_num_threads): Same.
151 (-c_parser_omp_clause_ordered): Same.
152 (c_parser_omp_clause_reduction): Pass location to
153 c_parser_omp_variable_list.
154 (c_parser_omp_clause_schedule): Pass location to build_omp_clause.
155 (c_parser_omp_clause_untied): Same.
156 (c_parser_omp_for_loop): Pass location to c_process_expr_stmt.
157 (c_parser_omp_parallel): Pass location to
158 c_split_parallel_clauses.
159
160 * c-tree.h (check_for_loop_decls, undeclared_variable,
161 build_component_ref, build_array_ref, build_external_ref,
162 c_expr_sizeof_expr, c_expr_sizeof_type, parser_build_unary_op,
163 build_conditional_expr, build_compound_expr, c_cast_expr,
164 build_c_cast, build_asm_expr, c_end_compound_stmt, c_finish_stmt_expr,
165 c_finish_return, c_finish_omp_parallel, c_finish_omp_task): New
166 argument.
167 * c-semantics.c (build_stmt): Same.
168 (build_case_label): Same.
169 * c-decl.c (c_finish_incomplete_decl): Pass location on down.
170 (undeclared_variable): New argument.
171 (make_label): Same.
172 (lookup_label): Pass location on down.
173 (define_label): Same.
174 (finish_decl): Same.
175 (build_compound_literal): Same.
176 (finish_struct): Same.
177 (finish_function): Do not set location here.
178 (check_for_loop_decls): New argument.
179 * tree.c (save_expr): Set location.
180 (build_empty_stmt): New argument.
181 * tree.h (build_empty_stmt): New argument to build_empty_stmt.
182 (CAN_HAVE_LOCATION_P): Make sure we have a non empty node.
183 * builtins.c (gimplify_va_arg_expr): Use locations.
184 (expand_builtin_sync_operation): Same.
185 * c-typeck.c (build_component_ref): New argument.
186 (build_array_ref): Same.
187 (build_external_ref): Same.
188 (c_expr_sizeof_expr): Same.
189 (c_expr_sizeof_type): Same.
190 (parser_build_unary_op): Same.
191 (build_conditional_expr): Same.
192 (build_compound_expr): Pass location on down.
193 (build_compound_expr): New argument.
194 (build_c_cast): Same.
195 (c_cast_expr): Same.
196 (build_asm_expr): Same.
197 (c_finish_return): Same.
198 (c_process_expr_stmt): Pass location on down.
199 (c_finish_stmt_expr): New argument.
200 (push_clenaup): Same.
201 (c_finish_omp_parallel): Same.
202 (c_finish_omp_task): Same.
203 * gimplify.c (gimplify_call_expr): Pass location on down.
204 * c-omp.c (c_finish_omp_master): New argument.
205 (c_finish_omp_critical): Same.
206 (c_finish_omp_ordered): Same.
207 (c_finish_omp_barrier): Same.
208 (-c_finish_omp_taskwait): Same.
209 (c_finish_omp_atomic): Same.
210 (c_finish_omp_flush): Same.
211 * tree-inline.c (copy_tree_body_r): Pass location on down.
212 (inline_forbidden_p): Remove use of input_location.
213 * c-gimplify.c (c_build_bind_expr): New argument.
214 * c-common.c (c_common_truthvalue_conversion): Pass location on down.
215 (c_sizeof_or_alignof_type): New argument.
216 (c_alignof_expr): Same.
217 (build_va_arg): Same.
218 (c_add_case_label): Same.
219 * c-common.h (c_sizeof_or_alignof_type, c_alignof_expr,
220 c_sizeof, c_alignof, build_va_arg, build_stmt, build_case_label,
221 c_build_bind_expr, objc_build_selector_expr, objc_build_throw_stmt,
222 c_finish_omp_master, c_finish_omp_critical, c_finish_omp_ordered,
223 c_finish_omp_barrier, c_finish_omp_atomic, c_finish_omp_flush,
224 c_finish_omp_taskwait, c_finish_omp_for, c_split_parallel_clauses):
225 New argument.
226 * stub-objc.c (objc_build_selector_expr): Same.
227 (objc_build_throw_stmt): Same.
228 * c-parser.c (c_parser_declaration_or_fndef): Pass location on down.
229 (c_parser_initelt): Same.
230 (c_parser_compound_statement): Same.
231 (c_parser_compound_statement_nostart): Same.
232 (c_parser_label): Same.
233 (c_parser_statement_after_labels): Same.
234 (c_parser_if_body): Same.
235 (c_parser_else_body): Same.
236 (c_parser_if_statement): Same.
237 (c_parser_switch_statement): Same.
238 (c_parser_while_statement): Same.
239 (c_parser_do_statement): Same.
240 (c_parser_for_statement): Same.
241 (c_parser_asm_statement): Same.
242 (c_parser_conditional_expression): Same.
243 (c_parser_binary_expression): Same.
244 (c_parser_cast_expression): Same.
245 (c_parser_unary_expression): Same.
246 (c_parser_sizeof_expression): Same.
247 (c_parser_alignof_expression): Same.
248 (c_parser_postfix_expression): Same.
249 (c_parser_expression): Same.
250 (c_parser_objc_receiver): Same.
251 (c_parser_omp_variable_list): Same.
252 (c_parser_omp_structured_block): Same.
253 (c_parser_omp_atomic): New argument.
254 (c_parser_omp_barrier): Same.
255 (c_parser_omp_critical): Same.
256 (c_parser_omp_flush): Pass location on down.
257 (c_parser_omp_for_loop): New argument.
258 (c_parser_omp_for): Same.
259 (c_parser_omp_master): Same.
260 (c_parser_omp_ordered): Same.
261 (c_parser_omp_sections_scope): Same.
262 (c_parser_omp_sections): Same.
263 (c_parser_omp_parallel): Same.
264 (c_parser_omp_single): Same.
265 (c_parser_omp_task): Same.
266 (c_parser_omp_taskwait): Pass location on down.
267 (c_parser_omp_construct): Same.
268 (c_parser_omp_threadprivate): Same.
269 * dwarf2asm.c, targhooks.c, optabs.c, tree.c, tree.h, target.h,
270 builtins.c, omp-low.c, cgraphunit.c, tree-call-cdce.c,
271 tree-ssa-alias.c, gimple-low.c, c-tree.h, expr.c, tree-parloops.c,
272 c-decl.c, tree-eh.c, langhooks.c, function.c, stor-layout.c,
273 c-typeck.c, gimplify.c, c-pragma.c, expmed.c, except.c, coverage.c,
274 emit-rtl.c, cfgexpand.c, tree-mudflap.c, varasm.c, tree-nested.c,
275 rtl.h, tree-inline.c, tree-profile.c, c-common.c, c-common.h,
276 tree-switch-conversion.c, tree-cfg.c, ipa-struct-reorg.c, c-parser.c,
277 config/i386/i386.c, stmt.c:
278 Add location argument to the following function definitions and/or
279 function calls: build_decl, objcp_start_struct, objcp_finish_struct,
280 start_struct, finish_struct, PUSH_FIELD, create_artificial_label,
281 cp_make_fname_decl, pushtag, implicitly_declare, c_make_fname_decl,
282 build_compound_literal, parser_xref_tag, resolve_overloaded_builtin,
283 do_case, c_finish_bc_stmt, build_compound_literal,
284 build_function_call.
285 * c-decl.c (build_compound_literal): Add location argument.
286 Make all diagnostic calls use location.
287 (start_struct): Same.
288 (finish_struct): Same.
289 (start_enum): Same.
290 (build_enumerator): Same.
291 (start_function): Same.
292 (grokdeclarator): Make all diagnostic calls use location.
293 (store_parm_decls_oldstyle): Same.
294 * c-typeck.c (build_function_call): Add location argument.
295 Make all diagnostic calls use location.
296 (do_case): Same.
297 (c_finish_bc_stmt): Same.
298 * tree-nested.c (get_trampoline_type): Add argument.
299 Pass location to build_decl.
300 (lookup_tramp_for_decl): Pass location to get_trampoline_type.
301 * rtl.h (RTL_LOCATION): New.
302 * c-common.c (c_add_case_label): Add location argument.
303 Make all diagnostic calls use location.
304 * c-common.h: Add location argument to make_fname_decl, do_case,
305 c_add_case_label, build_function_call, resolve_overloaded_builtin.
306 * c-parser.c (c_parser_enum_specifier): Rename ident_loc to enum_loc.
307 Set it appropriately for every case. Pass enum_loc to start_enum
308 call. Pass value_loc first to build_enumerator. Pass enum_loc to
309 parser_xref_tag.
310 (c_parser_struct_or_union_specifier): Save location. Use it for
311 start_struct, finish_struct, and parser_xref_tag.
312
313 2009-06-12 Ian Lance Taylor <iant@google.com>
314
315 * fold-const.c (fold_unary): Rename local variable and to
316 and_expr.
317
318 * c-opts.c (c_common_handle_option): For -Wc++-compat set
319 cpp_opts->warn_cxx_operator_names.
320
321 2009-06-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
322
323 PR tree-opt/38865
324 * tree-ssa-sccvn.c (visit_reference_op_load): If vn_reference_lookup
325 is returns NULL and OP is a VCE, look through the VCE.
326
327 2009-06-12 Ian Lance Taylor <iant@google.com>
328
329 PR bootstrap/40430
330 * collect2.c (main): Use CONST_CAST2 in code inside #if
331 LINK_ELIMINATE_DUPLICATE_LDIRECTORIES.
332
333 2009-06-12 Joey Ye <joey.ye@intel.com>
334
335 PR middle-end/39146
336 * cfgexpand.c (get_decl_align_unit): Update
337 max_used_stack_slot_alignment with align instead of
338 stack_alignment_needed.
339
340 * function.c (assign_stack_local_1): Update
341 max_used_stack_slot_alignment with alignment_in_bits instead
342 of stack_alignment_needed.
343 (locate_and_pad_parm): Don't update max_used_stack_slot_alignment
344 here.
345
346 2009-06-12 Jakub Jelinek <jakub@redhat.com>
347
348 * dwarf2out.c (last_var_location_insn): New variable.
349 (dwarf2out_end_epilogue): Clear last_var_location_insn.
350 (dwarf2out_var_location): Don't record anything after last real
351 insn. Only change labels if there were any real instructions
352 in between last note and this one, or if changed sections.
353
354 2009-06-11 Richard Henderson <rth@redhat.com>
355
356 * alpha.c (alpha_expand_prologue): Add a REF_CFA_REGISTER
357 note when storing the frame pointer in a register.
358 (FRP): Don't redefine to nothing for epilogue.
359 (alpha_expand_epilogue): Mark register and sp restores.
360 (unicosmk_gen_dsib): Don't mark weird frame pointer adjust.
361
362 * config/alpha/alpha.c (alpha_emit_setcc): Fix test for
363 when gen_lowpart is needed.
364
365 2009-06-11 Richard Henderson <rth@redhat.com>
366
367 * dwarf2out.c (def_cfa_1): Likewise for DW_CFA_cfa_offset.
368
369 * dwarf2out.c (need_data_align_sf_opcode): New.
370 (div_data_align): Move earlier.
371 (def_cfa_1, reg_save): Use it.
372
373 2009-06-11 H.J. Lu <hongjiu.lu@intel.com>
374
375 * config/i386/i386.c (OPTION_MASK_ISA_CRC32_SET): New.
376 (OPTION_MASK_ISA_CRC32_UNSET): Likewise.
377 (ix86_handle_option): Handle OPT_mcrc32.
378 (ix86_target_string): Add -mcrc32.
379 (bdesc_args): Enable crc32 builtins with OPTION_MASK_ISA_CRC32.
380
381 * config/i386/i386.h (TARGET_CRC32): New.
382
383 * config/i386/i386.md (sse4_2_crc32<mode>): Also check
384 TARGET_CRC32.
385 (sse4_2_crc32di): Likewise.
386
387 * config/i386/i386.opt (mcrc32: New.
388
389 * doc/invoke.texi: Document -mcrc32.
390
391 2009-06-11 Richard Henderson <rth@redhat.com>
392
393 * common.opt (gdwarf-): Accept a version number.
394 * doc/invoke.texi (gdwarf-): Update docs.
395 * opth-gen.awk: Special case -gdwarf+ to OPT_gdwarfplus.
396 * opts.c (common_handle_option) [OPT_gdwarf_]: Verify dwarf
397 version level, and record it.
398
399 * dwarf2.h (DW_CIE_VERSION): Remove.
400 * dwarf2out.c (DWARF_VERSION): Remove.
401 (add_fde_cfi): Skip DW_CFA_set_loc addition for dwarf3.
402 (output_call_frame_info): Use CIE version 3 for dwarf3,
403 or if the return register column is out of range for version 1.
404 (dwarf_stack_op_name): Add all dwarf3 values.
405 (DEBUG_PUBTYPES_SECTION): New.
406 (size_of_die) [dw_val_class_die_ref]: Handle DW_FORM_ref_addr
407 encoding change for dwarf3.
408 (output_die) [dw_val_class_die_ref]: Likewise.
409 (output_compilation_unit_header): Emit correct version for dwarf3.
410 (output_line_info): Likewise.
411 (output_pubnames): Update for DWARF_VERSION removal.
412 (output_aranges): Likewise.
413 (gen_subprogram_die): Emit DW_OP_call_frame_cfa if emitting dwarf3.
414 (dwarf2out_init): Don't ifdef DEBUG_PUBTYPES_SECTION.
415 (dwarf2out_finish): Likewise.
416
417 2009-06-11 David Daney <ddaney@caviumnetworks.com>
418
419 * system.h (gcc_assert, gcc_unreachable): Revert accidental commit
420 in r148403.
421
422 2009-06-11 David Daney <ddaney@caviumnetworks.com>
423
424 PR c/39252
425 * doc/extend.texi ( __builtin_unreachable): Document new builtin.
426 * builtins.c (expand_builtin_unreachable): New function.
427 (expand_builtin): Handle BUILT_IN_UNREACHABLE case.
428 * builtins.def (BUILT_IN_UNREACHABLE): Add new builtin.
429 * cfgcleanup.c (try_optimize_cfg): Delete empty blocks with no
430 successors.
431 * cfgrtl.c (rtl_verify_flow_info): Handle empty blocks when
432 searching for missing barriers.
433
434 2009-06-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
435
436 * config/darwin.h (LINK_COMMAND_SPEC): Adjust spec to link libcov
437 when -fprofile-generate* was passed.
438 * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
439
440 2009-06-11 Anthony Green <green@moxielogic.com>
441
442 * config/moxie/moxie.md: Define length attribute for all
443 instructions.
444 (rCC): Define.
445 (*b<cond:code>): Support limited branch ranges for new PC-relative
446 branch instructions.
447 * config/moxie/moxie.h (HAS_LONG_UNCOND_BRANCH): Define.
448
449 2009-06-11 Jakub Jelinek <jakub@redhat.com>
450
451 * config/i386/i386.c (min_insn_size): Use get_attr_length
452 for normal insns other than TYPE_MULTI, TYPE_OTHER and TYPE_FCMP.
453 For __asm return 0.
454
455 * config/i386/i386.c (ix86_pad_returns): Use emit_jump_insn_before
456 instead of emit_insn_before.
457
458 2009-06-10 Ian Lance Taylor <iant@google.com>
459
460 PR bootstrap/40408
461 * graphite.c (add_conditions_to_domain): Change SWITCH_EXPR to
462 GIMPLE_SWITCH.
463
464 2009-06-10 Revital Eres <eres@il.ibm.com>
465
466 * passes.c (init_optimization_passes): Reschedule
467 predictive-commoning pass before complete unroll pass.
468
469 2009-06-10 Martin Jambor <mjambor@suse.cz>
470
471 * cgraph.c (cgraph_node_can_be_local_p): New function.
472 (cgraph_make_node_local): New function.
473 * cgraph.h (cgraph_node_can_be_local_p): Declare.
474 (cgraph_make_node_local): Declare.
475
476 2009-06-10 Nathan Froyd <froydnj@codesourcery.com>
477
478 * tree.h (tree_base): Add packed_flag and user_align fields.
479 Decrease size of spare field.
480 (TYPE_USER_ALIGN): Use user_align from tree_base.
481 (DECL_USER_ALIGN): Likewise.
482 (TYPE_PACKED): Use packed_flag from tree_base.
483 (DECL_PACKED): Likewise.
484 (tree_type): Delete packed_flag and user_align fields. Widen
485 precision field. Widen mode field and shuffle fields to align
486 mode on an 8-bit boundary.
487 (tree_decl_common): Delete decl_flag_1 and user_align fields.
488 Renumber decl_flag_* fields. Fix comments. Widen
489 decl_common_unused field.
490 (DECL_HAS_VALUE_EXPR_P): Adjust for renumbering of decl_flag_*
491 fields.
492 (DECL_EXTERNAL): Likewise.
493 (DECL_BIT_FIELD): Likewise.
494 (DECL_NONADDRESSABLE_P): Likewise.
495 (TYPE_DECL_SUPRESS_DEBUG): Likewise.
496 * config/arm/arm-modes.def (XImode): Make it an INT_MODE.
497
498 2009-06-10 Ian Lance Taylor <iant@google.com>
499
500 * vec.h (DEF_VEC_ALLOC_I): Use DEF_VEC_NONALLOC_FUNCS_I.
501 (DEF_VEC_ALLOC_P): Use DEF_VEC_NONALLOC_FUNCS_P.
502 (DEF_VEC_ALLOC_O): Use DEF_VEC_NONALLOC_FUNCS_O.
503 (DEF_VEC_ALLOC_FUNC_P): Only define VEC_OP (T,A,alloc).
504 (DEF_VEC_NONALLOC_FUNCS_P): New macro, broken out of old
505 DEF_VEC_ALLOC_FUNC_P.
506 (DEF_VEC_ALLOC_FUNC_O): Only define VEC_OP (T,A,alloc).
507 (DEF_VEC_NONALLOC_FUNCS_O): New macro, broken out of old
508 DEF_VEC_ALLOC_FUNC_O.
509 (DEF_VEC_ALLOC_FUNC_I): Only define VEC_OP (T,A,alloc).
510 (DEF_VEC_NONALLOC_FUNCS_I): New macro, broken out of old
511 DEF_VEC_ALLOC_FUNC_I.
512 (vec_stack_p_reserve, vec_stack_p_reserve_exact): Declare.
513 (vec_stack_p_reserve_exact_1): Declare.
514 (vec_stack_o_reserve, vec_stack_o_reserve_exact): Declare.
515 (vec_stack_free): Declare.
516 (VEC_stack_alloc): Define.
517 (DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_FUNC_P_STACK): Define.
518 (DEF_VEC_ALLOC_O_STACK, DEF_VEC_ALLOC_FUNC_O_STACK): Define.
519 (DEF_VEC_ALLOC_I_STACK, DEF_VEC_ALLOC_FUNC_I_STACK): Define.
520 * vec.c (void_p): New type. Call DEF_VEC_P and DEF_VEC_ALLOC_P
521 for void_p.
522 (stack_vecs): New static variable.
523 (vec_stack_p_reserve_exact_1): New function.
524 (vec_stack_o_reserve_1): New static function.
525 (vec_stack_p_reserve, vec_stack_p_reserve_exact): New functions.
526 (vec_stack_o_reserve, vec_stack_o_reserve_exact): New functions.
527 (vec_stack_free): New function.
528 * df-scan.c (df_ref): Use DEF_VEC_P and DEF_VEC_ALLOC_P_STACK.
529 (VEC_df_ref_stack_alloc): Define.
530 (df_mw_hardreg_ptr): New type. Use DEF_VEC_P and
531 DEF_VEC_ALLOC_P_STACK.
532 (VEC_df_mw_hardreg_ptr_stack_alloc): Define.
533 (struct df_collection_rec): Change _vec fields to VEC. Remove
534 _use fields.
535 (df_free_collection_rec): Adjust for new fields.
536 (df_insn_rescan): Use new df_collection_rec fields.
537 (df_notes_rescan, df_canonize_collection_rec): Likewise.
538 (df_ref_create_structure, df_ref_record): Likewise.
539 (df_get_conditional_uses, df_get_call_refs): Likewise.
540 (df_insn_refs_collect, df_bb_refs_collect): Likewise.
541 (df_bb_refs_record, df_record_entry_block_defs): Likewise.
542 (df_record_exit_block_uses, df_bb_verify): Likewise.
543 (df_swap_refs): Change ref_vec parameter to VEC. Change all
544 callers.
545 (df_sort_and_compress_refs): Change ref_vec parameter to VEC.
546 Remove count parameter. Change return type to void. Change all
547 callers.
548 (df_sort_and_compress_mws): Change mw_vec parameter to VEC.
549 Remove count parameter. Change return type to void. Change all
550 callers.
551 (df_install_refs): Change old_vec parameter to VEC. Remove count
552 parameter. Change all callers.
553 (df_install_mws): Change old_vec parameter to VEC. Remove count
554 parameter. Change all callers.
555 (df_refs_verify): Change new_rec parameter to VEC. Change call
556 callers.
557 (df_mws_verify): Likewise.
558
559 2009-06-10 Alexandre Oliva <aoliva@redhat.com>
560
561 * gcc.c (compare_files): Cast munmap argumento to caddr_t.
562
563 2009-06-10 H.J. Lu <hongjiu.lu@intel.com>
564
565 * doc/extend.texi: Add description for __builtin_ia32_crc32di.
566
567 2009-06-10 Anthony Green <green@moxielogic.com>
568
569 * config/moxie/crti.asm: New file.
570 * config/moxie/crtn.asm: New file.
571 * config/moxie/moxie.c: New file.
572 * config/moxie/moxie.h: New file.
573 * config/moxie/sfp-machine.h: New file.
574 * config/moxie/moxie-protos.h: New file.
575 * config/moxie/t-moxie: Created.
576 * config/moxie/t-moxie-softfp: Created.
577 * config/moxie/moxie.md: Created.
578 * config/moxie/constraints.md: Created.
579 * config.gcc: Add moxie support.
580 * doc/md.texi (Machine Constraints): Add moxie constraints.
581 * doc/contrib.texi (Contributors): Mention moxie port.
582 * doc/install.texi (Specific): Mention the moxie port.
583
584 2009-06-09 Ian Lance Taylor <iant@google.com>
585
586 * system.h (HAVE_DESIGNATED_INITIALIZERS): Don't define if
587 compiling with C++.
588 * optabs.c (optab_table): Only use designated initializers if
589 HAVE_DESIGNATED_INITIALIZERS is defined.
590 (convert_optab_table): Likewise.
591 (init_optabs): Always call init_insn_codes if
592 HAVE_DESIGNATED_INITIALIZERS is not defined.
593
594 2009-06-09 Ian Lance Taylor <iant@google.com>
595
596 * targhooks.c (default_builtin_vectorized_function): Change fn
597 parameter to unsigned int.
598 (default_builtin_vectorized_conversion): Change code parameter to
599 unsigned int.
600 (default_builtin_reciprocal): Change fn parameter to unsigned int.
601 * targhooks.h: Update declarations.
602 * config/rs6000/rs6000.c (rs6000_builtin_conversion): Change code
603 parameter to unsigned int.
604
605 * c-typeck.c (comptypes_check_enum_int): New static function.
606 (comptypes_internal): Add enum_and_int_p parameter. Change all
607 callers.
608 (comp_target_types): Add location parameter. Change all callers.
609 (tagged_types_tu_compatible_p): Add enum_and_int_p parameter.
610 Change all callers.
611 (function_types_compatible_p, type_lists_compatible_p): Likewise.
612 (build_conditional_expr): Add colon_loc parameter. Change all
613 callers.
614 (convert_for_assignment): Add location parameter. Change all
615 callers.
616 * c-parser.c (c_parser_conditional_expression): Pass location of
617 colon to build_conditional_expr.
618 * c-tree.h (build_conditional_expr): Update declaration.
619
620 2009-06-09 Sebastian Pop <sebastian.pop@amd.com>
621
622 * graphite.c: Revert previous patch.
623
624 2009-06-09 Sebastian Pop <sebastian.pop@amd.com>
625
626 PR bootstrap/40103
627 * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
628
629 2009-06-09 Ghassan Shobaki <ghassan.shobaki@amd.com>
630
631 * tree-ssa-loop-prefetch.c
632 (loop_prefetch_arrays): Fixed a portability problem in printf format
633 string.
634
635 2009-06-09 Martin Jambor <mjambor@suse.cz>
636
637 PR tree-optimization/40351
638 * tree-sra.c (propagate_subacesses_accross_link): Check that a refrence
639 to a potential artifical subaccess can be constructed.
640
641 2009-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
642
643 * config/sh/sh-protos.h (sh_optimization_options): Declare.
644 (sh_override_options): Likewise.
645 * config/sh/sh.c: Include params.h.
646 (sh_optimization_options): New.
647 (sh_override_options): Likewise.
648 * config/sh/sh.c (OPTIMIZATION_OPTIONS): Use sh_optimization_options.
649 (OVERRIDE_OPTIONS): Use sh_override_options.
650
651 2009-06-08 Jakub Jelinek <jakub@redhat.com>
652
653 * dwarf2out.c (emit_cfa_remember): New variable.
654 (add_fde_cfi): If emit_cfa_remember, recurse to add
655 DW_CFA_remember_state first.
656 (dwarf2out_begin_epilogue): Don't add_fde_cfi DW_CFA_remember_state,
657 instead just set emit_cfa_remember.
658
659 2009-06-08 Jan Hubicka <jh@suse.cz>
660
661 PR debug/40126
662 * dwarf2out.c (dwarf2out_abstract_function): Free decl_loc_table.
663
664 2009-06-08 Jan Hubicka <jh@suse.cz>
665
666 PR middle-end/39834
667 * cgraphunit.c (save_inline_function_body): Do not copy transform hooks
668 for saved inline bodies.
669 * ipa-passes.c (do_per_function): Do not add the hoks multiple times
670 for given function.
671
672 2009-06-08 Adam Nemet <anemet@caviumnetworks.com>
673
674 * jump.c (returnjump_p): Handle delayed branches. Add missing
675 function comment.
676
677 2009-06-08 Jan Hubicka <jh@suse.cz>
678
679 PR middle-end/40102
680 * cgraph.c (cgraph_create_edge_including_clones): Also asume that the
681 original node might've been modified.
682 * tree-inline.c (copy_bb): Do not assume that all clones are the same.
683
684 2009-06-08 Jakub Jelinek <jakub@redhat.com>
685
686 * tree-object-size.c (addr_object_size): Add OSI argument.
687 Handle also INDIRECT_REF with SSA_NAME inside of it as base address.
688 (compute_builtin_object_size, expr_object_size): Adjust callers.
689 (plus_stmt_object_size): Call addr_object_size instead of
690 compute_builtin_object_size.
691
692 2009-06-08 Ghassan Shobaki <ghassan.shobaki@amd.com>
693 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
694
695 * tree-ssa-loop-prefetch.c
696 (gather_memory_references): Introduced a counter for the number of
697 memory references.
698 (anything_to_prefetch_p): Introduced a counter for the number of
699 prefetches.
700 (is_loop_prefetching_profitable): New function with a cost model
701 for prefetching.
702 (loop_prefetch_arrays): Use the new cost model to determine if
703 prefetching is profitable.
704 * params.def (MIN_INSN_TO_PREFETCH_RATIO,
705 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
706 * params.h (MIN_INSN_TO_PREFETCH_RATIO,
707 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
708 * doc/invoke.texi (MIN_INSN_TO_PREFETCH_RATIO,
709 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
710
711 2009-06-08 Michael Matz <matz@suse.de>
712
713 PR debug/40012
714 * cfgexpand.c (set_rtl): Store place also in DECL_RTL, if all
715 partitions use the same.
716 (expand_one_var): Deal with DECL_RTL sometimes begin set also
717 for basevars of SSA_NAMEs.
718 (expand_used_vars): Reset TREE_USED for basevars of SSA_NAMEs,
719 to not expand them twice.
720 (gimple_expand_cfg): Clear DECL_RTL for those decls that have
721 multiple places.
722
723 2009-06-08 Alexandre Oliva <aoliva@redhat.com>
724
725 * common.opt (fcompare-debug=, fcompare-debug-second): New.
726 (fdump-final-insns=, gtoggle): New.
727 * doc/invoke.texi: Document them.
728 * final.c (rest_of_clean_state): Dump final insn stream.
729 * gcc.c (invoke_as): Hook in -fcompare-debug.
730 (static_spec_functions): Add compare-debug-dump-opt,
731 compare-debug-self-opt and compare-debug-auxbase-opt.
732 (compare_debug, compare_debug_second, compare_debug_opt): New.
733 (switches_debug_check, n_switches_debug_check): New.
734 (debug_auxbase_opt, debug_check_temp_file): New.
735 (process_command): Handle -fno-compare-debug, -fcompare-debug and
736 -fcompare-debug=*.
737 (do_self_spec): Handle arguments after switches.
738 (do_spec_1): Add .gk extension to temp file basenames for compare.
739 (check_live_switch): Take SWITCH_IGNORE into account, and earlier.
740 (cc1_options): Use it instead of normal auxbase computation for
741 the second compare-debug compilation.
742 (compare_files): New.
743 (main): Set up and implement compare debug mode.
744 (compare_debug_dump_opt_spec_function): New.
745 (compare_debug_self_opt_spec_function): New.
746 (compare_debug_auxbase_opt_spec_function): New.
747 * toplev.c (process_options): Handle flag_gtoggle,
748 flag_dump_final_insns.
749 * coverage.c (coverage_begin_output): Don't overwrite .gcno file
750 during -fcompare-debug-second compilation.
751
752 2009-06-07 Ian Lance Taylor <iant@google.com>
753
754 * dwarf2.h (enum dwarf_location_atom): Add
755 INTERNAL_DW_OP_tls_addr.
756 * dwarf2out.c (INTERNAL_DW_OP_tls_addr): Don't #define.
757
758 * c-common.c (c_do_switch_warnings): Don't exit early for -Wswitch
759 with no default node. Change warning with %H to warning_at.
760 Don't clear warn_switch around case checking.
761 * doc/invoke.texi (Warning Options): Clarify distinction between
762 -Wswitch and -Wswitch-enum.
763
764 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
765
766 * tree-pass.h (TODO_update_ssa_any): Document internal use only.
767
768 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
769
770 * gbl-ctors.h: Add header guard.
771
772 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
773
774 * tree-flow.h (make_value_handle, set_value_handle, sort_vuses,
775 sort_vuses_heap, vn_lookup_or_add, vn_lookup_or_add_with_stmt,
776 vn_lookup_or_add_with_vuses, vn_add, vn_add_with_vuses,
777 vn_lookup_with_stmt, vn_lookup, vn_lookup_with_vuses): Remove
778 prototypes for removed functions.
779 (expressions_equal_p): Move to ...
780 * tree-ssa-sccvn.h: ... here and ...
781 * matrix-reorg.c: ... adjust includes.
782
783 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
784
785 * ipa-struct-reorg.c (do_reorg_1): Fix whitespace in dump output.
786
787 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
788
789 * c-decl.c (finish_decl): Use bool for variable was_incomplete.
790 (finish_function): Remove erroneous whitespace.
791
792 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
793
794 * tree-cfg.c (gimple_merge_blocks): Commentary typo fix.
795 (verify_stmts): Print statement who's gimple_bb is set to a wrong BB
796
797 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
798
799 * errors.c (internal_error): Commentary typo fix.
800 * gimple-iterator.c (gsi_insert_seq_on_edge): Ditto.
801 * tree-ssa-pre.c: Ditto.
802
803 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
804
805 * basic-block.h (ENTRY_BLOCK, EXIT_BLOCK): Document that neither of
806 them is supposed to hold actual statements.
807
808 2009-06-06 Ian Lance Taylor <iant@google.com>
809
810 * doc/extend.texi (Attribute Syntax): Document that C++ labels on
811 empty statements can now have attributes.
812
813 2009-06-05 Shujing Zhao <pearly.zhao@oracle.com>
814
815 * config/mips/mips.c: Use REG_P and CONST_INT_P where applicable.
816 * config/mips/mips.md: Ditto.
817
818 2009-06-05 Nathan Froyd <froydnj@codesourcery.com>
819
820 * config/rs6000/eabi.asm (__eabi_convert): Don't define if
821 _RELOCATABLE.
822 (__eabi_uconvert): Likewise.
823
824 2009-06-05 Nathan Froyd <froydnj@codesourcery.com>
825
826 * config/rs6000/ppc-asm.h: Protect auto-host.h inclusion and
827 CFI_* definitions with IN_GCC.
828
829 2009-06-05 David Edelsohn <edelsohn@gnu.org>
830
831 * xcoffout.h (xcoffout_source_line): Update prototype.
832
833 2009-06-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
834
835 * builtins.c (do_mpc_ckconv, do_mpc_arg1): Use
836 mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM.
837
838 2009-06-05 Jakub Jelinek <jakub@redhat.com>
839
840 PR middle-end/40340
841 * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
842 inlined_function_outer_scope_p blocks for artificial inlines
843 even at -g0/-g1.
844 * tree.c (tree_nonartificial_location): Rewrite using
845 block_nonartificial_location.
846
847 2009-06-05 Revital Eres <eres@il.ibm.com>
848 Leehod Baruch <leehod@il.ibm.com>
849
850 * expr.c (expand_assignment): Expand MISALIGNED_INDIRECT_REF.
851 (expand_expr_real_1): Remove comment.
852 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
853 Vectorize misaligned access when the target supports it.
854 (vect_supportable_dr_alignment): Check for unaligned access
855 support.
856 * tree-vect-stmts.c (vectorizable_store): Generate misaligned store
857 and remove asset.
858
859 2009-06-05 Julian Brown <julian@codesourcery.com>
860
861 * config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP.
862 * config/arm/ieee754-sf.S (cmpsf2): Likewise.
863
864 2009-06-05 Richard Guenther <rguenther@suse.de>
865
866 PR bootstrap/40350
867 * dwarf2out.c (dwarf2out_begin_function): Mark discriminator
868 as possibly unused.
869
870 2009-06-05 Jakub Jelinek <jakub@redhat.com>
871
872 * config/s390/s390.c (global_not_special_regno_p): New static inline.
873 (save_gprs): Don't tell unwinder when a global register is saved.
874 (s390_emit_epilogue): Emit needed epilogue unwind info.
875
876 2009-06-05 Alexandre Oliva <aoliva@redhat.com>
877
878 * dwarf2out.c (deferred_asm_name): New.
879 (add_name_and_src_coords_attributes): Defer creation of
880 DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not
881 computed yet.
882 (move_linkage_attr): New.
883 (dwarf2out_finish): Revisit deferrals and emit attributes at the
884 right place.
885
886 2009-06-05 Alexandre Oliva <aoliva@redhat.com>
887
888 * tree-nested.c (finalize_nesting_tree_1): Declare the
889 frame_decl in the binding tree.
890
891 2009-06-04 Cary Coutant <ccoutant@google.com>
892
893 * basic-block.h (struct basic_block_def): Add discriminator field.
894 * dbxout.c (dbxout_source_line): Add new parameter. Change all
895 callers.
896 * debug.c (do_nothing_debug_hooks): Add additional entry.
897 (debug_nothing_int_charstar_int): New function.
898 * debug.h (struct gcc_debug_hooks): Add parameter to source_line
899 hook.
900 (debug_nothing_int_charstar_int): New declaration.
901 * dwarf2out.c (dwarf2out_source_line): Add new parameter. Write
902 discriminator value in .loc directive.
903 * final.c (last_discriminator): New variable.
904 (discriminator): New variable.
905 (final_start_function): Initialize above variables, pass current
906 discriminator to debug hook.
907 (notice_source_line): Check for discriminator change.
908 * gimple-pretty-print.c (dump_bb_header): Print discriminator value.
909 * sdbout.c (sdbout_source_line): New parameter.
910 * tree-cfg.c (struct locus_discrim_map): New structure type.
911 (discriminator_per_locus): New hash table.
912 (build_gimple_cfg): Allocate and free discriminator hash table.
913 (make_edges): Call assign_discriminator.
914 (locus_map_hash): New function.
915 (locus_map_eq): New function.
916 (next_discriminator_for_locus): New function.
917 (same_line_p): New function.
918 (assign_discriminator): New function.
919 (make_cond_expr_edges): Call assign_discriminator.
920 (make_gimple_switch_edges): Likewise.
921 (first_non_label_stmt): New function.
922 * vmsdbgout.c (vmsdbgout_source_line): Add new parameter. Change
923 all callers.
924 * xcoffout.c (xcoffout_source_line): Add new parameter.
925
926 * configure.ac (gcc_cv_as_discriminator): New configury check for
927 gas support for discriminator.
928 * configure: Regenerate.
929 * config.in: Regenerate.
930
931 2009-06-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
932
933 * config/arm/arm.c (thumb2_legitimate_index_p): Initialize
934 val after checking for integers.
935
936 2009-06-04 Uros Bizjak <ubizjak@gmail.com>
937
938 * config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from
939 X64_REGPARM_MAX.
940 (REGPARM_MAX): Use X86_64_MS_REGPARM_MAX.
941 (X86_64_MS_SSE_REGPARM_MAX): Rename from X64_SSE_REGPARM_MAX.
942 (SSE_REGPARM_MAX): Use X86_64_MS_SSE_REGPARM_MAX.
943 * config/i386/i386.c: Use X86_64_MS_REGPARM_MAX instead of
944 X64_REGPARM_MAX. Use X86_64_MS_SSE_REGPARM_MAX instead of
945 X64_SSE_REGPARM_MAX.
946 * config/i386/i386.md: Use X86_64_MS_SSE_REGPARM_MAX instead of
947 X64_SSE_REGPARM_MAX.
948
949 2009-06-04 Alexandre Oliva <aoliva@redhat.com>
950
951 * gcc.c (report_times_to_file): New.
952 (execute): Implement it.
953 (process_command): Support -time=.
954 * doc/invoke.texi: Document it.
955
956 2009-06-04 Alexandre Oliva <aoliva@redhat.com>
957
958 * tree-ssa-live.c (remove_unused_scope_block_p): Keep variables
959 that have value exprs.
960
961 2009-06-04 Alexandre Oliva <aoliva@redhat.com>
962
963 * dwarf2asm.c (dw2_force_const_mem): Defer creation of
964 declarations for constants until...
965 (dw2_output_indirect_constant_1): ... this point.
966
967 2009-06-04 Richard Earnshaw <rearnsha@arm.com>
968
969 PR target/10242
970 * arm.md (arm_addsi3): Don't try to split an add with an
971 eliminable register until after reload has completed.
972
973 2009-06-03 Ian Lance Taylor <iant@google.com>
974
975 * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST.
976 * genattrtab.c (write_length_unit_log): Likewise.
977 * genchecksum.c (dosum): Likewise.
978 * gengtype.c (write_rtx_next): Likewise.
979 (finish_root_table, write_roots): Likewise.
980 * gimple.c (gimple_ops_offset_): Likewise.
981 * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise.
982 * config/arc/arc.c (arc_attribute_table): Likewise.
983 * config/arm/arm.c (arm_attribute_table): Likewise.
984 * config/avr/avr.c (avr_attribute_table): Likewise.
985 * config/crx/crx.c (crx_attribute_table): Likewise.
986 * config/m32r/m32r.c (m32r_attribute_table): Likewise.
987 * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise.
988 * config/mcore/mcore.c (mcore_attribute_table): Likewise.
989 * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
990 * config/sh/sh.c (sh_attribute_table): Likewise.
991 * config/sparc/sparc.c (sparc_attribute_table): Likewise.
992 * config/spu/spu.c (spu_attribute_table): Likewise.
993 * config/v850/v850.c (v850_attribute_table): Likewise.
994
995 * config/alpha/alpha.c (vms_attribute_table): Make static.
996 * config/bfin/bfin.c (bfin_attribute_table): Likewise.
997 * config/h8300/h8300.c (h8300_attribute_table): Likewise.
998 * config/mips/mips.c (mips_attribute_table): Likewise.
999
1000 * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and
1001 $(SYSTEM_H).
1002 (cc1-checksum.o): Likewise.
1003
1004 2009-06-03 Steve Ellcey <sje@cup.hp.com>
1005
1006 * config/ia64/vect.md (*movv2sf_internal): Handle big endian case.
1007
1008 2009-06-03 Jakub Jelinek <jakub@redhat.com>
1009
1010 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated
1011 insn if it is changing sp. Use gen_add3_insn instead of
1012 conditionally gen_addsi3 and gen_adddi3.
1013 (offset_below_red_zone_p): New static inline function.
1014 (rs6000_emit_epilogue): Emit needed epilogue unwind info.
1015 Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3.
1016 * config/rs6000/ppc-asm.h: Include auto-host.h.
1017 (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET,
1018 CFI_RESTORE): Define.
1019 * config/rs6000/crtresxgpr.asm: Add unwind info.
1020 * config/rs6000/crtresxfpr.asm: Likewise.
1021 * config/rs6000/crtresgpr.asm: Likewise.
1022 * config/rs6000/crtresfpr.asm: Likewise.
1023 * config/rs6000/crtsavgpr.asm: Likewise.
1024 * config/rs6000/crtsavfpr.asm: Likewise.
1025
1026 * dwarf2out.c (output_cfi_directive): Pass 1 instead of
1027 0 to second argument of DWARF2_FRAME_REG_OUT macros.
1028
1029 2009-06-03 Julian Brown <julian@codesourcery.com>
1030
1031 * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four
1032 words or less (including TImode) in core registers.
1033
1034 2009-06-03 Richard Guenther <rguenther@suse.de>
1035
1036 PR middle-end/40328
1037 * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.
1038
1039 2009-06-03 Andrey Belevantsev <abel@ispras.ru>
1040
1041 * statistics.c (statistics_counter_event): Do not record event
1042 in pass dump if its number == -1.
1043 (curr_statistics_hash): Add assert that we never get passes
1044 with static number == -1.
1045
1046 2009-06-03 Richard Guenther <rguenther@suse.de>
1047 Andrey Belevantsev <abel@ispras.ru>
1048
1049 * cfgexpand.c (discover_nonconstant_array_refs_r): Make only
1050 non-BLKmode arrays addressable.
1051
1052 2009-06-03 Maxim Kuvyrkov <maxim@codesourcery.com>
1053
1054 * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
1055 * config/m68k/m68k.h: ... here.
1056 * testsuite/gcc.dg/falign-labels.c (dg-options): Don't restrict for
1057 m68k and fido.
1058
1059 2009-06-03 Martin Jambor <mjambor@suse.cz>
1060
1061 PR tree-optimization/40323
1062 * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single
1063 assignment.
1064
1065 2009-06-03 Richard Guenther <rguenther@suse.de>
1066
1067 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
1068 consistently.
1069
1070 2009-06-03 Shujing Zhao <pearly.zhao@oracle.com>
1071
1072 * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
1073 JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
1074 JUMP_TABLE_DATA_P where applicable.
1075 * config/sh/sh.c: Ditto.
1076 * config/sh/sh.h: Ditto.
1077 * config/sh/sh.md: Ditto.
1078 * config/sh/symbian.c: Ditto.
1079
1080 2009-06-03 Uros Bizjak <ubizjak@gmail.com>
1081
1082 * config/i386/driver-i386.c (describe_cache): Optimize
1083 concatenation of strings. Use snprintf instead of sprintf.
1084 (host_detect_local_cpu): Ditto. Ignore -march and -mtune for native
1085 target when not compiling with GCC.
1086
1087 2009-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
1088
1089 * config/sh/sh.c: Revert last change.
1090 (sh_expand_epilogue): Emit a blockage insn before the frame
1091 pointer adjustment unconditionally.
1092
1093 2009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1094
1095 * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
1096 * config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
1097 * config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
1098 * gcc.c (set_collect_gcc_options): Don't add -fwhole-program
1099 to COLLECT_GCC_OPTIONS.
1100
1101 2009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1102
1103 * collect2.c (target_system_root): New variable.
1104 (main): Handle --sysroot=.
1105 (ignore_library): Strip the sysroot from the library path.
1106
1107 2009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1108
1109 * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
1110 (collect2.o): Depend on collect2-aix.h.
1111 (collect2-aix.o): New rule.
1112 * collect2-aix.h: New file.
1113 * collect2-aix.c: Likewise.
1114 * collect2.c: Include collect2-aix.h. Don't undefine
1115 OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
1116 Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
1117 Use TARGET_AIX_VERSION instead of _AIX51.
1118 * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
1119 * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
1120 * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
1121 * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
1122 * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.
1123
1124 2009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1125
1126 * collect2.c (ignore_library): Avoid premature post-increment
1127 and null deference.
1128
1129 2009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1130
1131 * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
1132 * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
1133 !CROSS_DIRECTORY_STRUCTURE alternative and use it for
1134 CROSS_DIRECTORY_STRUCTURE too.
1135 (LINK_LIBG_SPEC): Likewise.
1136 (LIB_SPEC): Add %R to sysroot paths.
1137 * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
1138 (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
1139 * config/rs6000/aix51.h: As for aix43.h.
1140 * config/rs6000/aix52.h: Likewise.
1141 * config/rs6000/aix53.h: Likewise.
1142 * config/rs6000/aix61.h: Likewise.
1143 * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
1144 to the beginning of sysroot paths.
1145
1146 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
1147
1148 * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
1149 INSN_LISTs that are out of the REG_NOTE range.
1150
1151 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
1152
1153 * loop-unroll.c (struct iv_to_split): Add pointer to next.
1154 (struct var_to_expand): Likewise.
1155 (struct opt_info): Add head and tail for linked lists of the above.
1156 (analyze_insn_to_expand_var): Initialize next.
1157 (analyze_iv_to_split_insn): Likewise.
1158 (analyze_insns_in_loop): Create linked lists.
1159 (allocate_basic_variable): Simplify for use without hash table.
1160 (insert_var_expansion_initialization): Likewise, make it type-safer.
1161 (combine_var_copies_in_loop_exit): Likewise.
1162 (apply_opt_in_copies): Walk lists rather than hash tables.
1163 (release_var_copies): Simplified and inlined by hand into...
1164 (free_opt_info): ... this function.
1165
1166 2009-06-02 Richard Guenther <rguenther@suse.de>
1167
1168 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
1169 for field decls.
1170
1171 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
1172
1173 * cfgexpand.c (gimple_expand_cfg): Discard the source location
1174 only for builtins that are not overridden.
1175
1176 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
1177
1178 * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
1179 label string.
1180
1181 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
1182
1183 * df-core.c (df_ref_debug): Honor -fdump-noaddr.
1184
1185 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
1186
1187 * combine.c (move_deaths): Compare LUIDs within the same BB only.
1188
1189 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
1190
1191 * common.opt (fdump-unnumbered-links): New.
1192 * doc/invoke.texi (-fdump-unnumbered-links): Document it.
1193 * print-rtl.c (flag_dump_unnumbered_links): New.
1194 (print_rtx): Test it.
1195
1196 2009-06-02 Richard Earnshaw <rearnsha@arm.com>
1197
1198 * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
1199 push/pop multiple to 8-byte alignment.
1200
1201 2009-06-01 Jakub Jelinek <jakub@redhat.com>
1202
1203 * config/i386/i386.c (queued_cfa_restores): New static variable.
1204 (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
1205 functions.
1206 (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
1207 (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
1208 Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
1209 Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
1210 note unconditionally.
1211 (ix86_emit_restore_regs_using_mov): Likewise.
1212 (ix86_emit_restore_sse_regs_using_mov): Likewise.
1213 (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
1214 it through to ix86_emit_restore_reg_using_pop.
1215 (ix86_emit_leave): Add RED_OFFSET argument. Call
1216 ix86_add_queued_cfa_restore_notes. Call ix86_add_cfa_restore_note
1217 instead of adding REG_CFA_OFFSET note unconditionally.
1218 (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
1219 the above functions. Call ix86_add_queued_cfa_restore_notes when
1220 needed.
1221
1222 * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
1223 force output of the label even for dwarf2out_do_cfi_asm.
1224 (add_fde_cfi): If -g2 and above and cfi might change CFA,
1225 force creation of CFI label and chain DW_CFA_set_loc jumping to it
1226 for convert_cfa_to_fb_loc_list. Adjust other dwarf2out_cfi_label
1227 caller.
1228 (dwarf2out_stack_adjust, dwarf2out_frame_debug,
1229 dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
1230 dwarf2out_cfi_label callers.
1231 * tree.h (dwarf2out_cfi_label): Adjust prototype.
1232 * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
1233 Adjust dwarf2out_cfi_label callers.
1234 * config/vax/vax.c (vax_output_function_prologue): Likewise.
1235
1236 * config/i386/i386.h (struct machine_cfa_state,
1237 struct machine_function): Guard with ifndef USED_FOR_TARGET
1238 instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.
1239
1240 PR other/40024
1241 * emutls.c (__emutls_get_address): Change arr->size to mean number
1242 of allocated arr->data entries instead of # of slots + 1.
1243
1244 PR middle-end/40316
1245 * recog.c (peep2_reinit_state): New function.
1246 (peephole2_init_state): Use it at the end of a basic block and also
1247 when seeing a RTX_FRAME_RELATED_P insn.
1248
1249 2009-06-01 Steve Ellcey <sje@cup.hp.com>
1250
1251 * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
1252 fixuns_truncrfdi2): New.
1253 (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
1254 *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
1255 *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
1256 *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
1257 *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
1258 *recip_approx): Remove.
1259 (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
1260 moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
1261 divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
1262 move to div.md.
1263 * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
1264 setf_exp_rf): New.
1265
1266 2009-06-01 Ian Lance Taylor <iant@google.com>
1267
1268 * attribs.c (register_attribute): Use CONST_CAST.
1269 * collect2.c (main): Use CONST_CAST2.
1270 (scan_prog_file): Likewise.
1271 * gcc.c (process_command, main): Likewise.
1272 * toplev.c (toplev_main): Likewise.
1273
1274 * c-typeck.c (handle_warn_cast_qual): New static function,
1275 partially broken out of build_c_cast.
1276 (build_c_cast): Call handle_warn_cast_qual.
1277 * doc/invoke.texi (Warning Options): Document new effect of
1278 -Wcast-qual.
1279
1280 2009-06-01 Aldy Hernandez <aldyh@redhat.com>
1281
1282 * diagnostic.c (diagnostic_build_prefix): Always print columns.
1283 (diagnostic_report_current_module): Print columns.
1284 * common.opt (flag_show_column): Enable by default.
1285
1286 2009-06-01 Luis Machado <luisgpm@br.ibm.com>
1287
1288 * alias.c (find_base_term): Check for NULL term before returning.
1289
1290 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
1291
1292 Revert due to PR40320:
1293 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
1294 * calls.c (emit_library_call_value_1): Don't force_operand for move
1295 and push insns.
1296
1297 2009-06-01 Olivier Hainque <hainque@adacore.com>
1298 Eric Botcazou <ebotcazou@adacore.com>
1299
1300 * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
1301 to be processed as a bitfield for constructor output purposes.
1302 * output.h (initializer_constant_valid_for_bitfield_p): Declare
1303 new function.
1304 * varasm.c (oc_local_state): New type, output_constructor
1305 local state to support communication with helpers.
1306 (oc_outer_state): New type, output_constructor outer state of
1307 relevance in recursive calls.
1308 (output_constructor_array_range): New output_constructor helper,
1309 extracted code for an array range element.
1310 (output_constructor_regular_field): New output_constructor helper,
1311 extracted code for an element that is not a bitfield.
1312 (output_constructor_bitfield): New output_constructor helper,
1313 extracted code for a bitfield element. Accept an OUTER state
1314 argument for recursive processing. Recurse on record or array
1315 CONSTRUCTOR values, possibly past noop conversions.
1316 (initializer_constant_valid_for_bitfield_p): New predicate. Whether
1317 VALUE is a valid constant-valued expression for use in a static
1318 bit-field initializer.
1319 (output_constructor): Rework to use helpers. Accept and honor an
1320 OUTER state argument for recursive calls. Return total size. Be
1321 prepared for nested constructors initializing bitfields.
1322 (output_constant): Feed OUTER in calls to output_constructor.
1323
1324 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
1325
1326 * calls.c (emit_library_call_value_1): Don't force_operand for move
1327 and push insns.
1328
1329 2009-06-01 Nick Clifton <nickc@redhat.com>
1330
1331 * doc/invoke.texi (IA-64 Options): Fix typo.
1332
1333 2009-06-01 Ira Rosen <irar@il.ibm.com>
1334
1335 PR tree-optimization/39129
1336 * tree-vect-loop-manip.c (conservative_cost_threshold): Change the
1337 printed message.
1338 (vect_do_peeling_for_loop_bound): Use
1339 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
1340 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
1341 (vect_loop_versioning): Likewise.
1342 (vect_create_cond_for_alias_checks): Fix indentation.
1343 * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the
1344 macros.
1345 (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
1346 (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
1347 * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to
1348 "control flow in loop".
1349 (vect_estimate_min_profitable_iters): Use
1350 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
1351 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
1352 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
1353 (vect_create_data_ref_ptr): Don't mention array dimension in printing.
1354 * tree-vect-stmts.c (vectorizable_store): Replace the check that the
1355 statement belongs to a group of strided accesses with the exact code
1356 check.
1357 (vectorizable_load): Likewise.
1358 * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
1359 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
1360
1361 2009-06-01 Gerald Pfeifer <gerald@pfeifer.com>
1362
1363 * config/freebsd-stdint.h: New file.
1364 * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
1365 Add freebsd-stdint.h to tm_file.
1366
1367 2009-06-01 Richard Earnshaw <rearnsha@arm.com>
1368
1369 * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
1370 (thumb2_extendhidi2): Likewise.
1371
1372 2009-05-31 Ian Lance Taylor <iant@google.com>
1373
1374 * regstat.c (regstat_n_sets_and_refs): Remove duplicate definition.
1375
1376 2009-05-31 Ian Lance Taylor <iant@google.com>
1377
1378 * Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H).
1379 (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
1380 (ipa-reference.o): Depend upon gt-ipa-reference.h.
1381
1382 2009-05-31 Jason Merrill <jason@redhat.com>
1383
1384 * tree-pretty-print.c (print_call_name): Take the callee, not the
1385 call itself. Make non-static. Use dump_function_name for functions.
1386 (dump_generic_node): Adjust.
1387 * diagnostic.h: Declare print_call_name.
1388 * gimple-pretty-print.c (dump_gimple_call): Use it.
1389
1390 2009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
1391
1392 * config/sh/sh.md (ashldi3_std): New define_expand.
1393 (ashldi3): Use it.
1394
1395 2009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
1396
1397 PR target/40313
1398 * config/sh/sh.c: Include debug.h.
1399 (sh_expand_epilogue): Emit a blockage insn before the frame
1400 pointer adjustment also when dwarf2out_do_frame returns true.
1401
1402 2009-05-31 Richard Earnshaw <rearnsha@arm.com>
1403
1404 * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
1405 (thumb2_extendqidi2): New pattern.
1406
1407 2009-05-31 Ira Rosen <irar@il.ibm.com>
1408
1409 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
1410 mark phis for renaming.
1411 * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
1412 (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
1413 Call mark_sym_for_renaming.
1414 * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
1415 * tree-vect-loop.c (vect_transform_loop): Remove
1416 vect_memsyms_to_rename initialization and a call to
1417 mark_set_for_renaming.
1418
1419 2009-05-31 Jakub Jelinek <jakub@redhat.com>
1420
1421 PR middle-end/40304
1422 * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
1423 frame related even if !set_cfa && style < 0.
1424
1425 2009-05-30 Kai Tietz <kai.tietz@onevision.com>
1426
1427 * config/i386/mingw-tls.c: New file.
1428 * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file.
1429 * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets
1430 defining _WIN32 but not __CYGWIN__.
1431
1432 2009-05-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1433
1434 * configure.ac: Add MPC support.
1435
1436 * config.in, configure: Regenerate.
1437
1438 2009-05-29 Richard Henderson <rth@redhat.com>
1439
1440 * cfgcleanup.c (try_crossjump_to_edge): Only skip past
1441 NOTE_INSN_BASIC_BLOCK.
1442 * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
1443 Duplicate NOTE_INSN_EPILOGUE_BEG notes.
1444 * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
1445 to be deleted.
1446 * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
1447 add in_use field.
1448 (add_cfi): Disable check redefining cfa away from drap.
1449 (lookup_cfa_1): Add remember argument; handle remember/restore.
1450 (lookup_cfa): Pass remember argument.
1451 (cfa_remember): New.
1452 (compute_barrier_args_size_1): Remove sibcall check.
1453 (dwarf2out_frame_debug_def_cfa): New.
1454 (dwarf2out_frame_debug_adjust_cfa): New.
1455 (dwarf2out_frame_debug_cfa_offset): New.
1456 (dwarf2out_frame_debug_cfa_register): New.
1457 (dwarf2out_frame_debug_cfa_restore): New.
1458 (dwarf2out_frame_debug): Handle REG_CFA_* notes.
1459 (dwarf2out_begin_epilogue): New.
1460 (dwarf2out_frame_debug_restore_state): New.
1461 (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
1462 DW_CFA_restore_state.
1463 (output_cfi_directive): Likewise.
1464 (convert_cfa_to_fb_loc_list): Likewise.
1465 (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
1466 * dwarf2out.h: Update.
1467 * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
1468 (copy_insn_1): Early out for null.
1469 * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
1470 and dwarf2out_frame_debug_restore_state.
1471 * function.c (prologue, epilogue, sibcall_epilogue): Remove.
1472 (prologue_insn_hash, epilogue_insn_hash): New.
1473 (free_after_compilation): Adjust freeing accordingly.
1474 (record_insns): Create hash table if needed; push insns into
1475 hash instead of array.
1476 (maybe_copy_epilogue_insn): New.
1477 (contains): Search hash table instead of array.
1478 (sibcall_epilogue_contains): Remove.
1479 (thread_prologue_and_epilogue_insns): Split eh_return insns
1480 and mark them as epilogues.
1481 (reposition_prologue_and_epilogue_notes): Rewrite epilogue
1482 scanning in terms of basic blocks.
1483 * insn-notes.def (CFA_RESTORE_STATE): New.
1484 * jump.c (returnjump_p_1): Accept EH_RETURN.
1485 (eh_returnjump_p_1, eh_returnjump_p): New.
1486 * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
1487 CFA_REGISTER, CFA_RESTORE): New.
1488 * rtl.def (EH_RETURN): New.
1489 * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
1490
1491 * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
1492 (eh_return_internal): Use eh_return rtx; split w/ epilogue.
1493
1494 * config/i386/i386.c (gen_push): Update cfa state.
1495 (pro_epilogue_adjust_stack): Add set_cfa argument. When true,
1496 add a CFA_ADJUST_CFA note.
1497 (ix86_dwarf_handle_frame_unspec): Remove.
1498 (ix86_expand_prologue): Update cfa state.
1499 (ix86_emit_restore_reg_using_pop): New.
1500 (ix86_emit_restore_regs_using_pop): New.
1501 (ix86_emit_leave): New.
1502 (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
1503 (ix86_expand_epilogue): Add notes for unwinding the epilogue.
1504 * config/i386/i386.h (struct machine_cfa_state): New.
1505 (ix86_cfa_state): New.
1506 * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
1507 (eh_return_internal): Merge from eh_return_<mode>,
1508 use eh_return rtx, split w/ epilogue.
1509
1510 2009-05-29 Ian Lance Taylor <iant@google.com>
1511
1512 * builtins.c (validate_gimple_arglist): Don't use va_arg with
1513 enum type.
1514 * calls.c (emit_library_call_value_1): Likewise.
1515
1516 * c-typeck.c (c_build_va_arg): New function.
1517 * c-tree.h (c_build_va_arg): Declare.
1518 * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
1519 instead of build_va_arg.
1520
1521 2009-05-29 Eric Botcazou <ebotcazou@adacore.com>
1522
1523 * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
1524 (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
1525 (ptr_difference_cost): Use affine combinations to compute it.
1526 (difference_cost): Likewise.
1527 (get_computation_cost_at): Compute more accurate cost for addresses
1528 if the ratio is a multiplier allowed in addresses.
1529 For non-addresses, consider that an additional offset or symbol is
1530 added only once.
1531
1532 2009-05-29 Jakub Jelinek <jakub@redhat.com>
1533
1534 * config/i386/i386.c (ix86_decompose_address): Avoid useless
1535 0 displacement. Add 0 displacement if base is %[er]bp or %r13.
1536
1537 * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
1538 TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
1539 (prefix_rex): For UNIT_MMX don't imply the prefix by default
1540 if MODE_DI.
1541 (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
1542 to 1 for TYPE_SSE{IADD1,CVT1}.
1543 (prefix_vex_imm8): Removed.
1544 (length_vex): Only pass 1 as second argument to
1545 ix86_attr_length_vex_default if prefix_extra is 0.
1546 (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
1547 (length): For prefix vex computation use length_immediate
1548 attribute instead of prefix_vex_imm8.
1549 (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
1550 addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
1551 *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
1552 *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
1553 (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
1554 *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
1555 a space in between the operands.
1556 (*anddi_1_rex64, *andsi_1): Likewise. Override prefix_rex to 1
1557 if one operand is 0xff and the other one si, di, bp or sp.
1558 (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
1559 other one si, di, bp or sp.
1560 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
1561 (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
1562 type and mode attributes.
1563 (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
1564 (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
1565 prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
1566 (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
1567 prefix_data16 attribute iff MODE_DF.
1568 (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
1569 (fix_trunc<mode>di_sse): Set prefix_rex attribute.
1570 (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
1571 constm128_operand in length_immediate computation.
1572 (*addhi_4): Likewise. Fix mode attribute to MODE_HI.
1573 (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
1574 (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
1575 length_immediate attribute to 1.
1576 (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
1577 (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
1578 for certain alternatives.
1579 (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
1580 prefix_data16 attribute if MODE_V1DF.
1581 (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
1582 length_immediate to 1.
1583 (set_got_rex64, set_rip_rex64): Remove length attribute, set
1584 length_address to 4, set mode attribute to MODE_DI.
1585 (set_got_offset_rex64): Likewise. Set length_immediate to 0.
1586 (fxam<mode>2_i387): Set length attribute to 4.
1587 (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
1588 *prefetch_3dnow_rex): Override length_address attribute.
1589 (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
1590 attributes.
1591 * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
1592 (constm128_operand): Removed.
1593 * config/i386/i386.c (memory_address_length): For
1594 disp && !index && !base in 64-bit mode account for SIB byte if
1595 print_operand_address can't optimize disp32 into disp32(%rip)
1596 and UNSPEC doesn't imply (%rip) addressing. Add 1 to length
1597 for fs: or gs: segment.
1598 (ix86_attr_length_immediate_default): When checking if shortform
1599 is possible, truncate immediate to the length of the non-shortened
1600 immediate.
1601 (ix86_attr_length_address_default): Ignore MEM_P operands
1602 with X constraint.
1603 (ix86_attr_length_vex_default): Only check for DImode on
1604 GENERAL_REG_P operands.
1605 * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
1606 prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
1607 (sse_cvttps2pi): Clear prefix_rep attribute.
1608 (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
1609 attribute.
1610 (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
1611 (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
1612 *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
1613 iff operand 2 is const_int_operand.
1614 (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
1615 sse2_shufpd_<mode>): Set length_immediate attribute to 1.
1616 (sse2_pshufd_1): Likewise. Set prefix attribute to maybe_vex
1617 instead of vex.
1618 (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
1619 prefix_data16.
1620 (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
1621 prefix_data16 attribute for movlpd and movhpd instructions.
1622 (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise. Override
1623 length_immediate for shufpd instruction.
1624 (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
1625 (avx_cmpp<avxmodesuffixf2c><mode>3,
1626 avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
1627 <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
1628 avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
1629 *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1.
1630 (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
1631 (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
1632 (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
1633 prefix_data16 attribute for the first alternative to 1.
1634 (*avx_loadlps): Override length_immediate for the first alternative.
1635 (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
1636 attributes for second alternative.
1637 (*vec_concatv2sf_sse4_1): Override length_immediate and
1638 prefix_data16 attributes for second alternative.
1639 (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
1640 vec_extract_hi_<mode>, vec_extract_lo_v16hi,
1641 vec_extract_hi_v16hi, vec_extract_lo_v32qi,
1642 vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
1643 (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
1644 prefix_data16 and length_immediate to 1.
1645 (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
1646 to 1.
1647 (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
1648 prefix_extra attribute for variants that don't have 0f prefix alone.
1649 (*avx_pinsr<ssevecsize>): Likewise. Set length_immediate to 1.
1650 (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
1651 *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
1652 *sse4_1_pextrd): Set length_immediate to 1.
1653 (*sse4_1_pinsrd): Likewise. Set prefix_extra to 1.
1654 (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
1655 to 1.
1656 (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
1657 *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
1658 length_immediate to 1 for second alternative.
1659 (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
1660 prefix_extra and length_immediate attributes for the first
1661 alternative.
1662 (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
1663 first alternative.
1664 (*vec_concatv2di_rex64_sse4_1): Likewise. Override prefix_rex
1665 to 1 for the first and third alternative.
1666 (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
1667 alternative.
1668 (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
1669 attribute.
1670 (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
1671 attribute to 0.
1672 (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
1673 *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
1674 *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
1675 *avx_psign<mode>3): Set prefix_extra attribute to 1.
1676 (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
1677 ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
1678 ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
1679 ssse3_psign<mode>3): Override prefix_rex attribute.
1680 (*avx_palignrti): Override prefix_extra and length_immediate to 1.
1681 (ssse3_palignrti): Override length_immediate to 1.
1682 (ssse3_palignrdi): Override length_immediate to 1, override
1683 prefix_rex attribute.
1684 (abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute.
1685 (sse4a_extrqi): Override length_immediate to 2.
1686 (sse4a_insertqi): Likewise. Override prefix_data16 to 0.
1687 (sse4a_insertq): Override prefix_data16 to 0.
1688 (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
1689 avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
1690 avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
1691 *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
1692 avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
1693 and length_immediate to 1.
1694 (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
1695 sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
1696 sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
1697 sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
1698 and length_immediate to 1.
1699 (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
1700 (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
1701 (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
1702 avx_ptest256): Override prefix_extra to 1.
1703 (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
1704 Override prefix_data16 and length_immediate to 1.
1705 (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
1706 sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
1707 sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
1708 sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
1709 prefix_data16 to 0 and prefix_extra to 2.
1710 (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
1711 (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
1712 attribute.
1713 (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
1714 sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
1715 Override prefix_data16 and prefix_rep to 0, length_immediate to 1
1716 and prefix_extra to 2.
1717 (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
1718 prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
1719 (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
1720 avx_vpermilvar<mode>3,
1721 avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
1722 avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
1723 avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
1724 avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
1725 Override prefix_extra to 1.
1726 (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
1727 (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
1728 vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
1729 vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
1730 prefix_extra and length_immediate to 1.
1731 (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
1732 modrm to 0.
1733 (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
1734 to 1 for the first alternative.
1735 * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
1736 prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
1737 cases.
1738 (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
1739 *movv2sf_internal_avx, *movv2sf_internal): Override
1740 prefix_rep attribute for certain alternatives.
1741 (*mov<mode>_internal): Override prefix_rep or prefix_data16
1742 attributes for certain alternatives.
1743 (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
1744 attributes for certain alternatives.
1745 (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
1746 *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
1747 mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
1748 mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
1749 *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
1750 mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
1751 mmx_pswapdv2si2): Set prefix_extra attribute to 1.
1752 (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
1753 length_immediate to 1 if operand 2 is const_int_operand.
1754 (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
1755 *vec_extractv2si_1): Set length_immediate attribute to 1.
1756 (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
1757 using old 3DNOW insn rather than SSE/3DNOW_A.
1758 (mmx_emms, mmx_femms): Clear modrm attribute.
1759
1760 2009-05-29 Martin Jambor <mjambor@suse.cz>
1761
1762 * tree-sra.c: New implementation of SRA.
1763
1764 * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
1765 (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
1766 (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
1767 * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
1768 (SRA_MAX_STRUCTURE_COUNT): Removed.
1769 (SRA_FIELD_STRUCTURE_RATIO): Removed.
1770 * doc/invoke.texi (sra-max-structure-size): Removed.
1771 (sra-field-structure-ratio): Removed.
1772
1773 2009-05-29 Jakub Jelinek <jakub@redhat.com>
1774
1775 PR middle-end/40291
1776 * builtins.c (expand_builtin_memcmp): Convert len to sizetype
1777 before expansion.
1778
1779 2009-05-29 Andrey Belevantsev <abel@ispras.ru>
1780
1781 PR rtl-optimization/40101
1782 * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
1783 seqno. Adjust comment.
1784 * sel-sched.c (find_seqno_for_bookkeeping): Assert that when
1785 inserting bookkeeping before a jump, the jump is not scheduled.
1786 When no positive seqno found, provide a value. Add comment.
1787
1788 2009-05-29 Richard Guenther <rguenther@suse.de>
1789
1790 * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
1791 short-cutting on the first component.
1792
1793 2009-05-29 Jakub Jelinek <jakub@redhat.com>
1794
1795 PR middle-end/39958
1796 * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
1797 for trees other than decls/types.
1798
1799 2009-05-29 Richard Guenther <rguenther@suse.de>
1800
1801 * tree-ssa-operands.c (get_expr_operands): Do not handle
1802 INDIRECT_REFs in the handled-component case. Remove
1803 unused get_ref_base_and_extent case.
1804 * tree-dfa.c (get_ref_base_and_extent): Avoid calling
1805 tree_low_cst and host_integerp where possible.
1806 * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
1807 codes for equivalence.
1808 * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
1809
1810 2009-05-29 David Billinghurst <billingd@gcc.gnu.org>
1811
1812 * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
1813 to tmake_file for i[34567]86-*-cygwin*.
1814
1815 2009-05-29 Jakub Jelinek <jakub@redhat.com>
1816
1817 PR target/40017
1818 * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
1819 (altivec_categorize_keyword, init_vector_keywords,
1820 rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
1821 similar to bool.
1822
1823 2009-05-29 Kai Tietz <kai.tietz@onevision.com>
1824
1825 * tree.c (handle_dll_attribute): Check if node is
1826 of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
1827
1828 2009-05-29 Richard Earnshaw <rearnsha@arm.com>
1829
1830 * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
1831 component.
1832 (thumb2_zero_extendqidi2): Likewise.
1833
1834 2009-05-28 Kaz Kojima <kkojima@gcc.gnu.org>
1835
1836 * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
1837 instead of gen_movrt.
1838 * config/sh/sh.md (movrt): Remove.
1839
1840 2009-05-28 Steve Ellcey <sje@cup.hp.com>
1841
1842 * doc/invoke.texi (IA-64 Options):
1843 Add -msdata, -mfused-madd, -mno-inline-float-divide,
1844 -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
1845 -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
1846 -msched-prefer-non-control-spec-insns,
1847 -msched-stop-bits-after-every-cycle,
1848 -msched-count-spec-in-critical-path,
1849 -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
1850 -msched-max-memory-insns-hard-limit, -msched-max-memory-insns.
1851 Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
1852 and -msched-spec-verbose.
1853
1854 2009-05-28 Joseph Myers <joseph@codesourcery.com>
1855
1856 * config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache.
1857 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
1858 error if used.
1859 * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
1860
1861 2009-05-28 Richard Guenther <rguenther@suse.de>
1862
1863 * tree-ssa-alias.c (ao_ref_init): New function.
1864 (ao_ref_base): Likewise.
1865 (ao_ref_base_alias_set): Likewise.
1866 (ao_ref_alias_set): Likewise.
1867 (refs_may_alias_p_1): Change signature.
1868 (refs_may_alias_p): Adjust.
1869 (refs_anti_dependent_p): Likewise.
1870 (refs_output_dependent_p): Likewise.
1871 (call_may_clobber_ref_p_1): Change signature.
1872 (call_may_clobber_ref_p): Adjust.
1873 (stmt_may_clobber_ref_p_1): New function split out from ...
1874 (stmt_may_clobber_ref_p): ... here.
1875 (maybe_skip_until): Adjust signature.
1876 (get_continuation_for_phi): Likewise.
1877 (walk_non_aliased_vuses): Likewise.
1878 * tree-ssa-alias.h (struct ao_ref_s): New structure type.
1879 (ao_ref_init): Declare.
1880 (ao_ref_base): Likewise.
1881 (ao_ref_alias_set): Likewise.
1882 (stmt_may_clobber_ref_p_1): Likewise.
1883 (walk_non_aliased_vuses): Adjust.
1884 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
1885 (get_ref_from_reference_ops): remove.
1886 (vn_reference_lookup_2): Adjust signature.
1887 (vn_reference_lookup_3): Do not re-build trees. Handle unions.
1888 (vn_reference_lookup_pieces): Adjust signature, do not re-build trees.
1889 (vn_reference_lookup): Adjust.
1890 (vn_reference_insert): Likewise.
1891 (vn_reference_insert_pieces): Adjust signature.
1892 (visit_reference_op_call): Adjust.
1893 * tree-ssa-pre.c (get_expr_type): Simplify.
1894 (phi_translate_1): Adjust.
1895 (compute_avail): Likewise.
1896 (translate_vuse_through_block): Do not re-build trees.
1897 (value_dies_in_block_x): Likewise.
1898 * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
1899 fields.
1900 (vn_reference_lookup_pieces): Adjust declaration.
1901 (vn_reference_insert_pieces): Likewise.
1902
1903 2009-05-28 Benjamin Kosnik <bkoz@redhat.com>
1904
1905 * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
1906 with checking disabled.
1907
1908 2009-05-28 Dave Korn <dave.korn.cygwin@gmail.com>
1909
1910 PR target/37216
1911
1912 * configure.ac (HAVE_GAS_ALIGNED_COMM): Add autoconf test and
1913 macro definition for support of three-operand format aligned
1914 .comm directive in assembler on cygwin/pe/mingw target OS.
1915 * configure: Regenerate.
1916 * config.h: Regenerate.
1917
1918 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Use
1919 aligned form of .comm directive if -mpe-aligned-commons is in effect.
1920 * config/i386/cygming.opt (-mpe-aligned-commons): Add new option.
1921
1922 * doc/invoke.texi (-mpe-aligned-commons): Document new target option.
1923 * doc/tm.texi (ASM_OUTPUT_COMMON): Document zero size commons.
1924
1925 2009-05-28 Ira Rosen <irar@il.ibm.com>
1926
1927 PR tree-optimization/40254
1928 * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
1929 in analysis of basic blocks.
1930
1931 2009-05-28 Adam Nemet <anemet@caviumnetworks.com>
1932
1933 PR middle-end/33699
1934 * target.h (struct gcc_target): Fix indentation. Add const_anchor.
1935 * target-def.h (TARGET_CONST_ANCHOR): New macro.
1936 (TARGET_INITIALIZER): Use it.
1937 * cse.c (CHEAPER): Move it up to the other macros.
1938 (insert): Rename this ...
1939 (insert_with_costs): ... to this. Add cost parameters. Update
1940 function comment.
1941 (insert): New function. Call insert_with_costs.
1942 (compute_const_anchors, insert_const_anchor, insert_const_anchors,
1943 find_reg_offset_for_const, try_const_anchors): New functions.
1944 (cse_insn): Call try_const_anchors. Adjust cost of src_related
1945 when using a const-anchor. Call insert_const_anchors.
1946 * config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor.
1947 * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
1948
1949 2009-05-28 Alexandre Oliva <aoliva@redhat.com>
1950
1951 * tree-inline.c (remap_decls): Enable nonlocalized variables
1952 when not optimizing.
1953
1954 2009-05-28 Alexandre Oliva <aoliva@redhat.com>
1955
1956 * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
1957 Simplify other tests involving optimize.
1958
1959 2009-05-27 Tom Tromey <tromey@redhat.com>
1960
1961 * unwind-dw2.c (_Unwind_DebugHook): New function.
1962 (uw_install_context): Call _Unwind_DebugHook.
1963
1964 2009-05-27 Tom Tromey <tromey@redhat.com>
1965
1966 * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
1967
1968 2009-05-27 Ian Lance Taylor <iant@google.com>
1969
1970 * Makefile.in (LINKER, LINKER_FLAGS): Define.
1971 (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
1972 (ALL_LINKERFLAGS): Define.
1973 (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
1974 (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
1975 (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
1976 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
1977 (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
1978 $(LINKER_FOR_BUILD).
1979 (build/gcov-iov$(build_exeext)): Likewise.
1980
1981 2009-05-27 Julian Brown <julian@codesourcery.com>
1982
1983 * gcse.c (target.h): Include.
1984 (can_assign_to_reg_without_clobbers_p): Check that the target allows
1985 copy of argument to a pseudo register.
1986
1987 2009-05-27 Diego Novillo <dnovillo@google.com>
1988
1989 * tree-ssa-live.c (dump_scope_block): Document arguments.
1990 (dump_scope_blocks): Document.
1991 (debug_scope_blocks): New.
1992 * tree-flow.h (debug_scope_blocks): Declare.
1993
1994 2009-05-21 Denis Chertykov <denisc@overta.ru>
1995
1996 * doc/contrib.texi (Contributors): Add myself to the list.
1997
1998 2009-05-27 Olivier Hainque <hainque@adacore.com>
1999
2000 * expr.c (target_align): New function. Alignment the TARGET of an
2001 assignment may be assume to have.
2002 (highest_pow2_factor_for_target): Use it instead of relying on
2003 immediate tree attributes of TARGET, not necessarily honored when
2004 intermediate bitfields are involved.
2005
2006 2009-05-27 H.J. Lu <hongjiu.lu@intel.com>
2007
2008 PR target/40266
2009 * config/i386/driver-i386.c (host_detect_local_cpu): Support
2010 AVX, SSE4, AES, PCLMUL and POPCNT.
2011
2012 2009-05-27 Diego Novillo <dnovillo@google.com>
2013
2014 * tree-pretty-print.c (dump_location): New.
2015 (dump_generic_node): Call it.
2016 Factor code to handle BLOCK nodes ...
2017 (dump_block_node): ... here.
2018
2019 2009-05-27 Rafael Avila de Espindola <espindola@google.com>
2020
2021 * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h
2022 with it.
2023 * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
2024 included.
2025 * gcc-plugin.h: Include config.h and system.h.
2026 (IN_GCC): Define if not defined.
2027
2028 2009-05-27 Hans-Peter Nilsson <hp@axis.com>
2029
2030 PR middle-end/40249
2031 * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
2032 with -fno-inline.
2033
2034 2009-05-27 Shujing Zhao <pearly.zhao@oracle.com>
2035
2036 * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
2037 applicable.
2038 * config/m32r/m32r.h: Ditto.
2039 * config/m32r/m32r.md: Ditto.
2040 * config/m32r/predicates.md: Ditto.
2041
2042 2009-05-27 Alexandre Oliva <aoliva@redhat.com>
2043
2044 * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
2045
2046 2009-05-26 Basile Starynkevitch <basile@starynkevitch.net>
2047
2048 * doc/plugins.texi
2049 (Loading plugins): typo.
2050 (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
2051 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
2052 (Interacting with the GCC Garbage Collector): Added new section.
2053 (Giving information about a plugin): Added new section for
2054 PLUGIN_INFO.
2055 * ggc.h (ggc_register_root_tab): Added declaration.
2056 * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
2057 (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
2058 (register_callback): Improved comment in declaration.
2059 * ggc-common.c (const_ggc_root_tab_t) Added new typedef for vectors.
2060 (extra_root_vec) Added static variable for dynamic roots registration.
2061 (ggc_register_root_tab) Added new routine.
2062 (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
2063 PLUGIN_GGC_MARKING event.
2064 * ggc-zone.c: Include plugin.h.
2065 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
2066 * ggc-page.c: Include plugin.h.
2067 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
2068 * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
2069 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
2070 (register_callback): check lack of callbacks for
2071 pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
2072 PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
2073 (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
2074 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
2075 * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
2076 dependency on plugin.h.
2077 (plugin.o): Added dependency on ggc.h...
2078
2079 2009-05-26 Richard Guenther <rguenther@suse.de>
2080
2081 PR middle-end/40248
2082 Revert
2083 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
2084 with mismatched comparison modes.
2085
2086 * expr.c (expand_expr_real_1): Expand the operand of a
2087 VIEW_CONVERT_EXPR in its natural mode.
2088
2089 2009-05-26 Ian Lance Taylor <iant@google.com>
2090
2091 * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
2092 (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
2093 (ALL_COMPILERFLAGS): Define.
2094 (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
2095 (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
2096 (collect2$(exeext), collect2.o): Likewise.
2097 (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
2098 (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
2099 ($(out_object_file), mips-tfile, mips-tdump): Likewise.
2100 (libbackend.o, intl.o, cppdefault.o): Likewise.
2101 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
2102 (build/%.o): Use $(COMPILER_FOR_BUILD).
2103 (build/gen%$(build_exeext)): Likewise.
2104 (build/gcov-iov$(build_exeext)): LIkewise.
2105 * config/t-darwin (darwin.o): Use $(COMPILER).
2106 (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
2107 * config/t-sol2 (sol2-c.o): Likewise.
2108 (sol2.o): Likewise.
2109 * config/t-vxworks (vxworks.o): Likewise.
2110 * config/x-darwin (host-darwin.o): Likewise.
2111 * config/x-hpux (host-hpux.o): Likewise.
2112 * config/x-linux (host-linux.o): Likewise.
2113 * config/x-solaris (host-solaris.o): Likewise.
2114 * config/alpha/x-alpha (driver-alpha.o): Likewise.
2115 * config/arm/t-arm (arm-c.o): Likewise.
2116 * config/arm/t-pe (pe.o): Likewise.
2117 * config/arm/t-wince-pe (pe.o): Likewise.
2118 * config/i386/t-cygming (winnt.o): Likewise.
2119 (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
2120 * config/i386/t-cygwin (cygwin1.o): Likewise.
2121 (cygwin2.o): Likewise.
2122 * config/i386/t-i386 (i386-c.o): Likewise.
2123 * config/i386/t-interix (winnt.o): Likewise.
2124 * config/i386/t-netware (netware.o): Likewise.
2125 * config/i386/t-nwld (nwld.o): Likewise.
2126 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
2127 * config/i386/x-i386 (driver-i386.o): Likewise.
2128 * config/i386/x-cygwin (host-cygwin.o): Likewise.
2129 * config/i386/x-mingw32 (host-mingw32.o): Likewise.
2130 * config/ia64/t-ia64 (ia64-c.o): Likewise.
2131 * config/m32c/t-m32c (m32c-pragma.o): Likewise.
2132 * config/mips/x-native (driver-native.o): Likewise.
2133 * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
2134 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
2135 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
2136 * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
2137 * config/score/t-score-elf (score7.o): Likewise.
2138 (score3.o): Likewise.
2139 * config/sh/t-sh (sh-c.o): Likewise.
2140 * config/sh/t-symbian (sh-c.o): Likewise.
2141 (symbian.o): Likewise.
2142 * config/spu/t-spu-elf (spu-c.o): Likewise.
2143 * config/v850/t-v850 (v850-c.o): Likewise.
2144 * config/v850/t-v850e (v850-c.o): Likewise.
2145
2146 2009-05-26 Richard Guenther <rguenther@suse.de>
2147
2148 PR tree-optimization/40122
2149 * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
2150 VECTOR_CSTs if possible.
2151 (fold_gimple_assign): Likewise.
2152
2153 2009-05-26 Richard Guenther <rguenther@suse.de>
2154
2155 PR middle-end/40252
2156 * fold-const.c (fold_binary): Use the correct types for building
2157 rotates.
2158
2159 2009-05-26 Richard Guenther <rguenther@suse.de>
2160
2161 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
2162 redundant calls to merge_alias_info.
2163 (bump_vector_ptr): Likewise.
2164 * tree-ssa-copy.c (merge_alias_info): Remove.
2165 (replace_exp_1): Remove call to merge_alias_info.
2166 (propagate_tree_value): Likewise.
2167 (fini_copy_prop): Propagate points-to info.
2168 * tree-flow.h (merge_alias_info): Remove.
2169
2170 2009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
2171
2172 * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
2173
2174 2009-05-25 Jan Hubicka <jh@suse.cz>
2175
2176 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
2177 * cgraph.h (struct inline_summary): New filed self_wize,
2178 size_inlining_benefit, self_time and time_inlining_benefit.
2179 (struct cgraph_global_info): Replace insns by time ans size fields.
2180 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
2181 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
2182 (ipcp_update_callgraph): Do not touch function bodies.
2183 * ipa-inline.c: Include except.h
2184 (MAX_TIME): New constant.
2185 (overall_insns): Remove.
2186 (leaf_node_p): New.
2187 (overall_size, max_benefit): New static variables.
2188 (cgraph_estimate_time_after_inlining): New function.
2189 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
2190 (cgraph_clone_inlined_nodes): Update size.
2191 (cgraph_mark_inline_edge): Update size.
2192 (cgraph_estimate_growth): Use size info.
2193 (cgraph_check_inline_limits): Check size.
2194 (cgraph_default_inline_p): Likewise.
2195 (cgraph_edge_badness): Compute badness based on benefit and size cost.
2196 (cgraph_decide_recursive_inlining): Check size.
2197 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
2198 and times.
2199 (cgraph_decide_inlining): Likewise.
2200 (cgraph_decide_inlining_incrementally): Likewise; honor
2201 PARAM_EARLY_INLINING_INSNS.
2202 (likely_eliminated_by_inlining_p): New predicate.
2203 (estimate_function_body_sizes): New function.
2204 (compute_inline_parameters): Use it.
2205 * except.c (must_not_throw_labels): New function.
2206 * except.h (must_not_throw_labels): Declare.
2207 * tree-inline.c (init_inline_once): Kill inlining_weigths
2208 * tree-ssa-structalias.c: Avoid uninitialized warning.
2209 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
2210 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
2211 (PARAM_INLINE_CALL_COST): Remove.
2212 (PARAM_EARLY_INLINING_INSNS): New.
2213
2214 2009-05-25 Richard Guenther <rguenther@suse.de>
2215
2216 PR tree-optimization/36327
2217 * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
2218 callback for reference translation or lookup at the point of may-defs.
2219 * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
2220 * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
2221 for union COMPONENT_REFs.
2222 (vn_reference_lookup_3): New callback. Lookup from memset
2223 and CONSTRUCTOR assignment, translate through struct copies.
2224 (vn_reference_lookup_pieces): Make sure to not free the
2225 passed operands array. Adjust walk_non_aliased_vuses call.
2226 (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
2227 make sure we do not leak memory.
2228
2229 2009-05-25 Richard Guenther <rguenther@suse.de>
2230
2231 * tree-ssa-alias.h (dump_points_to_solution): Declare.
2232 * tree-inline.c (expand_call_inline): Reset the escaped and
2233 callused solutions.
2234 * tree-ssa-structalias.c (pass_build_ealias): New.
2235 * tree-pass.h (pass_build_ealias): Declare.
2236 * passes.c (init_optimization_passes): Add PTA during
2237 early optimizations.
2238 * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
2239 and CALLUSED solutions.
2240 (dump_points_to_solution): New function, split out from ...
2241 (dump_points_to_info_for): ... here.
2242 * tree-parloops.c (parallelize_loops): Reset the escaped and
2243 callused solutions.
2244
2245 2009-05-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2246
2247 PR bootstrap/40027
2248 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
2249 * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
2250
2251 2009-05-25 Ira Rosen <irar@il.ibm.com>
2252
2253 PR tree-optimization/40238
2254 * tree-vect-stmts.c (vect_init_vector): Insert initialization
2255 statements after basic block's labels.
2256 * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info()
2257 to free the allocated memory.
2258
2259 2009-05-24 Kaz Kojima <kkojima@gcc.gnu.org>
2260
2261 * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
2262 return address with a USE.
2263
2264 2009-05-24 Richard Guenther <rguenther@suse.de>
2265
2266 PR middle-end/40233
2267 * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
2268 array type from the main variant of the inner type.
2269
2270 2009-05-24 Jan-Benedict Glaw <jbglaw@lug-owl.de>
2271
2272 * config/vax/vax-protos.h (legitimate_constant_address_p): Change
2273 definition to bool (from int) to un-break build.
2274 (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
2275
2276 2009-05-24 Paolo Bonzini <bonzini@gnu.org>
2277
2278 * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
2279 discard_stmt_changes): Delete.
2280 * tree-ssa-operands.c (scb_stack): Delete.
2281 (init_ssa_operands): Do not initialize it.
2282 (fini_ssa_operands): Do not free it.
2283 (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
2284
2285 * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with
2286 update_stmt, remove the others. Fix comments.
2287 * tree-dfa.c (optimize_stack_restore): Likewise.
2288 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
2289 * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
2290 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
2291 * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
2292 Likewise.
2293 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
2294 * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
2295 (dom_opt_finalize_block): Likewise, adjusting access to
2296 stmts_to_rescan.
2297 (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
2298 (stmts_to_rescan): Change item type to gimple.
2299 (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
2300
2301 2009-05-24 Ira Rosen <irar@il.ibm.com>
2302
2303 * doc/passes.texi (Tree-SSA passes): Document SLP pass.
2304 * tree-pass.h (pass_slp_vectorize): New pass.
2305 * params.h (SLP_MAX_INSNS_IN_BB): Define.
2306 * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
2307 * tree-vectorizer.c (timevar.h): Include.
2308 (user_vect_verbosity_level): Declare.
2309 (vect_location): Fix comment.
2310 (vect_set_verbosity_level): Update user_vect_verbosity_level
2311 instead of vect_verbosity_level.
2312 (vect_set_dump_settings): Add an argument. Ignore user defined
2313 verbosity if dump flags require higher level of verbosity. Print to
2314 stderr only for loop vectorization.
2315 (vectorize_loops): Update call to vect_set_dump_settings.
2316 (execute_vect_slp): New function.
2317 (gate_vect_slp): Likewise.
2318 (struct gimple_opt_pass pass_slp_vectorize): New.
2319 * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
2320 access its members.
2321 (vec_info_for_bb): New function.
2322 (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
2323 (VECTORIZATION_ENABLED): New macro.
2324 (SLP_ENABLED, SLP_DISABLED): Likewise.
2325 (vect_is_simple_use): Add bb_vec_info argument.
2326 (new_stmt_vec_info, vect_analyze_data_ref_dependences,
2327 vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
2328 vect_analyze_data_ref_accesses, vect_analyze_data_refs,
2329 vect_schedule_slp, vect_analyze_slp): Likewise.
2330 (vect_analyze_stmt): Add slp_tree argument.
2331 (find_bb_location): Declare.
2332 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
2333 * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
2334 (vect_analyze_loop_operations, vect_analyze_loop,
2335 get_initial_def_for_induction, vect_create_epilog_for_reduction,
2336 vect_finalize_reduction, vectorizable_reduction,
2337 vectorizable_live_operation, vect_transform_loop): Likewise.
2338 * tree-data-ref.c (dr_analyze_innermost): Update comment,
2339 skip evolution analysis if analyzing a basic block.
2340 (dr_analyze_indices): Likewise.
2341 (initialize_data_dependence_relation): Skip the test whether the
2342 object is invariant for basic blocks.
2343 (compute_all_dependences): Skip dependence analysis for data
2344 references in basic blocks.
2345 (find_data_references_in_stmt): Don't fail in case of invariant
2346 access in basic block.
2347 (find_data_references_in_bb): New function.
2348 (find_data_references_in_loop): Move code to
2349 find_data_references_in_bb and add a call to it.
2350 (compute_data_dependences_for_bb): New function.
2351 * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
2352 * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
2353 that STEP is 0.
2354 (vect_analyze_data_ref_dependence): Check for interleaving in case of
2355 unknown dependence in basic block and fail in case of dependence in
2356 basic block.
2357 (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
2358 dependence instances from either loop or basic block vectorization
2359 info.
2360 (vect_compute_data_ref_alignment): Check if it is loop vectorization
2361 before calling nested_in_vect_loop_p.
2362 (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
2363 dependence instances from either loop or basic block vectorization
2364 info.
2365 (vect_verify_datarefs_alignment): Likewise.
2366 (vect_enhance_data_refs_alignment): Adjust function calls.
2367 (vect_analyze_data_refs_alignment): Likewise.
2368 (vect_analyze_group_access): Fix printing. Skip different checks if
2369 DR_STEP is 0. Keep strided stores either in loop or basic block
2370 vectorization data structure. Fix indentation.
2371 (vect_analyze_data_ref_access): Fix comments, allow zero step in
2372 basic blocks.
2373 (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
2374 dependence instances from either loop or basic block vectorization
2375 info.
2376 (vect_analyze_data_refs): Update comment. Call
2377 compute_data_dependences_for_bb to analyze basic blocks.
2378 (vect_create_addr_base_for_vector_ref): Check for outer loop only in
2379 case of loop vectorization. In case of basic block vectorization use
2380 data-ref itself as a base.
2381 (vect_create_data_ref_ptr): In case of basic block vectorization:
2382 don't advance the pointer, add new statements before the current
2383 statement. Adjust function calls.
2384 (vect_supportable_dr_alignment): Support only aligned accesses in
2385 basic block vectorization.
2386 * common.opt (ftree-slp-vectorize): New flag.
2387 * tree-vect-patterns.c (widened_name_p): Adjust function calls.
2388 (vect_pattern_recog_1): Likewise.
2389 * tree-vect-stmts.c (process_use): Likewise.
2390 (vect_init_vector): Add new statements in the beginning of the basic
2391 block in case of basic block SLP.
2392 (vect_get_vec_def_for_operand): Adjust function calls.
2393 (vect_finish_stmt_generation): Likewise.
2394 (vectorizable_call): Add assert that it is loop vectorization, adjust
2395 function calls.
2396 (vectorizable_conversion, vectorizable_assignment): Likewise.
2397 (vectorizable_operation): In case of basic block SLP, take
2398 vectorization factor from statement's type and skip the relevance
2399 check. Adjust function calls.
2400 (vectorizable_type_demotion): Add assert that it is loop
2401 vectorization, adjust function calls.
2402 (vectorizable_type_promotion): Likewise.
2403 (vectorizable_store): Check for outer loop only in case of loop
2404 vectorization. Adjust function calls. For basic blocks, skip the
2405 relevance check and don't advance pointers.
2406 (vectorizable_load): Likewise.
2407 (vectorizable_condition): Add assert that it is loop vectorization,
2408 adjust function calls.
2409 (vect_analyze_stmt): Add argument. In case of basic block SLP, check
2410 that it is not reduction, get vector type, call only supported
2411 functions, skip loop specific parts.
2412 (vect_transform_stmt): Check for outer loop only in case of loop
2413 vectorization.
2414 (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
2415 (vect_is_simple_use): Fix comment, add new argument, fix conditions
2416 for external definition.
2417 * passes.c (pass_slp_vectorize): New pass.
2418 * tree-vect-slp.c (find_bb_location): New function.
2419 (vect_get_and_check_slp_defs): Add argument, adjust function calls,
2420 check for patterns only in loops.
2421 (vect_build_slp_tree): Add argument, adjust function calls, fail in
2422 case of multiple types in basic block SLP.
2423 (vect_mark_slp_stmts_relevant): New function.
2424 (vect_supported_load_permutation_p): Fix comment.
2425 (vect_analyze_slp_instance): Add argument. In case of basic block
2426 SLP, take vectorization factor from statement's type, check that
2427 unrolling factor is 1. Adjust function call. Save SLP instance in
2428 either loop or basic block vectorization structure. Return FALSE,
2429 if SLP failed.
2430 (vect_analyze_slp): Add argument. Get strided stores groups from
2431 either loop or basic block vectorization structure. Return FALSE
2432 if basic block SLP failed.
2433 (new_bb_vec_info): New function.
2434 (destroy_bb_vec_info, vect_slp_analyze_node_operations,
2435 vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
2436 (vect_schedule_slp): Add argument. Get SLP instances from either
2437 loop or basic block vectorization structure. Set vectorization factor
2438 to be 1 for basic block SLP.
2439 (vect_slp_transform_bb): New function.
2440 * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
2441
2442 2009-05-23 Mark Mitchell <mark@codesourcery.com>
2443
2444 * final.c (shorten_branches): Do not align labels for jump tables.
2445 (final_scan_insn): Use JUMP_TABLE_DATA_P.
2446
2447 2009-05-23 Eric Botcazou <ebotcazou@adacore.com>
2448
2449 * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
2450 Remove outdated reference to flow.c and fix nits.
2451 * doc/gccint.texi: Tweak RTL description.
2452 * doc/rtl.texi: Likewise.
2453
2454 2009-05-23 Denis Chertykov <chertykov@gmail.com>
2455
2456 * config/avr/avr.c: Change my email address.
2457 * config/avr/avr.h: Likewise.
2458 * config/avr/avr.md: Likewise.
2459 * config/avr/avr-protos.h: Likewise.
2460 * config/avr/libgcc.S: Likewise.
2461
2462 2009-05-22 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
2463
2464 * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
2465 (spu_split_load, spu_split_store): Change return type to int.
2466 (spu_split_convert): Declare.
2467 * config/spu/predicates.md (spu_mem_operand): Remove.
2468 (spu_mov_operand): Update.
2469 (spu_dest_operand, shiftrt_operator, extend_operator): Define.
2470 * config/spu/spu.c (regno_aligned_for_load): Remove.
2471 (reg_aligned_for_addr, spu_expand_load): Define.
2472 (spu_expand_extv): Reimplement and handle MEM.
2473 (spu_expand_insv): Handle MEM.
2474 (spu_sched_reorder): Handle insn's with length 0.
2475 (spu_legitimate_address_p): Reimplement.
2476 (store_with_one_insn_p): Return TRUE for any mode with size
2477 larger than 16 bytes.
2478 (address_needs_split): Define.
2479 (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
2480 operands.
2481 (spu_convert_move): Define.
2482 (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
2483 (spu_split_store): Change all MEM's to TImode.
2484 (spu_init_expanders): Preallocate registers that correspond to
2485 LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
2486 mark_reg_pointer.
2487 (spu_split_convert): Define.
2488 * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
2489 (_move<mode>, _movdi, _movti): Update predicate and condition.
2490 (load, store): Change to define_split.
2491 (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
2492 extend<mode>ti2.
2493 (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
2494 (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
2495 define_insn_and_split of lshr<mode>3.
2496 (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
2497 (<v>ashr<mode>3_imm): Define.
2498 (extv, extzv, insv): Allow MEM operands.
2499 (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
2500 shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
2501 sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
2502 (_spu_convert2): Change to define_insn_and_split and remove the
2503 corresponding define_peephole2.
2504 (stack_protect_set, stack_protect_test, stack_protect_test_si):
2505 Change predicates to memory_operand.
2506
2507 2009-05-22 Mark Mitchell <mark@codesourcery.com>
2508
2509 * config/arm/thumb2.md: Add 16-bit multiply instructions.
2510
2511 2009-05-21 Michael Meissner <meissner@linux.vnet.ibm.com>
2512
2513 PR tree-optimization/40219
2514 * tree.c (iterative_hash_expr): Make sure the builtin function is
2515 a normal builtin function and not a front end or back end builtin
2516 before indexing into the built_in_decls array.
2517
2518 2009-05-22 Richard Guenther <rguenther@suse.de>
2519
2520 PR middle-end/38964
2521 * alias.c (write_dependence_p): Do not use TBAA for answering
2522 anti-dependence or output-dependence.
2523 * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
2524 (emit_pointer_definition): Remove.
2525 (emit_alias_warning): Likewise.
2526 (find_what_var_points_to): Remove TBAA pruning code.
2527 (find_what_p_points_to): Likewise. Do not warn about strict-aliasing
2528 violations.
2529 (compute_points_to_sets): Remove code computing the set of
2530 dereferenced pointers.
2531 * tree-data-ref.c (dr_may_alias_p): Properly use the split
2532 oracle for querying anti and output dependencies.
2533 * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
2534 if TBAA may be applied.
2535 (refs_anti_dependent_p): New function.
2536 (refs_output_dependent_p): Likewise.
2537 * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
2538 (refs_output_dependent_p): Likewise.
2539 * doc/tree-ssa.texi (Memory model): New section.
2540 * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
2541 * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
2542 * cfgexpand.c (expand_gimple_basic_block): Do not handle
2543 GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
2544 * expr.c (expand_expr_real_1): Likewise.
2545 * gimple-low.c (lower_stmt): Likewise.
2546 * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
2547 (dump_gimple_cdt): Remove.
2548 * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
2549 (gimple_size): Likewise.
2550 (walk_gimple_op): Likewise.
2551 (is_gimple_stmt): Likewise.
2552 (walk_stmt_load_store_addr_ops): Likewise.
2553 (gimple_build_cdt): Remove.
2554 * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
2555 * gimple.h (gimple_cdt_new_type): Remove.
2556 (gimple_cdt_new_type_ptr): Likewise.
2557 (gimple_cdt_set_new_type): Likewise.
2558 (gimple_cdt_location): Likewise.
2559 (gimple_cdt_location_ptr): Likewise.
2560 (gimple_cdt_set_location): Likewise.
2561 * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
2562 * tree-cfg.c (remove_useless_stmts_1): Do not handle
2563 GIMPLE_CHANGE_DYNAMIC_TYPE.
2564 (verify_types_in_gimple_stmt): Likewise.
2565 * tree-inline.c (estimate_num_insns): Likewise.
2566 (expand_call_inline): Do not copy DECL_NO_TBAA_P.
2567 (copy_decl_to_var): Likewise.
2568 (copy_result_decl_to_var): Likewise.
2569 * tree-pretty-print.c (dump_generic_node): Do not handle
2570 CHANGE_DYNAMIC_TYPE_EXPR.
2571 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
2572 * tree-ssa-operands.c (get_expr_operands): Likewise.
2573 * tree-ssa-structalias.c (struct variable_info): Remove
2574 no_tbaa_pruning member.
2575 (new_var_info): Do not set it based on DECL_NO_TBAA_P.
2576 (unify_nodes): Do not copy it.
2577 (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
2578 (dump_solution_for_var): Do not dump no_tbaa_pruning state.
2579 (set_uids_in_ptset): Do not check it.
2580 (find_what_var_points_to): Likewise.
2581 (compute_tbaa_pruning): Remove.
2582 (compute_points_to_sets): Do not call it.
2583 * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
2584 * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
2585 * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
2586 (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
2587 (DECL_NO_TBAA_P): Likewise.
2588 (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
2589 * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
2590 (expand_omp_atomic_pipeline): Do not set it.
2591 * print-tree.c (print_node): Do not dump it.
2592 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
2593 redundant check.
2594
2595 2009-05-22 Vladimir Makarov <vmakarov@redhat.com>
2596
2597 PR target/39856
2598 * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
2599 for clobber.
2600
2601 2009-05-22 Mark Mitchell <mark@codesourcery.com>
2602
2603 * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
2604 non-external.
2605
2606 2009-05-22 Ben Elliston <bje@au.ibm.com>
2607
2608 * Makefile.in (bversion.h, s-bversion): New targets.
2609 (TOPLEV_H): Add bversion.h.
2610 * toplev.h: Include "bversion.h".
2611 (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
2612 the __format__ attribute only if compiling with the same version
2613 of GCC as the sources (the "build version").
2614
2615 2009-05-22 Ben Elliston <bje@au.ibm.com>
2616
2617 * c-format.c (handle_format_attribute): Fix comment typo.
2618
2619 2009-05-21 Steve Ellcey <sje@cup.hp.com>
2620
2621 PR target/37846
2622 * config/ia64/ia64.opt (mfused-madd): New.
2623 * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
2624 * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
2625 * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
2626 madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
2627 nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
2628 msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
2629 nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
2630 * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms
2631 instruction if !TARGET_FUSED_MADD.
2632 (fpma, fpms): Remove colon from name.
2633
2634 2009-05-22 Richard Guenther <rguenther@suse.de>
2635
2636 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
2637 TMR_ORIGINAL. Always either record TMR_SYMBOL or TMR_BASE.
2638 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
2639 TARGET_MEM_REF.
2640 (create_expression_by_pieces): Only convert if necessary.
2641 * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
2642 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
2643
2644 2009-05-21 Adam Nemet <anemet@caviumnetworks.com>
2645
2646 * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
2647 regular pattern from a template and rename it ...
2648 (*extzv_truncsi_exts): ... to this.
2649
2650 2009-05-21 Richard Guenther <rguenther@suse.de>
2651
2652 * cgraph.h (struct cgraph_node): Remove inline_decl member.
2653 * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
2654 (cgraph_default_inline_p): Likewise.
2655 (cgraph_decide_inlining_incrementally): Likewise.
2656
2657 2009-05-21 H.J. Lu <hongjiu.lu@intel.com>
2658 Uros Bizjak <ubizjak@gmail.com>
2659
2660 * config/i386/cpuid.h (bit_MOVBE): New.
2661
2662 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
2663
2664 * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
2665 (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
2666 (ix86_handle_option): Handle OPT_mmovbe.
2667 (ix86_target_string): Add -mmovbe.
2668 (pta_flags): Add PTA_MOVBE.
2669 (processor_alias_table): Add PTA_MOVBE to "atom".
2670 (override_options): Handle PTA_MOVBE.
2671
2672 * config/i386/i386.h (TARGET_MOVBE): New.
2673
2674 * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
2675 (*bswapsi_movbe): New.
2676 (*bswapdi_movbe): Likewise.
2677 (bswapdi2): Renamed to ...
2678 (*bswapdi_1): This.
2679 (bswapdi2): New expander.
2680
2681 * config/i386/i386.opt (mmovbe): New.
2682
2683 * doc/invoke.texi: Document -mmovbe.
2684
2685 2009-05-21 Taras Glek <tglek@mozilla.com>
2686
2687 * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
2688 * gcc-plugin.h (plugin_init): Updated signature.
2689 * gcc-plugin.h (plugin_name_args): Moved to this header.
2690 * doc/plugins.texi (plugin_init): Updated documention to reflect
2691 API change.
2692 * doc/plugins.texi (plugin_name_args): Added to documention.
2693
2694 2009-05-21 Mark Mitchell <mark@codesourcery.com>
2695
2696 * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
2697 (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
2698
2699 2009-05-21 Shujing Zhao <pearly.zhao@oracle.com>
2700
2701 * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
2702 JUMP_TABLE_DATA_P predicates where applicable.
2703 * config/i386/predicates.md: Ditto.
2704 * config/i386/sse.md: Ditto.
2705
2706 2009-05-21 Jakub Jelinek <jakub@redhat.com>
2707
2708 * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
2709 operand2 -128 override length_immediate attribute to 1.
2710 * config/i386/predicates.md (constm128_operand): New predicate.
2711
2712 * config/i386/i386.c (memory_address_length): Handle %r12
2713 the same as %rsp and %r13 the same as %rbp. For %rsp and %rbp
2714 also check REGNO.
2715 (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
2716 mode look through optional ZERO_EXTEND and SUBREG.
2717 * config/i386/i386.md (R12_REG): New define_constant.
2718 (prefix_data16): For sse unit set also for MODE_TI insns.
2719 (prefix_rex): For -m32 always return 0. For TYPE_IMOVX
2720 insns set if operand 1 is ext_QIreg_operand.
2721 (modrm): For TYPE_IMOV clear only if not MODE_DI. For
2722 TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
2723 immediate.
2724 (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
2725 mode from MODE_DI to MODE_SI.
2726 (movdi_1_rex64): Override modrm and length_immediate attributes
2727 only for movabs (TYPE_IMOV, alternative 2).
2728 (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
2729 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
2730 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
2731 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
2732 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
2733 prefix_rex attribute if DImode.
2734 (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
2735 *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
2736 *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
2737 *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
2738 attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
2739 (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
2740 Likewise. For TYPE_IMOV clear length_immediate attribute.
2741 (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
2742 *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
2743 *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
2744 *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
2745 *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
2746 or one operand TYPE_ISHIFT.
2747 (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
2748 *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
2749 *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
2750 *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
2751 *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
2752 *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
2753 *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
2754 *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
2755 *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
2756 *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
2757 *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
2758 *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
2759 *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
2760 *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
2761 *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
2762 *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
2763 *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
2764 set mode attribute, don't override length attribute.
2765 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
2766 to 1.
2767 (return_internal_long): Set length attribute to 2 instead of 1.
2768 (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
2769 *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
2770 prefix_rex attribute.
2771 * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
2772 New predicates.
2773 (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
2774
2775 2009-05-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2776
2777 * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
2778
2779 2009-05-20 Ian Lance Taylor <iant@google.com>
2780
2781 * tree.c (build_tree_list_vec_stat): New function.
2782 (ctor_to_vec): New function.
2783 (build_nt_call_vec): New function.
2784 (build_call_array): Change args to be a const pointer.
2785 (build_call_vec): New function.
2786 * tree.h (build_nt_call_vec): Declare.
2787 (build_tree_list_vec_stat): Declare.
2788 (build_tree_list_vec): Define.
2789 (build_call_array): Update declaration.
2790 (build_call_vec): Declare.
2791 (ctor_to_vec): Declare.
2792 * c-common.c (tree_vector_cache): New static variable.
2793 (make_tree_vector): New function.
2794 (release_tree_vector): New function.
2795 (make_tree_vector_single): New function.
2796 (make_tree_vector_copy): New function.
2797 * c-common.h (tree_vector_cache, make_tree_vector): Declare.
2798 (make_tree_vector_single, make_tree_vector_copy): Declare.
2799 * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
2800 (c_parser_expr_list): Don't manage cache here, instead call
2801 make_tree_vector.
2802 (c_parser_release_expr_list): Remove static function.
2803 (c_parser_vec_to_tree_list): Remove static function.
2804 (c_parser_attributes): Call build_tree_list_vec instead of
2805 c_parser_vec_to_tree_list. Call release_tree_vector instead of
2806 c_parser_release_expr_list.
2807 (c_parser_postfix_expression_after_primary): Likewise.
2808 (c_parser_objc_keywordexpr): Likewise.
2809
2810 2009-05-20 Sandra Loosemore <sandra@codesourcery.com>
2811
2812 * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
2813 TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
2814 TARGET_CONVERT_TO_TYPE.
2815 * hooks.c (hook_tree_const_tree_null): Define.
2816 * hooks.h (hook_tree_const_tree_null): Declare.
2817 * target.h (struct gcc_target): Add invalid_parameter_type,
2818 invalid_return_type, promoted_type, and convert_to_type fields.
2819 * target-def.h: (TARGET_INVALID_PARAMETER_TYPE): Define.
2820 (TARGET_INVALID_RETURN_TYPE): Define.
2821 (TARGET_PROMOTED_TYPE): Define.
2822 (TARGET_CONVERT_TO_TYPE): Define.
2823 (TARGET_INITIALIZER): Update for new fields.
2824 * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
2825 (grokparms): Check targetm.invalid_parameter_type.
2826 * c-typeck.c (default_conversion): Check targetm.promoted_type.
2827 * c-convert.c (convert): Check targetm.convert_to_type.
2828
2829 2009-05-20 Adam Nemet <anemet@caviumnetworks.com>
2830
2831 * config/mips/mips.md (*extenddi_truncate<mode>,
2832 *extendsi_truncate<mode>): Emit exts if supported. Add attribute
2833 defintions.
2834 (*extendhi_truncateqi): New define_insn_and_sptit.
2835
2836 2009-05-20 Jakub Jelinek <jakub@redhat.com>
2837
2838 PR middle-end/40204
2839 * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
2840 recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
2841
2842 2009-05-20 Eric Botcazou <ebotcazou@adacore.com>
2843
2844 * fold-const.c (build_fold_addr_expr_with_type): Take the address of
2845 the operand of VIEW_CONVERT_EXPR.
2846
2847 2009-05-20 H.J. Lu <hongjiu.lu@intel.com>
2848
2849 * config/i386/driver-i386.c (host_detect_local_cpu): Check
2850 extended family and model for Intel processors. Support Intel Atom.
2851
2852 2009-05-20 Olivier Hainque <hainque@adacore.com>
2853
2854 * gstab.h (stab_code_type): Define, to be used instead of the
2855 __stab_debug_code enum, made anonymous. Add 2009 to the copyright
2856 notice.
2857 * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
2858 occurrences by stab_code_type.
2859 * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
2860
2861 2009-05-20 Martin Jambor <mjambor@suse.cz>
2862
2863 * tree-flow.h (insert_edge_copies_seq): Undeclare.
2864 (sra_insert_before): Likewise.
2865 (sra_insert_after): Likewise.
2866 (sra_init_cache): Likewise.
2867 (sra_type_can_be_decomposed_p): Likewise.
2868 * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
2869 * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
2870 (sra_insert_before): Likewise.
2871 (sra_insert_after): Likewise.
2872 (sra_init_cache): Likewise.
2873 (insert_edge_copies_seq): Made static and moved upwards.
2874
2875 * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
2876 case.
2877
2878 * tree-flow-inline.h (contains_view_convert_expr_p): New function.
2879
2880 * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
2881 (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
2882 simple copies.
2883
2884 2009-05-20 Richard Guenther <rguenther@suse.de>
2885
2886 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
2887 with mismatched comparison modes.
2888
2889 2009-05-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2890
2891 * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
2892 (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
2893 * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
2894 with shifts for Thumb2.
2895 (orsi_notsi): New for orn.
2896 (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
2897 (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
2898 * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
2899 (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
2900 Don't invert remainder for IOR.
2901
2902 2009-05-19 Zdenek Dvorak <ook@ucw.cz>
2903
2904 PR tree-optimization/40087
2905 * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
2906 number_of_iterations_ne): Rename never_infinite argument.
2907 (number_of_iterations_lt_to_ne, number_of_iterations_lt,
2908 number_of_iterations_le): Handle pointer-type ivs when
2909 exit_must_be_taken is false.
2910 (number_of_iterations_cond): Do not always assume that
2911 exit_must_be_taken if the control variable is a pointer.
2912
2913 2009-05-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
2914
2915 * c-typeck.c (build_binary_op): Allow % on integal vectors.
2916 * doc/extend.texi (Vector Extension): Document that % is allowed too.
2917
2918 2009-05-19 H.J. Lu <hongjiu.lu@intel.com>
2919
2920 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
2921 ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
2922
2923 2009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
2924
2925 PR c/40172
2926 * c.opt (Wlogical-op): Disabled by default.
2927 * c-opt (c_common_post_options): Do not enable Wlogical-op with
2928 Wextra.
2929 * doc/invoke.texi (Wlogical-op): Likewise.
2930
2931 2009-05-19 Eric Botcazou <ebotcazou@adacore.com>
2932
2933 * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
2934 into CASE_CONVERT.
2935 <PLUS_EXPR>: Strip useless type conversions instead of type nops.
2936 Propagate the type of the first operand.
2937 <ASSERT_EXPR>: Simplify.
2938 (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
2939 Rewrite using the RHS code as discriminant.
2940 <NOP_EXPR>: Turn into CASE_CONVERT.
2941 <PLUS_EXPR>: Propagate the type of the first operand.
2942
2943 2009-05-19 Steve Ellcey <sje@cup.hp.com>
2944
2945 * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
2946 (ia64_dconst_0_375): New.
2947 * config/ia64/ia64.c (ia64_override_options): Remove
2948 -minline-sqrt-min-latency warning.
2949 (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
2950 (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
2951 * config/ia64/ia64.md (*sqrt_approx): Remove.
2952 (sqrtsf2): Remove #if 0.
2953 (sqrtsf2_internal_thr): Rewrite and move to div.md.
2954 (sqrtdf): Remove assert.
2955 (sqrtdf2_internal_thr): Rewrite and move to div.md.
2956 (sqrtxf2): Remove #if 0.
2957 (sqrtxf2_internal_thr): Rewrite and move to div.md.
2958 * div.md (sqrt_approx_rf): New.
2959 (sqrtsf2_internal_thr): New implementation.
2960 (sqrtsf2_internal_lat): New.
2961 (sqrtdf2_internal_thr: New implementation.
2962 (sqrtxf2_internal): New implementation.
2963
2964 2009-05-19 Francois-Xavier Coudert <fxcoudert@gmail.com>
2965 Hans-Peter Nilsson <hp@axis.com>
2966
2967 * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
2968 (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
2969 (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
2970 (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
2971 (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
2972 (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
2973 (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
2974 (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
2975 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
2976 (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
2977 * c-common.c: ...from here.
2978
2979 2009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
2980
2981 * c-common.c (warn_logical_operator): Remove unnecessary conditionals.
2982
2983 2009-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2984
2985 * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
2986
2987 2009-05-19 Ben Elliston <bje@au.ibm.com>
2988
2989 * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
2990 assignments with memcpy calls.
2991 (add_fdes): Likewise.
2992 (binary_search_unencoded_fdes): Likewise.
2993 (linear_search_fdes): Eliminate type puns.
2994
2995 2009-05-19 Richard Guenther <rguenther@suse.de>
2996
2997 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
2998 not falsely claim to have propagated into all uses.
2999
3000 2009-05-19 Ben Elliston <bje@au.ibm.com>
3001
3002 * doc/invoke.texi (C Dialect Options): Update OpenMP specification
3003 version to v3.0.
3004
3005 2009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
3006
3007 * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
3008 * config/sh/sh.c (sh_legitimate_address_p): Make static.
3009 (TARGET_LEGITIMATE_ADDRESS_P): New.
3010 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3011 * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
3012
3013 2009-05-18 Dodji Seketeli <dodji@redhat.com>
3014
3015 PR debug/40109
3016 * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
3017 child of the containing namespace's DIE.
3018
3019 2009-05-18 Adam Nemet <anemet@caviumnetworks.com>
3020
3021 * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
3022 *zero_extendhi_truncqi): Move after the zero_extend patterns.
3023 (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
3024 extend patterns.
3025
3026 2009-05-18 H.J. Lu <hongjiu.lu@intel.com>
3027
3028 PR target/39942
3029 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
3030 gen_align with gen_pad.
3031 (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
3032 #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
3033
3034 * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
3035 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
3036
3037 * config/i386/i386.md (align): Renamed to ...
3038 (pad): This. Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
3039 ASM_OUTPUT_MAX_SKIP_PAD.
3040
3041 2009-05-18 Andreas Schwab <schwab@linux-m68k.org>
3042
3043 * config.gcc: Fix variable syntax.
3044
3045 PR target/39531
3046 * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
3047 before calling exact_log2.
3048 (output_iorsi3): Likewise.
3049 (output_xorsi3): Likewise.
3050
3051 2009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
3052
3053 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
3054 for the none zero constant operand except for EQ and NE
3055 comprisons even when the first operand is R0.
3056
3057 2009-05-18 Andreas Krebbel <krebbel1@de.ibm.com>
3058
3059 * config/s390/2064.md: Remove trailing whitespaces.
3060 * config/s390/2084.md: Likewise.
3061 * config/s390/constraints.md: Likewise.
3062 * config/s390/fixdfdi.h: Likewise.
3063 * config/s390/libgcc-glibc.ver: Likewise.
3064 * config/s390/s390-modes.def: Likewise.
3065 * config/s390/s390-protos.h: Likewise.
3066 * config/s390/s390.c: Likewise.
3067 * config/s390/s390.h: Likewise.
3068 * config/s390/s390.md: Likewise.
3069 * config/s390/tpf-unwind.h: Likewise.
3070
3071 2009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
3072
3073 * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
3074
3075 2009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
3076
3077 M68K TLS support.
3078 * configure.ac (m68k-*-*): Check if binutils support TLS.
3079 * configure: Regenerate.
3080 * config/m68k/predicates.md (symbolic_operand): Extend comment.
3081 * config/m68k/constraints.md (Cu): New constraint.
3082 * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
3083 (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
3084 (movsi): Handle TLS symbols.
3085 (addsi3_5200): Handle XTLS symbols, indent.
3086 * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
3087 (m68k_tls_reference_p): Declare.
3088 (m68k_legitimize_address): Declare.
3089 (m68k_unwrap_symbol): Declare.
3090 * config/m68k/m68k.opt (mxtls): New option.
3091 * config/m68k/m68k.c (ggc.h): Include.
3092 (m68k_output_dwarf_dtprel): Implement hook.
3093 (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
3094 (m68k_expand_prologue): Load GOT pointer when function needs it.
3095 (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
3096 (m68k_legitimate_constant_address_p): Same.
3097 (m68k_decompose_address): Handle TLS references.
3098 (m68k_get_gp): New static function.
3099 (enum m68k_reloc): New contants.
3100 (TLS_RELOC_P): New macro.
3101 (m68k_wrap_symbol): New static function.
3102 (m68k_unwrap_symbol): New function.
3103 (m68k_final_prescan_insn_1): New static function.
3104 (m68k_final_prescan_insn): New function.
3105 (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
3106 functions.
3107 (legitimize_pic_address): Handle TLS references..
3108 (m68k_tls_get_addr, m68k_get_tls_get_addr)
3109 (m68k_libcall_value_in_a0_p)
3110 (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
3111 (m68k_call_m68k_read_tp): Helper variables and functions for ...
3112 (m68k_legitimize_tls_address): Handle TLS references.
3113 (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
3114 New functions.
3115 (m68k_legitimize_address): Handle TLS symbols.
3116 (m68k_get_reloc_decoration): New static function.
3117 (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
3118 UNSPEC_RELOC32.
3119 (m68k_output_dwarf_dtprel): Implement hook.
3120 (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
3121 (m68k_libcall_value): Return result in A0 instead of D0 when asked by
3122 m68k_call_* routines.
3123 (sched_attr_op_type): Handle TLS symbols.
3124 (gt-m68k.h): Include.
3125 * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
3126 (LEGITIMATE_PIC_OPERAND_P): Support TLS.
3127
3128 2009-05-18 Martin Jambor <mjambor@suse.cz>
3129
3130 * ipa-prop.c (ipa_check_stmt_modifications): Removed.
3131 (visit_store_addr_for_mod_analysis): New function.
3132 (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
3133 (determine_cst_member_ptr): Use gimple_assign_single_p.
3134 (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
3135 (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
3136 operands. Don't check number of operands of a NOP_EXPR.
3137
3138 2009-05-18 Eric Fisher <joefoxreal@gmail.com>
3139
3140 * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
3141
3142 2009-05-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
3143
3144 PR c/40172
3145 * c-common.c (warn_logical_operator): Don't warn if one of
3146 expression isn't always true or false.
3147
3148 2009-05-17 Kai Tietz <kai.tietz@onevision.com>
3149
3150 * config/i386/biarch32.h: New file.
3151 * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
3152
3153 2009-05-17 Adam Nemet <anemet@caviumnetworks.com>
3154
3155 * config/mips/mips.md (*zero_extend<mode>_trunchi,
3156 *zero_extend<mode>_truncqi): Merge these into ...
3157 (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
3158 Name the pattern following this as *zero_extendhi_truncqi.
3159
3160 2009-05-16 Brad Lucier <lucier@math.purdue.edu>
3161
3162 PR middle-end/39301
3163 * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
3164 * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
3165 (output_info): Make field HOST_WIDEST_INT.
3166 (print_statistics): Use HOST_WIDEST_INT_PRINT.
3167 (dump_bitmat_statistics): Same.
3168
3169 2009-05-16 Francois-Xavier Coudert <fxcoudert@gmail.com>
3170
3171 * config.gcc (use_gcc_stdint): Set to wrap.
3172 * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
3173 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
3174 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
3175 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
3176 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
3177 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
3178 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
3179 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
3180
3181 2009-05-16 Joseph Myers <joseph@codesourcery.com>
3182
3183 * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
3184 tune_64.
3185 * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
3186 Move definitions earlier.
3187 (OPT_ARCH64, OPT_ARCH32): Define.
3188 (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
3189 and tune_64.
3190
3191 2009-05-16 Richard Earnshaw <rearnsha@arm.com>
3192
3193 PR target/40153
3194 * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
3195 implies.
3196
3197 2009-05-16 Richard Earnshaw <rearnsha@arm.com>
3198
3199 * arm.md (movdi2): Copy non-reg values to DImode registers.
3200
3201 2009-05-16 Jakub Jelinek <jakub@redhat.com>
3202
3203 PR target/39942
3204 * final.c (label_to_max_skip): New function.
3205 (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
3206 CODE_LABEL_NUMBER <= max_labelno.
3207 * output.h (label_to_max_skip): New prototype.
3208 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
3209 (ix86_avoid_jump_mispredicts): ... this. Don't define if
3210 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined. Update comment.
3211 Handle CODE_LABELs with >= 16 byte alignment or with
3212 max_skip == (1 << align) - 1.
3213 (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
3214 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
3215
3216 PR target/39942
3217 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
3218 .p2align 3 if MAX_SKIP is smaller than 7.
3219 * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
3220
3221 2009-05-15 Ian Lance Taylor <iant@google.com>
3222
3223 * alias.c (struct alias_set_entry_d): Rename from struct
3224 alias_set_entry. Change all uses.
3225 * except.c (struct call_site_record_d): Rename from struct
3226 call_site_record. Change all uses.
3227 * except.h (struct eh_region_d): Rename from struct eh_region.
3228 Change all uses.
3229 * gcse.c (struct hash_table_d): Rename from struct hash_table.
3230 Change all uses.
3231 * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
3232 ivtype_map_elt. Change all uses.
3233 (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
3234 Change all uses.
3235 (struct ifsese_d): Rename fromstruct ifsese. Change all uses.
3236 * graphite.h (struct name_tree_d): Rename from struct name_tree.
3237 Change all uses.
3238 (struct sese_d): Rename from struct sese. Change all uses.
3239 * omega.h (struct eqn_d): Rename from struct eqn. Change all uses.
3240 (struct omega_pb_d): Rename from struct omega_pb. Change all uses.
3241 * optabs.h (struct optab_d): Rename from struct optab. Change all
3242 uses.
3243 (struct convert_optab_d): Rename from struct convert_optab.
3244 Change all uses.
3245 * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
3246 ipa_opt_pass. Change all uses.
3247 * tree-predcom.c (struct dref_d): Rename from struct dref. Change
3248 all uses.
3249
3250 * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
3251 defined as a typedef.
3252 (grokdeclarator): If -Wc++-compat, warn if a typedef is already
3253 defined as a tag.
3254
3255 2009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
3256
3257 PR 16302
3258 * fold-const.c (make_range,build_range_check,merge_ranges): Move
3259 declaration to...
3260 (merge_ranges): Returns bool.
3261 * tree.h (make_range): .. to here.
3262 (build_range_check): Likewise.
3263 (merge_ranges): Likewise. Renamed from merge_ranges.
3264 * c-typeck.c (parser_build_binary_op): Update calls to
3265 warn_logical_operator.
3266 * c-common.c (warn_logical_operator): Add new warning.
3267 * c-common.h (warn_logical_operator): Update declaration.
3268
3269 2009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
3270
3271 * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
3272
3273 2009-05-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3274
3275 * doc/install.texi: Document MPC requirements, flags etc.
3276
3277 * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
3278 (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
3279 Evaluate constant arguments.
3280 (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
3281 (fold_builtin_1): Likewise, also evaluate constant arguments.
3282 Remove superfluous break.
3283 (do_mpc_ckconv): New.
3284 * real.h: Include mpc.h.
3285 * toplev.c (print_version): Output MPC version info if available.
3286
3287 2009-05-15 Sandra Loosemore <sandra@codesourcery.com>
3288
3289 * fold-const.c (fold_convert_const_real_from_real): Check for overflow.
3290
3291 2009-05-15 H.J. Lu <hongjiu.lu@intel.com>
3292
3293 * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
3294 only once.
3295
3296 2009-05-15 Jan Hubicka <jh@suse.cz>
3297
3298 * doc/invoke.texi (max-early-inliner-iterations): New flag.
3299 * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
3300 (try_inline): Fix return value.
3301 (cgraph_decide_inlining_incrementally): Honor new value.
3302 (cgraph_early_inlining): Handle indirect inlining.
3303 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
3304
3305 2009-05-15 Jan Hubicka <jh@suse.cz>
3306
3307 * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
3308 * cgraphunit.c (cgraph_finalize_function): Set it.
3309 (cgraph_expand_function): Use it.
3310
3311 2009-05-15 Sandra Loosemore <sandra@codesourcery.com>
3312
3313 * real.c (encode_ieee_half): Define.
3314 (decode_ieee_half): Define.
3315 (ieee_half_format): Define.
3316 (arm_half_format): Define.
3317 * real.h (ieee_half_format): Declare.
3318 (arm_half_format): Declare.
3319
3320 2009-05-15 Sandra Loosemore <sandra@codesourcery.com>
3321
3322 * optabs.c (prepare_float_lib_cmp): Test that the comparison,
3323 swapped, and reversed optabs exist before trying to use them.
3324
3325 2009-05-15 Paul Brook <paul@codesourcery.com>
3326 Sandra Loosemore <sandra@codesourcery.com>
3327
3328 * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
3329 loads. Allow PRE_DEC.
3330 (output_move_neon): Handle PRE_DEC.
3331 (arm_print_operand): Add 'A' for neon structure loads.
3332 * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
3333 * config/arm/neon.md (neon_mov): Update comment.
3334 * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
3335 calls.
3336 (Um): New constraint.
3337
3338 2009-05-15 Jan Hubicka <jh@suse.cz>
3339
3340 Revert the following patch until testsuite fallout is fixed:
3341 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
3342 * cgraph.h (struct inline_summary): New filed self_wize,
3343 size_inlining_benefit, self_time and time_inlining_benefit.
3344 (struct cgraph_global_info): Replace insns by time ans size fields.
3345 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
3346 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
3347 (ipcp_update_callgraph): Do not touch function bodies.
3348 * ipa-inline.c: Include except.h
3349 (MAX_TIME): New constant.
3350 (overall_insns): Remove
3351 (overall_size, max_benefit): New static variables.
3352 (cgraph_estimate_time_after_inlining): New function.
3353 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
3354 (cgraph_clone_inlined_nodes): Update size.
3355 (cgraph_mark_inline_edge): Update size.
3356 (cgraph_estimate_growth): Use size info.
3357 (cgraph_check_inline_limits): Check size.
3358 (cgraph_default_inline_p): Likewise.
3359 (cgraph_edge_badness): Compute badness based on benefit and size cost.
3360 (cgraph_decide_recursive_inlining): Check size.
3361 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
3362 and times.
3363 (cgraph_decide_inlining): Likewise.
3364 (cgraph_decide_inlining_incrementally): Likewise; honor
3365 PARAM_EARLY_INLINING_INSNS.
3366 (likely_eliminated_by_inlining_p): New predicate.
3367 (estimate_function_body_sizes): New function.
3368 (compute_inline_parameters): Use it.
3369 * except.c (must_not_throw_labels): New function.
3370 * except.h (must_not_throw_labels): Declare.
3371 * tree-inline.c (init_inline_once): Kill inlining_weigths
3372 * tree-ssa-structalias.c: Avoid uninitialized warning.
3373 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
3374 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
3375 (PARAM_INLINE_CALL_COST): Remove.
3376 (PARAM_EARLY_INLINING_INSNS): New.
3377
3378 2009-05-15 Richard Guenther <rguenther@suse.de>
3379
3380 * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
3381 not TODO_update_ssa.
3382
3383 2009-05-15 Richard Guenther <rguenther@suse.de>
3384
3385 PR tree-optimization/39999
3386 * gimple.h (gimple_expr_type): Use the expression type looking
3387 through useless conversions.
3388 * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
3389 (vn_nary_op_insert_stmt): Likewise.
3390 (simplify_binary_expression): Likewise.
3391
3392 2009-05-15 Richard Guenther <rguenther@suse.de>
3393
3394 * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
3395 New options, enabled by default.
3396 * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
3397 Document.
3398 * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
3399 * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
3400 * tree-ssa-structalias.c (gate_tree_pta): New function.
3401 (pass_build_alias): Use it.
3402
3403 2009-05-15 Joseph Myers <joseph@codesourcery.com>
3404
3405 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
3406 recurse on an invariant address if a conversion from a pointer
3407 type to a wider integer type is involved.
3408
3409 2009-05-15 Jan Hubicka <jh@suse.cz>
3410
3411 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
3412 * cgraph.h (struct inline_summary): New filed self_wize,
3413 size_inlining_benefit, self_time and time_inlining_benefit.
3414 (struct cgraph_global_info): Replace insns by time ans size fields.
3415 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
3416 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
3417 (ipcp_update_callgraph): Do not touch function bodies.
3418 * ipa-inline.c: Include except.h
3419 (MAX_TIME): New constant.
3420 (overall_insns): Remove
3421 (overall_size, max_benefit): New static variables.
3422 (cgraph_estimate_time_after_inlining): New function.
3423 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
3424 (cgraph_clone_inlined_nodes): Update size.
3425 (cgraph_mark_inline_edge): Update size.
3426 (cgraph_estimate_growth): Use size info.
3427 (cgraph_check_inline_limits): Check size.
3428 (cgraph_default_inline_p): Likewise.
3429 (cgraph_edge_badness): Compute badness based on benefit and size cost.
3430 (cgraph_decide_recursive_inlining): Check size.
3431 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
3432 and times.
3433 (cgraph_decide_inlining): Likewise.
3434 (cgraph_decide_inlining_incrementally): Likewise; honor
3435 PARAM_EARLY_INLINING_INSNS.
3436 (likely_eliminated_by_inlining_p): New predicate.
3437 (estimate_function_body_sizes): New function.
3438 (compute_inline_parameters): Use it.
3439 * except.c (must_not_throw_labels): New function.
3440 * except.h (must_not_throw_labels): Declare.
3441 * tree-inline.c (init_inline_once): Kill inlining_weigths
3442 * tree-ssa-structalias.c: Avoid uninitialized warning.
3443 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
3444 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
3445 (PARAM_INLINE_CALL_COST): Remove.
3446 (PARAM_EARLY_INLINING_INSNS): New.
3447 doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
3448 (inline-call-cost): Remove.
3449 (early-inlining-insns): New.
3450
3451 2009-05-15 Eric Botcazou <ebotcazou@adacore.com>
3452
3453 * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters. Use them
3454 for bounds.
3455 (print_int_cst_bounds_in_octal_p): Likewise.
3456 (dbxout_type): Adjust calls to above functions. Be prepared to deal
3457 with subtypes.
3458 * dwarf2out.c (base_type_die): Likewise.
3459 (is_subrange_type): Delete.
3460 (subrange_type_die): Add LOW and HIGH parameters. Use them for bounds.
3461 (modified_type_die): Call subrange_type_for_debug_p on subtypes.
3462 * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it
3463 if the destination type is boolean.
3464 (build_range_check): Do not special-case subtypes.
3465 (fold_sign_changed_comparison): Likewise.
3466 (fold_unary): Likewise.
3467 * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
3468 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
3469 * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
3470 * tree.c (subrange_type_for_debug_p): New predicate based on the
3471 former is_subrange_type.
3472 * tree.h (subrange_type_for_debug_p): Declare.
3473 * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
3474 (convert_affine_scev): Remove call to above function.
3475 (chrec_convert_aggressive): Likewise.
3476 * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
3477 false for conversions involving subtypes.
3478 * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
3479 (vrp_val_min): Likewise.
3480 (needs_overflow_infinity): Likewise.
3481 (extract_range_from_unary_expr): Likewise.
3482
3483 2009-05-15 Paolo Bonzini <bonzini@gnu.org>
3484
3485 * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
3486 * config/frv/frv.c: Likewise.
3487 * config/s390/s390.c: Likewise.
3488 * config/sparc/sparc.h: Likewise.
3489 * config/i386/i386.h: Likewise.
3490 * config/i386/i386.c: Likewise.
3491 * config/crx/crx.c: Likewise.
3492 * config/m68hc11/m68hc11.h: Likewise.
3493 * config/iq2000/iq2000.c: Likewise.
3494 * config/mn10300/mn10300.h: Likewise.
3495 * config/mn10300/mn10300.c: Likewise.
3496 * config/m68k/m68k.c: Likewise.
3497 * config/rs6000/rs6000.c: Likewise.
3498 * config/rs6000/xcoff.h: Likewise.
3499 * config/rs6000/linux64.h: Likewise.
3500 * config/rs6000/sysv4.h: Likewise.
3501 * config/score/score3.c: Likewise.
3502 * config/score/score7.c: Likewise.
3503 * config/score/score.c: Likewise.
3504 * config/arm/arm.md: Likewise.
3505 * config/mips/mips.c: Likewise.
3506 * config/mips/mips.md: Likewise.
3507 * config/bfin/bfin.h: Likewise.
3508 * config/pa/pa.c: Likewise.
3509 * config/pa/constraints.md: Likewise.
3510
3511 * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
3512 * config/pdp11/pdp11.c (legitimate_address_p): Delete.
3513 * config/pdp11/pdp11.h: Use memory_address_p instead.
3514
3515 2009-05-14 Ian Lance Taylor <iant@google.com>
3516
3517 * passes.c (finish_optimization_passes): Change i to int.
3518 * plugin.c (plugins_active_p): Change event to int.
3519 (dump_active_plugins): Likewise.
3520 * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
3521 Add cast.
3522 * tree.c (tree_range_check_failed): Change c to unsigned int.
3523 (omp_clause_range_check_failed): Likewise.
3524 (build_common_builtin_nodes): Change mode to int. Add cast.
3525 * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
3526 (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
3527
3528 * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
3529 ++ or -- with a variable of enum type.
3530
3531 2009-05-14 Steven Bosscher <steven@gcc.gnu.org>
3532
3533 PR driver/40144
3534 * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
3535
3536 2009-05-14 Steven Bosscher <steven@gcc.gnu.org>
3537
3538 * store-motion.c: Do not include params.h
3539 * Makefile.in: Fix dependencies for various files.
3540
3541 2009-05-14 Steven Bosscher <steven@gcc.gnu.org>
3542
3543 * auto-inc-dec.c: Fix pass description, remove apparent
3544 accidental duplication.
3545
3546 2009-05-14 H.J. Lu <hongjiu.lu@intel.com>
3547
3548 PR middle-end/40147
3549 * ipa-utils.h (memory_identifier_string): Moved to ...
3550 * tree.h (memory_identifier_string): Here. Add GTY(()).
3551
3552 2009-05-14 Paolo Bonzini <bonzini@gnu.org>
3553
3554 * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
3555 in the former documentation of...
3556 (GO_IF_LEGITIMATE_ADDRESS): ... this.
3557 * ira-conflicts.c (get_dup_num): Use address_operand.
3558 * targhooks.c (default_legitimate_address_p): New.
3559 * targhooks.h (default_legitimate_address_p): New.
3560 * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
3561 Call hook.
3562 * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
3563 * target.h (struct target): Add legitimate_address_p.
3564 * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
3565 (TARGET_INITIALIZER): Include it.
3566
3567 * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3568 * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
3569 * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
3570 (TARGET_LEGITIMATE_ADDRESS_P): New.
3571
3572 * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3573 (REG_OK_STRICT_P): Delete.
3574 * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
3575 (frv_legitimate_address_p_1): ... this.
3576 * config/frv/frv.c (frv_legitimate_address_p): Forward to...
3577 (frv_legitimate_address_p_1): ... the renamed old
3578 frv_legitimate_address_p.
3579 * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
3580 (TARGET_LEGITIMATE_ADDRESS_P): New.
3581
3582 * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3583 * config/s390/s390-protos.h (legitimate_address_p): Remove.
3584 * config/s390/s390.c (legitimate_address_p): Rename to...
3585 (s390_legitimate_address_p): ... this, make static.
3586 (legitimize_address): Adjust call.
3587 (TARGET_LEGITIMATE_ADDRESS_P): New.
3588 * config/s390/constraints.md ("e"): Call strict_memory_address_p.
3589
3590 * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3591 * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
3592 * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
3593 (TARGET_LEGITIMATE_ADDRESS_P): New.
3594
3595 * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3596 * config/spu/spu-protos.h (spu_legitimate_address): Remove.
3597 * config/spu/spu.c (spu_legitimate_address): Rename to...
3598 (spu_legitimate_address_p): ... this, make static.
3599 (TARGET_LEGITIMATE_ADDRESS_P): New.
3600
3601 * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3602 * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
3603 * config/sparc/sparc.c (legitimate_address_p): Rename to...
3604 (sparc_legitimate_address_p): ... this, make static and return bool.
3605 (legitimize_address): Adjust call.
3606 (TARGET_LEGITIMATE_ADDRESS_P): New.
3607
3608 * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3609 * config/i386/i386-protos.h (legitimate_address_p): Remove.
3610 * config/i386/i386.c (legitimate_address_p): Rename to...
3611 (ix86_legitimate_address_p): ... this, make static.
3612 (constant_address_p): Move after it, adjust call.
3613 (TARGET_LEGITIMATE_ADDRESS_P): New.
3614
3615 * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3616 * config/avr/avr-protos.h (legitimate_address_p): Remove.
3617 * config/avr/avr.c (legitimate_address_p): Rename to...
3618 (avr_legitimate_address_p): ... this, make static.
3619 (legitimize_address): Adjust call.
3620 (TARGET_LEGITIMATE_ADDRESS_P): New.
3621
3622 * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3623 * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
3624 * config/crx/crx.c (crx_legitimate_address_p): Make static.
3625 (TARGET_LEGITIMATE_ADDRESS_P): New.
3626
3627 * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3628 * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
3629 * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
3630 (TARGET_LEGITIMATE_ADDRESS_P): New.
3631
3632 * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3633 * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
3634 Remove.
3635 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
3636 Make static.
3637 (TARGET_LEGITIMATE_ADDRESS_P): New.
3638
3639 * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3640 * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
3641 Remove.
3642 * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
3643 Rename to...
3644 (m68hc11_legitimate_address_p): ... this, make static.
3645 (go_if_legitimate_address_internal): Rename to...
3646 (m68hc11_legitimate_address_p_1): ... this.
3647 (legitimize_address): Adjust call.
3648 (TARGET_LEGITIMATE_ADDRESS_P): New.
3649
3650 * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3651 * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
3652 * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
3653 (TARGET_LEGITIMATE_ADDRESS_P): New.
3654
3655 * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3656 * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
3657 * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
3658 (mn10300_legitimate_address_p): ... this, make static.
3659 (TARGET_LEGITIMATE_ADDRESS_P): New.
3660
3661 * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3662 * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
3663 * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
3664 (TARGET_LEGITIMATE_ADDRESS_P): New.
3665
3666 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3667 (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
3668 (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
3669 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3670 * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
3671 * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
3672 (rs6000_legitimate_address_p): ... this, make static.
3673 (TARGET_LEGITIMATE_ADDRESS_P): New.
3674 (REG_MODE_OK_FOR_BASE_P): Delete.
3675 (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
3676
3677 * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3678 * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
3679 Delete.
3680 * config/picochip/picochip.c (picochip_legitimate_address_p): Make
3681 static, adjust types.
3682 (TARGET_LEGITIMATE_ADDRESS_P): New.
3683
3684 * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3685 * config/score/score.c (score_address_p): Rename to...
3686 (score_legitimate_address_p): ... this.
3687 (TARGET_LEGITIMATE_ADDRESS_P): New.
3688 * config/score/score3.c (score3_address_p): Rename to...
3689 (score3_legitimate_address_p): ... this.
3690 * config/score/score7.c (score7_address_p): Rename to...
3691 (score7_legitimate_address_p): ... this.
3692
3693 * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
3694 THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
3695 GO_IF_LEGITIMATE_ADDRESS): Delete.
3696 * config/arm/arm-protos.h (thumb1_legitimate_address_p,
3697 thumb2_legitimate_address_p): Delete.
3698 (arm_legitimate_address_p): Rename to...
3699 (arm_legitimate_address_outer_p): ... this.
3700 * config/arm/constraints.md ("Uq"): Adjust call.
3701 * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
3702 * config/arm/arm.c (arm_legitimate_address_p): New, rename old one
3703 to...
3704 (arm_legitimate_address_outer_p): ... this.
3705 (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make
3706 static.
3707 (TARGET_LEGITIMATE_ADDRESS_P): New.
3708
3709 * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3710 * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
3711 * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
3712 (TARGET_LEGITIMATE_ADDRESS_P): New.
3713
3714 * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3715 * config/vax/vax-protos.h (legitimate_address_p): Remove.
3716 * config/vax/vax.c (legitimate_address_p): Rename to...
3717 (vax_legitimate_address_p): ... this, make static.
3718 (TARGET_LEGITIMATE_ADDRESS_P): New.
3719
3720 * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3721 * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
3722 * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
3723 (TARGET_LEGITIMATE_ADDRESS_P): New.
3724
3725 * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3726 * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
3727 * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
3728 (mmix_legitimate_address_p): ... this, make static.
3729 (TARGET_LEGITIMATE_ADDRESS_P): New.
3730
3731 * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3732 * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
3733 * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
3734 (TARGET_LEGITIMATE_ADDRESS_P): New.
3735
3736 2009-05-14 Paolo Bonzini <bonzini@gnu.org>
3737
3738 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
3739 of MODE_COMPLEX_INT.
3740
3741 2009-05-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3742
3743 * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
3744 LCT_NORMAL in function call.
3745 * mips-tdump.c (print_file_desc): Add cast to enum type.
3746 * mips-tfile.c (add_ext_symbol): Add casts to enum types.
3747 (mark_stabs): Add casts to enum types.
3748 (parse_stabs_common): Add casts to enum types.
3749
3750 2009-05-13 Adam Nemet <anemet@caviumnetworks.com>
3751
3752 * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
3753 Check for invalid values of LETTER.
3754
3755 2009-05-13 Taras Glek <tglek@mozilla.com>
3756
3757 * attribs.c (register_attribute): moved out attribute registration
3758 into register_attribute.
3759 * doc/plugins.texi: Documented register_attribute and
3760 PLUGIN_ATTRIBUTES.
3761 * gcc-plugin.h: Added forward decl for register_attribute.
3762 * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
3763 * plugin.c (register_callback, invoke_plugin_callbacks): Added
3764 PLUGIN_ATTRIBUTES boilerplate.
3765
3766 2009-05-14 Dave Korn <dave.korn.cygwin@gmail.com>
3767
3768 * config/i386/msformat-c.c (ms_printf_length_specs): Use enumeration
3769 values even in sentinel and empty entries.
3770 (ms_printf_flag_specs): Likewise.
3771 (ms_scanf_flag_specs): Likewise.
3772 (ms_strftime_flag_specs): Likewise.
3773 (ms_print_char_table): Likewise.
3774 (ms_scan_char_table): Likewise.
3775 (ms_time_char_table): Likewise.
3776
3777 2009-05-13 Doug Kwan <dougkwan@google.com>
3778
3779 * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
3780
3781 2009-05-13 Adam Nemet <anemet@caviumnetworks.com>
3782
3783 * config/mips/mips.md (store): Add attributes for QI and HI.
3784 Update comment.
3785 (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
3786 (truncdi<mode>2): ... this new pattern.
3787
3788 2009-05-13 Brad Hards <bradh@kde.org>
3789
3790 * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
3791
3792 2009-05-14 Jakub Jelinek <jakub@redhat.com>
3793 Ben Elliston <bje@au.ibm.com>
3794
3795 PR middle-end/40035
3796 * dse.c (check_mem_read_rtx): Guard against width == -1.
3797
3798 2009-05-13 Michael Matz <matz@suse.de>
3799
3800 PR middle-end/39976
3801 * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
3802 (trivially_conflicts_p): New function.
3803 (insert_backedge_copies): Use it.
3804
3805 2009-05-13 Janis Johnson <janis187@us.ibm.com>
3806
3807 * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
3808 (handle_stdc_pragma): Use new enum constant names.
3809 (handle_pragma_float_const_decimal64): Ditto.
3810
3811 2009-05-13 Ian Lance Taylor <iant@google.com>
3812
3813 * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
3814 tree.def.
3815
3816 2009-05-13 Nathan Sidwell <nathan@codesourcery.com>
3817
3818 * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
3819 * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
3820 multilibs.
3821 * config/m68k/m68k.h (FL_UCLINUX): Define.
3822
3823 2009-05-13 Jan Hubicka <jh@suse.cz>
3824
3825 * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
3826
3827 2009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
3828
3829 * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
3830 unless -fschedule-insns is specified.
3831
3832 2009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
3833
3834 PR target/39561
3835 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
3836 TARGET_EXPAND_CBRANCHDI4.
3837 * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
3838 * config/sh/sh.opt (mexpand-cbranchdi): Remove.
3839 (cmpeqdi): Fix comment.
3840
3841 2009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
3842
3843 * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
3844 (sh_legitimate_address_p): Likewise.
3845 * config/sh/sh.c (sh_legitimate_index_p): New.
3846 (sh_legitimate_address_p): Likewise.
3847 * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
3848 (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
3849 (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
3850 (MAYBE_BASE_REGISTER_RTX_P): New macro.
3851 (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
3852 (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
3853 (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
3854 (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
3855 (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
3856
3857 2009-05-12 Jan Hubicka <jh@suse.cz>
3858
3859 * tree-inline.c (estimate_operator_cost): Add operands;
3860 when division happens by constant, it is cheap.
3861 (estimate_num_insns): Loads and stores are not having cost of 0;
3862 EH magic stuff is cheap; when computing runtime cost of switch,
3863 use log2 base of amount of its cases; builtin_expect has cost of 0;
3864 compute cost for moving return value of call.
3865 (init_inline_once): Initialize time_based flags.
3866 * tree-inline.h (eni_weights_d): Add time_based flag.
3867
3868 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
3869
3870 * df-core.c: Update head documentation.
3871
3872 2009-05-12 Michael Meissner <meissner@linux.vnet.ibm.com>
3873
3874 PR bootstrap/40118
3875 * rs6000.c (rs6000_generate_compare): Use op1b instead of
3876 shadowing exisiting variable op1.
3877
3878 2009-05-12 Uros Bizjak <ubizjak@gmail.com>
3879
3880 PR target/37179
3881 * config/i386/driver-i386.c (processor_signatures): New enum.
3882 (SIG_GEODE): Move from vendor_signatures to processor_signatures.
3883 (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
3884 processor signature to detect geode processor.
3885
3886 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
3887
3888 Revert:
3889
3890 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
3891
3892 * optabs.c (prepare_cmp_insn): Temporarily disable test that
3893 causes spurious differences between trunk and cond-optab branch.
3894
3895 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
3896
3897 * dojump.c (compare_from_rtx): Delete.
3898 * expmed.c (emit_store_flag): Only try cstore_optab. Canonicalize
3899 any MODE_CC mode to the cstorecc4 pattern. Use prepare_operand, fail
3900 if the comparison does not satisfy the predicate; test predicates for
3901 operands 2 and 3 of a cstore pattern. Don't try cstore optab
3902 further if one existing pattern fails.
3903 * expr.h (compare_from_rtx): Delete.
3904 (prepare_operand): Declare it.
3905 * optabs.c: Change "lib call" to "libcall" throughout.
3906 (bcc_gen_fctn, setcc_gen_code, trap_rtx,
3907 HAVE_conditional_trap, emit_cmp_insn): Delete.
3908 (can_compare_p): Delete cmp_optab case.
3909 (prepare_float_lib_cmp): Return an rtx and a machine mode.
3910 Accept other parameters by value.
3911 (prepare_operand): Make non-static.
3912 (prepare_cmp_insn): Return an rtx and a machine mode. Accept
3913 other parameters by value. Try to widen operands here based on
3914 an optab_methods argument and looking at cbranch_optab.
3915 (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
3916 loop. Use cbranch_optab directly.
3917 (emit_cmp_and_jump_insns): Fix comment. Adjust call to
3918 prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
3919 assertion.
3920 (emit_conditional_move, emit_conditional_add): Inline what's needed
3921 of compare_from_rtx, using new prepare_cmp_insn for the rest.
3922 (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
3923 with COMPARE. Move cmov_optab and cstore_optab above
3924 with cbranch_optab, move cmp_optab down with ucmp_optab,
3925 remove tst_otpab. Do not initialize trap_rtx.
3926 (gen_cond_trap): Do it here. Use ctrap_optab. Test predicate
3927 for trap code. Do not check HAVE_conditional_trap. Use
3928 prepare_cmp_insn. Accept no predicate for operand 3.
3929 * optabs.h (OTI_cmp): Mark as used only for libcalls.
3930 (OTI_ctrap, ctrap_optab): New.
3931 (tst_optab): Delete.
3932 (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
3933 * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
3934 with lookup of ctrap_optab.
3935 * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn, setcc_gen_code):
3936 Delete.
3937 (ctrap_optab): New.
3938
3939 * combine.c (combine_simplify_rtx, simplify_set): Do not
3940 special case comparing against zero for cc0 machines.
3941 * simplify-rtx.c (simplify_binary_operation_1): Never remove
3942 COMPARE on cc0 machines.
3943 (simplify_relational_operation): Return a new expression when
3944 a COMPARE could be removed.
3945 * final.c (final_scan_insn): Compare cc_status values
3946 against LHS of a (compare FOO (const_int 0)) cc0 source.
3947 Also check if cc_status.value is the full compare.
3948
3949 * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
3950 (cstoreMM4): Document.
3951 (conditional_trap): Document ctrapMM4 instead.
3952 (sync_compare_and_swapMM): Refer to cbranchcc4.
3953 (Dependent Patterns): Eliminate obsolete information referring to
3954 the old jump optimization phase.
3955 (Canonicalization): Include cbranchcc4 case, omit canonicalization
3956 of compares with 0 on cc0 machines.
3957 (Jump Patterns): Refer to MODE_CC jump patterns preferably,
3958 avoiding references to cc0. Remove text about storing operands
3959 in cmpMM.
3960 * doc/tm.texi (Condition Codes): Include blurb on different
3961 condition code representations, separate into subsections for
3962 CC0, MODE_CC and conditional execution.
3963
3964 * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
3965 alpha_emit_setcc): Accept operands and a machine mode.
3966 * config/alpha/alpha.c (alpha_emit_conditional_branch):
3967 Get code/op0/op1 from operands, use machine mode argument
3968 instead of alpha_compare.fp_p. Emit the branch here.
3969 (alpha_emit_setcc): Likewise, and return boolean.
3970 (alpha_emit_conditional_move): Likewise. Assert that
3971 cmp_op_mode == cmp_mode, and simplify accordingly.
3972 * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
3973 * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
3974 (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
3975 Delete.
3976 (stack probe test): Use cbranchdi4.
3977 * config/alpha/predicates.md (alpha_cbranch_operator): New.
3978
3979 * config/arc/arc.c (gen_compare_reg): Do not emit cmp.
3980 * config/arc/arc.h (movsicc, movsfcc): Use it.
3981 (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
3982 (cbranchsi4, cstoresi4): New.
3983 (cmpsi, bCC and sCC expanders): Remove.
3984
3985 * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
3986 * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
3987 * config/arm/predicates.md (arm_comparison_operator): Only include
3988 floating-point operators if there is a hardware floating-point unit.
3989 * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
3990 deferring to cbranch_cc and cstore_cc respectively.
3991 (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
3992 cbranch_cc, cstore_cc): New.
3993 (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
3994 arm_compare_op1.
3995 (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
3996
3997 * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
3998 * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
3999 as an argument.
4000 (adjust_insn_length): Adjust calls.
4001 (avr_reorg): Handle (compare (foo) (const_int 0)).
4002 * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
4003 (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
4004 (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
4005 (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
4006 (bCC): Remove.
4007 (cbranchqi4, cbranchhi4, cbranchsi4): New.
4008 (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
4009
4010 * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
4011 (cbranchsi4, cstorebi4, cstoresi4): New.
4012 (movbisi): This insn is duplicate, split it to zero_extend.
4013 * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
4014 (bfin_gen_compare): Do not use them. Emit VOIDmode SET, not BImode.
4015 (bfin_optimize_loop): Use cbranch expander.
4016 * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
4017 * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
4018 (bfin_bimode_comparison_operator): ... this.
4019 (bfin_direct_comparison_operator): New.
4020
4021 * config/cris/cris.c (cris_normal_notice_update_cc): Look
4022 inside (compare FOO (const_int 0)).
4023 (cris_rtx_costs): Handle ZERO_EXTRACT.
4024 * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
4025 (*tstdi_non_v32): Fold in *cmpdi_non_v32.
4026 (*tstdi_v32): Delete.
4027 (*cmpdi_non_v32): Add M alternative for operand 1.
4028 (cmpsi, cmp<mode>): Make private.
4029 (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
4030 with COMPARE.
4031 (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
4032
4033 * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
4034 (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
4035 (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
4036 (cc_reg_operand): New.
4037 (any_cond): Delete.
4038 * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
4039 crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
4040 * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
4041 * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
4042 crx_expand_scond): Delete.
4043
4044 * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
4045 (cbranchsi4): New.
4046 * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
4047 * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
4048
4049 * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
4050 cstoresi4, cstoresf4, cstoredf4): New.
4051 (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
4052 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
4053 Receive the entire operands array.
4054 * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
4055 * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
4056 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
4057 Get test/op0/op1 from the operands array.
4058 (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
4059
4060 * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
4061 (h8300_expand_store): New.
4062 * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
4063 (const_int 0)).
4064 (h8300_expand_branch): Emit compare here. Adjust for new arguments.
4065 (h8300_expand_store): New.
4066 * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
4067 or do not try to produce (set (cc0) REG).
4068 (peepholes): Wrap arguments with COMPARE. Add a peephole to
4069 change a compare into a move to a scratch register. Disable some
4070 peepholes when comparing with zero.
4071 (tstsi, tsthi, tstsi, cmpqi): Make private.
4072 (cmphi): Delete.
4073 (bCC, sCC): Delete.
4074 (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
4075 cstoresi4): New.
4076
4077 * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
4078 ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
4079 (ix86_emit_i387_log1p): Use gen_cbranchxf4.
4080 (ix86_emit_i387_log1p): Use cbranchxf2.
4081 (ix86_expand_setcc): Return void.
4082 * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
4083 * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
4084 cmp<MODEF>, cmpcc): Remove.
4085 (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
4086 cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
4087 cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
4088 (sCC and bCC expanders): Remove.
4089 (stack_protect_test): Use cbranchcc4.
4090
4091 * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
4092 Delete.
4093 (ia64_expand_compare): Accept three rtx by reference and return void.
4094 * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
4095 (ia64_expand_compare): Replace op0/op1 with *op0/*op1. Get code
4096 from *expr. Update *expr with the BImode comparison to do.
4097 * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
4098 cmptf, bCC, sCC, conditional_trap): Delete.
4099 (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4,
4100 cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
4101 cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
4102 ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
4103 * config/ia64/predicates.md (ia64_cbranch_operator): New.
4104
4105 * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
4106 type of last argument.
4107 * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
4108 (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
4109 use machine mode argument instead of branch_type. Remove dead
4110 code for floating-point comparisons.
4111 * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
4112 * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
4113 Remove.
4114 (cbranchsi4, cstoresi4): New.
4115 * config/iq2000/predicates.md (reg_or_const_operand): New.
4116
4117 * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
4118 * config/m32c/m32c.md (any_cond, gl_cond): Delete.
4119 (b<code>_op): Rewrite to...
4120 (bcc_op): ... this, using match_operator.
4121 (s<code>_op): Rewrite to...
4122 (scc_op): ... this, using match_operator.
4123 (s<code>_24_op): Rewrite to...
4124 (scc_op_24): ... this, using match_operator.
4125 (s<code>_<mode>): Rewrite to...
4126 (cstore<mode>4): ... this, using match_operator.
4127 (s<code>_<mode>_24): Rewrite to...
4128 (cstore<mode>4_24): ... this, using match_operator.
4129 * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
4130 m32c_unpend_compare, m32c_expand_scc): Delete.
4131 * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
4132 m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
4133 (m32c_expand_movcc): Change NE to EQ if necessary.
4134 (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
4135
4136 * config/m32r/m32r-protos.h (gen_cond_store): New.
4137 * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
4138 (gen_cond_store): New, from sCC patterns.
4139 (m32r_expand_block_move): Use cbranchsi4.
4140 * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
4141 * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
4142 (cbranchsi4, cstoresi4): New.
4143
4144 * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
4145 Delete.
4146 (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
4147 (m68hc11_notice_update_cc): Look into a compare with 0.
4148 * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
4149 Delete.
4150 * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
4151 cmphi, cmpqi, bCC): Delete.
4152 (cbranchsi4, cbranchhi4, cbranchqi4): New.
4153 (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
4154 bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
4155 sets with COMPARE.
4156
4157 * config/m68k/predicates.md (m68k_cstore_comparison_operator,
4158 const0_operand, const1_operand, m68k_subword_comparison_operand): New.
4159 * config/m68k/constraints.md (H): New.
4160 * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
4161 the define_insn below.
4162 (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
4163 (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
4164 *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
4165 patterns): Wrap RHS with COMPARE.
4166 (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
4167 (*cmpdi_internal): Name this pattern.
4168 (cmpdi): Change to define_insn.
4169 (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
4170 cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
4171 (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
4172 predicate.
4173 (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
4174 sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
4175 (conditional_trap): Change to...
4176 (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
4177 (*conditional_trap): Use the ordered_comparison_operator and
4178 const1_operand predicates.
4179 * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
4180 (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
4181 (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
4182 * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
4183
4184 * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
4185 mcore_modify_comparison, mcore_gen_compare_reg): Remove.
4186 (mcore_gen_compare): New.
4187 * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
4188 (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
4189 (mcore_gen_compare): ... this.
4190 * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
4191 (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
4192 (stack probe pattern): Use cbranchsi4.
4193
4194 * config/mips/predicates.md (mips_cstore_operator): New.
4195 * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
4196 * config/mips/mips.md (any_cond): Delete.
4197 (conditional_trap): Rename to ctrap<GPR:mode>4. Adjust predicates,
4198 always succeed.
4199 (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
4200 fixuns_truncsfdi2): Use cbranch patterns.
4201 (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete.
4202 (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
4203 Adjust call to mips_expand_conditional_branch.
4204 (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
4205 cstore<GPR:mode>4.
4206 * config/mips/mips-protos.h (mips_expand_conditional_branch,
4207 mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
4208 * config/mips/mips.c (cmp_operands): Delete.
4209 (mips_emit_compare): Get comparison operands from *op0/*op1.
4210 (mips_expand_scc): Get code/op0/op1/target from operands. Assert
4211 that it succeeds. Use op0/op1 instead of cmp_operands.
4212 (mips_expand_conditional_branch, mips_expand_conditional_move,
4213 mips_expand_conditional_trap): Likewise.
4214 (mips_block_move_loop): Use cbranch patterns.
4215 * config/mips/mips.h (cmp_operands): Delete.
4216
4217 * config/mmix/mmix.c (mmix_valid_comparison): Delete.
4218 (mmix_gen_compare_reg): Just return a register in the right CC mode.
4219 * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
4220 * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
4221 (*cmpcc_folded): Rename to...
4222 (*cmpdi_folded): this.
4223 (*cmpcc): Rename to...
4224 (*cmps): ... this.
4225 (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
4226 (bCC): Remove.
4227 (cbranchdi4): New.
4228 (cbranchdf4): New. Handle invalid comparisons here.
4229 * config/mmix/predicates.md (float_comparison_operator): New.
4230
4231 * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
4232 zero_extract to be cheap in (compare (zero_extract) (const_int 0).
4233 * config/mn10300/mn10300.md (tst): Delete.
4234 (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
4235 Name these patterns and wrap RHS in a compare.
4236 (*cmpsi): Make this pattern private. Include tst.
4237 (*cmpsf): Make this pattern private.
4238 (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
4239 (compare with zero peepholes): Likewise.
4240 (bCC): Remove.
4241 (cbranchsi4, cbranchsf4): New.
4242 (casesi): Use cbranchsi4.
4243
4244 * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
4245 hppa_branch_type): Delete.
4246 (return_addr_rtx): Use cbranchsi4.
4247 (emit_bcond_fp): Accept all operands. Replace CODE with NE.
4248 Emit CCFPmode comparison here.
4249 (gen_cmp_fp): Delete, now part of emit_bcond_fp.
4250 * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
4251 hppa_branch_type): Delete.
4252 * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
4253 (movsicc, movdicc): Remove references to hppa_compare_op0,
4254 hppa_compare_op1 and compare_from_rtx.
4255 (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
4256 (casesi): Use cbranchsi4.
4257
4258 * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
4259 * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
4260 * config/pdp11/pdp11.md (register_or_const0_operand): New.
4261 (cmpdf, cmphi, cmpqi): Make private. Add tst alternatives.
4262 (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
4263 (bCC): Delete.
4264 (cbranchdf4, cbranchhi4, cbranchqi4): New.
4265 (*branch, *branch_inverted): New.
4266
4267 * config/picochip/picochip.md (cbranchhi4): Use
4268 ordered_comparison_operator.
4269 (cmphi, bCC): Remove.
4270
4271 * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
4272 (trap_comparison_operator): Delete.
4273 * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
4274 rs6000_emit_cbranch): Accept mode and operands.
4275 * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
4276 rs6000_compare_fp_p): Delete.
4277 (rs6000_generate_compare): Accept mode and comparison. Extract code
4278 and op0/op1 from there. Replace references to rs6000_compare_op0
4279 and rs6000_compare_op1.
4280 (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
4281 extract result from passed operands.
4282 (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
4283 extract loc from passed operands.
4284 (rs6000_emit_cmove): Likewise.
4285 * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
4286 rs6000_compare_fp_p): Delete.
4287 * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
4288 (cbranch<GPR>4, cbranch<FP>4): New.
4289 (cstore<mode>4): New. Consolidate here all choices about when to use
4290 portable or specialized sCC sequences.
4291 (stack_protect_test): Use cbranchsi4.
4292 (conditional_trap): Replace with ctrap<GPR>4.
4293 (conditional trap insn): Replace trap_comparison_operator with
4294 ordered_comparison_operator.
4295
4296 * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
4297 (s390_emit_prologue): Use ctrap.
4298 * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
4299 * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
4300 New predicates replacing...
4301 * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
4302 (cmp<GPR>, cmp<FP>, cmpcc): Delete.
4303 (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
4304 (add<mode>cc): Do not use s390_compare_op0/op1.
4305 (s<code>): Change to...
4306 (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
4307 (seq): Change to...
4308 (cstorecc4): ... this. Handle EQ or NE equally.
4309 (*sne): Un-privatize for use in cstorecc4.
4310 (b<code>): Change to...
4311 (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
4312 (conditional_trap): Replace with...
4313 (ctrap<GPR>4, ctrap<FP>4): ... these.
4314 (stack_protect): Use cbranchcc4.
4315
4316 * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
4317 * config/score/score-protos.h (score_gen_cmp): Delete.
4318 * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
4319 (score_block_move-loop): Use cbranchsi4.
4320 * config/score/score.md (cbranchsi4): New.
4321 (cmpsi, bCC): Delete.
4322 * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
4323 (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
4324 * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
4325 (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
4326 * config/score/score3.h (score3_gen_cmp): Delete.
4327 * config/score/score7.h (score7_gen_cmp): Delete.
4328
4329 * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
4330 (sh_emit_scc_to_t): ... this. Return void.
4331 (from_compare): Rename to...
4332 (sh_emit_compare_and_branch): ... this.
4333 (sh_emit_compare_and_set): New.
4334 (sh_expand_t_scc): Accept operands.
4335 * config/sh/predicates.md (sh_float_comparison_operator): New.
4336 * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
4337 (prepare_scc_operands): Rename to...
4338 (sh_emit_scc_to_t): ... this. Return void. Get op0/op1 from
4339 arguments.
4340 (sh_emit_cheap_store_flag): New.
4341 (sh_emit_set_t_insn): New.
4342 (from_compare): Rename to...
4343 (sh_emit_compare_and_branch): ... this. Accept mode. Rewrite
4344 handling of TARGET_SH2E floating point to avoid recursive call.
4345 Generate branch here.
4346 (sh_emit_compare_and_set): New.
4347 (sh_expand_t_scc): Get op0/op1 from arguments.
4348 (sh_emit_cheap_store_flag): New.
4349 * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
4350 cases.
4351 (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
4352 (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
4353 (movsicc, movdicc): Do nothing when it recreated operands from
4354 sh_compare_*. Use sh_emit_cheap_store_flag. Adjust call to
4355 prepare_scc_operands (now sh_emit_scc_to_t).
4356 (udivdi3): Use cstoresi4.
4357 (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
4358 bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
4359 (cbranchint4_media, cbranchfp4_media): New.
4360 (casesi): Use cbranchdi4.
4361 (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
4362 Delete.
4363 (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
4364 (movnegt): Remove second operand.
4365 (cbranchsf4, cbranchdf4): New.
4366 (stack_protect): Use cbranchdi4/cbranchsi4.
4367
4368 * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
4369 (gen_compare_reg): Accept comparison, extract part of it to...
4370 (gen_compare_reg_1): ... this.
4371 (gen_compare_operator): Delete.
4372 (gen_v9_scc): Accept separate destination, comparison code and arms.
4373 Do not use sparc_compare_op0/sparc_compare_op1.
4374 (emit_scc_insn, emit_conditional_branch_insn): New.
4375 (emit_v9_brxx): Make static. Remove useless assertion.
4376 (sparc_emit_float_lib_cmp): Return RTL instead of calling
4377 emit_cmp_insn.
4378 (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
4379 * config/sparc/sparc-protos.h (gen_compare_reg,
4380 sparc_emit_float_lib_cmp): Adjust prototype.
4381 (emit_scc_insn, emit_conditional_branch_insn): New.
4382 (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
4383 * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
4384 * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
4385 iterators to the top.
4386 (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
4387 snesi_special_extend, sCC, bCC, seqdi_special_trunc,
4388 snedi_special_trunc): Delete.
4389 (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
4390 and snedi_special_trunc.
4391 (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
4392 cbranchdi4, cbranch<F:mode>4): New.
4393 (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
4394 here. Use gen_compare_reg instead of gen_compare_operator.
4395 (conditional_trap): Replace with...
4396 (ctrapsi4, ctrapdi4): ... this.
4397 (stack_protect_test): Use cbranchcc4.
4398
4399 * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
4400 argument to rtx.
4401 * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove.
4402 (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
4403 Change spu_compare_op0/op1 to op0/op1 throughout. Get target
4404 from operands[0] or operands[3] depending on is_set.
4405 * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
4406 * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
4407 cmpdf, bCC), sCC: Remove.
4408 (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4,
4409 cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
4410 cstoredf4): New.
4411 (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
4412 spu_emit_branch_or_set.
4413
4414 * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
4415 Add two arguments.
4416 * config/stormy16/stormy16.h (xstormy16_compare_op0,
4417 xstormy16_compare_op1): Delete.
4418 * config/stormy16/stormy16.c (xstormy16_compare_op0,
4419 xstormy16_compare_op1): Delete.
4420 (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
4421 Adjust calls.
4422 * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
4423 (cmphi, cmpsi, bCC): Remove.
4424
4425 * config/v850/v850.md (tstsi, cmpsi): Fold into...
4426 (*cmpsi): ... this one.
4427 (cbranchsi4, cstoresi4): New.
4428 (bCC expanders): Delete.
4429 (sCC insns): Fold into...
4430 (*setcc): ... this one.
4431 (casesi): Do not use gen_cmpsi and gen_bgtu.
4432 (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
4433 (movsicc): Simplify.
4434 * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
4435
4436 * config/vax/vax-protos.h (cond_name): New.
4437 (vax_output_conditional_branch): Remove.
4438 * config/vax/vax.c (cond_name): New.
4439 (vax_output_conditional_branch): Remove.
4440 * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
4441 * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
4442 (cmp<VAXint>, cmp<VAXfp>): Privatize. Add constraints for tst.
4443 (bit<VAXint>): Wrap source with (compare).
4444 (b<code> and following unnamed pattern): Rename to *branch and
4445 *branch_reversed. Change macroization to match_operator.
4446 (cbranch<VAXint>4, cbranch<VAXfp>4): New.
4447
4448 * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
4449 * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
4450 Change last argument to machine_mode.
4451 (xtensa_expand_scc): Add machine_mode argument.
4452 * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
4453 (gen_conditional_move, xtensa_expand_conditional_branch,
4454 xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
4455 instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
4456 Adjust operand numbers.
4457 * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
4458 Delete.
4459 * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
4460 (cmpsi, cmpsf, b<code>, s<code>): Delete.
4461 (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
4462
4463 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
4464
4465 * optabs.c (prepare_cmp_insn): Temporarily disable test that
4466 causes spurious differences between trunk and cond-optab branch.
4467
4468 2009-05-12 Alexandre Oliva <aoliva@redhat.com>
4469
4470 PR target/37137
4471 * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
4472
4473 2009-05-12 Alexandre Oliva <aoliva@redhat.com>
4474
4475 * tree.c (iterative_hash_pointer): Delete.
4476 (iterative_hash_expr): Short-circuit handling of NULL pointer.
4477 Hash UIDs and versions of SSA names. Don't special-case built-in
4478 function declarations.
4479
4480 2009-05-11 Ian Lance Taylor <iant@google.com>
4481
4482 PR bootstrap/40103
4483 * graphite.c: Force -Wc++-compat to only be a warning before
4484 #including "cloog/cloog.h".
4485
4486 2009-05-11 Martin Jambor <mjambor@suse.cz>
4487
4488 * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
4489
4490 2009-05-11 Jan Hubicka <jh@suse.cz>
4491
4492 * tree-ssa-loop-ivcanon.c: Include target.h
4493 (struct loop_size): new structure.
4494 (constant_after_peeling): New predicate.
4495 (tree_estimate_loop_size): New function.
4496 (estimated_unrolled_size): Rewrite for new estimates.
4497 (try_unroll_loop_completely): Use new estimates.
4498 * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
4499
4500 2009-05-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
4501
4502 * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
4503 libcpp interface change.
4504 (spu_macro_to_expand): Likewise.
4505
4506 2009-05-11 Paolo Bonzini <bonzini@gnu.org>
4507
4508 PR tree-optimization/40026
4509 * gimplify.c (gimplify_init_constructor): Change initial conditional
4510 to assertion. Rewrite TREE_OPERAND (*expr_p, 1) after
4511 optimize_compound_literals_in_ctor.
4512
4513 2009-05-11 Nathan Sidwell <nathan@codesourcery.com>
4514
4515 * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
4516 New devices.
4517 * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
4518
4519 2009-05-11 H.J. Lu <hongjiu.lu@intel.com>
4520
4521 * tree-vect-data-refs.c (vect_analyze_group_access): Use
4522 HOST_WIDE_INT for gap.
4523
4524 2009-05-11 Ira Rosen <irar@il.ibm.com>
4525
4526 PR tree-optimization/40074
4527 * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
4528 account in group size and step comparison.
4529
4530 2009-05-11 Richard Guenther <rguenther@suse.de>
4531
4532 * passes.c (init_optimization_passes): Strip now incorrect comment.
4533 (execute_function_todo): Do not set PROP_alias.
4534 * tree-pass.h (PROP_alias): Remove.
4535 * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
4536 * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
4537 * tree-nrv.c (pass_return_slot): Likewise.
4538 * tree-object-size.c (pass_object_sizes): Likewise.
4539 * tree-ssa-dom.c (pass_dominator): Likewise.
4540 (pass_phi_only_cprop): Likewise.
4541 * tree-ssa-dse.c (pass_dse): Likewise.
4542 * tree-ssa-phiopt.c (pass_phiopt): Likewise.
4543 (pass_cselim): Likewise.
4544 * tree-ssa-pre.c (pass_pre): Likewise.
4545 (pass_fre): Likewise.
4546 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
4547 * tree-ssa-sink.c (pass_sink_code): Likewise.
4548 * tree-stdarg.c (pass_stdarg): Likewise.
4549 * tree-tailcall.c (pass_tail_calls): Likewise.
4550 * tree-vrp.c (pass_vrp): Likewise.
4551
4552 2009-05-10 Ian Lance Taylor <iant@google.com>
4553
4554 * basic-block.h (enum profile_status): Break out of struct
4555 control_flow_graph.
4556 * cgraph.h (struct inline_summary): Break out of struct
4557 cgraph_local_info.
4558 * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
4559 of struct cgraph_order_sort.
4560 * combine.c (enum undo_kind): New enum, broken out of struct undo.
4561 * cse.c (struct branch_path): Break out of struct
4562 cse_basic_block_data.
4563 * except.h (enum eh_region_type): Break out of struct eh_region.
4564 * gcc.c (enum add_del): Break out of struct modify_target.
4565 * genrecog.c (enum decision_type): Break out of struct decision_test.
4566 * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
4567 ggc_pch_data.
4568 * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
4569 * regmove.c (enum match_use): New enum, broken out of struct match.
4570 * sched-int.h (enum post_call_group): New enum, broken out of
4571 struct deps.
4572 (struct deps_reg): Break out of struct deps.
4573 * target.h (struct asm_int_op): Break out of struct gcc_target.
4574 * tree-eh.c (struct goto_queue_node): Break out of struct
4575 leh_tf_state.
4576 * tree-inline.h (enum copy_body_cge_which): Break out of
4577 copy_body_data.
4578 * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
4579
4580 * c-decl.c (in_struct, struct_types): New static variables.
4581 (pushtag): Add loc parameter. Change all callers.
4582 (lookup_tag): Add ploc parameter. Change all callers.
4583 (check_compound_literal_type): New function.
4584 (parser_xref_tag): Add loc parameter. Change all callers. If
4585 -Wc++-compat, warn about struct/union/enum types defined within a
4586 struct or union.
4587 (start_struct): Add enclosing_in_struct, enclosing_struct_types,
4588 and loc parameters. Change all callers. Change error calls to
4589 error_at, using loc. For a redefinition, if the location of the
4590 original definition is known, report it. Set in_struct and
4591 struct_types. If -Wc++-compat warn if in sizeof, typeof, or alignof.
4592 (finish_struct): Add new parameters enclosing_in_struct and
4593 enclosing_struct_types. Change all callers. Set
4594 C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
4595 in the struct. If in a struct, add this struct to struct_types.
4596 (start_enum): Add loc parameter. Change all callers. Use
4597 error_at for errors, using loc. For a redefinition, if the
4598 location of the original definition is known, report it. If in a
4599 struct, add this enum type to struct_types. If -Wc++-compat warn
4600 if in sizeof, typeof, or alignof.
4601 * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
4602 (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
4603 (c_parser_enum_specifier): Get enum location for start_enum.
4604 (c_parser_struct_or_union_specifier): Get struct location for
4605 start_struct. Save in_struct and struct_types status between
4606 start_struct and finish_struct.
4607 (c_parser_cast_expression): Get location of cast.
4608 (c_parser_alignof_expression): Get location of type.
4609 (c_parser_postfix_expression): Likewise.
4610 (c_parser_postfix_expression_after_paren_type): Add type_loc
4611 parameter. Change all callers. Call check_compound_literal_type.
4612 Use type_loc for error about variable size type.
4613 * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
4614 of an enum constant from an enum type defined in a struct or union.
4615 (c_cast_expr): Add loc parameter. Change all callers. If
4616 -Wc++-compat, warn about defining a type in a cast.
4617 * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
4618 (start_enum, start_struct, finish_struct): Update declarations.
4619 (parser_xref_tag, c_cast_expr): Update declarations.
4620 (check_compound_literal_type): Declare.
4621
4622 2009-05-11 Ben Elliston <bje@au.ibm.com>
4623
4624 * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
4625 for recent libcpp interface change.
4626 (rs6000_macro_to_expand): Likewise.
4627
4628 2009-05-10 Michael Matz <matz@suse.de>
4629
4630 PR target/40031
4631 * config/arm/arm.c (require_pic_register): Emit on entry edge,
4632 not at entry of function.
4633
4634 2009-05-10 Richard Guenther <rguenther@suse.de>
4635
4636 PR tree-optimization/40081
4637 Revert
4638 * tree-sra.c (instantiate_element): Instantiate scalar replacements
4639 using the main variant of the element type. Do not fiddle with
4640 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
4641
4642 * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
4643 structs with volatile fields.
4644
4645 2009-05-10 Jan Hubicka <jh@suse.cz>
4646
4647 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
4648 (estimate_move_cost): Assert that it does not get called for
4649 VOID_TYPE_P.
4650 (estimate_num_insns): Skip VOID types in argument handling.
4651 (optimize_inline_calls): Delete unreachable blocks and verify that
4652 callgraph is valid.
4653
4654 2009-05-10 Jan Hubicka <jh@suse.cz>
4655
4656 * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
4657 * cgraph.c (cgraph_mark_address_taken_node): New function.
4658 (dump_cgraph_node): Dump new flag.
4659 * cgraph.h (struct cgraph_node): Add address_taken.
4660 (cgraph_mark_address_taken_node): New function.
4661 * ipa.c (cgraph_postorder): Prioritize functions with address taken
4662 since new direct calls can be born.
4663
4664 2009-05-10 Joseph Myers <joseph@codesourcery.com>
4665
4666 * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
4667 tok->val.node.node.
4668
4669 2009-05-10 Jan Hubicka <jh@suse.cz>
4670
4671 PR middle-end/40084
4672 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
4673 argument; rewrite.
4674 (cgraph_update_edges_for_call_stmt): Take old_decl argument.
4675 * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
4676 * tree-inline.c (copy_bb): Set frequency correctly.
4677 (fold_marked_statements): Update call to
4678 cgraph_update_edges_for_call_stmt.
4679
4680 2009-05-10 Joseph Myers <joseph@codesourcery.com>
4681
4682 * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
4683 identifiers in diagnostics.
4684 * config/arm/arm.c (arm_handle_fndecl_attribute,
4685 arm_handle_isr_attribute): Likewise.
4686 * config/avr/avr.c (avr_handle_progmem_attribute,
4687 avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
4688 * config/bfin/bfin.c (handle_int_attribute,
4689 bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
4690 bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
4691 bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
4692 Likewise.
4693 * config/darwin.c (darwin_handle_kext_attribute,
4694 darwin_handle_weak_import_attribute): Likewise.
4695 * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
4696 h8300_handle_eightbit_data_attribute,
4697 h8300_handle_tiny_data_attribute): Likewise.
4698 * config/i386/i386.c (ix86_handle_cconv_attribute,
4699 ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
4700 * config/i386/winnt.c (ix86_handle_shared_attribute,
4701 ix86_handle_selectany_attribute): Likewise.
4702 * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
4703 * config/m32c/m32c.c (function_vector_handler): Likewise.
4704 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
4705 m68hc11_handle_fntype_attribute): Likewise.
4706 * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
4707 * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
4708 * config/mips/mips.c (mips_insert_attributes,
4709 mips_merge_decl_attributes, mips_expand_builtin): Likewise.
4710 * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
4711 rs6000_handle_struct_attribute): Likewise.
4712 * config/sh/sh.c (sh_insert_attributes,
4713 sh_handle_resbank_handler_attribute,
4714 sh_handle_interrupt_handler_attribute,
4715 sh2a_handle_function_vector_handler_attribute,
4716 sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
4717 Likewise.
4718 * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
4719 * config/spu/spu.c (spu_handle_fndecl_attribute,
4720 spu_handle_vector_attribute): Likewise.
4721 * config/stormy16/stormy16.c
4722 (xstormy16_handle_interrupt_attribute): Likewise.
4723 * config/v850/v850-c.c (ghs_pragma_section): Likewise.
4724 * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
4725
4726 2009-05-10 Joseph Myers <joseph@codesourcery.com>
4727
4728 * pretty-print.h (struct pretty_print_info): Add translate_identifiers.
4729 (pp_translate_identifiers): New.
4730 (pp_identifier): Only conditionally translate identifier to locale
4731 character set.
4732 * pretty-print.c (pp_construct): Set pp_translate_identifiers.
4733 (pp_base_tree_identifier): Only conditionally translate identifier
4734 to locale character set.
4735 * c-pretty-print.c (M_): Define.
4736 (pp_c_type_specifier, pp_c_primary_expression): Mark English
4737 fragments for conditional translation with M_.
4738 * tree-pretty-print.c (maybe_init_pretty_print): Disable
4739 identifier translation.
4740
4741 2009-05-10 Richard Guenther <rguenther@suse.de>
4742
4743 PR tree-optimization/40081
4744 * tree-sra.c (instantiate_element): Instantiate scalar replacements
4745 using the main variant of the element type. Do not fiddle with
4746 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
4747
4748 2009-05-09 Jan Hubicka <jh@suse.cz>
4749
4750 PR middle-end/40080
4751 * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
4752 indirect calls; verify cgraph afterwards.
4753
4754 2009-05-09 Jan Hubicka <jh@suse.cz>
4755
4756 PR bootstrap/40082
4757 * ipa.c (update_inlined_to_pointer): New function.
4758 (cgraph_remove_unreachable_nodes): Use it.
4759
4760 2009-05-09 Jan Hubicka <jh@suse.cz>
4761
4762 * tree-eh.c (struct leh_state): Remove prev_try.
4763 (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
4764 not track prev_try.
4765 * except.c (gen_eh_region_cleanup, duplicate_eh_regions,
4766 copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
4767 remove_eh_handler_and_replace, foreach_reachable_handler,
4768 verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
4769 * except.h (struct eh_region): Remove eh_region_u_cleanup.
4770 (gen_eh_region_cleanup): Update prototype.
4771
4772 2009-05-09 Jan Hubicka <jh@suse.cz>
4773
4774 PR middle-end/40043
4775 * except.c (copy_eh_region): Always set prev_try.
4776 (redirect_eh_edge_to_label): Find outer try.
4777 (foreach_reachable_handler): When looking for prev try
4778 handle case where previous try is not going to be taken.
4779
4780 2009-05-07 Michael Meissner <meissner@linux.vnet.ibm.com>
4781
4782 PR tree-optimization/40049
4783 * tree-vect-stmts.c (vectorizable_operation): If the machine has
4784 only vector/vector shifts, convert the type of the constant to the
4785 appropriate type to avoid building incorrect trees, which
4786 eventually have problems with garbage collection.
4787
4788 2009-05-08 Joseph Myers <joseph@codesourcery.com>
4789
4790 * fold-const.c (fold_binary): Do not fold multiplication by 1 or
4791 -1 for complex floating-point types if honoring signed zeros.
4792
4793 2009-05-08 Jan Hubicka <jh@suse.cz>
4794
4795 * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
4796 argument; handle correctly when profile is absent.
4797 (build_cgraph_edges): Update.
4798 (rebuild_cgraph_edges): Update.
4799 * cgraph.c: Do not include varray.h.
4800 (cgraph_set_call_stmt_including_clones): New function.
4801 (cgraph_create_edge_including_clones): Likewise
4802 (cgraph_update_edges_for_call_stmt_node): New static cfunction.
4803 (cgraph_update_edges_for_call_stmt): Handle clones.
4804 (cgraph_remove_node): Handle clone tree.
4805 (cgraph_remove_node_and_inline_clones): New function.
4806 (dump_cgraph_node): Dump clone tree.
4807 (cgraph_clone_node): Handle clone tree.
4808 (clone_function_name): Bring here from tree-inline.c.
4809 (cgraph_create_virtual_clone): New function.
4810 * cgraph.h (ipa_replace_map): Move here from ipa.h.
4811 (cgraph_clone_info): New function.
4812 (strut cgraph_node): Add clone_info and new clone tree pointers.
4813 (cgraph_remove_node_and_inline_clones,
4814 cgraph_set_call_stmt_including_clones,
4815 cgraph_create_edge_including_clones,
4816 cgraph_create_virtual_clone): Declare.
4817 (cgraph_function_versioning): Use VEC argument.
4818 (compute_call_stmt_bb_frequency): Update prototype.
4819 (cgraph_materialize_all_clones): New function.
4820 * ipa-cp.c (ipcp_update_cloned_node): Remove.
4821 (ipcp_create_replace_map): Update to VECtors.
4822 (ipcp_update_callgraph): Use virtual clones.
4823 (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
4824 (ipcp_update_profiling): Do not update local profiling.
4825 (ipcp_insert_stage): Use VECtors and virtual clones.
4826 * cgraphunit.c (verify_cgraph_node): Verify clone tree.
4827 (clone_of_p): New function.
4828 (cgraph_preserve_function_body_p): Use clone tree.
4829 (cgraph_optimize): Materialize clones.
4830 (cgraph_function_versioning): Update for VECtors.
4831 (save_inline_function_body): Use clone tree.
4832 (cgraph_materialize_clone): New function.
4833 (cgraph_materialize_all_clones): Likewise.
4834 * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
4835 * ipa.c: Include gimple.h.
4836 (cgraph_remove_unreachable_nodes): Use clone tree.
4837 * ipa-prop.c (ipa_note_param_call): Update call to
4838 compute_call_stmt_bb_frequencycall.
4839 * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
4840 * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
4841 (copy_bb): Handle updating of clone tree; add new edge when new call
4842 appears.
4843 (expand_call_inline): Be strict about every call having edge.
4844 (clone_fn_id_num, clone_function_name): Move to cgraph.c.
4845 (delete_unreachable_blocks_update_callgraph): New function.
4846 (tree_function_versioning): Use VECtors; always remove unreachable
4847 blocks and fold conditionals.
4848 * tree-inline.h: Do not include varray.h.
4849 (tree_function_versioning): Remove.
4850 * Makefile.in (GTFILES): Remove tree-inline.c
4851 * passes.c (do_per_function): Do only functions having body.
4852 * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
4853 tree.
4854
4855 2009-05-08 H.J. Lu <hongjiu.lu@intel.com>
4856 Andrew Morrow <acm@google.com>
4857
4858 PR c/36892
4859 * c-common.c (c_common_attribute_table): Permit deprecated
4860 attribute to take an optional argument.
4861 (handle_deprecated_attribute): If the optional argument to
4862 __attribute__((deprecated)) is not a string ignore the attribute
4863 and emit a warning.
4864
4865 * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
4866 * c-typeck.c (build_component_ref): Likewise.
4867 (build_external_ref): Likewise.
4868
4869 * toplev.c (warn_deprecated_use): Add an attribute argument.
4870 Emit the message associated with __attribute__((deprecated)).
4871
4872 * toplev.h (warn_deprecated_use): Updated.
4873
4874 * doc/extend.texi: Document new optional parameter to
4875 __attribute__((deprecated))
4876
4877 2009-05-08 Michael Eager <eager@eagercon.com>
4878
4879 * config/rs6000/rs6000.md (*movdf_softfloat32): replace
4880 !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
4881
4882 2009-05-08 Richard Guenther <rguenther@suse.de>
4883
4884 PR tree-optimization/40062
4885 * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
4886 Avoid exponential behavior.
4887
4888 2009-05-08 Paolo Bonzini <bonzini@gnu.org>
4889
4890 PR rtl-optimization/33928
4891 PR 26854
4892 * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
4893 process_uses, build_single_def_use_links): New.
4894 (update_df): Update use_def_ref.
4895 (forward_propagate_into): Use get_def_for_use instead of use-def
4896 chains.
4897 (fwprop_init): Call build_single_def_use_links and let it initialize
4898 dataflow.
4899 (fwprop_done): Free use_def_ref.
4900 (fwprop_addr): Eliminate duplicate call to df_set_flags.
4901 * df-problems.c (df_rd_simulate_artificial_defs_at_top,
4902 df_rd_simulate_one_insn): New.
4903 (df_rd_bb_local_compute_process_def): Update head comment.
4904 (df_chain_create_bb): Use the new RD simulation functions.
4905 * df.h (df_rd_simulate_artificial_defs_at_top,
4906 df_rd_simulate_one_insn): New.
4907 * opts.c (decode_options): Enable fwprop at -O1.
4908 * doc/invoke.texi (-fforward-propagate): Document this.
4909
4910 2009-05-08 Joseph Myers <joseph@codesourcery.com>
4911
4912 PR c/24581
4913 * c-typeck.c (build_binary_op): Handle arithmetic between one real
4914 and one complex operand specially.
4915 * tree-complex.c (some_nonzerop): Do not identify a real value as
4916 zero if flag_signed_zeros.
4917
4918 2009-05-08 Paolo Bonzini <bonzini@gnu.org>
4919
4920 PR rtl-optimization/33928
4921 * loop-invariant.c (record_use): Fix && vs. || mishap.
4922
4923 2009-05-08 Paolo Bonzini <bonzini@gnu.org>
4924
4925 PR rtl-optimization/33928
4926 * loop-invariant.c (struct use): Add addr_use_p.
4927 (struct def): Add n_addr_uses.
4928 (struct invariant): Add cheap_address.
4929 (create_new_invariant): Set cheap_address.
4930 (record_use): Accept df_ref. Set addr_use_p and update n_addr_uses.
4931 (record_uses): Pass df_ref to record_use.
4932 (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
4933 used only as such.
4934
4935 2009-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
4936
4937 * config/sh/sh.c: Do not include c-pragma.h.
4938
4939 2009-05-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
4940
4941 * config/spu/spu.c: Remove include of c-common.h.
4942
4943 2009-05-07 Janis Johnson <janis187@us.ibm.com>
4944
4945 PR c/39037
4946 * c-common.h (mark_valid_location_for_stdc_pragma,
4947 valid_location_for_stdc_pragma_p, set_float_const_decimal64,
4948 clear_float_const_decimal64, float_const_decimal64_p): New.
4949 * c.opt (Wunsuffixed-float-constants): New.
4950 * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
4951 unsuffixed float constant, handle new warning.
4952 * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
4953 * c-decl.c (c_scope): New flag float_const_decimal64.
4954 (set_float_const_decimal64, clear_float_const_decimal64,
4955 float_const_decimal64_p): New.
4956 (push_scope): Set new flag.
4957 * c-parser.c (c_parser_translation_unit): Mark when it's valid
4958 to use STDC pragmas.
4959 (c_parser_external_declaration): Ditto.
4960 (c_parser_compound_statement_nostart): Ditto.
4961 * c-pragma.c (valid_location_for_stdc_pragma,
4962 mark_valid_location_for_stdc_pragma,
4963 valid_location_for_stdc_pragma_p, handle_stdc_pragma,
4964 handle_pragma_float_const_decimal64): New.
4965 (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
4966 * cp/semantics.c (valid_location_for_stdc_pragma_p,
4967 set_float_const_decimal64, clear_float_const_decimal64,
4968 float_const_decimal64_p): New dummy functions.
4969 * doc/extend.texi (Decimal Float): Remove statement that the
4970 pragma, and suffix for double constants, are not supported.
4971 * doc/invoke.texi (Warning Options): List new option.
4972 (-Wunsuffixed-float-constants): New.
4973
4974 2009-05-08 Steven Bosscher <steven@gcc.gnu.org>
4975
4976 * config/i386/i386.c: Do not include c-common.h.
4977
4978 2009-05-07 Mark Heffernan <meheff@google.com>
4979
4980 * doc/invoke.texi (Debugging Options): Document change of debugging
4981 dump location.
4982 * opts.c (decode_options): Make dump_base_name relative to
4983 aux_base_name directory.
4984
4985 2009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
4986
4987 * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
4988 * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
4989
4990 2009-05-07 Rafael Avila de Espindola <espindola@google.com>
4991
4992 * Makefile.in (install-plugin): Simplify a bit.
4993
4994 2009-05-07 Paolo Bonzini <bonzini@gnu.org>
4995
4996 * Makefile.in (OBJS-common): Add regcprop.o.
4997 (regcprop.o): New.
4998 * timevar.def (TV_CPROP_REGISTERS): New.
4999 * regrename.c (regrename_optimize): Return 0.
5000 (rest_of_handle_regrename): Delete.
5001 (pass_rename_registers): Point to regrename_optimize.
5002 (struct value_data_entry, struct value_data,
5003 kill_value_one_regno, kill_value_regno, kill_value,
5004 set_value_regno, init_value_data, kill_clobbered_value,
5005 kill_set_value, kill_autoinc_value, copy_value,
5006 mode_change_ok, maybe_mode_change, find_oldest_value_reg,
5007 replace_oldest_value_reg, replace_oldest_value_addr,
5008 replace_oldest_value_mem, copyprop_hardreg_forward_1,
5009 debug_value_data, validate_value_data): Move...
5010 * regcprop.c: ... here.
5011 (rest_of_handle_cprop): Delete.
5012 (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
5013
5014 2009-05-07 Jakub Jelinek <jakub@redhat.com>
5015
5016 PR middle-end/40057
5017 * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
5018 GEN_INT for 1 << bitnum.
5019 (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
5020 build_int_cst_type.
5021
5022 2009-05-07 Uros Bizjak <ubizjak@gmail.com>
5023
5024 * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
5025 Remove wrong description of "nand" operation.
5026
5027 2009-05-06 Richard Guenther <rguenther@suse.de>
5028 Adam Nemet <anemet@caviumnetworks.com>
5029
5030 * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
5031 comment. Add that if LHS is not a gimple register, then RHS1 has
5032 to be a single object (GIMPLE_SINGLE_RHS).
5033
5034 2009-05-06 Adam Nemet <anemet@caviumnetworks.com>
5035
5036 * expr.c (get_def_for_expr): Move it up in the file.
5037 (store_field): When expanding a bit-field store, look at the
5038 defining gimple stmt for the masking conversion.
5039
5040 2009-05-06 Janis Johnson <janis187@us.ibm.com>
5041
5042 PR middle-end/39986
5043 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
5044 decode_decimal64, encode_decimal128, decode_decimal128): Avoid
5045 32-bit memcpy into long.
5046
5047 2009-05-06 Jakub Jelinek <jakub@redhat.com>
5048
5049 * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
5050 (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
5051 new_reg_loc_descr.
5052 (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
5053 instead of appending DW_OP_deref*.
5054
5055 2009-05-06 Michael Matz <matz@suse.de>
5056
5057 PR middle-end/40021
5058 * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
5059 (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
5060
5061 2009-05-06 Rafael Avila de Espindola <espindola@google.com>
5062
5063 * Makefile.in (install-plugin): Fix srcdir handling.
5064
5065 2009-05-06 Andrey Belevantsev <abel@ispras.ru>
5066
5067 * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
5068 when processing for not_regs_needed bitmap.
5069 * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
5070 handle TARGET_MEM_REF in lhs. Check TMR_BASE for NULL while
5071 handling it for rhs.
5072
5073 2009-05-06 H.J. Lu <hongjiu.lu@intel.com>
5074
5075 * config/i386/i386.md (unnamed inc/dec peephole): Use
5076 optimize_insn_for_size_p instead of optimize_size.
5077 * config/i386/predicates.md (incdec_operand): Likewise.
5078 (aligned_operand): Likewise.
5079 * config/i386/sse.md (divv8sf3): Likewise.
5080 (sqrtv8sf2): Likewise.
5081
5082 2009-05-06 H.J. Lu <hongjiu.lu@intel.com>
5083
5084 * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
5085
5086 * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
5087
5088 2009-05-06 H.J. Lu <hongjiu.lu@intel.com>
5089
5090 * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
5091 ssemodesuffixf2c with avxmodesuffixf2c.
5092
5093 2009-05-06 Joseph Myers <joseph@codesourcery.com>
5094
5095 PR c/40032
5096 * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
5097
5098 2009-05-05 Jakub Jelinek <jakub@redhat.com>
5099
5100 * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
5101 (struct tree_base): Adjust spacing for 8 bit boundaries.
5102 (struct tree_decl_common): Add decl_by_reference_flag bit.
5103 (DECL_BY_REFERENCE): Adjust.
5104 * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
5105 print DECL_BY_REFERENCE bit.
5106 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
5107 * dwarf2out.c (loc_by_reference, gen_decl_die): Check
5108 DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
5109 (gen_variable_die): Likewise. Check TREE_PRIVATE/TREE_PROTECTED
5110 unconditionally.
5111
5112 PR middle-end/39666
5113 * gimplify.c (gimplify_switch_expr): If case labels cover the whole
5114 range of the type, but default label is missing, add it with one
5115 of the existing labels instead of adding a new label for it.
5116
5117 2009-05-05 Joseph Myers <joseph@codesourcery.com>
5118
5119 * dwarf.h: Remove.
5120
5121 2009-05-05 Rafael Avila de Espindola <espindola@google.com>
5122
5123 * Makefile.in (enable_plugin, plugin_includedir): New.
5124 (install): Depend on install-plugin.
5125 (PLUGIN_HEADERS): New.
5126 (install-plugin): New.
5127 * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
5128
5129 2009-05-05 Richard Guenther <rguenther@suse.de>
5130
5131 PR tree-optimization/40022
5132 * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
5133 the only vuse.
5134 (phivn_valid_p): Fix tuplification error, simplify.
5135 (phiprop_insert_phi): Add dumps.
5136 (propagate_with_phi): Simplify.
5137
5138 2009-05-05 Richard Guenther <rguenther@suse.de>
5139
5140 PR middle-end/40023
5141 * builtins.c (gimplify_va_arg_expr): Properly build the address.
5142
5143 2009-05-05 Shujing Zhao <pearly.zhao@oracle.com>
5144
5145 * tree.h (strip_float_extensions): Remove duplicate declaration.
5146 (build_low_bits_mask, debug_fold_checksum, expand_function_end,
5147 expand_function_start, stack_protect_prologue, stack_protect_epilogue,
5148 block_ultimate_origin): Rearrange the declarations line to match the
5149 comment that indicates the .c file which the functions are defined.
5150 (dwarf2out_*, set_decl_rtl): Add comment.
5151 (get_base_address): Adjust comment.
5152 (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
5153 declarations line and add comment.
5154 (is_builtin_name): Add blank after function name, for clarity.
5155
5156 2009-05-04 Joseph Myers <joseph@codesourcery.com>
5157
5158 * attribs.c (decl_attributes): Use %qE for identifiers in
5159 diagnostics.
5160 * cgraphunit.c (verify_cgraph_node): Translate function names to
5161 locale character set in diagnostics.
5162 * coverage.c (get_coverage_counts): Use %qE for identifiers in
5163 diagnostics.
5164 * doc/invoke.texi (-finstrument-functions-exclude-function-list):
5165 Document that functions are named in UTF-8.
5166 * expr.c (expand_expr_real_1): Translate function names to locale
5167 character set in diagnostics.
5168 * gimplify.c (omp_notice_variable, omp_is_private,
5169 gimplify_scan_omp_clauses): Use %qE for identifiers in
5170 diagnostics.
5171 * langhooks.c (lhd_print_error_function): Translate function names
5172 to locale character set.
5173 * langhooks.h (decl_printable_name): Document that return value is
5174 in internal character set.
5175 * stmt.c: Include pretty-print.h
5176 (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
5177 diagnostics.
5178 (resolve_operand_name_1): Translate named operand name to locale
5179 character set.
5180 * stor-layout.c (finalize_record_size): Use %qE for identifiers in
5181 diagnostics.
5182 * toplev.c (announce_function): Translate function names to locale
5183 character set.
5184 (warn_deprecated_use): Use %qE for identifiers in diagnostics.
5185 (default_tree_printer): Use pp_identifier or translate identifiers
5186 to locale character set. Mark "<anonymous>" for translation.
5187 * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
5188 for identifiers in diagnostics.
5189 * tree.c (handle_dll_attribute): Use %qE for identifiers in
5190 diagnostics.
5191 * varasm.c (output_constructor): Use %qE for identifiers in
5192 diagnostics.
5193
5194 2009-05-04 Rafael Avila de Espindola <espindola@google.com>
5195
5196 * configure.ac: use ` ` instead of $()
5197 * configure: Regenerate.
5198
5199 2009-05-05 Ben Elliston <bje@au.ibm.com>
5200
5201 * config/pa/linux-atomic.c: Eliminate conditional include of
5202 errno.h on non-LP64 systems to simplify build requirements.
5203
5204 2009-05-04 Joseph Myers <joseph@codesourcery.com>
5205
5206 * c-common.c (handle_mode_attribute): Use %qE for identifiers in
5207 diagnostics.
5208 * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
5209 and pass value to identifier_to_locale.
5210 (warn_variable_length_array): Make name a tree.
5211 (grokdeclarator): Separate diagnostic texts for named and unnamed
5212 declarators. Use %qE for named declarators.
5213 * c-parser.c (c_lex_one_token): Use %qE for identifiers in
5214 diagnostics.
5215 * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
5216 identifiers in diagnostics.
5217 * c-typeck.c (push_member_name, start_init): Pass identifiers to
5218 identifier_to_locale. Mark "anonymous" strings for translation.
5219
5220 2009-05-04 Michael Eager <eager@eagercon.com>
5221
5222 * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
5223 address for DImode/DFmode only if double-precision FP regs.
5224
5225 2009-05-04 Michael Eager <eager@eagercon.com>
5226
5227 * config/rs6000/rs6000.c (rs6000_libcall_value): Add
5228 TARGET_SINGLE_FLOAT check.
5229
5230 2009-05-04 Michael Eager <eager@eagercon.com>
5231
5232 * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
5233
5234 2009-05-04 Michael Eager <eager@eagercon.com>
5235
5236 * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
5237 * config/rs6000/t-xilinx: New
5238
5239 2009-05-04 Paolo Bonzini <bonzini@gnu.org>
5240
5241 * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
5242 * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
5243 * gcc/explow.c (memory_address): Use target hook.
5244 * gcc/targhooks.c (default_legitimize_address): New.
5245 * gcc/targhooks.h (default_legitimize_address): New.
5246 * gcc/target.h (legitimize_address): New.
5247 * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
5248 (TARGET_INITIALIZER): Include it.
5249 * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
5250
5251 * config/bfin/bfin-protos.h (legitimize_address): Remove.
5252 * config/bfin/bfin.c (legitimize_address): Remove.
5253 * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
5254 * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
5255 Remove.
5256 * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
5257 * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
5258
5259 * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
5260 THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
5261 * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
5262 * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
5263 * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
5264 * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
5265 * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
5266 * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
5267 * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
5268 * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
5269 * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
5270 * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
5271 * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
5272 * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
5273 * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
5274 * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
5275 * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
5276 * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
5277 * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
5278 * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
5279 * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
5280 * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
5281 * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
5282
5283 * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
5284 * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
5285 * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
5286 * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
5287 * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
5288 * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
5289 * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
5290 * gcc/config/arm/arm-protos.h (arm_legitimize_address,
5291 (thumb_legitimize_address): Delete.
5292 * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
5293 * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
5294 * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
5295 * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
5296 * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
5297 * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
5298 Delete.
5299 * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
5300 Delete.
5301
5302 * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
5303 * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
5304 * config/m32r/m32r.c (m32r_legitimize_address): New.
5305 * config/m68k/m68k.c (m68k_legitimize_address): New.
5306 * config/score/score.c (score_legitimize_address): Standardize.
5307 * config/score/score3.c (score3_legitimize_address): Standardize.
5308 * config/score/score3.h (score3_legitimize_address): Adjust.
5309 * config/score/score7.c (score7_legitimize_address): Standardize.
5310 * config/score/score7.h (score7_legitimize_address): Adjust.
5311 * config/sh/sh.c (sh_legitimize_address): New.
5312 * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
5313
5314 * gcc/config/s390/s390.c (legitimize_address): Rename to...
5315 (s390_legitimize_address): ... this.
5316 * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
5317 (sparc_legitimize_address): ... this.
5318 * gcc/config/i386/i386.c (legitimize_address): Rename to...
5319 (ix86_legitimize_address): ... this.
5320 * gcc/config/avr/avr.c (legitimize_address): Rename to...
5321 (avr_legitimize_address): ... this.
5322 * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
5323 (mn10300_legitimize_address): ... this.
5324 * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
5325 (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
5326 (alpha_expand_mov): Adjust call.
5327
5328 * config/frv/frv.c (frv_legitimize_address): Return x on failure.
5329 * config/spu/spu.c (spu_legitimize_address): Likewise.
5330 * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
5331 * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
5332
5333 2009-05-04 Joseph Myers <joseph@codesourcery.com>
5334
5335 * intl.c (locale_encoding, locale_utf8): New.
5336 (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
5337 * intl.h (locale_encoding, locale_utf8): Declare.
5338 * pretty-print.c: Include ggc.h. Include iconv.h if HAVE_ICONV.
5339 (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
5340 New.
5341 * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
5342 argument.
5343 (pp_tree_identifier): Define to call pp_base_tree_identifier.
5344 (pp_base_tree_identifier): Declare as function.
5345 (identifier_to_locale): Declare.
5346 * Makefile.in (pretty-print.o): Update dependencies.
5347 * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
5348
5349 2009-05-04 Richard Guenther <rguenther@suse.de>
5350
5351 PR middle-end/40015
5352 * builtins.c (fold_builtin_memory_op): Do not decay to element
5353 type if the size matches the whole array.
5354
5355 2009-05-04 Kazu Hirata <kazu@codesourcery.com>
5356
5357 * expmed.c (synth_mult): When trying out a shift, pass the result
5358 of a signed shift.
5359
5360 2009-05-04 Kazu Hirata <kazu@codesourcery.com>
5361
5362 * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
5363 (shiftsub1_cost): New.
5364 (init_expmed): Compute shiftsub1_cost.
5365 (synth_mult): Optimize multiplications by constants of the form
5366 -(2^^m-1) for some constant positive integer m.
5367
5368 2009-05-03 Richard Guenther <rguenther@suse.de>
5369
5370 PR c/39983
5371 * c-typeck.c (array_to_pointer_conversion): Do not built
5372 ADDR_EXPRs of arrays of pointer-to-element type.
5373 * c-gimplify.c (c_gimplify_expr): Revert change fixing
5374 up wrong ADDR_EXPRs after-the-fact.
5375 * c-common.c (strict_aliasing_warning): Strip pointer
5376 conversions for obtaining the original type.
5377 * builtins.c (fold_builtin_memset): Handle array types.
5378 (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
5379 and array types
5380
5381 2009-05-03 Richard Guenther <rguenther@suse.de>
5382
5383 PR middle-end/23329
5384 * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
5385 Do not lose casts from array types with unknown extent to array
5386 types with known extent.
5387 * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
5388 alias set compatibility.
5389
5390 2009-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
5391
5392 * flags.h (extra_warnings): Delete.
5393 * toplev.c (process_options): Handle Wuninitialized here.
5394 * opts.c (extra_warnings): Delete.
5395 (set_Wextra): Delete.
5396 (common_handle_option): -Wextra can be handled automatically.
5397 * c-opts.c (c_common_handle_option): Delete obsolete code.
5398 (c_common_post_options): Simplify comment.
5399 * common.opt (W): Add Var.
5400 (Wextra): Add Var.
5401 (Wuninitialized): Initialize to -1.
5402
5403 2009-05-03 Adam Nemet <anemet@caviumnetworks.com>
5404 Richard Guenther <rguenther@suse.de>
5405
5406 * expr.c (get_def_for_expr): New function.
5407 (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
5408 SSA rather than trees.
5409 <MULT_EXPR>: Likewise. Use subexp0 and subexp1 instead of
5410 TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
5411
5412 2009-05-03 Joseph Myers <joseph@codesourcery.com>
5413
5414 * c-common.c (reswords): Add _Imaginary.
5415 * c-common.c (enum rid): Add RID_IMAGINARY.
5416
5417 2009-05-03 Paolo Bonzini <bonzini@gnu.org>
5418
5419 * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
5420 Patch by Richard Guenther.
5421
5422 2009-05-03 Anatoly Sokolov <aesok@post.ru>
5423
5424 * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
5425 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
5426 * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
5427 * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
5428 * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
5429 * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
5430 * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
5431 * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
5432 * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
5433 * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
5434 * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
5435 * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
5436 * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
5437 * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
5438 * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
5439 * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
5440 * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
5441 * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
5442
5443 2009-05-02 Richard Guenther <rguenther@suse.de>
5444
5445 PR tree-optimization/39940
5446 * tree-ssa-pre.c (eliminate): Make sure we may propagate before
5447 doing so.
5448
5449 2009-05-02 Richard Guenther <rguenther@suse.de>
5450
5451 PR middle-end/40001
5452 * tree-ssa.c (execute_update_addresses_taken): Properly check
5453 if we can mark a variable DECL_GIMPLE_REG_P.
5454 * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
5455 back to the end of the function.
5456 (is_gimple_reg_type): Remove complex type special casing.
5457 * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
5458 if not optimizing.
5459
5460 2009-05-02 Ben Elliston <bje@au.ibm.com>
5461
5462 * doc/collect2.texi (Collect2): Document search path behaviour
5463 when configured with --with-ld.
5464
5465 2009-05-02 Jan Hubicka <jh@suse.cz>
5466
5467 * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
5468 parameter; update callers.
5469 (coalesce_cost_edge): EH edges are costier because they needs
5470 splitting even if not critical and even more costier when there are
5471 multiple EH predecestors.
5472
5473 2009-05-02 Jan Hubicka <jh@suse.cz>
5474
5475 * except.c (remove_eh_handler_and_replace): Handle updating after
5476 removing TRY blocks.
5477
5478 2009-05-02 Eric Botcazou <ebotcazou@adacore.com>
5479
5480 * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
5481
5482 2009-05-02 Steven Bosscher <steven@gcc.gnu.org>
5483
5484 * varasm.c: Do not include c-pragma.h.
5485 * attribs.c: Do not incude c-common.h.
5486
5487 2009-05-01 Michael Matz <matz@suse.de>
5488
5489 * calls.c (initialize_argument_information): Handle SSA names like
5490 decls with a non MEM_P DECL_RTL.
5491
5492 2009-05-01 Steven Bosscher <steven@gcc.gnu.org>
5493
5494 * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
5495 * ipa-utils.c: Likewise.
5496 * ipa-type-escape.c: Likewise.
5497 * cgraphunit.c Do not include c-common.h.
5498 * ipa-pure-const.c: Likewise.
5499 * tree-if-conv.c: Likewise.
5500 * matrix-reorg.c: Do not include c-common.h and c-tree.h.
5501 * ipa-struct-reorg.c: Likewise.
5502 * tree-nomudflap.c: Likewise.
5503 * tree-ssa-structalias.c: Likewise.
5504
5505 2009-05-01 Steven Bosscher <steven@gcc.gnu.org>
5506
5507 * store-motion.c: Many cleanups to make this pass a first-class
5508 citizen instead of an appendix to gcse load motion. Add TODO list
5509 to make this pass faster/cleaner/better.
5510
5511 (struct ls_expr): Post gcse.c-split cleanups.
5512 Rename to st_expr. Rename "loads" field to "antic_stores". Rename
5513 "stores" field to "avail_stores".
5514 (pre_ldst_mems): Rename to store_motion_mems.
5515 (pre_ldst_table): Rename to store_motion_mems_table.
5516 (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
5517 (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
5518 (ldst_entry): Rename to st_expr_entry, update users.
5519 (free_ldst_entry): Rename to free_st_expr_entry, update users.
5520 (free_ldst_mems): Rename to free_store_motion_mems, update users.
5521 (enumerate_ldsts): Rename to enumerate_store_motion_mems,
5522 update caller.
5523 (first_ls_expr): Rename to first_st_expr, update users.
5524 (next_ls_expr): Rename to next_st_expr, update users.
5525 (print_ldst_list): Rename to print_store_motion_mems. Print names of
5526 fields properly for store motion instead of names inherited from load
5527 motion in gcse.c.
5528 (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
5529 (LAST_AVAIL_CHECK_FAILURE): Explain what this is. Undefine when we
5530 are done with it.
5531
5532 (ae_kill): Rename to st_kill, update users.
5533 (ae_gen): Rename to st_avloc, update users.
5534 (transp): Rename to st_transp, update users.
5535 (pre_insert_map): Rename to st_insert_map, update users.
5536 (pre_delete_map): Rename to st_delete_map, update users.
5537 (insert_store, build_store_vectors, free_store_memory,
5538 one_store_motion_pass): Update for abovementioned changes.
5539
5540 (gcse_subst_count, gcse_create_count): Remove.
5541 (one_store_motion_pass): New statistics counters "n_stores_deleted"
5542 and "n_stores_created", local variables.
5543
5544 (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
5545 use for_each_rtx.
5546
5547 (regvec, compute_store_table_current_insn): Remove.
5548 (reg_set_info, reg_clear_last_set): Remove.
5549 (compute_store_table): Use DF caches instead of local dataflow
5550 solvers.
5551
5552 2009-05-01 Joseph Myers <joseph@codesourcery.com>
5553
5554 * c-objc-common.c (c_tree_printer): Print identifiers with
5555 pp_identifier, not pp_string. Mark "({anonymous})" for
5556 translation.
5557 * c-pretty-print.c (pp_c_ws_string): New.
5558 (pp_c_cv_qualifier, pp_c_type_specifier,
5559 pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
5560 pp_c_storage_class_specifier, pp_c_function_specifier,
5561 pp_c_attributes, pp_c_bool_constant, pp_c_constant,
5562 pp_c_primary_expression, pp_c_postfix_expression,
5563 pp_c_unary_expression, pp_c_shift_expression,
5564 pp_c_relational_expression, pp_c_equality_expression,
5565 pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
5566 use pp_string and pp_c_ws_string in place of pp_identifier and
5567 pp_c_identifier for non-identifiers. Mark English strings for
5568 translation.
5569 * c-pretty-print.h (pp_c_ws_string): Declare.
5570
5571 2009-04-30 Paul Pluzhnikov <ppluzhnikov@google.com>
5572 Roland McGrath <roland@redhat.com>
5573
5574 * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
5575 (ENABLE_LD_BUILDID): New configuration option.
5576 * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
5577 (LINK_BUILDID_SPEC): New macro.
5578 (init_spec): If defined, prepend it between LINK_EH_SPEC and
5579 link_spec.
5580 * doc/install.texi: Document --enable-linker-build-id option.
5581 * configure: Rebuild.
5582 * config.in: Rebuild.
5583
5584 2009-04-30 Adam Nemet <anemet@caviumnetworks.com>
5585
5586 * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
5587 MIPS_GP_SAVE_AREA_SIZE): Define new macros.
5588 (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD. Use
5589 MIPS_GP_SAVE_AREA_SIZE.
5590 * config/mips/mips.c (struct mips_frame_info): Update comment
5591 before arg_pointer_offset and hard_frame_pointer_offset.
5592 (mips_compute_frame_info): Update diagram before function: to
5593 correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
5594 indicate the position of frame_pointer_rtx with -fstack-protector and
5595 to show args_size. Don't allocate cprestore area for leaf functions
5596 if FRAME_GROWS_DOWNWARD. Use MIPS_GP_SAVE_AREA_SIZE to set
5597 cprestore_size.
5598 (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
5599
5600 2009-04-30 Michael Matz <matz@suse.de>
5601
5602 PR tree-optimization/39955
5603 * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
5604
5605 2009-04-30 Dave Korn <dave.korn.cygwin@gmail.com>
5606
5607 * ira.c (setup_cover_and_important_classes): Use safe macro
5608 REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
5609 directly.
5610 * genpreds.c (write_tm_preds_h): Output suitable definition of
5611 REG_CLASS_FOR_CONSTRAINT.
5612
5613 2009-04-30 Rafael Avila de Espindola <espindola@google.com>
5614
5615 * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
5616 instead of an int.
5617 * bitmap.c (bitmap_descriptor): Likewise.
5618 * ggc-common.c (loc_descriptor): Likewise.
5619 * varray.c (varray_descriptor): Likewise.
5620 * vec.c (vec_descriptor): Likewise.
5621
5622 2009-04-30 Eric Botcazou <ebotcazou@adacore.com>
5623
5624 * Makefile.in (dce.o): Add $(EXCEPT_H).
5625 * dce.c: Include except.h and delete redundant vector definitions.
5626 (deletable_insn_p): Return false for non-call insns that can throw
5627 if DF is running.
5628
5629 2009-04-30 Steven Bosscher <steven@gcc.gnu.org>
5630
5631 * gcse.c (ae_gen): Remove.
5632 (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
5633 and make non-static function to make it available in store-motion.c.
5634 Update call sites with search-and-replace.
5635 (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
5636 extract_mentioned_regs, extract_mentioned_regs_helper,
5637 find_moveable_store, compute_store_table, load_kills_store, find_loads,
5638 store_killed_in_insn, store_killed_after, store_killed_before,
5639 build_store_vectors, insert_insn_start_basic_block, insert-store,
5640 remove_reachable_equiv_notes, replace_store_insn, delete_store,
5641 free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
5642 execute_rtl_store_motion, pass_rtl_store_motion): Move to...
5643 * store-motion.c: ...new file. Also copy data structures from gcse.c
5644 and clean up to remove parts not used by store motion.
5645 * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
5646 * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
5647
5648 2009-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5649
5650 PR target/38571
5651 * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
5652 when optimizing for size.
5653
5654 2009-04-30 Hans-Peter Nilsson <hp@axis.com>
5655
5656 * gcse.c (gcse_constant_p): Fix typo in last change.
5657
5658 2009-04-30 Rafael Avila de Espindola <espindola@google.com>
5659
5660 * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
5661
5662 2009-04-30 Andreas Krebbel <krebbel1@de.ibm.com>
5663
5664 * gcse.c (gcse_constant_p): Make sure the constant is sharable.
5665
5666 2009-04-29 James E. Wilson <wilson@codesourcery.com>
5667
5668 * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
5669 CONST_HIGH_PART result.
5670
5671 2009-04-29 Anatoly Sokolov <aesok@post.ru>
5672
5673 * config/avr/avr.c (initial_elimination_offset): Rename to
5674 avr_initial_elimination_offset.
5675 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
5676 change return type to bool.
5677 (avr_can_eliminate): New function.
5678 * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
5679 (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
5680 (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
5681 * config/avr/avr-protos.h (initial_elimination_offset): Rename to
5682 avr_initial_elimination_offset.
5683 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
5684 (avr_initial_elimination_offset): Define.
5685
5686 2009-04-29 Eric Botcazou <ebotcazou@adacore.com>
5687 Steven Bosscher <steven@gcc.gnu.org>
5688
5689 PR rtl-optimization/39938
5690 * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
5691 * cfgrtl.c: Include insn-attr.h.
5692 (rest_of_pass_free_cfg): New function.
5693 (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
5694 * resource.c (init_resource_info): Remove call to df_analyze.
5695
5696 2009-04-29 Richard Guenther <rguenther@suse.de>
5697
5698 PR target/39943
5699 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
5700 allow conversion to signed integers.
5701
5702 2009-04-29 Richard Guenther <rguenther@suse.de>
5703
5704 * tree-cfg.c (verify_gimple_assign_binary): Allow vector
5705 shifts of floating point vectors if the shift amount is
5706 a constant multiple of the element size.
5707
5708 2009-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
5709 Michael Matz <matz@suse.de>
5710
5711 PR middle-end/39927
5712 PR bootstrap/39929
5713 * tree-outof-ssa.c (emit_partition_copy): New function.
5714 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
5715 insert_part_to_rtx_on_edge): Perform the partition base var
5716 copy using emit_partition_copy.
5717 (insert_value_copy_on_edge): Convert constants to the right mode.
5718 (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
5719 (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
5720
5721 2009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
5722
5723 * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
5724 scan backwards to try to find a constant to initialize it.
5725
5726 * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
5727 insn before the loop_end instruction, don't look past labels.
5728
5729 2009-04-29 Richard Guenther <rguenther@suse.de>
5730
5731 PR middle-end/39937
5732 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
5733 loose type conversions.
5734 (forward_propagate_addr_expr): Fix tuplification bug. Remove
5735 stmts only if there are no uses of its definition.
5736
5737 2009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
5738
5739 * config/bfin/bfin.h (splitting_loops): Declare.
5740 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
5741 Reorder bit definitions to be ascending.
5742 (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
5743 * config/bfin/bfin.c (splitting_loops): New variable.
5744 (bfin_cpus): Add WA_LOAD_LCREGS as needed.
5745 (struct loop_info): Remove members INIT and LOOP_INIT.
5746 (bfin_optimize_loop): Don't set them. Reorder the code that generates
5747 the LSETUP sequence. Allow LC to be loaded from any register, but
5748 also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
5749 (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
5750 set to 1.
5751 * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
5752 of reload_completed.
5753
5754 From Jie Zhang:
5755 * config/bfin/bfin.md (movsi_insn): Refine constraints.
5756
5757 2009-04-29 Rafael Avila de Espindola <espindola@google.com>
5758
5759 * Makefile.in (PLUGIN_VERSION_H): New.
5760 (OBJS-common): Remove plugin-version.o.
5761 (plugin.o): Depend on (PLUGIN_VERSION_H).
5762 (plugin-version.o): Remove.
5763 * configure: Regenerate
5764 * configure.ac: Create plugin-version.h.
5765 * gcc-plugin.h (plugin_gcc_version): Remove.
5766 (plugin_default_version_check): Change signature.
5767 * plugin-version.c: Remove.
5768 * plugin.c: Include plugin-version.h.
5769 (str_plugin_gcc_version_name): Remove.
5770 (try_init_one_plugin): Pass gcc version to plugin_init.
5771 (plugin_default_version_check): Both gcc and plugin versions are now
5772 arguments.
5773
5774 2009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
5775
5776 * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
5777 problematic last insns. Test for TYPE_CALL rather than CALL_P.
5778 Remove special case testing for last insn of inner loops. Don't fail
5779 if the loop ends with a jump, emit an extra nop instead.
5780
5781 * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
5782 DREGS rather than comparing directly. Remove code that tries to
5783 account for latencies.
5784
5785 2009-04-29 Richard Guenther <rguenther@suse.de>
5786
5787 PR tree-optimization/39941
5788 * tree-ssa-pre.c (eliminate): Schedule update-ssa after
5789 eliminating an indirect call.
5790
5791 2009-04-29 Richard Guenther <rguenther@suse.de>
5792
5793 * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
5794 parameter. Allow invariants as base if !require_lvalue.
5795 (verify_gimple_assign_single): Adjust.
5796
5797 2009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
5798
5799 * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
5800 (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
5801 ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
5802 ssubhi3, ssaddhi3_parts and sssubhi3_parts.
5803 (flag_mulhi3_parts): Produce a HImode output rather than trying to set
5804 a VEC_SELECT.
5805 * config/bfin/bfin.c (bfin_expand_builtin,
5806 case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
5807
5808 2009-04-28 Richard Guenther <rguenther@suse.de>
5809
5810 * tree-vect-loop.c (get_initial_def_for_induction): Use
5811 correct types for pointer increment.
5812
5813 2009-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5814
5815 * toplev.c (print_version): Update GMP version string calculation.
5816
5817 2009-04-28 Eric Botcazou <ebotcazou@adacore.com>
5818
5819 PR rtl-optimization/39938
5820 * resource.c (init_resource_info): Add call to df_analyze.
5821
5822 2009-04-28 Uros Bizjak <ubizjak@gmail.com>
5823
5824 * config/alpha/alpha.md (usegp): Cast the result of
5825 alpha_find_lo_sum_using_gp to enum attr_usegp.
5826 * config/alpha/alpha.c (override_options): Remove end-of-structure
5827 marker element from cpu_table. Use array size of cpu_table to handle
5828 -mcpu and -mtune options.
5829 (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
5830
5831 2009-04-28 Joseph Myers <joseph@codesourcery.com>
5832
5833 * config.gcc (powerpc*-*-* | rs6000-*-*): Add
5834 rs6000/option-defaults.h to tm_file. Support cpu_32, cpu_64,
5835 tune_32 and tune_64.
5836 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
5837 support on PowerPC.
5838 * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
5839 * config/rs6000/option-defaults.h: ... here. New file.
5840 (OPT_64, OPT_32): Define.
5841 (MASK_64BIT): Define to 0 if not already defined.
5842 (OPT_ARCH64, OPT_ARCH32): Define.
5843 (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
5844 and tune_64.
5845
5846 2009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5847
5848 * config/arm/arm.c (arm_override_options): Emit error on using
5849 fpa with AAPCS.
5850
5851 2009-04-28 Uros Bizjak <ubizjak@gmail.com>
5852
5853 PR rtl-optimization/39914
5854 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
5855 registers for allocnos created from user-defined variables only
5856 when not optimizing.
5857
5858 2009-04-28 Richard Guenther <rguenther@suse.de>
5859
5860 PR middle-end/39937
5861 * fold-const.c (fold_binary): Use distribute_real_division only
5862 on float types.
5863
5864 2009-04-28 Steve Ellcey <sje@cup.hp.com>
5865
5866 * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
5867 add hpux-stdint.h to tm_file.
5868 (hppa[12]*-*-hpux11*): Ditto.
5869 (ia64*-*-hpux*): Ditto.
5870 * config/hpux-stdint.h: New.
5871 * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
5872 __STDC_EXT__ for all compiles.
5873 * config/pa/pa-hpux.h: Ditto.
5874 * config/pa/pa-hpux10.h: Ditto.
5875 * config/pa/pa-hpux11.h: Ditto.
5876
5877 2009-04-28 Catherine Moore <clm@codesourcery.com>
5878
5879 * debug.h (set_name): Add comment.
5880
5881 2009-04-28 Andrew Pinski <pinskia@gmail.com>
5882
5883 PR target/39929
5884 * config/darwin.c (machopic_gen_offset): Check
5885 currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
5886 * config/arm/arm.c (require_pic_register): Likewise.
5887
5888 2009-04-28 Paolo Bonzini <bonzini@gnu.org>
5889
5890 * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
5891 m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
5892 m32c_promote_prototypes): Delete.
5893
5894 2009-04-28 Michael Matz <matz@suse.de>
5895
5896 PR middle-end/39922
5897 * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
5898 constants.
5899
5900 2009-04-28 Richard Guenther <rguenther@suse.de>
5901
5902 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
5903
5904 2009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5905
5906 * config/arm/arm-cores.def: Add support for arm1156t2f-s.
5907 * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
5908 * config/arm/arm-tune.md: Regenerate.
5909
5910 2009-04-28 Alexander Monakov <amonakov@ispras.ru>
5911
5912 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
5913 block if there are complex incoming edges.
5914 (sel_merge_blocks): Remove useless assert.
5915 (sel_redirect_edge_and_branch): Check that edge was redirected.
5916 * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
5917 (sel_find_rgns): Delete declaration.
5918 * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
5919 the region when it is not a preheader.
5920
5921 2009-04-28 Uros Bizjak <ubizjak@gmail.com>
5922
5923 PR c/39323
5924 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
5925
5926 2009-04-28 Richard Guenther <rguenther@suse.de>
5927
5928 * tree.h (SSA_NAME_VALUE): Remove.
5929 (struct tree_ssa_name): Remove value_handle member.
5930 * tree-vrp.c (execute_vrp): Initialize/free the value-handle
5931 array for jump threading.
5932 * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
5933 SSA_NAME_VALUEs.
5934 * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
5935 * tree-flow.h (threadedge_initialize_values): Declare.
5936 (threadedge_finalize_values): Likewise.
5937 * tree-ssa-threadedge.c (ssa_name_values): New global variable.
5938 (SSA_NAME_VALUE): Define.
5939 (threadedge_initialize_values): New function.
5940 (threadedge_finalize_values): Likewise.
5941 * tree-ssa-dom.c (ssa_name_values): New global variable.
5942 (SSA_NAME_VALUE): Define.
5943 (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
5944
5945 2009-04-28 Ira Rosen <irar@il.ibm.com>
5946
5947 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
5948 Use REPORT_VECTORIZED_LOCATIONS instead
5949 REPORT_VECTORIZED_LOOPS.
5950 * tree-vectorizer.c (vect_verbosity_level): Make static.
5951 (vect_loop_location): Rename to vect_location.
5952 (vect_set_verbosity_level): Update comment.
5953 (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
5954 and vect_location.
5955 (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
5956 and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
5957 instead REPORT_UNVECTORIZED_LOOPS.
5958 * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
5959 and vect_loop_def to vect_external_def and vect_internal_def.
5960 (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
5961 and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and
5962 REPORT_UNVECTORIZED_LOCATIONS.
5963 (enum vect_relevant): Update comment. Rename vect_unused_in_loop
5964 and vect_used_in_loop and to vect_unused_in_scope and
5965 vect_used_in_scope.
5966 (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
5967 (vect_verbosity_level): Remove declaration.
5968 (vect_analyze_operations): Likewise.
5969 (vect_analyze_stmt): Declare.
5970 * tree-vect-loop.c (vect_determine_vectorization_factor): Use
5971 REPORT_UNVECTORIZED_LOCATIONS.
5972 (vect_get_loop_niters): Fix indentation.
5973 (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
5974 (vect_analyze_loop_operations): New function.
5975 (vect_analyze_loop): Call vect_analyze_loop_operations instead of
5976 vect_analyze_operations.
5977 (vect_is_simple_reduction): Use new names.
5978 (vectorizable_live_operation, vect_transform_loop): Likewise.
5979 * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
5980 to specify whether the data references can be a part of interleaving
5981 chain.
5982 (vect_analyze_data_ref_dependence): Use new names.
5983 (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
5984 (vect_create_addr_base_for_vector_ref): Remove redundant code.
5985 * tree-vect-patterns.c (widened_name_p): Use new names.
5986 (vect_recog_dot_prod_pattern): Likewise.
5987 * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
5988 (process_use, vect_mark_stmts_to_be_vectorized,
5989 vect_model_simple_cost, vect_model_store_cost,
5990 vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
5991 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
5992 vectorizable_operation, vectorizable_type_demotion,
5993 vectorizable_type_promotion, vectorizable_store, vectorizable_load,
5994 vectorizable_condition): Likewise.
5995 (vect_analyze_operations): Split into vect_analyze_loop_operations
5996 and ...
5997 (vect_analyze_stmt): ... new function.
5998 (new_stmt_vec_info): Use new names.
5999 (vect_is_simple_use): Use new names and fix comment.
6000 * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
6001 (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
6002
6003 2009-04-28 Uros Bizjak <ubizjak@gmail.com>
6004
6005 PR target/39911
6006 * config/i386/i386.c (print_operand) ['Z']: Handle floating point
6007 and integer modes for x87 operands. Do not ICE for unsupported size,
6008 generate error instead. Generate error for unsupported operand types.
6009 ['z']: Do not handle HImode memory operands specially. Warning
6010 for floating-point operands. Fallthru to 'Z' for unsupported operand
6011 types. Do not ICE for unsupported size, generate error instead.
6012 (output_387_binary_op): Use %Z to output operands.
6013 (output_fp_compare): Ditto.
6014 (output_387_reg_move): Ditto.
6015
6016 2009-04-28 Ben Elliston <bje@au.ibm.com>
6017
6018 PR c++/35652
6019 Revert:
6020
6021 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6022
6023 * builtins.c (c_strlen): Do not warn here.
6024 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
6025 * c-common.c (pointer_int_sum): Take an explicit location.
6026 Warn about offsets out of bounds.
6027 * c-common.h (pointer_int_sum): Adjust declaration.
6028
6029 2009-04-27 Ian Lance Taylor <iant@google.com>
6030
6031 * collect2.c (is_ctor_dtor): Change type of ret field in struct
6032 names to symkind.
6033 * dce.c (run_fast_df_dce): Change type of old_flags to int.
6034 * df-core.c (df_set_flags): Change return type to int. Change
6035 type of old_flags to int.
6036 (df_clear_flags): Likewise.
6037 * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
6038 (df_get_conditional_uses): Likewise.
6039 * df.h (df_set_flags, df_clear_flags): Update declarations.
6040 * dwarf2out.c (struct indirect_string_node): Change type of form
6041 field to enum dwarf_form.
6042 (AT_string_form): Change return type to enum dwarf_form.
6043 * fixed-value.c (fixed_compare): Add cast to enum type.
6044 * fwprop.c (update_df): Change 0 to VOIDmode.
6045 * gensupport.c: Change 0 to UNKNOWN.
6046 * gimple.h (gimple_cond_code): Add cast to enum type.
6047 * haifa-sched.c (reemit_notes): Add cast to enum type.
6048 * hooks.c (hook_int_void_no_regs): Remove function.
6049 * hooks.h (hook_int_void_no_regs): Remove declaration.
6050 * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
6051 * predict.c (combine_predictions_for_insn): Add casts to enum type.
6052 * real.c (real_arithmetic): Add cast to enum type.
6053 (real_compare): Likewise.
6054 * target.h (struct gcc_target): Change return type of
6055 branch_target_register_class to enum reg_class.
6056 * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
6057 default_branch_target_register_class.
6058 * targhooks.c (default_branch_target_register_class): New function.
6059 * targhooks.h (default_branch_target_register_class): Declare.
6060 * tree-data-ref.c (print_direction_vector): Add cast to enum type.
6061 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
6062 cast to int.
6063 * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
6064 ERROR_MARK.
6065 * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
6066 vect_uninitialized_def. Change 0 to ERROR_MARK.
6067 * tree-vect-stmts.c (supportable_widening_operation): Don't
6068 initialize icode1 and icode2.
6069 * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
6070 * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
6071 and to STD_C89.
6072 (cmn_err_flag_specs): Change 0 to STD_C89.
6073 (cmn_err_char_table): Likewise.
6074 * config/arm/arm.c (get_arm_condition_code): Change type of code
6075 to enum arm_cond_code.
6076 (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
6077 (IWMMXT_BUILTIN2): Likewise.
6078 (neon_builtin_type_bits): Don't define typedef.
6079 (neon_builtin_datum): Change type of bits field to int.
6080 (arm_expand_neon_args): Add cast to enum type.
6081 * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
6082 TLS_MODEL_NONE.
6083 * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN. Add
6084 casts to enum type.
6085 * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
6086 MIPS_FP_COND_f.
6087 * config/mips/mips.md (jal_macro): Return enum constant.
6088 (single_insn): Likewise.
6089 * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
6090 CODE_FOR_nothing.
6091 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
6092 casts to enum type.
6093 * config/s390/s390.c (s390_tune_flags): Change type to int.
6094 (s390_arch_flags): Likewise.
6095 (s390_handle_arch_option): Change flags field of struct pta to int.
6096 * config/s390/s390.h (s390_tune_flags): Update declaration.
6097 (s390_arch_flags): Likewise.
6098 * config/sh/sh.c (prepare_move_operands): Compare
6099 tls_symbolic_operand result with enum constant.
6100 (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
6101 (sh_expand_prologue): Add cast to enum type.
6102 (sh_expand_epilogue): Likewise.
6103 (tls_symbolic_operand): Change return type to enum tls_model.
6104 (fpscr_set_from_mem): Add cast to enum type.
6105 (legitimize_pic_address): Compare tls_symbolic_operand result with
6106 enum constant.
6107 (sh_target_reg_class): Change return type to enum reg_class.
6108 * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
6109 PROCESSOR_xxx.
6110 * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
6111 * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
6112 * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
6113 (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
6114 (delayed_branch, tls_call_delay): Likewise.
6115 (eligible_for_sibcall_delay): Likewise.
6116 (eligible_for_return_delay): Likewise.
6117 * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
6118 (spu_expand_builtin_1): Likewise.
6119
6120 * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
6121 for all types of conversions.
6122 (output_init_element): Issue -Wc++-compat warning if needed when
6123 initializing a bitfield with enum type.
6124 * c-parser.c (c_parser_expression): Set original_type to
6125 original_type of right hand operand of comman operator.
6126
6127 2009-04-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6128
6129 * doc/c-tree.texi (Types, Functions, Expression trees): Fix
6130 grammar nits.
6131 * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
6132 * doc/cpp.texi (Standard Predefined Macros)
6133 (Implementation-defined behavior): Likewise.
6134 * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
6135 * doc/gimple.texi (GIMPLE Exception Handling)
6136 (@code{GIMPLE_ASSIGN}): Likewise.
6137 * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
6138 * doc/invoke.texi (Warning Options, Optimize Options)
6139 (AVR Options, Darwin Options): Likewise.
6140 (Optimize Options): Reformulate -fwhole-program description.
6141 * doc/loop.texi (Lambda): Likewise.
6142 * doc/md.texi (Output Template, Define Constraints)
6143 (Standard Names, Insn Splitting): Likewise.
6144 * doc/options.texi (Option properties): Likewise.
6145 * doc/passes.texi (Tree-SSA passes): Likewise.
6146 * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
6147 * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
6148 (File Names and DBX): Likewise.
6149 * doc/trouble.texi (Incompatibilities): Likewise.
6150
6151 2009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
6152
6153 * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
6154 instruction is correct.
6155
6156 2009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
6157
6158 Allow non-constant arguments to conversion intrinsics.
6159 * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
6160 * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
6161 * spu.c (print_operand): Handle 'v' and 'w'.
6162 (exp2_immediate_p, spu_gen_exp2): Define.
6163 * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
6164 spu_convtf_1): Update parameter descriptions.
6165 * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
6166 * constraints.md ('v', 'w'): New.
6167 * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
6168 Remove.
6169 (i2f, I2F): New define_mode_attr.
6170 (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
6171 floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
6172 fixuns_truncv4sfv4si2): Update to use mode attribute.
6173 (float<mode><i2f>2_mul, float<mode><i2f>2_div,
6174 fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
6175 floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
6176 patterns for combine.
6177
6178 2009-04-27 Steven Bosscher <steven@gcc.gnu.org>
6179
6180 * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
6181 (cprop, hoist, pre, store_motion): New debug counters.
6182 * tree-pass.h (pass_tracer): Move to list of gimple passes, it
6183 is not an RTL pass anymore.
6184 (pass_profiling): Remove extern decl for pass removed in 2005.
6185 (pass_gcse, pass_jump_bypass): Remove.
6186 * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
6187 to 0 for clean state.
6188 * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
6189 * cse.c (gate_handle_cse_after_global_opts,
6190 rest_of_handle_cse_after_global_opts): New functions.
6191 (pass_cse_after_global_opts): New pass, does local CSE.
6192 * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
6193 (TV_CPROP): New timevar.
6194 * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
6195 (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
6196 (gcse_main, recompute_all_luids): Remove.
6197 (compute_hash_table_work): Call max_reg_num instead of reading
6198 max_gcse_regno.
6199 (cprop_jump): Don't set run_jump_opt_after_gcse.
6200 (constprop_register): Always allow to alter jumps.
6201 (cprop_insn): Likewise.
6202 (do_local_cprop): Likewise.
6203 (local_cprop_pass): Likewise. Return non-zero if something changed.
6204 (cprop): Remove function, fold interesting bits into one_cprop_pass.
6205 (find_implicit_sets): Add note about missed optimization opportunity.
6206 (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
6207 pass_rtl_cprop execute function.
6208 Don't bother tracking the pass number, each pass gets its own dumpfile
6209 now anyway.
6210 Always allow to alter jumpsand bypass jumps.
6211 (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
6212 will just find no suitable set.
6213 (pre_edge_insert): Fix dumping, this function is for PRE only.
6214 (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
6215 pass_rtl_pre execute function.
6216 (hoist_code): Return non-zero if something changed. Keep track of
6217 substitutions and insertions for statistics gathering similar to PRE.
6218 (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
6219 called from the pass_rtl_hoist execute function. Show pass statistics.
6220 (compute_store_table): Use max_reg_num directly instead of using the
6221 formerly global max_gcse_regno.
6222 (build_store_vectors): Likewise.
6223 (replace_store_insn): Fix dumping.
6224 (store_motion): Rename to ...
6225 (one_store_motion_pass): ... this. Rewrite to be "the" STORE_MOTION
6226 pass, called from the pass_rtl_store_motion execute function. Keep
6227 track of substitutions and insertions for statistics gathering similar
6228 to PRE.
6229 (bypass_jumps): Remove, fold interesting bits into ...
6230 (one_cprop_pass): ... this. Rewrite to be "the" CPROP pass, called
6231 from the pass_rtl_cprop execute function.
6232 (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
6233 pass_jump_bypass): Remove.
6234 (gate_handle_gcse, rest_of_handle_gcse): Remove.
6235 (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
6236 (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
6237 (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
6238 (gate_rtl_store_motion, execute_rtl_store_motion,
6239 pass_rtl_store_motion): New.
6240 * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
6241 make it clear that -fcse-skip-blocks is a no-op for backward compat.
6242 * passes.c (init_optimization_passes): Remove pass_gcse and
6243 pass_jump_bypass. Schedule cprop, pre, hoist, cprop, store_motion,
6244 and cse_after_global_opts in place of pass_gcse. Schedule cprop
6245 instead of pass_jump_bypass.
6246
6247 2009-04-27 Richard Guenther <rguenther@suse.de>
6248
6249 PR middle-end/39928
6250 * gimplify.c (gimplify_expr): If we are required to create
6251 a temporary make sure it ends up as register.
6252
6253 2009-04-27 H.J. Lu <hongjiu.lu@intel.com>
6254
6255 PR target/39903
6256 * config/i386/i386.c (construct_container): Don't call
6257 gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
6258 X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
6259
6260 2009-04-27 Michael Matz <matz@suse.de>
6261
6262 * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
6263 (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
6264 * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
6265 (dump_replaceable_exprs): Take a bitmap.
6266 * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
6267 array.
6268 (expand_gimple_basic_block): Likewise.
6269 * tree-ssa-ter.c (struct temp_expr_table_d): Make
6270 replaceable_expressions member a bitmap.
6271 (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
6272 (mark_replaceable): Likewise.
6273 (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
6274 * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
6275
6276 2009-04-27 Richard Guenther <rguenther@suse.de>
6277
6278 * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
6279 (verify_stmts): Dispatch to gimple/type verification code.
6280 * tree-inline.c (remap_gimple_op_r): Work around C++ FE
6281 issue with call argument types.
6282
6283 2009-04-27 Michael Matz <matz@suse.de>
6284
6285 * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
6286 (init_update_ssa, delete_update_ssa, update_ssa): Remove references
6287 to above.
6288
6289 2009-04-27 Richard Sandiford <rdsandiford@googlemail.com>
6290 Eric Botcazou <ebotcazou@adacore.com>
6291
6292 * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
6293 a label's basic block.
6294 (mark_target_live_regs): Tidy and rework obsolete comments.
6295 Change back DF problem to LIVE. If a label starts a basic block,
6296 assume that all registers that used to be live then still are.
6297 (init_resource_info): If a label starts a basic block, set its
6298 BLOCK_FOR_INSN accordingly.
6299 (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
6300
6301 2009-04-27 Richard Guenther <rguenther@suse.de>
6302
6303 * tree-flow-inline.h (function_ann): Remove.
6304 (get_function_ann): Likewise.
6305 * tree-dfa.c (create_function_ann): Remove.
6306 * tree-flow.h (struct static_var_ann_d): Remove.
6307 (struct function_ann_d): Likewise.
6308 (union tree_ann_d): Remove fdecl member.
6309 (function_ann_t): Remove.
6310 (function_ann, get_function_ann, create_function_ann): Remove
6311 declarations.
6312
6313 2009-04-27 Uros Bizjak <ubizjak@gmail.com>
6314
6315 * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
6316
6317 2009-04-27 Jan Hubicka <jh@suse.cz>
6318
6319 * ipa-pure-const.c (struct funct_state_d): New fields
6320 state_previously_known, looping_previously_known; remove
6321 state_set_in_source.
6322 (analyze_function): Use new fields.
6323 (propagate): Avoid assumption that state_set_in_source imply
6324 nonlooping.
6325
6326 * tree-ssa-loop-niter.c (finite_loop_p): New function.
6327 * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
6328 * cfgloop.h (finite_loop_p): Declare.
6329
6330 2009-04-26 Michael Matz <matz@suse.de>
6331
6332 * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
6333
6334 2009-04-26 Michael Matz <matz@suse.de>
6335
6336 * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
6337 pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
6338 * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
6339 pass_mark_used_blocks): Remove.
6340 * tree-optimize.c (pass_free_datastructures,
6341 execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
6342 * passes.c (init_optimization_passes): Don't call
6343 pass_mark_used_blocks, remove dead code.
6344
6345 2009-04-26 H.J. Lu <hongjiu.lu@intel.com>
6346
6347 * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
6348 * tree-ssa-live.h (register_ssa_partition): Likewise.
6349
6350 2009-04-26 Michael Matz <matz@suse.de>
6351
6352 Expand from SSA.
6353 * builtins.c (fold_builtin_next_arg): Handle SSA names.
6354 * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
6355 * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
6356 SSA names.
6357 (compare_pairs): Swap cost comparison.
6358 (coalesce_ssa_name): Don't use change_partition_var.
6359 * tree-nrv.c (struct nrv_data): Add modified member.
6360 (finalize_nrv_r): Set it.
6361 (tree_nrv): Use it to update statements.
6362 (pass_nrv): Require PROP_ssa.
6363 * tree-mudflap.c (mf_decl_cache_locals,
6364 mf_build_check_statement_for): Use make_rename_temp.
6365 (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
6366 * alias.c (find_base_decl): Handle SSA names.
6367 * emit-rtl (set_reg_attrs_for_parm): Make non-static.
6368 (component_ref_for_mem_expr): Don't leak SSA names into RTL.
6369 * rtl.h (set_reg_attrs_for_parm): Declare.
6370 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
6371 to "optimized", remove unused locals at finish.
6372 (execute_free_datastructures): Make global, call
6373 delete_tree_cfg_annotations.
6374 (execute_free_cfg_annotations): Don't call
6375 delete_tree_cfg_annotations.
6376
6377 * ssaexpand.h: New file.
6378 * expr.c (toplevel): Include ssaexpand.h.
6379 (expand_assignment): Handle SSA names the same as register variables.
6380 (expand_expr_real_1): Expand SSA names.
6381 * cfgexpand.c (toplevel): Include ssaexpand.h.
6382 (SA): New global variable.
6383 (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
6384 (SSAVAR): New macro.
6385 (set_rtl): New helper function.
6386 (add_stack_var): Deal with SSA names, use set_rtl.
6387 (expand_one_stack_var_at): Likewise.
6388 (expand_one_stack_var): Deal with SSA names.
6389 (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
6390 before unique numbers.
6391 (expand_stack_vars): Use set_rtl.
6392 (expand_one_var): Accept SSA names, add asserts for them, feed them
6393 to above subroutines.
6394 (expand_used_vars): Expand all partitions (without default defs),
6395 then only the local decls (ignoring those expanded already).
6396 (expand_gimple_cond): Remove edges when jumpif() expands an
6397 unconditional jump.
6398 (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
6399 or remove abnormal edges. Ignore insns setting the LHS of a TERed
6400 SSA name.
6401 (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
6402 members of SA; deal with PARM_DECL partitions here; expand
6403 all PHI nodes, free tree datastructures and SA. Commit instructions
6404 on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
6405 (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
6406 info and statements at start, collect garbage at finish.
6407 * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
6408 (VAR_ANN_PARTITION) Remove.
6409 (change_partition_var): Don't declare.
6410 (partition_to_var): Always return SSA names.
6411 (var_to_partition): Only accept SSA names.
6412 (register_ssa_partition): Only check argument.
6413 * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
6414 member.
6415 (delete_var_map): Don't free it.
6416 (var_union): Only accept SSA names, simplify.
6417 (partition_view_init): Mark only useful SSA names as used.
6418 (partition_view_fini): Only deal with SSA names.
6419 (change_partition_var): Remove.
6420 (dump_var_map): Use ssa_name instead of partition_to_var member.
6421 * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
6422 basic blocks.
6423 * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
6424 (struct _elim_graph): New member const_dests; nodes member vector of
6425 ints.
6426 (set_location_for_edge): New static helper.
6427 (create_temp): Remove.
6428 (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
6429 insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
6430 (new_elim_graph): Allocate const_dests member.
6431 (clean_elim_graph): Truncate const_dests member.
6432 (delete_elim_graph): Free const_dests member.
6433 (elim_graph_size): Adapt to new type of nodes member.
6434 (elim_graph_add_node): Likewise.
6435 (eliminate_name): Likewise.
6436 (eliminate_build): Don't take basic block argument, deal only with
6437 partition numbers, not variables.
6438 (get_temp_reg): New static helper.
6439 (elim_create): Use it, deal with RTL temporaries instead of trees.
6440 (eliminate_phi): Adjust all calls to new signature.
6441 (assign_vars, replace_use_variable, replace_def_variable): Remove.
6442 (rewrite_trees): Only do checking.
6443 (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
6444 (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
6445 init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
6446 contains_tree_r, MAX_STMTS_IN_LATCH,
6447 process_single_block_loop_latch, analyze_edges_for_bb,
6448 perform_edge_inserts): Remove.
6449 (expand_phi_nodes): New global function.
6450 (remove_ssa_form): Take ssaexpand parameter. Don't call removed
6451 functions, initialize new parameter, remember partitions having a
6452 default def.
6453 (finish_out_of_ssa): New global function.
6454 (rewrite_out_of_ssa): Make global. Adjust call to remove_ssa_form,
6455 don't reset in_ssa_p here, don't disable TER when mudflap.
6456 (pass_del_ssa): Remove.
6457 * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
6458 partition members.
6459 (execute_free_datastructures): Declare.
6460 * Makefile.in (SSAEXPAND_H): New variable.
6461 (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
6462 * basic-block.h (commit_one_edge_insertion): Declare.
6463 * passes.c (init_optimization_passes): Move pass_nrv and
6464 pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
6465 pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
6466 * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
6467 (redirect_branch_edge): Deal with super block when expanding, split
6468 out jump patching itself into ...
6469 (patch_jump_insn): ... here, new static helper.
6470
6471 2009-04-26 Michael Matz <matz@suse.de>
6472
6473 * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
6474 beyond num_ssa_names.
6475 * tree-ssa-ter.c (free_temp_expr_table): Likewise.
6476 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
6477
6478 2009-04-26 Jakub Jelinek <jakub@redhat.com>
6479
6480 PR inline-asm/39543
6481 * fwprop.c (forward_propagate_asm): New function.
6482 (forward_propagate_and_simplify): Propagate also into __asm, if it
6483 doesn't increase the number of referenced registers.
6484
6485 PR c/39889
6486 * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
6487
6488 2009-04-26 Jakub Jelinek <jakub@redhat.com>
6489
6490 * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
6491 note_nonlocal_vla_type for nonlocal VLAs.
6492 (note_nonlocal_vla_type, note_nonlocal_block_vlas,
6493 contains_remapped_vars, remap_vla_decls): New functions.
6494 (convert_nonlocal_reference_stmt): If not optimizing, call
6495 note_nonlocal_block_vlas on GIMPLE_BIND block vars.
6496 (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
6497 if it wasn't found in var_map.
6498 (finalize_nesting_tree_1): Call remap_vla_decls. If outermost
6499 GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
6500 to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
6501 declare_vars.
6502 * gimplify.c (nonlocal_vlas): New variable.
6503 (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
6504 referenced VLAs.
6505 (gimplify_body): Create and destroy nonlocal_vlas.
6506
6507 * dwarf2out.c (loc_descr_plus_const): New function.
6508 (build_cfa_aligned_loc, tls_mem_loc_descriptor,
6509 mem_loc_descriptor, loc_descriptor_from_tree_1,
6510 descr_info_loc, gen_variable_die): Use it.
6511
6512 * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
6513 !TREE_STATIC VAR_DECLs.
6514 * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
6515 DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
6516 (gen_variable_die): Likewise. Don't look at TREE_PRIVATE if
6517 DECL_BY_REFERENCE is valid.
6518 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
6519 for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
6520 * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
6521 Copy DECL_BY_REFERENCE.
6522 (struct nesting_copy_body_data): New type.
6523 (nesting_copy_decl): New function.
6524 (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
6525 if they have variable length.
6526
6527 2009-04-26 Michael Matz <matz@suse.de>
6528
6529 * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
6530 mark new temporaries for renaming.
6531
6532 2009-04-26 Joseph Myers <joseph@codesourcery.com>
6533
6534 PR c/39581
6535 * c-decl.c (global_bindings_p): Return negative value.
6536 (c_variable_size): New. Based on variable_size from
6537 stor-layout.c.
6538 (grokdeclarator): Call c_variable_size not variable_size.
6539
6540 2009-04-26 Uros Bizjak <ubizjak@gmail.com>
6541
6542 * config/i386/i386.c (print_operand) ['z']: Fix typo.
6543
6544 2009-04-26 Kai Tietz <kai.tietz@onevision.com>
6545
6546 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
6547 Redefine it to just use mingw/include.
6548 (ASM_SPEC): Rules for -m32 and -m64.
6549 (LINK_SPEC): Use Likewise.
6550 (SPEC_32): New define.
6551 (SPEC_64): Likewise.
6552 (SUB_LINK_SPEC): Likewise.
6553 (MULTILIB_DEFAULTS): New define.
6554 * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
6555 Add multilib options.
6556 (MULTILIB_DIRNAMES): Likewise.
6557 (MULTILIB_OSDIRNAMES): Likewise.
6558 (LIBGCC): Likewise.
6559 (INSTALL_LIBGCC): Likewise.
6560
6561 2009-04-26 Joseph Myers <joseph@codesourcery.com>
6562
6563 PR c/39556
6564 * c-tree.h (enum c_inline_static_type): New.
6565 (record_inline_static): Declare.
6566 * c-decl.c (struct c_inline_static, c_inline_statics,
6567 record_inline_static, check_inline_statics): New.
6568 (pop_file_scope): Call check_inline_statics.
6569 (start_decl): Call record_inline_static instead of pedwarning
6570 directly for static in inline function.
6571 * c-typeck.c (build_external_ref): Call record_inline_static
6572 instead of pedwarning directly for static referenced in inline
6573 function.
6574
6575 2009-04-26 Steven Bosscher <steven@gcc.gnu.org>
6576
6577 * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
6578 not new but only being rescanned.
6579 * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
6580 reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
6581 alloc_reg_set_mem, free_reg_set_mem, record_one_set,
6582 record_set_info, compute_set, grealloc): Remove.
6583 (recompute_all_luids): New function.
6584 (gcse_main): Don't compute sets, and don't do related memory
6585 allocations/free-ing. If something changed before the end of the
6586 pass, update LUIDs using recompute_all_luids.
6587 (alloc_gcse_mem): Don't compute LUIDs. Don't allocate reg_set memory.
6588 (free_gcse_mem): Don't free it either.
6589 (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
6590 Use the df insn LUIDs.
6591 (load_killed_in_block): Likewise.
6592 (compute_hash_table_work): Don't compute reg_set_in_block.
6593 (compute_transp): Use DF_REG_DEF_CHAINs.
6594 (local_cprop_pass): Don't use compute_sets and related functions.
6595 (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
6596 Use get_max_uid() instead of max_cuid.
6597 (insert_insn_end_basic_block, pre_insert_copy_insn,
6598 update_ld_motion_stores): Don't try to
6599 keep reg_set tables up to date.
6600 (pre_insert_copies): Use df insn LUIDs.
6601 (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
6602 (reg_set_info): Don't use extra bitmap argument.
6603 (compute_store_table): Don't compute reg_set_in_block. Use DF scan
6604 information to compute regs_set_in_block.
6605 (free_store_memory, store_motion): Don't nullify reg_set_in_block.
6606 (bypass_jumps): Don't use compute_sets and friends.
6607
6608 2009-04-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6609
6610 PR testsuite/39710
6611 * opts.c (undocumented_msg): Do not leave blank even with
6612 ENABLE_CHECKING.
6613
6614 2009-04-25 Joseph Myers <joseph@codesourcery.com>
6615
6616 * c-decl.c (build_enumerator): Allow values folding to integer
6617 constants but not integer constant expressions with a pedwarn if
6618 pedantic.
6619
6620 2009-04-25 Joseph Myers <joseph@codesourcery.com>
6621
6622 PR c/39582
6623 * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
6624 with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
6625 type is an integer constant.
6626
6627 2009-04-25 Uros Bizjak <ubizjak@gmail.com>
6628
6629 PR target/39897
6630 * config/i386/i386.c (print_operand) ['z']: Revert handling of
6631 HImode operands.
6632
6633 2009-04-25 Joseph Myers <joseph@codesourcery.com>
6634
6635 PR c/39564
6636 * c-decl.c (grokdeclarator): Diagnose declarations of functions
6637 with variably modified return type and no storage class
6638 specifiers, except for the case of nested functions. Distinguish
6639 extern declarations of functions with variably modified return
6640 types from those of objects with variably modified types.
6641
6642 2009-04-25 Jan Hubicka <jh@suse.cz>
6643
6644 * tree.c (list_equal_p): New function.
6645 * tree.h (list_equal_p): Declare.
6646 * coretypes.h (edge_def, edge, const_edge, basic_block_def
6647 basic_block_def, basic_block, const_basic_block): New.
6648 * tree-eh.c (make_eh_edge): EH edges are not abnormal.
6649 (redirect_eh_edge): New function.
6650 (make_eh_edge_update_phi): EH edges are not abnormal.
6651 * except.c: Include tree-flow.h.
6652 (list_match): New function.
6653 (eh_region_replaceable_by_p): New function.
6654 (replace_region): New function.
6655 (hash_type_list): New function.
6656 (hash_eh_region): New function.
6657 (eh_regions_equal_p): New function.
6658 (merge_peers): New function.
6659 (remove_unreachable_regions): Verify EH tree when checking;
6660 merge peers.
6661 (copy_eh_region_1): New function.
6662 (copy_eh_region): New function.
6663 (push_reachable_handler): New function.
6664 (build_post_landing_pads, dw2_build_landing_pads): Be ready for
6665 regions without label but with live RESX.
6666 * except.h (redirect_eh_edge_to_label): New.
6667 * tree-flow.h (redirect_eh_edge): New.
6668 * coretypes.h (edge_def, edge, const_edge, basic_block_def
6669 basic_block_def, basic_block, const_basic_block): Remove.
6670 * Makefile.in (except.o): Add dependency on tree-flow.h
6671 * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
6672 * basic-block.h (edge, const_edge, basic_block, const_basic_block):
6673 Remove.
6674
6675 2009-04-25 Eric Botcazou <ebotcazou@adacore.com>
6676
6677 PR bootstrap/39645
6678 * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
6679 on the destination of memcpy.
6680
6681 2009-04-25 Paolo Bonzini <bonzini@gnu.org>
6682
6683 * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
6684 REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
6685 REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
6686
6687 2009-04-25 Jan Hubicka <jh@suse.cz>
6688
6689 * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
6690 (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
6691 to be reached by different label than left.
6692 (update_eh_edges): Update comment; remove edge_to_remove if possible
6693 and return true if suceeded.
6694 (cleanup_empty_eh): Accept sharing map; handle shared regions.
6695 (cleanup_eh): Compute sharing map.
6696 * except.c (remove_eh_handler_and_replace): Add argument if we should
6697 update regions.
6698 (remove_unreachable_regions): Update for label sharing.
6699 (label_to_region_map): Likewise.
6700 (get_next_region_sharing_label): New function.
6701 (remove_eh_handler_and_replace): Add update_catch_try parameter; update
6702 prev_try pointers.
6703 (remove_eh_handler): Update.
6704 (remove_eh_region_and_replace_by_outer_of): New function.
6705 * except.h (struct eh_region): Add next_region_sharing_label.
6706 (remove_eh_region_and_replace_by_outer_of,
6707 get_next_region_sharing_label): Declare.
6708 * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
6709
6710 2009-04-25 Jan Hubicka <jh@suse.cz>
6711
6712 * tree-cfg.c (split_critical_edges): Split also edges where we can't
6713 insert code even if they are not critical.
6714
6715 2009-04-25 Jan Hubicka <jh@suse.cz>
6716
6717 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
6718 (gimple_can_remove_branch_p): EH edges won't remove branch by
6719 redirection.
6720 * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
6721 updating of non-abnormal EH edges.
6722 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
6723 (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
6724 (split_critical_edges): Split also edges where emitting code on them
6725 will lead to splitting later.
6726
6727 2009-04-25 Uros Bizjak <ubizjak@gmail.com>
6728 H.J. Lu <hongjiu.lu@intel.com>
6729
6730 PR target/39590
6731 * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
6732 the configured assembler supports fildq and fistpq mnemonics.
6733 (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
6734 * configure: Regenerated.
6735 * config.in: Ditto.
6736
6737 * config/i386/i386.c (print_operand): Handle 'Z'.
6738 ['z']: Remove handling of special fild/fist suffixes.
6739 (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
6740 * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
6741 suffix of fild insn.
6742 (*floatsi<mode>2_vector_mixed): Ditto.
6743 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
6744 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
6745 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
6746 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
6747 * config/i386/gas.h (GAS_MNEMONICS): Remove.
6748
6749 2009-04-25 Ben Elliston <bje@au.ibm.com>
6750
6751 * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
6752 the source of a set operation.
6753
6754 2009-04-25 Anatoly Sokolov <aesok@post.ru>
6755
6756 * target.h (struct gcc_target): Add case_values_threshold field.
6757 * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
6758 (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
6759 * targhooks.c (default_case_values_threshold): New function.
6760 * targhooks.h (default_case_values_threshold): Declare function.
6761 * stmt.c (expand_case): Use case_values_threshold target hook.
6762 * expr.h (case_values_threshold): Remove declartation.
6763 * expr.c (case_values_threshold): Remove function.
6764 * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
6765
6766 * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
6767 * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
6768 (avr_case_values_threshold): Declare as static.
6769 * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
6770
6771 * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
6772 * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
6773 (mn10300_case_values_threshold): New function.
6774
6775 2009-04-24 H.J. Lu <hongjiu.lu@intel.com>
6776
6777 * ira.c (setup_cover_and_important_classes): Add enum cast.
6778
6779 2009-04-24 Vladimir Makarov <vmakarov@redhat.com>
6780
6781 * genpreds.c (write_enum_constraint_num): Output definition of
6782 CONSTRAINT_NUM_DEFINED_P macro.
6783 * ira.c (setup_cover_and_important_classes): Use
6784 CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
6785
6786 2009-04-24 DJ Delorie <dj@redhat.com>
6787
6788 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
6789 __SH2A_SINGLE_ONLY__ also.
6790
6791 2009-04-24 Steve Ellcey <sje@cup.hp.com>
6792
6793 * config/ia64/ia64.md (movfs_internal): Allow flt constants.
6794 (movdf_internal): Ditto.
6795 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
6796 SFmode and DFmode constants.
6797 (ia64_print_operand): Add 'G' format for printing
6798 floating point constants.
6799
6800 2009-04-24 Richard Guenther <rguenther@suse.de>
6801
6802 * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
6803 from unsigned additions.
6804
6805 2009-04-24 Joseph Myers <joseph@codesourcery.com>
6806
6807 * c-typeck.c (set_init_index): Allow array designators that are
6808 not integer constant expressions with a pedwarn if pedantic.
6809
6810 2009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
6811
6812 * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
6813 zero if no overlap in nonzero bits between the operands.
6814
6815 2009-04-24 Ian Lance Taylor <iant@google.com>
6816
6817 * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
6818 (record_dead_and_set_regs): Likewise.
6819 * df.h (struct df_mw_hardreg): Change flags field to int.
6820 (struct df_base_ref): Likewise.
6821 (struct df): Change changeable_flags field to int.
6822 * df-scan.c (df_defs_record): Change clobber_flags to int.
6823 * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
6824 constants rather than #define macros.
6825 (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
6826 (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
6827 (enum dwarf_calling_convention): Likewise.
6828 (enum dwarf_line_number_x_ops): Likewise.
6829 (enum dwarf_call_frame_info): Likewise.
6830 (enum dwarf_source_language): Likewise.
6831 * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
6832 (add_calling_convention_attribute): Likewise.
6833 * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
6834 (combine_comparisons): Change compcode to int. Add cast to enum type.
6835 * genrecog.c (maybe_both_true_2): Change c to int.
6836 (write_switch): Likewise. Add cast to enum type.
6837 * gimplify.c (gimplify_omp_for): Handle return values from
6838 gimplify_expr using MIN rather than bitwise or.
6839 (gimplify_expr): Add cast to enum type.
6840 * ipa-prop.c (update_jump_functions_after_inlining): Change
6841 IPA_BOTTOM to IPA_JF_UNKNOWN.
6842 * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
6843 Add casts to enum type.
6844 (setup_cover_and_important_classes): Change cl to int. Add casts
6845 to enum type.
6846 (setup_class_translate): Change cl and mode to int.
6847 (ira_init_once): Change mode to int.
6848 (free_register_move_costs): Likewise.
6849 (setup_prohibited_mode_move_regs): Add casts to enum type.
6850 * langhooks.c (add_builtin_function_common): Rework assertion that
6851 value fits bitfield.
6852 * mcf.c (add_fixup_edge): Change type parameter to edge_type.
6853 * omega.c (omega_do_elimination): Avoid math on enum types.
6854 * optabs.c (expand_vec_shift_expr): Remove casts to int.
6855 * opts.c (set_debug_level): Change 2 to enum constant. Use new
6856 int local to handle integral_argment value.
6857 * regmove.c (try_auto_increment): Change PUT_MODE to
6858 PUT_REG_NOTE_KIND.
6859 * reload.c (push_secondary_reload): Add casts to enum type.
6860 (secondary_reload_class, find_valid_class): Likewise.
6861 * reload1.c (emit_input_reload_insns): Likewise.
6862 * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
6863 * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
6864 * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
6865 constant.
6866 * tree.c (build_common_builtin_nodes): Add casts to enum type.
6867 * tree-complex.c (complex_lattice_t): Typedef to int rather than
6868 enum type.
6869 (expand_complex_libcall): Add casts to enum type.
6870 * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
6871 * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
6872 with ERROR_MARK, not NUM_TREE_CODES.
6873 (vect_create_epilog_for_reduction): Likewise.
6874 (vectorizable_reduction): Don't initialize epiloc_reduc_code.
6875 When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
6876 * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
6877 enum machine_mode.
6878 * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
6879 vect_unused_in_loop. Change 0 to loop_vect.
6880 * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
6881 * var-tracking.c (get_init_value): Change return type to enum
6882 var_init_status.
6883 * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
6884 * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
6885 arm_fp_model.
6886 (arm_override_options): Add casts to enum type.
6887 (arm_emit_tls_decoration): Likewise.
6888 * config/i386/i386.c (ix86_function_specific_restore): Add casts
6889 to enum type.
6890 * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
6891 * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
6892 * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
6893 enum type.
6894 * config/s390/s390.c (code_for_builtin_64): Change to array of
6895 enum insn_code.
6896 (code_for_builtin_31): Likewise.
6897 (s390_expand_builtin): Change code_for_builtin to enum insn_code
6898 const *.
6899 * config/sparc/sparc.c (sparc_override_options): Change value
6900 field in struct code_model to enum cmodel. In initializer change
6901 0 to NULL and add cast to enum type.
6902
6903 * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
6904 Change all callers. Issue a -Wc++-compat warning using
6905 lhs_origtype if necessary.
6906 (convert_for_assignment): Issue -Wc++-compat warnings about
6907 invalid conversions to enum type on assignment.
6908 * c-common.h (build_modify_expr): Update declaration.
6909
6910 2009-04-24 Nick Clifton <nickc@redhat.com>
6911
6912 * config/iq2000/iq2000.c (function_arg): Handle TImode values.
6913 (function_arg_advance): Likewise.
6914 * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
6915 5th alternative.
6916
6917 2009-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
6918
6919 * config/s390/constraints.md ('I', 'J'): Fix condition.
6920
6921 2009-04-24 Diego Novillo <dnovillo@google.com>
6922
6923 * gengtype-parse.c (parse_error): Add newline after message.
6924
6925 2009-04-24 H.J. Lu <hongjiu.lu@intel.com>
6926
6927 * config/i386/sse.md (avxmodesuffixs): Removed.
6928 (*avx_pinsr<avxmodesuffixs>): Renamed to ...
6929 (*avx_pinsr<ssevecsize>): This.
6930
6931 2009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
6932
6933 * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
6934 follow chains of regs with a single definition, and allow expressions
6935 that are function_invariant_p.
6936 (simple_rhs_p): Allow expressions that are function_invariant_p.
6937
6938 2009-04-24 Paolo Bonzini <bonzini@gnu.org>
6939
6940 PR middle-end/39867
6941 * fold-const.c (fold_cond_expr_with_comparison): When folding
6942 > and >= to MAX, make sure the MAX uses the same type as the
6943 comparison's operands.
6944
6945 2009-04-24 Nick Clifton <nickc@redhat.com>
6946
6947 * config/frv/frv.c (frv_frame_access): Do not use reg+reg
6948 addressing for DImode accesses.
6949 (frv_print_operand_address): Handle PLUS case.
6950 * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
6951
6952 2009-04-24 Jakub Jelinek <jakub@redhat.com>
6953
6954 PR rtl-optimization/39794
6955 * alias.c (canon_true_dependence): Add x_addr argument.
6956 * rtl.h (canon_true_dependence): Adjust prototype.
6957 * cse.c (check_dependence): Adjust canon_true_dependence callers.
6958 * cselib.c (cselib_invalidate_mem): Likewise.
6959 * gcse.c (compute_transp): Likewise.
6960 * dse.c (scan_reads_nospill): Likewise.
6961 (record_store, check_mem_read_rtx): Likewise. For non-const-or-frame
6962 addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
6963 canon_base_addr of the group, plus optional offset.
6964 (struct group_info): Rename canon_base_mem to
6965 canon_base_addr.
6966 (get_group_info): Set canon_base_addr to canon_rtx of base, not
6967 canon_rtx of base_mem.
6968
6969 2009-04-23 Paolo Bonzini <bonzini@gnu.org>
6970
6971 * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
6972 Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
6973
6974 2009-04-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6975
6976 * config/spu/spu-builtins.h: Delete file.
6977
6978 * config/spu/spu.h (enum spu_builtin_type): Move here from
6979 spu-builtins.h.
6980 (struct spu_builtin_description): Likewise. Add GTY marker.
6981 Do not use enum spu_function_code or enum insn_code.
6982 (spu_builtins): Add extern declaration.
6983
6984 * config/spu/spu.c: Do not include "spu-builtins.h".
6985 (enum spu_function_code, enum spu_builtin_type_index,
6986 V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
6987 V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
6988 unsigned_V8HI_type_node, unsigned_V4SI_type_node,
6989 unsigned_V2DI_type_node): Move here from spu-builtins.h.
6990 (spu_builtin_types): Make static. Add GTY marker.
6991 (spu_builtins): Add extern declaration with GTY marker.
6992 Include "gt-spu.h".
6993
6994 * config/spu/spu-c.c: Do not include "spu-builtins.h".
6995 (spu_resolve_overloaded_builtin): Do not use spu_function_code.
6996 Check programmatically whether all parameters are scalar.
6997
6998 * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
6999
7000 2009-04-23 Eric Botcazou <ebotcazou@adacore.com>
7001
7002 * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
7003 assignment from the constructor either if the target is volatile.
7004
7005 2009-04-23 Daniel Jacobowitz <dan@codesourcery.com>
7006
7007 * config/arm/arm.md (insv): Do not share operands[0].
7008
7009 2009-04-23 Nathan Sidwell <nathan@codesourcery.com>
7010
7011 * config/vxlib-tls.c (active_tls_threads): Delete.
7012 (delete_hook_installed): New.
7013 (tls_delete_hook): Don't delete the delete hook.
7014 (tls_destructor): Delete it here.
7015 (__gthread_set_specific): Adjust installing the delete hook.
7016 (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
7017 __gthread_leave_tsd_dtor_context.
7018
7019 2009-04-23 Rafael Avila de Espindola <espindola@google.com>
7020
7021 * c-format.c (gcc_tdiag_char_table): Add support for %E.
7022
7023 2009-04-23 Uros Bizjak <ubizjak@gmail.com>
7024
7025 * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
7026 enum type.
7027 (alpha_rtx_costs): Ditto.
7028 (emit_unlikely_jump): Use add_reg_note.
7029 (emit_frame_store_1): Ditto.
7030 (alpha_expand_prologue): Ditto.
7031 (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
7032 * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
7033
7034 2009-04-23 Nick Clifton <nickc@redhat.com>
7035
7036 * config/v850/v850.md (epilogue): Remove suppressed code.
7037 (return): Rename to return_simple and remove test of frame size.
7038 * config/v850/v850.c (expand_epilogue): Rename call to gen_return
7039 to gen_return_simple.
7040
7041 2009-04-22 Jing Yu <jingyu@google.com>
7042
7043 PR testsuite/39781
7044 * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
7045
7046 2009-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
7047
7048 PR C/31499
7049 * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
7050 and RECORD_TYPE/UNION_TYPE. When outputing the actual element and the
7051 value is a VECTOR_CST, the element type is the element type of the
7052 vector.
7053
7054 2009-04-22 DJ Delorie <dj@redhat.com>
7055
7056 * config/m32c/m32c.h: Update GTY annotations to new syntax.
7057
7058 2009-04-22 Jakub Jelinek <jakub@redhat.com>
7059
7060 * alias.c (find_base_term): Move around LO_SUM case, so that
7061 CONST falls through into PLUS/MINUS handling.
7062
7063 PR c/39855
7064 * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
7065 into 0, use omit_one_operand.
7066
7067 2009-04-23 Ben Elliston <bje@au.ibm.com>
7068
7069 * config/rs6000/linux-unwind.h (get_regs): Remove type
7070 puns. Change the type of `pc' to an array of unsigned ints and
7071 update all users. Constify frame24.
7072
7073 2009-04-22 DJ Delorie <dj@redhat.com>
7074
7075 * config/m32c/m32c.c (m32c_special_page_vector_p): Move
7076 declarations before code.
7077 (current_function_special_page_vector): Likewise.
7078 (m32c_expand_insv): Silence a warning.
7079
7080 2009-04-21 Taras Glek <tglek@mozilla.com>
7081
7082 * alias.c: Update GTY annotations to new syntax.
7083 * basic-block.h: Likewise.
7084 * bitmap.h: Likewise.
7085 * c-common.h: Likewise.
7086 * c-decl.c: Likewise.
7087 * c-parser.c: Likewise.
7088 * c-pragma.c: Likewise.
7089 * c-tree.h: Likewise.
7090 * cfgloop.h: Likewise.
7091 * cgraph.h: Likewise.
7092 * config/alpha/alpha.c: Likewise.
7093 * config/arm/arm.h: Likewise.
7094 * config/avr/avr.h: Likewise.
7095 * config/bfin/bfin.c: Likewise.
7096 * config/cris/cris.c: Likewise.
7097 * config/darwin.c: Likewise.
7098 * config/frv/frv.c: Likewise.
7099 * config/i386/i386.c: Likewise.
7100 * config/i386/i386.h: Likewise.
7101 * config/i386/winnt.c: Likewise.
7102 * config/ia64/ia64.h: Likewise.
7103 * config/iq2000/iq2000.c: Likewise.
7104 * config/mips/mips.c: Likewise.
7105 * config/mmix/mmix.h: Likewise.
7106 * config/pa/pa.c: Likewise.
7107 * config/pa/pa.h: Likewise.
7108 * config/rs6000/rs6000.c: Likewise.
7109 * config/s390/s390.c: Likewise.
7110 * config/sparc/sparc.c: Likewise.
7111 * config/xtensa/xtensa.c: Likewise.
7112 * cselib.h: Likewise.
7113 * dbxout.c: Likewise.
7114 * dwarf2out.c: Likewise.
7115 * except.c: Likewise.
7116 * except.h: Likewise.
7117 * fixed-value.h: Likewise.
7118 * function.c: Likewise.
7119 * function.h: Likewise.
7120 * gimple.h: Likewise.
7121 * integrate.c: Likewise.
7122 * optabs.c: Likewise.
7123 * output.h: Likewise.
7124 * real.h: Likewise.
7125 * rtl.h: Likewise.
7126 * stringpool.c: Likewise.
7127 * tree-data-ref.c: Likewise.
7128 * tree-flow.h: Likewise.
7129 * tree-scalar-evolution.c: Likewise.
7130 * tree-ssa-address.c: Likewise.
7131 * tree-ssa-alias.h: Likewise.
7132 * tree-ssa-operands.h: Likewise.
7133 * tree.c: Likewise.
7134 * tree.h: Likewise.
7135 * varasm.c: Likewise.
7136 * varray.h: Likewise.
7137 * vec.h: Likewise.
7138 * coretypes.h: Do not define GTY macro if it is already defined.
7139 * doc/gty.texi: Update GTY documentation to new syntax.
7140 * gengtype-lex.l: Enforce attribute-like syntax for GTY
7141 annotations on structs.
7142 * gengtype-parse.c: Likewise.
7143
7144 2009-04-22 Mark Heffernan <meheff@google.com>
7145
7146 * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
7147
7148 2009-04-22 Kazu Hirata <kazu@codesourcery.com>
7149
7150 * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
7151 where appropriate.
7152
7153 2009-04-22 Kazu Hirata <kazu@codesourcery.com>
7154
7155 * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
7156 the same as a PLUS without a shift. Increase the cost of a
7157 CONST_INT in MULT.
7158
7159 2009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7160
7161 * Makefile.in: Update dependencies.
7162 * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
7163 * errors.h: Remove bogus comment about compatibility.
7164 (warning): Update declaration.
7165 * genautomata.c: Update all calls to warning.
7166 * gimple.c: Do not include errors.h. Include toplev.h.
7167 * tree-ssa-structalias.c: Do not include errors.h.
7168 * omega.c: Likewise.
7169 * tree-ssa-reassoc.c: Likewise.
7170 * config/spu/spu-c.c: Likewise.
7171 * config/spu/t-spu-elf: Update dependencies.
7172
7173 2009-04-22 Richard Guenther <rguenther@suse.de>
7174
7175 PR tree-optimization/39824
7176 * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
7177 make sure the types are compatible.
7178
7179 2009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7180
7181 PR c++/14875
7182 * c-common.c (c_parse_error): Take a token_flags parameter.
7183 Use token_type for the token type instead.
7184 Pass token_flags to cpp_type2name.
7185 * c-common.h (c_parse_error): Update declaration.
7186 * c-parser.c (c_parser_error): Pass 0 as token flags.
7187
7188 2009-04-22 Andrey Belevantsev <abel@ispras.ru>
7189
7190 PR rtl-optimization/39580
7191 * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert.
7192
7193 2009-04-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7194
7195 * function.c (expand_function_end): Do not emit a jump to the "naked"
7196 return label for fall-through returns.
7197 * except.c (sjlj_emit_function_exit): Always place the call to the
7198 unregister function at the location installed by expand_function_end.
7199
7200 2009-04-22 Richard Guenther <rguenther@suse.de>
7201
7202 PR tree-optimization/39845
7203 * tree-switch-conversion.c (build_arrays): Add new referenced vars.
7204 (gen_inbound_check): Likewise.
7205
7206 2009-04-22 Nathan Sidwell <nathan@codesourcery.com>
7207
7208 * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
7209 padding for PPC.
7210 (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
7211 * config/vxlib.c (__gthread_once): Add race guard for PPC.
7212
7213 2009-04-22 Paolo Bonzini <bonzini@gnu.org>
7214
7215 * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
7216 sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
7217 shift counts to avoid out-of-bounds array accesses.
7218
7219 2009-04-22 Paolo Bonzini <bonzini@gnu.org>
7220
7221 * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
7222 (Pmode): Move above.
7223
7224 2009-04-22 Uros Bizjak <ubizjak@gmail.com>
7225
7226 * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
7227 NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
7228 GET_CODE macro. Use IN_RANGE macro where appropriate.
7229 * config/alpha/alpha.h: Ditto.
7230 * config/alpha/alpha.md: Ditto.
7231 * config/alpha/constraints.md: Ditto.
7232 * config/alpha/predicates.md: Ditto.
7233
7234 2009-04-22 Paolo Bonzini <bonzini@gnu.org>
7235
7236 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
7237 * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7238 * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7239 * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7240 * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7241 * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7242 * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7243 * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7244 * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7245 * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7246 * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7247 * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7248 * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7249 * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7250 * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7251 * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7252 * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7253 * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7254 * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7255 * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7256 * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7257 * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7258 * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7259 * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7260 * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7261 * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7262 * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7263
7264 2009-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
7265
7266 * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
7267 references from comments.
7268 * cfgbuild.c: (count_basic_blocks): Delete.
7269 (find_basic_blocks_1): Delete.
7270 (find_basic_blocks): Delete.
7271 * except.c (finish_eh_generation): Make static. Move comment from
7272 except.h here. Remove find_basic_blocks references from comments.
7273 * except.h (finish_eh_generation): Delete.
7274 * basic-block.h (find_basic_blocks): Delete.
7275 * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
7276
7277 2009-04-22 Dave Korn <dave.korn.cygwin@gmail.com>
7278
7279 * sdbout.c (sdbout_symbol): Pass VOIDmode to eliminate_regs.
7280 (sdbout_parms): Likewise.
7281
7282 2009-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
7283
7284 * config/sh/sh.c (prepare_cbranch_operands): Use
7285 LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
7286 (expand_cbranchdi4): Likewise.
7287 (from_compare): Add cast to enum type.
7288 (expand_cbranchsi4): Use add_reg_note.
7289 (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
7290 (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
7291 (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
7292 (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
7293 * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
7294 instead of CODE_FOR_nothing.
7295 (cbranchdi4): Likewise. Fix the order of arguments for
7296 gen_rtx_fmt_ee.
7297 (push_fpscr): Use add_reg_note.
7298 (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
7299 reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
7300
7301 2009-04-21 Joseph Myers <joseph@codesourcery.com>
7302
7303 * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
7304 ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
7305 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
7306 ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
7307 ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
7308 FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
7309 config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
7310 config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
7311 config/alpha/x-vms, config/arc/t-arc,
7312 config/arm/README-interworking, config/arm/arm-c.c,
7313 config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
7314 config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
7315 config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
7316 config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
7317 config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
7318 config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
7319 config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
7320 config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
7321 config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
7322 config/cris/t-elfmulti, config/crx/t-crx,
7323 config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
7324 config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
7325 config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
7326 config/h8300/t-h8300, config/i386/athlon.md,
7327 config/i386/darwin-libgcc.10.4.ver,
7328 config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
7329 config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
7330 config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
7331 config/i386/t-linux64, config/i386/t-nwld,
7332 config/i386/t-rtems-i386, config/i386/t-sol2-10,
7333 config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
7334 config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
7335 config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
7336 config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
7337 config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
7338 config/iq2000/t-iq2000, config/libgcc-glibc.ver,
7339 config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
7340 config/m32r/t-m32r, config/m68hc11/t-m68hc11,
7341 config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
7342 config/m68k/t-uclinux, config/mcore/t-mcore,
7343 config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
7344 config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
7345 config/mips/crtn.asm, config/mips/irix-crti.asm,
7346 config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
7347 config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
7348 config/mips/mips-fixed.md, config/mips/sb1.md,
7349 config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
7350 config/mips/t-iris6, config/mips/t-isa3264,
7351 config/mips/t-libgcc-mips16, config/mips/t-linux64,
7352 config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
7353 config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
7354 config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
7355 config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
7356 config/mn10300/t-linux, config/mn10300/t-mn10300,
7357 config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
7358 config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
7359 config/picochip/libgccExtras/clzsi2.asm,
7360 config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
7361 config/rs6000/darwin-libgcc.10.4.ver,
7362 config/rs6000/darwin-libgcc.10.5.ver,
7363 config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
7364 config/rs6000/t-aix43, config/rs6000/t-aix52,
7365 config/rs6000/t-darwin, config/rs6000/t-fprules,
7366 config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
7367 config/rs6000/t-lynx, config/rs6000/t-netbsd,
7368 config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
7369 config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
7370 config/rs6000/t-rtems, config/rs6000/t-spe,
7371 config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
7372 config/score/t-score-elf, config/sh/divcost-analysis,
7373 config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
7374 config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
7375 config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
7376 config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
7377 config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
7378 config/stormy16/stormy-abi, config/stormy16/t-stormy16,
7379 config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
7380 config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
7381 config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
7382 config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
7383 config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
7384 gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
7385 java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
7386 limitx.h, version.c, xcoff.h: Add copyright and license notices.
7387 * config/h8300/genmova.sh: Include copyright and license notices
7388 in generated output.
7389 * config/h8300/mova.md: Regenerate.
7390 * doc/install.texi2html: Include word "Copyright" in copyright
7391 notice and use name "Free Software Foundation, Inc.".
7392 * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
7393 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
7394 ChangeLog-2007, ChangeLog-2008: Correct dates.
7395
7396 2009-04-21 Eric Botcazou <ebotcazou@adacore.com>
7397
7398 * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
7399 NE_EXPR operations as well.
7400 * c-parser.c (c_parser_condition): Do not set location information on
7401 the condition.
7402 (c_parser_conditional_expression): Likewise.
7403 (c_parser_binary_expression): Set location information on operators.
7404 * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
7405 TRUTH_NOT_EXPR has been folded.
7406 * fold-const.c (fold_truth_not_expr): Copy location information from
7407 the incoming expression to the outgoing one.
7408 * gimplify.c (shortcut_cond_r): Add locus parameter. Pass it to
7409 recursive calls on the LHS of the operator but pass that of the
7410 operator to recursive calls on the RHS of the operator. Set it
7411 on the COND_EXPR.
7412 (shortcut_cond_expr): Set the locus of the operator on the second
7413 COND_EXPR and that of the expression on the first in degenerate cases.
7414 Pass the locus of the expression to calls to shortcut_cond_r.
7415 Set the locus of the 'then' block on the associated jump, if any.
7416 (gimplify_boolean_expr): Add locus parameter. Set it on the COND_EXPR.
7417 (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
7418 expression to call to gimplify_boolean_expr.
7419
7420 2009-04-21 Kai Tietz <kai.tietz@onevision.com>
7421
7422 * config.gcc: Add additional configuration for
7423 i686-w64-mingw* and x86_64-w64-mingw* triplet.
7424 * config/i386/mingw-w64.h: New mingw-w64 specific header.
7425 (CPP_SPEC): Redefine for allowing -municode option.
7426 (STARTFILE_SPEC): Likewise.
7427 * config/i386/t-mingw-w64: New.
7428 * config/i386/mingw-w64.opt: New.
7429 (municode): Add new target option.
7430 * doc/invoke.texi (municode): Add documentation for new option.
7431
7432 2009-04-21 Ian Lance Taylor <iant@google.com>
7433
7434 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
7435 Correct test for number of arguments.
7436 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
7437
7438 2009-04-21 Andreas Schwab <schwab@linux-m68k.org>
7439
7440 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
7441 argument of emit_library_call.
7442
7443 2009-04-21 Richard Guenther <rguenther@suse.de>
7444
7445 PR middle-end/39829
7446 * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
7447 inside VIEW_CONVERT_EXPRs.
7448
7449 2009-04-21 Martin Jambor <mjambor@suse.cz>
7450
7451 * tree-switch-conversion.c (build_constructors): Split a long line.
7452 (constructor_contains_same_values_p): New function.
7453 (build_one_array): Create assigns of constants if possible, do not
7454 call mark_sym_for_renaming, call update_stmt.
7455 (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
7456 make_rename_temp. Do not call mark_symbols_for_renaming, call
7457 update_stmt.
7458 (gen_def_assigns): Do not call mark_symbols_for_renaming or
7459 find_new_referenced_vars, call update_stmt.
7460 (gen_inbound_check): Use create_tmp_var and create ssa names manually
7461 instead of calling make_rename_temp. Do not call
7462 find_new_referenced_vars or mark_symbols_for_renaming, call
7463 update_stmt.
7464
7465 2009-04-21 Richard Guenther <rguenther@suse.de>
7466
7467 PR tree-optimization/39827
7468 * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
7469 (tree_ssa_phiprop): Pass the correct array size.
7470
7471 2009-04-21 Uros Bizjak <ubizjak@gmail.com>
7472
7473 * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
7474
7475 2009-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
7476
7477 PR 16202
7478 * c-typeck.c (lvalue_p): Move declaration ...
7479 * c-common.h (lvalue_p): ... to here.
7480 * c-common.c (candidate_equal_p): New.
7481 (add_tlist): Use it.
7482 (merge_tlist): Use it.
7483 (warn_for_collisions_1): Likewise.
7484 (warning_candidate_p): Accept more candidates.
7485 (verify_tree): A warning candidate can be an expression. Use
7486 candidate_equal_p.
7487
7488 2009-04-21 Ben Elliston <bje@au.ibm.com>
7489
7490 PR target/5267
7491 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
7492 for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
7493 options. Remove -mcall-solaris documentation.
7494
7495 2009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7496
7497 PR c++/13358
7498 * doc/invoke.texi (-Wlong-long): Update description.
7499 * c-lex (interpret_integer): Only warn if there was no previous
7500 overflow and -Wlong-long is enabled.
7501 * c-decl.c (declspecs_add_type): Drop redundant flags.
7502 * c.opt (Wlong-long): Init to -1.
7503 * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
7504 and front-end warn_long_long. Wlong-long only depends on other
7505 flags if it is uninitialized.
7506 * c-parser.c (disable_extension_diagnostics): warn_long_long is
7507 the same for CPP and FE.
7508 (restore_extension_diagnostics): Likewise.
7509
7510 2009-04-20 Ian Lance Taylor <iant@google.com>
7511
7512 Fix enum conversions which are invalid in C++:
7513 * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
7514 * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
7515 * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
7516 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
7517 * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
7518 (dbxout_parms): Likewise.
7519 * df-core.c (df_set_flags): Change changeable_flags parameter to int.
7520 (df_clear_flags): Likewise.
7521 * df-problems.c (df_rd_bb_local_compute_process_def): Change
7522 top_flag parameter to int.
7523 (df_chain_create_bb_process_use): Likewise.
7524 (df_chain_add_problem): Change chain_flags parameter to unsigned int.
7525 Remove cast.
7526 * df-scan.c (df_ref_create): Change ref_flags parameter to int.
7527 (df_ref_create_structure, df_def_record_1): Likewise.
7528 (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
7529 (df_notes_rescan): Change 0 to VOIDmode in function call.
7530 (df_get_call_refs, df_insn_refs_collect): Likewise.
7531 (df_bb_regs_collect): Likewise.
7532 (df_entry_block_defs_collect): Likewise.
7533 (df_exit_block_uses_collect): Likewise.
7534 * df.h: Update declarations.
7535 * double-int.c (double_int_divmod): Add cast to enum type.
7536 * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
7537 * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
7538 (based_loc_descr): Likewise.
7539 (loc_descriptor_from_tree_1): Change first_op and second_op to
7540 enum dwarf_location_atom. Add cast to enum type.
7541 * expmed.c (init_expmed): Change 0 to SET in function call.
7542 * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
7543 (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
7544 (do_store_flag): Likewise.
7545 * fixed-value.h (struct fixed_value): Change mode to enum
7546 machine_mode.
7547 * function.c (assign_parms): Change 0 to VOIDmode in function call.
7548 * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
7549 function call.
7550 (insert_insn_decl, insert_decl, insert_state): Likewise.
7551 (automata_list_finish): Likewise.
7552 * genrecog.c (process_define_predicate): Add cast to enum type.
7553 * gensupport.c (init_predicate_table): Add cast to enum type.
7554 * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
7555 function call.
7556 (gimple_build_call_1, gimple_build_label): Likewise.
7557 (gimple_build_goto, gimple_build_asm_1): Likewise.
7558 (gimple_build_switch_1, gimple_build_cdt): Likewise.
7559 * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
7560 (enum fallback): Rename from enum fallback_t.
7561 (fallback_t): Typedef as int.
7562 * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
7563 GSI_SAME_STMT in function call.
7564 * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
7565 enum type.
7566 (setup_reg_class_relations): Likewise.
7567 (setup_reg_class_nregs): Change cl to int. Add casts to enum type.
7568 (setup_prohibited_class_mode_regs): Add cast to enum type.
7569 (setup_prohibited_mode_move_regs): Likewise.
7570 * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
7571 (record_address_regs): Change i to enum reg_class.
7572 * lists.c (alloc_EXPR_LIST): Add cast to enum type.
7573 * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
7574 (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
7575 (GET_MODE_2XWIDER_MODE): Likewise.
7576 (GET_CLASS_NARROWEST_MODE): Likewise.
7577 * omp-low.c (expand_omp_for): Add cast to enum type.
7578 * optabs.c (debug_optab_libfuncs): Add casts to enum type.
7579 * opts.c (enable_warning_as_error): Change kind to diagostic_t.
7580 * postreload.c (reload_cse_simplify_operands): Change rclass local
7581 to enum reg_class.
7582 * predict.c (combine_predictions_for_insn): Change best_predictor
7583 and predictor to enum br_predictor.
7584 (combine_predictions_for_bb): Likewise.
7585 (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
7586 use SET_PREDICT_EXPR_OUTCOME.
7587 * real.c (real_arithmetic): Change icode to code in function call.
7588 * reginfo.c (init_move_cost): Add casts to enum type.
7589 (init_reg_sets_1, init_fake_stack_mems): Likewise.
7590 * regmove.c (regclass_compatible_p): Change class0 and class1 to
7591 enum reg_class.
7592 * reload.c (find_valid_class): Add casts to enum type.
7593 (push_reload): Change 0 to NO_REGS in function call.
7594 (find_reloads): Change this_alternative to array of enum
7595 reg_class. Remove some now-unnecessary casts.
7596 (make_memloc): Change 0 to VOIDmode in function call.
7597 * reload1.c (reload): Change 0 to VOIDmode in function call.
7598 (eliminate_regs_1, elimination_effects): Likewise.
7599 (eliminate_regs_in_insn): Likewise.
7600 (emit_input_reload_insns): Add cast to enum type.
7601 (delete_output_reload): Change 0 to VOIDmode in function call.
7602 * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
7603 to enum type in function call.
7604 * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
7605 (SET_PREDICT_EXPR_OUTCOME): Define.
7606 * tree-dump.c (get_dump_file_info): Change phase parameter to int.
7607 (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
7608 (dump_initialized_p, dump_flag_name, dump_end): Likewise.
7609 (dump_function): Likewise.
7610 * tree-dump.h: Update declarations.
7611 * tree-pass.h: Update declarations.
7612 * varasm.c (assemble_integer): Change mclass to enum mode_class.
7613 * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
7614 enum type.
7615 (arm_rtx_costs_1): Correct parenthesization.
7616 (arm_rtx_costs): Add casts to enum type.
7617 (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
7618 (vfp_emit_fstmd): Use add_rg_note.
7619 (emit_multi_reg_push, emit_sfm): Likewise.
7620 (thumb_set_frame_pointer): Likewise.
7621 (arm_expand_prologue): Likewise.
7622 (arm_regno_class): Change return type to enum reg_class.
7623 (thumb1_expand_prologue): Use add_reg_note.
7624 * config/arm/arm-protos.h (arm_regno_class): Update declaration.
7625 * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
7626 in function call.
7627 * config/arm/gentune.sh: Add cast to enum type.
7628 * config/arm/arm-tune.md: Rebuild.
7629 * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
7630 (ix86_split_fp_branch, predict_jump): Likewise.
7631 (ix86_expand_multi_arg_builtin): Change sub_code from enum
7632 insn_code to enum rtx_code.
7633 (ix86_builtin_vectorized_function): Add cast to enum type.
7634 * config/i386/i386.md (truncdfsf2): Change slot to enum
7635 ix86_stack_slot.
7636 (truncxf<mode>2, isinf<mode>2): Likewise.
7637 * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
7638 enum type.
7639 * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
7640 (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
7641 (insert_bundle_state): Change 1 to INSERT in function call.
7642 (ia64_add_bundle_selector_before): Likewise.
7643 * config/ia64/ia64.md (cpu attr): Add cast to enum type.
7644 (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
7645 (restore_stack_nonlocal): Likewise.
7646 * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
7647 function call.
7648 * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
7649 function call.
7650 (mips_rtx_costs): Likewise.
7651 (mips_override_options): Add casts to enum type.
7652 * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
7653 in function call.
7654 * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
7655 (store_reg, set_reg_plus_d): Likewise.
7656 (hppa_expand_prologue, hppa_profile_hook): Likewise.
7657 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
7658 cast to enum type.
7659 (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
7660 function call.
7661 (emit_unlikely_jump): Use add_reg_note.
7662 (rs6000_emit_allocate_stack): Likewise.
7663 (rs6000_frame_related, rs6000_emit_prologue): Likewise.
7664 (output_toc): Change 1 to INSERT in function call.
7665 (output_profile_hook): Change 0 to LCT_NORMAL in function call.
7666 (rs6000_initialize_trampoline): Likewise.
7667 (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
7668 function call.
7669 * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
7670 (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
7671 (s390_expand_setmem, s390_expand_cmpmem): Likewise.
7672 (save_gprs): Use add_reg_note.
7673 (s390_emit_prologue): Likewise.
7674 (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
7675 * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
7676 (sparc_fold_builtin): Add cast to enum type.
7677 * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
7678 enum insn_code.
7679 (spu_expand_prologue): Use add_reg_note.
7680 (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
7681
7682 2009-04-20 Ian Lance Taylor <iant@google.com>
7683
7684 * c-parser.c (c_parser_attributes): Change VEC back to tree list.
7685 (c_parser_postfix_expression_after_primary): Get VEC for list of
7686 arguments. Get original types of arguments. Call
7687 build_function_call_vec.
7688 (cached_expr_list_1, cached_expr_list_2): New static variables.
7689 (c_parser_expr_list): Change return type to VEC *. Add
7690 p_orig_types parameter. Change all callers.
7691 (c_parser_release_expr): New static function.
7692 (c_parser_vec_to_tree_list): New static function.
7693 * c-typeck.c (build_function_call): Rewrite to build a VEC and
7694 call build_function_call_vec.
7695 (build_function_call_vec): New function, based on old
7696 build_function_call.
7697 (convert_arguments): Remove nargs and argarray parameters. Change
7698 values to a VEC. Add origtypes parameter.
7699 (build_modify_expr): Add rhs_origtype parameter. Change all callers.
7700 (convert_for_assignment): Add origtype parameter. Change all
7701 callers. If warn_cxx_compat, check for conversion to an enum
7702 type when calling a function.
7703 (store_init_value): Add origtype parameter. Change all callers.
7704 (digest_init): Likewise.
7705 (struct init_node): Add origtype field.
7706 (add_pending_init): Add origtype parameter. Change all callers.
7707 (output_init_element): Likewise.
7708 (output_pending_init_elements): Pass origtype from init_node to
7709 output_init_element.
7710 (process_init_element): Pass origtype from c_expr to
7711 output_init_element.
7712 (c_finish_return): Add origtype parameter. Change all callers.
7713 * c-common.c (sync_resolve_size): Change params to VEC *. Change
7714 caller.
7715 (sync_resolve_params): Likewise.
7716 (sync_resolve_return): Change params to first_param. Change caller.
7717 (resolve_overloaded_builtins): Change params to VEC *. Change
7718 callers. Save first parameter around call to build_function_call_vec.
7719 * c-decl.c (finish_decl): Add origtype parameter. Change all
7720 callers. Call build_function_call_vec rather than
7721 build_function_call for cleanup.
7722 * c-tree.h: Update declarations.
7723 * c-common.h: Update declarations.
7724 * stub-objc.c (objc_rewrite_function_call): Change parameter from
7725 params to first_param.
7726 * target.h (struct gcc_target): Change resolve_overloaded_builtin
7727 params parameter from tree to void *.
7728 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
7729 Change arglist parameter to have type void *, and to be a pointer
7730 to a VEC.
7731 * config/rs6000/rs6000-protos.h
7732 (altivec_resolve_overloaded_builtin): Update declaration.
7733 * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
7734 fnargs parameter to have type void *, and to be a pointer to a
7735 VEC. Call build_function_call_vec instead of
7736 build_function_call.
7737 * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
7738
7739 2009-04-20 Joey Ye <joey.ye@intel.com>
7740 Xuepeng Guo <xuepeng.guo@intel.com>
7741 H.J. Lu <hongjiu.lu@intel.com>
7742
7743 * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
7744
7745 * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
7746 (IX86_LEA_PRIORITY): Likewise.
7747 (distance_non_agu_define): New function.
7748 (distance_agu_use): Likewise.
7749 (ix86_lea_for_add_ok): Likewise.
7750 (ix86_dep_by_shift_count): Likewise.
7751
7752 * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
7753 should split for LEA.
7754
7755 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
7756 function.
7757 (ix86_dep_by_shift_count): Likewise.
7758
7759 2009-04-20 Richard Guenther <rguenther@suse.de>
7760
7761 * expr.c (handled_component_p): Move ...
7762 * tree.h (handled_component_p): ... here.
7763 * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
7764 ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
7765 and REALPART_EXPR to be in one group.
7766
7767 2009-04-20 Richard Guenther <rguenther@suse.de>
7768
7769 * basic-block.h (get_all_dominated_blocks): Declare.
7770 * dominance.c (get_all_dominated_blocks): New function.
7771 * tree-cfg.c (get_all_dominated_blocks): Remove.
7772 (remove_edge_and_dominated_blocks): Adjust.
7773 * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
7774 (tree_ssa_phiprop): ... here. Use get_all_dominated_blocks
7775 instead of recursing.
7776
7777 2009-04-20 Doug Kwan <dougkwan@google.com>
7778
7779 * cgraph.h (cgraph_node_ptr): New type for vector functions.
7780 (struct cgraph_node_set_def): New type.
7781 (cgraph_node_set) New type. Also declare vector functions.
7782 (struct cgraph_node_set_element_def): New type.
7783 (cgraph_node_set_element): Ditto.
7784 (cgraph_node_set_iterator): New iterator type.
7785 (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
7786 cgraph_node_set_remove, dump_cgraph_node_set,
7787 debug_cgraph_node_set): New prototypes.
7788 (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
7789 cgraph_node_set_size): New inlines.
7790 * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
7791 including cgraph.h.
7792 (struct ipa_opt_pass): Add struct cgraph_node_set_def
7793 argument to function 'write_summary'.
7794 * ipa.c: Include ggc.h.
7795 (hash_cgraph_node_set_element,
7796 eq_cgraph_node_set_element, cgraph_node_set_new,
7797 cgraph_node_set_add, cgraph_node_set_remove,
7798 cgraph_node_set_find, dump_cgraph_node_set,
7799 debug_cgraph_node_set): New functions.
7800 * Makefile.in (ipa.o): Add dependency on GGC_H.
7801
7802 2009-04-20 Ira Rosen <irar@il.ibm.com>
7803
7804 PR tree-optimization/39675
7805 * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
7806 check of the return code of vect_schedule_slp. Check that
7807 stmt_vec_info still exists for the statement, before checking its
7808 vectorization type.
7809
7810 2009-04-20 Michael Matz <matz@suse.de>
7811
7812 * Makefile.in (generated_files): Take out $(simple_generated_c).
7813
7814 2009-04-19 Dave Korn <dave.korn.cygwin@gmail.com>
7815
7816 * config/i386/cygwin-stdint.h (INTPTR_TYPE): Remove "long".
7817 (UINTPTR_TYPE): Likewise.
7818
7819 2009-04-19 Joseph Myers <joseph@codesourcery.com>
7820
7821 PR c/37481
7822 * c-typeck.c (digest_init): Check for initializing an array with a
7823 string literal.
7824
7825 2009-04-19 Joseph Myers <joseph@codesourcery.com>
7826
7827 PR c/19771
7828 * c-semantics.c (pop_stmt_list): Propagate
7829 STATEMENT_LIST_HAS_LABEL to parent statement list.
7830
7831 2009-04-19 Adam Nemet <anemet@caviumnetworks.com>
7832
7833 * config/mips/mips.h (mips_tune_attr): New macro.
7834 * config/mips/mips.md (cpu): Use it.
7835
7836 2009-04-19 Joseph Myers <joseph@codesourcery.com>
7837
7838 PR c/38243
7839 * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
7840 declaring a tag.
7841
7842 2009-04-19 Diego Novillo <dnovillo@google.com>
7843
7844 * toplev.c (compile_file): Move call to coverage_finish ...
7845 * cgraphunit.c (ipa_passes): ... here.
7846 Call cgraph_process_new_functions.
7847 * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
7848 * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
7849
7850 2009-04-19 Jan Hubicka <jh@suse.cz>
7851
7852 * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
7853 cfun.
7854 (dump_cgraph_node): Dump can throw external flag.
7855 * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
7856
7857 2009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
7858
7859 PR c/32061
7860 PR c++/36954
7861 * doc/invoke.texi: Add -Wlogical-op to -Wextra.
7862 * common.opt (Wlogical-op): Move from here...
7863 * c.opt (Wlogical-op): ... to here.
7864 * c-typeck.c (parser_build_binary_op): Update call to
7865 warn_logical_operator.
7866 * c-opts.c (c_common_post_options): Enable warn_logical_op with
7867 extra_warnings.
7868 * c-common.c (warn_logical_op): Update.
7869 * c-common.h (warn_logical_op): Update declaration.
7870
7871 2009-04-19 Eric Botcazou <ebotcazou@adacore.com>
7872
7873 * tree.c (protected_set_expr_location): Fix formatting.
7874
7875 2009-04-18 Joseph Myers <joseph@codesourcery.com>
7876
7877 PR c/27676
7878 * c-typeck.c (readonly_warning): new.
7879 (build_unary_op, build_modify_expr): Use readonly_warning for
7880 storing into something readonly but not const-qualified.
7881
7882 2009-04-18 Joseph Myers <joseph@codesourcery.com>
7883
7884 PR c/22367
7885 * c-typeck.c (build_unary_op): Check for taking address of
7886 expression of type void.
7887
7888 2009-04-18 Joseph Myers <joseph@codesourcery.com>
7889
7890 PR c/35210
7891 * c-typeck.c (build_function_call): Check for calling a function
7892 with qualified void return types. Call require_complete_type when
7893 generating a trap.
7894
7895 2009-04-18 Jan Hubicka <jh@suse.cz>
7896
7897 * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
7898 Set nothrow flag.
7899 * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
7900 can_throw_external flag.
7901 * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
7902 * ipa-pure-const.c (ignore_edge): New function.
7903 (propagate): Compute order for NOTHROW computation; set NOTHROWs
7904 only over can_throw_external edges.
7905 (local_pure_const): Add nothrow flag.
7906 * ipa-utils.c (searchc): Add ignore_edge callback.
7907 (ipa_utils_reduced_inorder): Add ignore_edge callback.
7908 * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
7909 (set_nothrow_function_flags): Update cgraph.
7910 * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
7911
7912 2009-04-18 Richard Guenther <rguenther@suse.de>
7913
7914 PR middle-end/39804
7915 * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
7916 (fold_stmt): ... this and ...
7917 (fold_stmt_inplace): ... this.
7918 (fold_stmt_1): Fold references in calls and asms.
7919 * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
7920
7921 2009-04-18 Kazu Hirata <kazu@codesourcery.com>
7922
7923 * tree-vrp.c (ssa_name_nonzero_p): Remove.
7924 * tree.h: Remove the prototype for ssa_name_nonzero_p.
7925
7926 2009-04-18 Kazu Hirata <kazu@codesourcery.com>
7927
7928 * tree.c (function_args_count): Remove.
7929 * tree.h: Remove the prototype for function_args_count.
7930
7931 2009-04-18 Kazu Hirata <kazu@codesourcery.com>
7932
7933 * tree-iterator.c (expr_only): Remove.
7934 * tree.h: Remove the prototype for expr_only.
7935
7936 2009-04-18 Kazu Hirata <kazu@codesourcery.com>
7937
7938 * reginfo.c (cannot_change_mode_set_regs): Remove.
7939 * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
7940
7941 2009-04-08 Anatoly Sokolov <aesok@post.ru>
7942
7943 * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
7944 whether operands 0 and 1 overlaps.
7945
7946 2009-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
7947
7948 PR middle-end/36902
7949 * tree-vrp.c (check_array_ref): Pass a location_t instead of a
7950 pointer. Use warning_at instead of warning.
7951 (search_for_addr_array): Likewise.
7952 (check_array_bounds): Likewise.
7953 (check_all_array_refs): Check that the incoming edge is not in the
7954 list of edges to be removed.
7955 (check_all_array_refs): Avoid the temporal pointer.
7956 (vrp_visit_cond_stmt): Fix typo.
7957 (simplify_switch_using_ranges): Handle the case where the switch
7958 index is an integer constant.
7959
7960 2009-04-18 Adam Nemet <anemet@caviumnetworks.com>
7961
7962 * config/mips/mips.c (mips_final_postscan_insn): Make it static.
7963
7964 2009-04-18 Kazu Hirata <kazu@codesourcery.com>
7965
7966 * doc/extend.texi, doc/invoke.texi: Fix typos.
7967
7968 2009-04-17 Cary Coutant <ccoutant@google.com>
7969
7970 * tree-flow-inline.h (get_lineno): Fix inverted test.
7971
7972 2009-04-17 Diego Novillo <dnovillo@google.com>
7973
7974 * tree-ssa-pre.c (create_expression_by_pieces): Remove
7975 assertion for AVAIL_OUT.
7976
7977 2009-04-17 Mike Frysinger <vapier@gentoo.org>
7978
7979 PR target/38627
7980 * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
7981 * config/sh/linux-atomic.asm: Likewise.
7982
7983 2009-04-17 Diego Novillo <dnovillo@google.com>
7984
7985 * except.c (debug_eh_tree): New.
7986 (struct eh_region, struct eh_status): Move ...
7987 * except.h: ... here.
7988 (add_type_for_runtime): Declare extern.
7989 (lookup_type_for_runtime): Likewise.
7990 (debug_eh_tree): Declare.
7991 * Makefile.in (GTFILES): List except.h before except.c
7992
7993 2009-04-17 Diego Novillo <dnovillo@google.com>
7994
7995 * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
7996 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
7997 * tree-dfa.c (find_referenced_vars_in): Factor out of ...
7998 (find_vars_r): ... here.
7999 * tree-flow.h (find_referenced_vars_in): Declare.
8000 * tree-ssa-pre.c (create_expression_by_pieces): Assert
8001 that AVAIL_OUT exists for BLOCK.
8002 * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
8003 (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
8004 (tree-parloops.o): Likewise.
8005
8006 2009-04-17 Simon Baldwin <simonb@google.com>
8007
8008 * toplev.c (default_tree_printer): Add handling for %E format.
8009
8010 2009-04-17 Diego Novillo <dnovillo@google.com>
8011
8012 * tree-pretty-print.c (dump_generic_node): Add break after
8013 TREE_BINFO handler. Handle COMPLEX_TYPE, REAL_TYPE and
8014 FIXED_POINT_TYPE. Handle NULL TREE_TYPEs. Handle METHOD_TYPE and
8015 FUNCTION_TYPE together. Call print_struct_decl when printing
8016 structures and TDF_SLIM is not given.
8017 (print_struct_decl): Fix logic for detecting recursion.
8018
8019 2009-04-17 Rafael Avila de Espindola <espindola@google.com>
8020
8021 PR 31567
8022 * gcc.c (create_at_file): New.
8023 (compile_input_file_p): New.
8024 (do_spec_1): Use @args files for %i. Use create_at_file for %o.
8025 * main.c (main): Update call to toplev_main.
8026 * toplev.c (toplev_main): Change signature. Call expandargv.
8027 * toplev.h (toplev_main): Change signature.
8028
8029 2009-04-17 Eric Botcazou <ebotcazou@adacore.com>
8030
8031 * dwarf2out.c (field_byte_offset): Use the type size as the field size
8032 if the latter is not constant.
8033
8034 2009-04-17 David Edelsohn <edelsohn@gnu.org>
8035
8036 * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
8037
8038 2009-04-17 Eric Botcazou <ebotcazou@adacore.com>
8039
8040 * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
8041 * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
8042
8043 2009-04-17 Richard Guenther <rguenther@suse.de>
8044
8045 * tree-ssa-structalias.c (get_constraint_for_component_ref):
8046 Handle component references view-converting an invariant address.
8047
8048 2009-04-17 Adam Nemet <anemet@caviumnetworks.com>
8049
8050 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
8051 TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
8052 TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
8053 TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
8054 Use @deftypevr rather than @deftypevar.
8055
8056 2009-04-17 Richard Guenther <rguenther@suse.de>
8057
8058 * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
8059 (get_prop_source_stmt): Likewise.
8060 (can_propagate_from): Likewise.
8061
8062 2009-04-17 Andrew Stubbs <ams@codesourcery.com>
8063
8064 * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
8065 TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
8066 (--with-multilib-list): Add default value.
8067 * configure: Regenerate.
8068 * Makefile.in (TM_ENDIAN_CONFIG): Define.
8069 (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
8070 * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
8071 TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
8072 Don't add default cpu to multilib list unnecessarily, but do enable
8073 the relevant compiler option..
8074 Add support for --with-multilib-list=<blank> and
8075 --with-multilib-list=!<somelib> to supress unwanted multilibs.
8076 * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
8077 (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
8078 (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
8079 TM_MULTILIB_CONFIG.
8080 (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
8081 (MULTILIB_OSDIRNAMES): New variable.
8082 * config/sh/t-1e: Delete file.
8083 * config/sh/t-mlib-sh1: Delete file.
8084 * config/sh/t-mlib-sh2: Delete file.
8085 * config/sh/t-mlib-sh2a: Delete file.
8086 * config/sh/t-mlib-sh2a-nofpu: Delete file.
8087 * config/sh/t-mlib-sh2a-single: Delete file.
8088 * config/sh/t-mlib-sh2a-single-only: Delete file.
8089 * config/sh/t-mlib-sh2e: Delete file.
8090 * config/sh/t-mlib-sh3e: Delete file.
8091 * config/sh/t-mlib-sh4: Delete file.
8092 * config/sh/t-mlib-sh4-nofpu: Delete file.
8093 * config/sh/t-mlib-sh4-single: Delete file.
8094 * config/sh/t-mlib-sh4-single-only: Delete file.
8095 * config/sh/t-mlib-sh4a: Delete file.
8096 * config/sh/t-mlib-sh4a-nofpu: Delete file.
8097 * config/sh/t-mlib-sh4a-single: Delete file.
8098 * config/sh/t-mlib-sh4a-single-only: Delete file.
8099 * config/sh/t-mlib-sh4al: Delete file.
8100 * config/sh/t-mlib-sh5-32media: Delete file.
8101 * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
8102 * config/sh/t-mlib-sh5-64media: Delete file.
8103 * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
8104 * config/sh/t-mlib-sh5-compact: Delete file.
8105 * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
8106 * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
8107 * doc/install.texi (Options specification): Add
8108 --with-multilib-list and --with-endian.
8109
8110 2009-04-17 Rafael Avila de Espindola <espindola@google.com>
8111
8112 * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
8113 REVISION_c.
8114 (OBJS-common): Add plugin-version.o.
8115 (plugin-version.o): New.
8116 * gcc-plugin.h (plugin_gcc_version): New.
8117 (plugin_default_version_check): New.
8118 (plugin_init_func, plugin_init): Add version argument.
8119 * plugin-version.c: New.
8120 * plugin.c (str_plugin_gcc_version_name): New.
8121 (try_init_one_plugin): Read plugin_gcc_version from the plugin and
8122 pass it to the init function.
8123 (plugin_default_version_check): New.
8124
8125 2009-04-17 Richard Guenther <rguenther@suse.de>
8126
8127 * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
8128 for decl-vs-decl disambiguation.
8129
8130 2009-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
8131
8132 * config/s390/s390.h (s390_tune_attr): New macro definition.
8133 * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
8134
8135 2009-04-17 Richard Guenther <rguenther@suse.de>
8136
8137 * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
8138 (fold_stmt_r): Likewise.
8139 (maybe_fold_reference): New function.
8140 (fold_gimple_assign): Handle cases fold_stmt_r did.
8141 (fold_stmt): Do not use fold_stmt_r.
8142 (fold_stmt_inplace): Likewise.
8143
8144 2009-04-17 Richard Guenther <rguenther@suse.de>
8145
8146 * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
8147 (record_equivalences_from_stmt): Remove useless checks and
8148 simplifications.
8149 * tree-ssa-pre.c (eliminate): Avoid converting a constant if
8150 the type is already suitable.
8151
8152 2009-04-17 Paolo Bonzini <bonzini@gnu.org>
8153
8154 * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
8155
8156 2009-04-17 Uros Bizjak <ubizjak@gmail.com>
8157
8158 * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
8159 (CMPtype): Define as __gcc_CMPtype.
8160
8161 2009-04-17 Aurelien Jarno <aurelien@aurel32.net>
8162
8163 * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
8164 for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
8165
8166 2009-04-17 Richard Guenther <rguenther@suse.de>
8167
8168 PR tree-optimization/39746
8169 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
8170 special-casing for builtins and static variable use/def.
8171 (call_may_clobber_ref_p_1): Likewise.
8172
8173 2009-04-16 Ian Lance Taylor <iant@google.com>
8174
8175 * df.h: Include "timevar.h".
8176 (struct df_problem): Change tv_id field to timevar_id_t.
8177 * tree-pass.h: Include "timevar.h".
8178 (struct opt_pass): Change tv_id field to timevar_id_t.
8179 * timevar.h (timevar_id_t): Define TV_NONE.
8180 * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
8181 TV_NONE rather than tv_id != 0.
8182 (execute_one_pass): Likewise.
8183 * Makefile.in (DF_H): Add $(TIMEVAR_H).
8184 (TREE_PASS_H): Define. Change all instances of tree-pass.h in
8185 dependencies to $(TREE_PASS_H).
8186 * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
8187 to TV_NONE.
8188 (pass_branch_target_load_optimize2): Likewise.
8189 * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
8190 (pass_outof_cfg_layout_mode): Likewise.
8191 * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
8192 (pass_rebuild_cgraph_edges): Likewise.
8193 (pass_remove_cgraph_callee_edges): Likewise.
8194 * df-core.c (pass_df_initialize_opt): Likewise.
8195 (pass_df_initialize_no_opt): Likewise.
8196 (pass_df_finish): Likewise.
8197 * emit-rtl.c (pass_unshare_all_rtl): Likewise.
8198 * except.c (pass_set_nothrow_function_flags): Likewise.
8199 (pass_convert_to_eh_region_ranges): Likewise.
8200 * final.c (pass_compute_alignments): Likewise.
8201 * function.c (pass_instantiate_virtual_regs): Likewise.
8202 (pass_init_function): Likewise.
8203 (pass_leaf_regs): Likewise.
8204 (pass_match_asm_constraints): Likewise.
8205 * gimple-low.c (pass_lower_cf): Likewise.
8206 (pass_mark_used_blocks): Likewise.
8207 * init-regs.c (pass_initialize_regs): Likewise.
8208 * integrate.c (pass_initial_value_sets): Likewise.
8209 * ira.c (pass_ira): Likewise.
8210 * jump.c (pass_cleanup_barriers): Likewise.
8211 * omp-low.c (pass_expand_omp): Likewise.
8212 (pass_lower_omp): Likewise.
8213 * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
8214 * recog.c (pass_split_all_insns): Likewise.
8215 (pass_split_after_reload): Likewise.
8216 (pass_split_before_regstack): Likewise.
8217 (pass_split_before_sched2): Likewise.
8218 (pass_split_for_shorten_branches): Likewise.
8219 * reginfo.c (pass_reginfo_init): Likewise.
8220 (pass_subregs_of_mode_init): Likewise.
8221 (pass_subregs_of_mode_finish): Likewise.
8222 * passes.c (pass_postreload): Likewise.
8223 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
8224 * tree-cfg.c (pass_remove_useless_stmts): Likewise.
8225 (pass_warn_function_return): Likewise.
8226 (pass_warn_function_noreturn): Likewise.
8227 * tree-complex.c (pass_lower_complex): Likewise.
8228 (pass_lower_complex_O0): Likewise.
8229 * tree-if-conv.c (pass_if_conversion): Likewise.
8230 * tree-into-ssa.c (pass_build_ssa): Likewise.
8231 * tree-mudflap.c (pass_mudflap_1): Likewise.
8232 (pass_mudflap_2): Likewise.
8233 * tree-nomudflap.c (pass_mudflap_1): Likewise.
8234 (pass_mudflap_2): Likewise.
8235 * tree-nrv.c (pass_return_slot): Likewise.
8236 * tree-object-size.c (pass_object_sizes): Likewise.
8237 * tree-optimize.c (pass_all_optimizations): Likewise.
8238 (pass_early_local_passes): Likewise.
8239 (pass_all_early_optimizations): Likewise.
8240 (pass_cleanup_cfg): Likewise.
8241 (pass_cleanup_cfg_post_optimizing): Likewise.
8242 (pass_free_datastructures): Likewise.
8243 (pass_free_cfg_annotations): Likewise.
8244 (pass_fixup_cfg): Likewise.
8245 (pass_init_datastructures): Likewise.
8246 * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
8247 (pass_late_warn_uninitialized): Likewise.
8248 (pass_update_address_taken): Likewise.
8249 * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
8250 * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
8251 (pass_cse_sincos): Likewise.
8252 (pass_convert_to_rsqrt): Likewise.
8253 * tree-ssa-structalias.c (pass_build_alias): Likewise.
8254 * tree-stdarg.c (pass_stdarg): Likewise.
8255 * tree-tailcall.c (pass_tail_recursion): Likewise.
8256 (pass_tail_calls): Likewise.
8257 * tree-vect-generic.c (pass_lower_vector): Likewise.
8258 (pass_lower_vector_ssa): Likewise.
8259 * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
8260
8261 2009-04-16 Joseph Myers <joseph@codesourcery.com>
8262
8263 * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
8264 XLR entry.
8265 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
8266 Handle -march=xlr.
8267 * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
8268 logical and signext.
8269
8270 2009-04-16 Kaz Kojima <kkojima@gcc.gnu.org>
8271
8272 PR target/39767
8273 * config/sh/predicates.md (arith_operand): Check if the operand
8274 of TRUNCATE is a REG.
8275
8276 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
8277
8278 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
8279 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
8280
8281 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
8282
8283 * tree-iterator.c (tsi_split_statement_list_after,
8284 tsi_split_statement_list_before): Remove.
8285 * tree-iterator.h: Remove the prototypes for
8286 tsi_split_statement_list_after and tsi_split_statement_list_before.
8287
8288 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
8289
8290 * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
8291 * tree-ssa-propagate.h: Remove the prototype for
8292 stmt_makes_single_load.
8293
8294 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
8295
8296 * emit-rtl.c (set_mem_attrs_from_reg): Remove.
8297 * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
8298
8299 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
8300
8301 * tree-iterator.c (EXPR_LAST_BODY): Remove.
8302
8303 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
8304
8305 * except.c (eh_region_outer_p): Remove.
8306 * except.h: Remove the prototype for eh_region_outer_p.
8307
8308 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
8309
8310 * function.c (current_function_assembler_name): Remove.
8311 * function.h: Remove the prototype for
8312 current_function_assembler_name.
8313
8314 2009-04-16 Ian Lance Taylor <iant@google.com>
8315
8316 * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
8317 (add_reg_note): Call alloc_reg_note.
8318 * rtl.h (alloc_reg_note): Declare.
8319 * combine.c (try_combine): Use alloc_reg_note.
8320 (recog_for_combine, move_deaths): Likewise.
8321 (distribute_notes): Use alloc_reg_note and add_reg_note.
8322 * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
8323 * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
8324 * reload1.c (eliminate_regs_1): Use alloc_reg_note.
8325
8326 2009-04-16 Vladimir Makarov <vmakarov@redhat.com>
8327
8328 PR rtl-optimization/39762
8329 * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
8330 ira_may_move_out_cost): Add comments about way of their usage.
8331 (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
8332
8333 * ira-conflicts.c (process_regs_for_copy): Use function
8334 ira_get_register_move_cost instead of global
8335 ira_register_move_cost.
8336
8337 * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
8338 color_pass, move_spill_restore, update_curr_costs): Ditto.
8339
8340 * ira-lives.c (process_single_reg_class_operands): Ditto.
8341
8342 * ira-emit.c (emit_move_list): Ditto.
8343
8344 * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
8345 (record_reg_classes): Ditto. Use functions
8346 ira_get_register_move_cost and ira_get_may_move_cost instead of
8347 global vars ira_register_move_cost, ira_may_move_out_cost and
8348 ira_may_move_in_cost.
8349 (record_address_regs): Don't call ira_init_register_move_cost.
8350 Use function ira_get_may_move_cost instead of global
8351 ira_may_move_in_cost.
8352 (process_bb_node_for_hard_reg_moves): Use function
8353 ira_get_register_move_cost instead of global ira_register_move_cost.
8354 (ira_costs): Don't call ira_init_register_move_cost.
8355
8356 2009-04-16 Richard Guenther <rguenther@suse.de>
8357
8358 * tree-cfg.c (verify_gimple_assign_binary):
8359 Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
8360 * ipa-struct-reorg.c (gen_size): Fold the built expressions.
8361 (create_general_new_stmt): Note that this function is broken.
8362
8363 2009-04-16 Rafael Avila de Espindola <espindola@google.com>
8364
8365 * common.opt (fhelp): Add Var(help_flag).
8366 * gcc-plugin.h (plugin_info): Add help.
8367 * plugin.c (plugin_name_args): Add help.
8368 (register_plugin_info): Set plugin->help.
8369 (print_help_one_plugin): New.
8370 (print_plugins_help): New.
8371 * plugin.h (print_plugins_help): New.
8372 * toplev.c (toplev_main): Call print_plugins_help if needed.
8373
8374 2009-04-16 Richard Guenther <rguenther@suse.de>
8375
8376 * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
8377 (gimple_ior_addresses_taken_1): New function.
8378 (gimple_ior_addresses_taken): Likewise.
8379 * gimple.h (struct gimple_statement_with_ops_base): Remove
8380 addresses_taken member.
8381 (gimple_ior_addresses_taken): Declare.
8382 (gimple_addresses_taken, gimple_addresses_taken_ptr,
8383 gimple_set_addresses_taken): Remove.
8384 * ipa-reference.c (mark_address): New function.
8385 (scan_stmt_for_static_refs): Use it for marking addresses taken.
8386 * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
8387 (mark_address_taken): ... this. Just set TREE_ADDRESSABLE.
8388 (gimple_add_to_addresses_taken): Remove.
8389 (get_tmr_operands): Call mark_address_taken.
8390 (get_asm_expr_operands): Likewise.
8391 (get_expr_operands): Likewise.
8392 (build_ssa_operands): Do not clear the addresses_taken bitmap.
8393 (free_stmt_operands): Do not free it.
8394 * tree-ssa.c (delete_tree_ssa): Likewise.
8395 (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
8396
8397 2009-04-16 Richard Guenther <rguenther@suse.de>
8398
8399 * gimple.h (walk_stmt_load_store_addr_ops): Declare.
8400 (walk_stmt_load_store_ops): Likewise.
8401 * gimple.c (get_base_loadstore): New function.
8402 (walk_stmt_load_store_addr_ops): Likewise.
8403 (walk_stmt_load_store_ops): Likewise.
8404 * ipa-pure-const.c (check_op): Simplify.
8405 (check_load, check_store): New functions.
8406 (check_stmt): Use walk_stmt_load_store_ops.
8407 * ipa-reference.c (mark_load): Adjust signature.
8408 (mark_store): Likewise.
8409 (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
8410
8411 2009-04-16 Rafael Avila de Espindola <espindola@google.com>
8412
8413 * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
8414 (plugin_info): New.
8415 * opts.c (common_handle_option): Don't call print_version.
8416 * plugin.c (plugin_name_args): Add version.
8417 (register_plugin_info): New.
8418 (register_callback): Handle PLUGIN_INFO.
8419 (try_init_one_plugin): New.
8420 (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
8421 if failed to init.
8422 (finalize_one_plugin): New.
8423 (finalize_plugins): New.
8424 (print_one_plugin): New.
8425 (print_plugins_versions): New.
8426 * plugin.h (print_plugins_versions): New.
8427 (finalize_plugins): New.
8428 * toplev.c (compile_file): Don't call initialize_plugins.
8429 (print_version): Call print_plugins_versions.
8430 (toplev_main): Call initialize_plugins. Print version if needed.
8431 Call finalize_plugins.
8432
8433 2009-04-16 Rafael Avila de Espindola <espindola@google.com>
8434
8435 * common.opt (fversion): New.
8436 * gcc.c (print_version): New.
8437 (process_command): Don't print the version. Just set print_version.
8438 (main): Print version. Call subprocesses if print_version and
8439 verbose_flag are set.
8440 * opts.c (common_handle_option): Handle OPT_fversion.
8441
8442 2009-04-16 Richard Guenther <rguenther@suse.de>
8443 Ira Rosen <irar@il.ibm.com>
8444
8445 PR tree-optimization/39698
8446 * tree-vect-loop.c (get_initial_def_for_reduction): Use the
8447 type of the reduction variable. Only generate the def if
8448 it is needed.
8449
8450 * omp-low.c (expand_omp_for_generic): When converting to a pointer
8451 make sure to first convert to an integer of the same precision.
8452 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
8453 the type of the evolution correctly in computing the new
8454 induction variable base.
8455
8456 2009-04-16 Richard Guenther <rguenther@suse.de>
8457
8458 PR middle-end/39625
8459 * tree-cfg.c (make_blocks): Split statements with to-be
8460 abnormal SSA names on the lhs.
8461
8462 2009-04-16 Paolo Bonzini <bonzini@gnu.org>
8463
8464 * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
8465 Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
8466 * c-typeck.c (really_start_incremental_init): Likewise.
8467 * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
8468 (TARGET_INITIALIZER): Remove it.
8469 * target.h (struct target): Remove vector_opaque_p.
8470 * tree.c (build_opaque_vector_type): New.
8471 * tree.h (TYPE_VECTOR_OPAQUE): New.
8472 (build_opaque_vector_type): Declare.
8473 * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
8474 * config/rs6000/rs6000.c (build_opaque_vector_type,
8475 rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
8476 (rs6000_init_builtins): Use build_opaque_vector_type for
8477 opaque_V4SI_type_node.
8478
8479 2009-04-15 Catherine Moore <clm@codesourcery.com>
8480
8481 * debug.h (set_name): Declare.
8482 * dwarf2out.c (dwarf2out_set_name): Declare.
8483 (dwarf2_debug_hooks): Add set_name.
8484 (find_AT_string): New.
8485 (add_AT_string): Call find_AT_string.
8486 (dwarf2out_set_name): New.
8487 * cp/decl.c (grokdeclarator): Call set_name.
8488 * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
8489 * debug.c (do_nothing_debug_hooks): Likewise.
8490 * dbxout.c (dbx_debug_hooks): Likewise.
8491 * sdbout.c (sdb_debug_hooks): Likewise.
8492
8493 2009-04-15 Michael Eager <eager@eagercon.com>
8494
8495 * config/rs6000/rs6000.c (rs6000_function_value): Set function return
8496 reg for single-precision FPU.
8497 * config/rs6000/rs6000.md (movsi_internal1): Only for
8498 !TARGET_SINGLE_FPU.
8499 (movsi_internal1_single): New. Add pattern to move SI values to/from
8500 single-precision FP regs.
8501
8502 2009-04-15 Richard Guenther <rguenther@suse.de>
8503
8504 * omp-low.c (lower_rec_input_clauses): Build correct address
8505 expressions.
8506 (expand_omp_for_generic): Fix multiplication type.
8507 * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
8508 (generate_memset_zero): Fix types.
8509 * tree-profile.c (prepare_instrumented_value): Correctly
8510 widen a pointer.
8511
8512 2009-04-15 Ian Lance Taylor <iant@google.com>
8513
8514 * c.opt (Wenum-compare): Enable for C and Objc. Initialize to -1.
8515 * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
8516 for -Wall and for -Wc++-compat.
8517 (c_common_post_options): For C++, set warn_enum_compare if not
8518 already set.
8519 * c-tree.h (struct c_expr): Add field original_type.
8520 (build_external_ref): Update declaration.
8521 * c-parser.c (c_parser_braced_init): Set original_type.
8522 (c_parser_initelt): Likewise.
8523 (c_parser_expr_no_commas): Likewise.
8524 (c_parser_conditional_expression): Likewise.
8525 (c_parser_cast_expression): Likewise.
8526 (c_parser_unary_expression): Likewise. Pull setting of
8527 original_code to top of function.
8528 (c_parser_sizeof_expression): Set original_type.
8529 (c_parser_alignof_expression): Likewise.
8530 (c_parser_postfix_expression): Likewise. Pull setting of
8531 original_code to top of function.
8532 (c_parser_postfix_expression_after_paren_type): Set original_type.
8533 (c_parser_postfix_expression_after_primary): Likewise.
8534 (c_parser_expression): Likewise.
8535 * c-typeck.c (build_external_ref): Add type parameter. Change all
8536 callers.
8537 (c_expr_sizeof_expr): Set original_type field.
8538 (parser_build_unary_op): Likewise.
8539 (parser_build_binary_op): Likewise. Optionally warn about
8540 comparisons of enums of different types.
8541 (digest_init): Set original_type field.
8542 (really_start_incremental_init): Likewise.
8543 (push_init_level, pop_init_level): Likewise.
8544 * doc/invoke.texi (Warning Options): -Wenum-compare now
8545 supported in C.
8546
8547 2009-04-15 Richard Guenther <rguenther@suse.de>
8548
8549 * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
8550 out a necessary conversion.
8551 * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
8552 names we didn't value number.
8553 * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
8554
8555 2009-04-15 Richard Guenther <rguenther@suse.de>
8556
8557 PR tree-optimization/39764
8558 * tree-ssa-ccp.c (get_value): Canonicalize value with
8559 canonicalize_float_value.
8560
8561 2009-04-15 Jan Hubicka <jh@suse.cz>
8562
8563 * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
8564 Wrong version of patch.
8565
8566 2009-04-15 Jan Hubicka <jh@suse.cz>
8567
8568 * builtins.def (va_start, va_end, va_copy): Mark nothrow.
8569
8570 2009-04-15 Nathan Sidwell <nathan@codesourcery.com>
8571
8572 * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
8573 our distinct integral and vector types.
8574
8575 2009-04-15 Rafael Avila de Espindola <espindola@google.com>
8576
8577 * class.c (build_vtbl_ref_1): Remove call to assemble_external.
8578 * init.c (build_vtbl_address): Remove call to assemble_external.
8579
8580 2009-04-14 Daniel Jacobowitz <dan@codesourcery.com>
8581
8582 * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
8583 output for other floating point modes.
8584
8585 2009-04-14 Diego Novillo <dnovillo@google.com>
8586
8587 * diagnostic.c (diagnostic_report_diagnostic): Do not
8588 warn about loaded plugins for DK_ERROR and DK_WARNING.
8589 * c-decl.c (declspecs_add_type): Move call to
8590 invoke_plugin_callbacks ...
8591 * c-parser.c (c_parser_declspecs): ... here.
8592 * plugin.c (dump_active_plugins): Tidy output.
8593
8594 2009-04-14 Diego Novillo <dnovillo@google.com>
8595 Le-Chun Wu <lcwu@google.com>
8596
8597 * configure.ac: Add --enable-plugin support.
8598 Define ENABLE_PLUGIN and PLUGINLIBS when specified.
8599 * Makefile.in (PLUGIN_H): Define.
8600 Export ENABLE_PLUGIN and GMPINC to site.exp.
8601 Add PLUGINLIBS to link command.
8602 Add/modify dependencies for plugin.o and files including plugin.h.
8603 (plugin.o): New.
8604 * config.in: Regenerate.
8605
8606 * opts.c (common_handle_option): Handle OPT_fplugin_ and
8607 OPT_fplugin_arg_.
8608
8609 2009-04-14 Le-Chun Wu <lcwu@google.com>
8610
8611 * tree-pass.h (register_one_dump_file): Add a prototype for
8612 register_one_dump_file.
8613 * toplev.c (compile_file): Call initialize_plugins.
8614 (do_compile): Call invoke_plugin_callbacks.
8615 (toplev_main): Call invoke_plugin_callbacks.
8616 * common.opt: Add -fplugin= and -fplugin-arg-.
8617 * gcc-plugin.h: New public header file for plugins to include.
8618 * plugin.c: New source file.
8619 * plugin.h: New internal header file.
8620 * passes.c (register_one_dump_file): Make it external.
8621
8622 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
8623
8624 2009-04-14 Diego Novillo <dnovillo@google.com>
8625
8626 * doc/plugins.texi: New.
8627 * doc/gccint.texi: Add reference to Plugins chapter.
8628 * doc/invoke.texi: Document -fplugin and -fplugin-arg
8629 * diagnostic.c (diagnostic_report_diagnostic): Warn about
8630 loaded plugins, if any.
8631 * timevar.def (TV_PLUGIN_INIT): Define.
8632 (TV_PLUGIN_RUN): Define.
8633 * plugin.c: Include timevar.h
8634 (plugins_active_p): New.
8635 (dump_active_plugins): New.
8636 (debug_active_plugins): New.
8637
8638 2009-04-14 Joseph Myers <joseph@codesourcery.com>
8639
8640 * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
8641 library paths.
8642 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
8643
8644 2009-04-14 Kazu Hirata <kazu@codesourcery.com>
8645
8646 * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
8647 the same as a minus without a shift.
8648
8649 2009-04-14 Nick Clifton <nickc@redhat.com>
8650
8651 * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
8652 comparisons with small integers will always produce a short
8653 branch.
8654
8655 2009-04-14 Rafael Avila de Espindola <espindola@google.com>
8656
8657 Merge:
8658 2008-12-19 Diego Novillo <dnovillo@google.com>
8659
8660 * cgraph.c (dump_cgraph_node): Show memory address of NODE.
8661
8662 2009-04-14 Richard Guenther <rguenther@suse.de>
8663
8664 * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
8665 verification.
8666 (verify_gimple_assign_binary): Likewise. Handle shifts and
8667 rotates correctly.
8668 (verify_gimple_phi): Print the mismatched argument position.
8669 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
8670 Fix types.
8671 (vect_update_init_of_dr): Likewise.
8672 * matrix-reorg.c (transform_access_sites): Do what the
8673 comment suggests.
8674 * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
8675
8676 2009-04-13 Michael Eager <eager@eagercon.com>
8677
8678 * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
8679 _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
8680 * config/rs6000/xilinx.h: New. Spec for powerpc-xilinx-eabi
8681 * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
8682 remove duplicate config
8683
8684 2009-04-13 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
8685
8686 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
8687 file_name:line_number type locator of the call site.
8688
8689 2009-04-13 Vladimir Makarov <vmakarov@redhat.com>
8690
8691 * genautomata.c: Put blank after comma.
8692 (automaton_decls): New.
8693 (struct unit_usage): Add comments to member next.
8694 (store_alt_unit_usage): Keep the list ordered.
8695 (unit_present_on_list_p, equal_alternatives_p): New.
8696 (check_regexp_units_distribution): Check units distribution
8697 correctness correctly.
8698 (main): Don't write automata if error is found. Return correct
8699 exit code.
8700
8701 * config/m68k/cf.md (cfv4_ds): Remove.
8702 (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
8703 cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
8704
8705 * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
8706 power4-load-ext, power4-store, power4-store-update,
8707 power4-fpstore, power4-fpstore-update, power4-two, power4-three,
8708 power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
8709 power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
8710 power4-sqrt, power4-isync): Modify reservation to make correct
8711 unit distribution to automata.
8712
8713 * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
8714 power5-store-update, power5-two, power5-three, power5-lmul,
8715 power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
8716
8717 2009-04-13 Adam Nemet <anemet@caviumnetworks.com>
8718
8719 * except.c (pass_set_nothrow_function_flags): Set name and add
8720 TODO_dump_func.
8721 (set_nothrow_function_flags): Mention in the dump file when
8722 changing a function to nothrow.
8723
8724 2009-04-13 Ozkan Sezer <sezeroz@gmail.com>
8725
8726 PR/39066
8727 * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
8728 instead of unsigned long.
8729
8730 2009-04-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8731
8732 * config/arm/arm.c (return_used_this_function): Remove.
8733 (arm_output_function_prologue): Remove use of
8734 return_used_this_function.
8735 (output_return_instruction): Replace use of
8736 return_used_this_function
8737 by cfun->machine->return_used_this_function.
8738 (arm_output_epilogue): Likewise.
8739 (arm_output_function_epilogue): Likewise.
8740 (thumb_unexpanded_epilogue): Likewise.
8741 * config/arm/arm.h (struct machine_function):
8742 New member return_used_this_function.
8743
8744 2009-04-12 Mark Mitchell <mark@codesourcery.com>
8745
8746 * doc/install.texi: Correct description of default directory for
8747 --with-gxx-include-dir.
8748
8749 2009-04-12 Eric Botcazou <ebotcazou@adacore.com>
8750
8751 * fold-const.c (build_range_check): Properly deal with enumeral and
8752 boolean base types.
8753
8754 2009-04-12 Steven Bosscher <steven@gcc.gnu.org>
8755
8756 * doc/invoke.texi (max_gcse_passes): Remove documentation.
8757 * params.def (PARAM_MAX_GCSE_PASSES): Remove.
8758 * params.h (MAX_GCSE_PASSES): Remove.
8759 * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
8760 in sequence. Remove ability to run multiple passes.
8761 (bypass_jumps): Report run as third CPROP pass.
8762
8763 2009-04-12 Adam Nemet <anemet@caviumnetworks.com>
8764
8765 PR middle-end/39651
8766 * except.c (can_throw_external): Look at each insn in a SEQUENCE
8767 when deciding whether the whole SEQUENCE can throw.
8768
8769 2009-04-12 Uros Bizjak <ubizjak@gmail.com>
8770
8771 PR target/39740
8772 * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
8773 offseted label references.
8774
8775 2009-04-11 Jan Hubicka <jh@suse.cz>
8776
8777 * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
8778
8779 2009-04-11 Richard Guenther <rguenther@suse.de>
8780
8781 PR middle-end/39732
8782 * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
8783 return variables as TREE_ADDRESSABLE.
8784
8785 2009-04-11 Richard Guenther <rguenther@suse.de>
8786
8787 PR tree-optimization/39713
8788 * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
8789 reference trees have SSA_NAME operands.
8790
8791 2009-04-11 Richard Guenther <rguenther@suse.de>
8792
8793 PR c/39712
8794 * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
8795 address expressions.
8796
8797 2009-04-11 Dave Korn <dave.korn.cygwin@gmail.com>
8798
8799 * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE): Update to
8800 match changes in Cygwin 1.7
8801 (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
8802 UINT_FAST16_TYPE, UINT_FAST32_TYPE): Likewise.
8803
8804 2009-04-10 Paolo Bonzini <bonzini@gnu.org>
8805
8806 PR tree-optimization/39701
8807 * doc/invoke.texi (Optimization Options): Document change in
8808 meaning and initialization of -fdelete-null-pointer-checks.
8809
8810 2009-04-10 H.J. Lu <hongjiu.lu@intel.com>
8811
8812 PR middle-end/39701
8813 * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
8814
8815 * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
8816 here.
8817
8818 * doc/invoke.texi: Update -fdelete-null-pointer-checks.
8819
8820 2009-04-10 Chao-ying Fu <fu@mips.com>
8821
8822 * doc/tm.texi (Instruction Output): Document
8823 TARGET_ASM_FINAL_POSTSCAN_INSN.
8824 * target.h (final_postscan_insn): New field in asm_out.
8825 * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
8826 (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
8827 * final.c (final_scan_insn): Call
8828 targetm.asm_out.final_postscan_insn after outputting
8829 an asm macro and a normal instruction.
8830
8831 * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
8832 * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
8833 * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
8834 (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
8835 (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
8836
8837 2009-04-10 Paolo Bonzini <bonzini@gnu.org>
8838
8839 PR middle-end/39701
8840 * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
8841 variables as non-NULL even with -fdelete-null-pointer-checks.
8842
8843 2009-04-10 H.J. Lu <hongjiu.lu@intel.com>
8844
8845 * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
8846
8847 2009-04-09 H.J. Lu <hongjiu.lu@intel.com>
8848
8849 PR target/39678
8850 * config/i386/i386.c (classify_argument): Handle SCmode with
8851 (bit_offset % 64) != 0.
8852
8853 2009-04-09 Sandra Loosemore <sandra@codesourcery.com>
8854
8855 * doc/invoke.texi (Optimize Options): Add cross-reference to
8856 -Q --help=optimizers examples.
8857
8858 2009-04-10 Ben Elliston <bje@au.ibm.com>
8859
8860 PR target/36800
8861 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
8862 regalign for the reg == fpr and TDmode case.
8863
8864 2009-04-09 David Ayers <ayers@fsfe.org>
8865
8866 PR objc/29200
8867 * objc/objc-act.c (warn_with_method): Remove helper function.
8868 (check_duplicates): Call warning and inform directly.
8869 (really_start_method): Likewise.
8870
8871 2009-04-09 Paolo Bonzini <bonzini@gnu.org>
8872
8873 * expmed.c (expand_divmod): Always use a comparison for a division
8874 by a large unsigned integer.
8875
8876 * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
8877 for things others than variables or functions as nonzero.
8878
8879 2009-04-09 Nick Clifton <nickc@redhat.com>
8880
8881 * unwind-compat.c: Change copyright header to refer to version
8882 3 of the GNU General Public License with version 3.1 of the
8883 GCC Runtime Library Exception and to point readers at the
8884 COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
8885 * config/alpha/crtfastmath.c: Likewise.
8886 * config/alpha/linux-unwind.h: Likewise.
8887 * config/alpha/qrnnd.asm: Likewise.
8888 * config/alpha/vms-crt0-64.c: Likewise.
8889 * config/alpha/vms-crt0.c: Likewise.
8890 * config/alpha/vms-dwarf2.asm: Likewise.
8891 * config/alpha/vms-dwarf2eh.asm: Likewise.
8892 * config/alpha/vms-psxcrt0-64.c: Likewise.
8893 * config/alpha/vms-psxcrt0.c: Likewise.
8894 * config/alpha/vms_tramp.asm: Likewise.
8895 * config/arc/initfini.c: Likewise.
8896 * config/arc/lib1funcs.asm: Likewise.
8897 * config/arm/bpabi-v6m.S: Likewise.
8898 * config/arm/bpabi.S: Likewise.
8899 * config/arm/bpabi.c: Likewise.
8900 * config/arm/crti.asm: Likewise.
8901 * config/arm/crtn.asm: Likewise.
8902 * config/arm/ieee754-df.S: Likewise.
8903 * config/arm/ieee754-sf.S: Likewise.
8904 * config/arm/lib1funcs.asm: Likewise.
8905 * config/arm/libunwind.S: Likewise.
8906 * config/arm/linux-atomic.c: Likewise.
8907 * config/arm/mmintrin.h: Likewise.
8908 * config/arm/pr-support.c: Likewise.
8909 * config/arm/unaligned-funcs.c: Likewise.
8910 * config/arm/unwind-arm.c: Likewise.
8911 * config/arm/unwind-arm.h: Likewise.
8912 * config/avr/libgcc.S: Likewise.
8913 * config/bfin/crti.s: Likewise.
8914 * config/bfin/crtlibid.s: Likewise.
8915 * config/bfin/crtn.s: Likewise.
8916 * config/bfin/lib1funcs.asm: Likewise.
8917 * config/bfin/linux-unwind.h: Likewise.
8918 * config/cris/arit.c: Likewise.
8919 * config/cris/cris_abi_symbol.c: Likewise.
8920 * config/darwin-64.c: Likewise.
8921 * config/darwin-crt2.c: Likewise.
8922 * config/darwin-crt3.c: Likewise.
8923 * config/darwin.h: Likewise.
8924 * config/dbxelf.h: Likewise.
8925 * config/dfp-bit.c: Likewise.
8926 * config/dfp-bit.h: Likewise.
8927 * config/elfos.h: Likewise.
8928 * config/fixed-bit.c: Likewise.
8929 * config/fixed-bit.h: Likewise.
8930 * config/fp-bit.c: Likewise.
8931 * config/fp-bit.h: Likewise.
8932 * config/fr30/crti.asm: Likewise.
8933 * config/fr30/crtn.asm: Likewise.
8934 * config/fr30/lib1funcs.asm: Likewise.
8935 * config/freebsd-spec.h: Likewise.
8936 * config/frv/cmovd.c: Likewise.
8937 * config/frv/cmovh.c: Likewise.
8938 * config/frv/cmovw.c: Likewise.
8939 * config/frv/frvbegin.c: Likewise.
8940 * config/frv/frvend.c: Likewise.
8941 * config/frv/lib1funcs.asm: Likewise.
8942 * config/glibc-stdint.h: Likewise.
8943 * config/h8300/clzhi2.c: Likewise.
8944 * config/h8300/crti.asm: Likewise.
8945 * config/h8300/crtn.asm: Likewise.
8946 * config/h8300/ctzhi2.c: Likewise.
8947 * config/h8300/fixunssfsi.c: Likewise.
8948 * config/h8300/lib1funcs.asm: Likewise.
8949 * config/h8300/parityhi2.c: Likewise.
8950 * config/h8300/popcounthi2.c: Likewise.
8951 * config/i386/ammintrin.h: Likewise.
8952 * config/i386/att.h: Likewise.
8953 * config/i386/avxintrin.h: Likewise.
8954 * config/i386/biarch64.h: Likewise.
8955 * config/i386/bmmintrin.h: Likewise.
8956 * config/i386/cpuid.h: Likewise.
8957 * config/i386/cross-stdarg.h: Likewise.
8958 * config/i386/crtfastmath.c: Likewise.
8959 * config/i386/crtprec.c: Likewise.
8960 * config/i386/cygming-crtbegin.c: Likewise.
8961 * config/i386/cygming-crtend.c: Likewise.
8962 * config/i386/cygwin.asm: Likewise.
8963 * config/i386/emmintrin.h: Likewise.
8964 * config/i386/gmm_malloc.h: Likewise.
8965 * config/i386/gthr-win32.c: Likewise.
8966 * config/i386/i386.h: Likewise.
8967 * config/i386/immintrin.h: Likewise.
8968 * config/i386/linux-unwind.h: Likewise.
8969 * config/i386/linux64.h: Likewise.
8970 * config/i386/mm3dnow.h: Likewise.
8971 * config/i386/mmintrin-common.h: Likewise.
8972 * config/i386/mmintrin.h: Likewise.
8973 * config/i386/nmmintrin.h: Likewise.
8974 * config/i386/pmm_malloc.h: Likewise.
8975 * config/i386/pmmintrin.h: Likewise.
8976 * config/i386/smmintrin.h: Likewise.
8977 * config/i386/sol2-c1.asm: Likewise.
8978 * config/i386/sol2-ci.asm: Likewise.
8979 * config/i386/sol2-cn.asm: Likewise.
8980 * config/i386/sol2-gc1.asm: Likewise.
8981 * config/i386/tmmintrin.h: Likewise.
8982 * config/i386/unix.h: Likewise.
8983 * config/i386/w32-unwind.h: Likewise.
8984 * config/i386/wmmintrin.h: Likewise.
8985 * config/i386/x86-64.h: Likewise.
8986 * config/i386/x86intrin.h: Likewise.
8987 * config/i386/xmmintrin.h: Likewise.
8988 * config/ia64/crtbegin.asm: Likewise.
8989 * config/ia64/crtend.asm: Likewise.
8990 * config/ia64/crtfastmath.c: Likewise.
8991 * config/ia64/crti.asm: Likewise.
8992 * config/ia64/crtn.asm: Likewise.
8993 * config/ia64/fde-glibc.c: Likewise.
8994 * config/ia64/lib1funcs.asm: Likewise.
8995 * config/ia64/linux-unwind.h: Likewise.
8996 * config/ia64/quadlib.c: Likewise.
8997 * config/ia64/unwind-ia64.c: Likewise.
8998 * config/linux.h: Likewise.
8999 * config/m32c/m32c-lib1.S: Likewise.
9000 * config/m32c/m32c-lib2-trapv.c: Likewise.
9001 * config/m32c/m32c-lib2.c: Likewise.
9002 * config/m32r/initfini.c: Likewise.
9003 * config/m68hc11/larith.asm: Likewise.
9004 * config/m68hc11/m68hc11-crt0.S: Likewise.
9005 * config/m68k/cf.md: Likewise.
9006 * config/m68k/crti.s: Likewise.
9007 * config/m68k/crtn.s: Likewise.
9008 * config/m68k/lb1sf68.asm: Likewise.
9009 * config/m68k/linux-unwind.h: Likewise.
9010 * config/mcore/crti.asm: Likewise.
9011 * config/mcore/crtn.asm: Likewise.
9012 * config/mcore/lib1.asm: Likewise.
9013 * config/mips/linux-unwind.h: Likewise.
9014 * config/mips/loongson.h: Likewise.
9015 * config/mips/mips16.S: Likewise.
9016 * config/mmix/crti.asm: Likewise.
9017 * config/mmix/crtn.asm: Likewise.
9018 * config/pa/fptr.c: Likewise.
9019 * config/pa/hpux-unwind.h: Likewise.
9020 * config/pa/lib2funcs.asm: Likewise.
9021 * config/pa/linux-atomic.c: Likewise.
9022 * config/pa/linux-unwind.h: Likewise.
9023 * config/pa/milli64.S: Likewise.
9024 * config/pa/quadlib.c: Likewise.
9025 * config/pa/stublib.c: Likewise.
9026 * config/picochip/libgccExtras/adddi3.asm: Likewise.
9027 * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
9028 * config/picochip/libgccExtras/ashlsi3.c: Likewise.
9029 * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
9030 * config/picochip/libgccExtras/ashrsi3.c: Likewise.
9031 * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
9032 * config/picochip/libgccExtras/divmod15.asm: Likewise.
9033 * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
9034 * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
9035 * config/picochip/libgccExtras/longjmp.asm: Likewise.
9036 * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
9037 * config/picochip/libgccExtras/lshrsi3.c: Likewise.
9038 * config/picochip/libgccExtras/parityhi2.asm: Likewise.
9039 * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
9040 * config/picochip/libgccExtras/setjmp.asm: Likewise.
9041 * config/picochip/libgccExtras/subdi3.asm: Likewise.
9042 * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
9043 * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
9044 * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
9045 * config/rs6000/750cl.h: Likewise.
9046 * config/rs6000/altivec.h: Likewise.
9047 * config/rs6000/biarch64.h: Likewise.
9048 * config/rs6000/crtresfpr.asm: Likewise.
9049 * config/rs6000/crtresgpr.asm: Likewise.
9050 * config/rs6000/crtresxfpr.asm: Likewise.
9051 * config/rs6000/crtresxgpr.asm: Likewise.
9052 * config/rs6000/crtsavfpr.asm: Likewise.
9053 * config/rs6000/crtsavgpr.asm: Likewise.
9054 * config/rs6000/darwin-asm.h: Likewise.
9055 * config/rs6000/darwin-fallback.c: Likewise.
9056 * config/rs6000/darwin-fpsave.asm: Likewise.
9057 * config/rs6000/darwin-ldouble.c: Likewise.
9058 * config/rs6000/darwin-tramp.asm: Likewise.
9059 * config/rs6000/darwin-unwind.h: Likewise.
9060 * config/rs6000/darwin-vecsave.asm: Likewise.
9061 * config/rs6000/darwin-world.asm: Likewise.
9062 * config/rs6000/e500crtres32gpr.asm: Likewise.
9063 * config/rs6000/e500crtres64gpr.asm: Likewise.
9064 * config/rs6000/e500crtres64gprctr.asm: Likewise.
9065 * config/rs6000/e500crtrest32gpr.asm: Likewise.
9066 * config/rs6000/e500crtrest64gpr.asm: Likewise.
9067 * config/rs6000/e500crtresx32gpr.asm: Likewise.
9068 * config/rs6000/e500crtresx64gpr.asm: Likewise.
9069 * config/rs6000/e500crtsav32gpr.asm: Likewise.
9070 * config/rs6000/e500crtsav64gpr.asm: Likewise.
9071 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
9072 * config/rs6000/e500crtsavg32gpr.asm: Likewise.
9073 * config/rs6000/e500crtsavg64gpr.asm: Likewise.
9074 * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
9075 * config/rs6000/eabi-ci.asm: Likewise.
9076 * config/rs6000/eabi-cn.asm: Likewise.
9077 * config/rs6000/eabi.asm: Likewise.
9078 * config/rs6000/linux-unwind.h: Likewise.
9079 * config/rs6000/linux64.h: Likewise.
9080 * config/rs6000/paired.h: Likewise.
9081 * config/rs6000/paired.md: Likewise.
9082 * config/rs6000/ppc64-fp.c: Likewise.
9083 * config/rs6000/ppu_intrinsics.h: Likewise.
9084 * config/rs6000/rs6000.h: Likewise.
9085 * config/rs6000/si2vmx.h: Likewise.
9086 * config/rs6000/sol-ci.asm: Likewise.
9087 * config/rs6000/sol-cn.asm: Likewise.
9088 * config/rs6000/spe.h: Likewise.
9089 * config/rs6000/spu2vmx.h: Likewise.
9090 * config/rs6000/sysv4.h: Likewise.
9091 * config/rs6000/tramp.asm: Likewise.
9092 * config/rs6000/vec_types.h: Likewise.
9093 * config/s390/linux-unwind.h: Likewise.
9094 * config/s390/tpf-unwind.h: Likewise.
9095 * config/score/crti.asm: Likewise.
9096 * config/score/crtn.asm: Likewise.
9097 * config/sh/crt1.asm: Likewise.
9098 * config/sh/crti.asm: Likewise.
9099 * config/sh/crtn.asm: Likewise.
9100 * config/sh/divtab-sh4-300.c: Likewise.
9101 * config/sh/divtab-sh4.c: Likewise.
9102 * config/sh/divtab.c: Likewise.
9103 * config/sh/lib1funcs-4-300.asm: Likewise.
9104 * config/sh/lib1funcs-Os-4-200.asm: Likewise.
9105 * config/sh/lib1funcs.asm: Likewise.
9106 * config/sh/lib1funcs.h: Likewise.
9107 * config/sh/linux-atomic.asm: Likewise.
9108 * config/sh/linux-unwind.h: Likewise.
9109 * config/sh/shmedia.h: Likewise.
9110 * config/sh/sshmedia.h: Likewise.
9111 * config/sh/ushmedia.h: Likewise.
9112 * config/sparc/crtfastmath.c: Likewise.
9113 * config/sparc/linux-unwind.h: Likewise.
9114 * config/sparc/sol2-c1.asm: Likewise.
9115 * config/sparc/sol2-ci.asm: Likewise.
9116 * config/sparc/sol2-cn.asm: Likewise.
9117 * config/spu/divmodti4.c: Likewise.
9118 * config/spu/divv2df3.c: Likewise.
9119 * config/spu/float_disf.c: Likewise.
9120 * config/spu/float_unsdidf.c: Likewise.
9121 * config/spu/float_unsdisf.c: Likewise.
9122 * config/spu/float_unssidf.c: Likewise.
9123 * config/spu/mfc_multi_tag_release.c: Likewise.
9124 * config/spu/mfc_multi_tag_reserve.c: Likewise.
9125 * config/spu/mfc_tag_release.c: Likewise.
9126 * config/spu/mfc_tag_reserve.c: Likewise.
9127 * config/spu/mfc_tag_table.c: Likewise.
9128 * config/spu/multi3.c: Likewise.
9129 * config/spu/spu_internals.h: Likewise.
9130 * config/spu/spu_intrinsics.h: Likewise.
9131 * config/spu/spu_mfcio.h: Likewise.
9132 * config/spu/vec_types.h: Likewise.
9133 * config/spu/vmx2spu.h: Likewise.
9134 * config/stormy16/stormy16-lib2.c: Likewise.
9135 * config/svr4.h: Likewise.
9136 * config/sync.c: Likewise.
9137 * config/v850/lib1funcs.asm: Likewise.
9138 * config/vxlib-tls.c: Likewise.
9139 * config/vxlib.c: Likewise.
9140 * config/vxworks-dummy.h: Likewise.
9141 * config/xtensa/crti.asm: Likewise.
9142 * config/xtensa/crtn.asm: Likewise.
9143 * config/xtensa/ieee754-df.S: Likewise.
9144 * config/xtensa/ieee754-sf.S: Likewise.
9145 * config/xtensa/lib1funcs.asm: Likewise.
9146 * config/xtensa/lib2funcs.S: Likewise.
9147 * config/xtensa/linux-unwind.h: Likewise.
9148 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
9149 * config/xtensa/unwind-dw2-xtensa.h: Likewise.
9150 * coretypes.h: Likewise.
9151 * crtstuff.c: Likewise.
9152 * defaults.h: Likewise.
9153 * dwarf2.h: Likewise.
9154 * emutls.c: Likewise.
9155 * gbl-ctors.h: Likewise.
9156 * gcov-io.h: Likewise.
9157 * ginclude/float.h: Likewise.
9158 * ginclude/iso646.h: Likewise.
9159 * ginclude/stdarg.h: Likewise.
9160 * ginclude/stdbool.h: Likewise.
9161 * ginclude/stddef.h: Likewise.
9162 * ginclude/stdfix.h: Likewise.
9163 * ginclude/stdint-gcc.h: Likewise.
9164 * ginclude/tgmath.h: Likewise.
9165 * gthr-aix.h: Likewise.
9166 * gthr-dce.h: Likewise.
9167 * gthr-gnat.c: Likewise.
9168 * gthr-gnat.h: Likewise.
9169 * gthr-lynx.h: Likewise.
9170 * gthr-mipssde.h: Likewise.
9171 * gthr-nks.h: Likewise.
9172 * gthr-posix.c: Likewise.
9173 * gthr-posix.h: Likewise.
9174 * gthr-posix95.h: Likewise.
9175 * gthr-rtems.h: Likewise.
9176 * gthr-single.h: Likewise.
9177 * gthr-solaris.h: Likewise.
9178 * gthr-tpf.h: Likewise.
9179 * gthr-vxworks.h: Likewise.
9180 * gthr-win32.h: Likewise.
9181 * gthr.h: Likewise.
9182 * libgcc2.c: Likewise.
9183 * libgcc2.h: Likewise.
9184 * libgcov.c: Likewise.
9185 * tsystem.h: Likewise.
9186 * typeclass.h: Likewise.
9187 * unwind-c.c: Likewise.
9188 * unwind-compat.h: Likewise.
9189 * unwind-dw2-fde-compat.c: Likewise.
9190 * unwind-dw2-fde-darwin.c: Likewise.
9191 * unwind-dw2-fde-glibc.c: Likewise.
9192 * unwind-dw2-fde.c: Likewise.
9193 * unwind-dw2-fde.h: Likewise.
9194 * unwind-dw2.c: Likewise.
9195 * unwind-dw2.h: Likewise.
9196 * unwind-generic.h: Likewise.
9197 * unwind-pe.h: Likewise.
9198 * unwind-sjlj.c: Likewise.
9199 * unwind.inc: Likewise.
9200 * config/arm/neon-gen.ml: Change generated copyright header to
9201 refer to version 3 of the GNU General Public License with
9202 version 3.1 of the GCC Runtime Library Exception and to point
9203 readers at the COPYING3 and COPYING3.RUNTIME files and the
9204 FSF's license web page.
9205 * config/arm/arm_neon.h: Regenerate.
9206
9207 2009-04-09 Jakub Jelinek <jakub@redhat.com>
9208
9209 * config/cris/cris.md: Change copyright header to refer to version
9210 3 of the GNU General Public License.
9211 * doc/install.texi2html: Change copyright header to refer to version
9212 3 of the GNU General Public License and to point readers at the
9213 COPYING3 file and the FSF's license web page.
9214 * config/vax/linux.h: Likewise.
9215
9216 2009-04-09 Paolo Bonzini <bonzini@gnu.org>
9217
9218 * config/i386/i386.md (cmpcc): New.
9219 * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
9220 (sync_compare_and_swap_cc*): Delete.
9221
9222 * config/s390/s390.c (s390_compare_emitted): Remove.
9223 (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
9224 s390_compare_emitted used to be handled. Assert that modes match.
9225 (s390_emit_compare_and_swap): Use s390_emit_compare, do not
9226 refer to sync_compare_and_swap_ccsi.
9227 * config/s390/s390.h (s390_compare_emitted): Remove.
9228 * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
9229 instead of s390_compare_emitted.
9230 (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
9231 instead of s390_compare_emitted.
9232 * config/s390/s390.md (cmpcc): New.
9233 (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
9234 CC_REGNUM, do not pretend it's set.
9235 (sync_compare_and_swap_cc*): Delete.
9236 * config/s390/predicates.md (cc_reg_operand): New.
9237
9238 * expr.c (sync_compare_and_swap_cc): Delete.
9239 * optabs.h (sync_compare_and_swap_cc): Delete.
9240 * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
9241 is being used with can_compare_p.
9242 (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
9243 (find_cc_set): New.
9244 (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
9245 look for a MODE_CC set instead. Use emit_store_flag.
9246 (expand_compare_and_swap_loop): Likewise, with some additional
9247 complication to avoid a force_reg when useless. Use
9248 emit_cmp_and_jump_insns.
9249 * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
9250 * doc/md.texi (sync_compare_and_swap_cc): Merge with
9251 sync_compare_and_swap documentation.
9252
9253 2009-04-09 Jan Hubicka <jh@suse.cz>
9254
9255 * except.c (find_prev_try): Break out from ....
9256 (duplicate_eh_regions): ... here; properly update prev_try pointers
9257 when duplication part of tree.
9258 (dump_eh_tree): Improve dumping.
9259 (verify_eh_region): New.
9260 (verify_eh_tree): Use it.
9261
9262 2009-04-06 Richard Guenther <rguenther@suse.de>
9263
9264 * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
9265 &ARRAY addresses by adjusting their types and prepending
9266 a conversion.
9267 * tree-cfg.c (verify_gimple_assign_single): Verify that
9268 addresses are correct.
9269
9270 2009-04-09 Richard Guenther <rguenther@suse.de>
9271
9272 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
9273 indices into an array reference if possible.
9274 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
9275 Fold POINTER_PLUS_EXPR statements with invariant address.
9276
9277 2009-04-09 Alan Modra <amodra@bigpond.net.au>
9278
9279 PR target/39634
9280 * config.gcc (powerpc64-*-linux*): Always build biarch.
9281
9282 2009-04-09 Joseph Myers <joseph@codesourcery.com>
9283
9284 PR c/39613
9285 * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
9286 it and pedwarn if this results in an INTEGER_CST.
9287
9288 2009-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9289
9290 * doc/install.texi: Update minimum GMP version. Remove obsolete
9291 text in MPFR section.
9292
9293 2009-04-08 Jakub Jelinek <jakub@redhat.com>
9294
9295 * dwarf2out.c (class_scope_p): New static inline.
9296 (class_or_namespace_scope_p): Use it.
9297 (gen_variable_die): Use DW_TAG_member tag for static data member
9298 declarations instead of DW_TAG_variable.
9299
9300 PR middle-end/39573
9301 * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
9302 variables.
9303
9304 2009-04-08 Richard Guenther <rguenther@suse.de>
9305
9306 * tree-ssa-sccvn.c (valueize_refs): Do not continue to
9307 valueize random data.
9308
9309 2009-04-08 David Edelsohn <edelsohn@gnu.org>
9310
9311 * config.gcc (aix tm_file): Add aix-stdint.h.
9312 (aix tm clause use_gcc_stdint): Set to wrap.
9313 * config/rs6000/aix-stdint.h: New file.
9314
9315 2009-04-08 Richard Guenther <rguenther@suse.de>
9316
9317 PR middle-end/36291
9318 * tree-dfa.c (add_referenced_var): Do not recurse into
9319 global initializers.
9320 * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
9321 exposed variables.
9322 (fold_const_aggregate_ref): Likewise.
9323
9324 2009-04-08 Paolo Bonzini <bonzini@gnu.org>
9325
9326 * recog.c (ordered_comparison_operator): New.
9327 * gensupport.c (std_preds): Add it.
9328 * doc/md.texi (Machine-Independent Predicates): Document it.
9329
9330 2009-04-08 Jan Hubicka <jh@suse.cz>
9331
9332 * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
9333 * function.h (rtl_eh): Remove exception_handler_label_map.
9334 * except.c (ehl_hash, ehl_eq, add_ehl_entry,
9335 remove_exception_handler_label, for_each_eh_label_1): Remove.
9336 (rtl_remove_unreachable_regions): Remove.
9337 (convert_from_eh_region_ranges): Do not remove unreachable regions.
9338 (find_exception_handler_labels): Don't build the hashtable.
9339 (maybe_remove_eh_handler): Remove.
9340 (for_each_eh_label): Rewrite to walk the tree.
9341 (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
9342 * except.h (maybe_remove_eh_handler): Remove.
9343 * passes.c (init_optimization_passes): Schedule second EH cleanup
9344 before out-of-ssa.
9345 * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
9346 cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
9347
9348 2009-04-08 Paolo Bonzini <bonzini@gnu.org>
9349
9350 * genoutput.c (validate_optab_operands): New.
9351 (gen_insn, gen_expand): Call it.
9352
9353 * genflags.c (gen_insn): Detect misused iterators.
9354 (main): Pass line_no to gen_insn, exit with status 1 on error.
9355
9356 * genextract.c (line_no): Make global.
9357 (VEC_safe_set_locstr): Change assertion to error message.
9358 (main): Exit with status 1 on error.
9359
9360 2009-04-08 Joseph Myers <joseph@codesourcery.com>
9361
9362 PR c/39614
9363 PR c/39673
9364 * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
9365 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
9366 EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
9367 * c-convert.c (convert): Do not call fold on results of conversion
9368 functions when the result is a C_MAYBE_CONST_EXPR.
9369 * c-parser.c (c_parser_postfix_expression): Do not fold condition
9370 of __builtin_choose_expr.
9371 * c-typeck.c (remove_c_maybe_const_expr): New.
9372 (build_unary_op, build_conditional_expr, build_compound_expr,
9373 build_binary_op, c_objc_common_truthvalue_conversion): Call
9374 remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
9375 integer operands.
9376
9377 2009-04-08 Bingfeng Mei <bmei@broadcom.com>
9378
9379 * fold-const.c (const_binop): Combine two VECTOR_CST under operation
9380 CODE to produce a new one. Add a prototype to use fold_convert_const
9381
9382 2009-04-08 Danny Smith <dannysmith@users.sourceforge.net>
9383
9384 PR bootstrap/39660
9385 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
9386 mix declarations and code.
9387
9388 2009-04-08 Ben Elliston <bje@au.ibm.com>
9389
9390 * gcc.c: Replace `CC' with `GCC' throughout.
9391
9392 2009-04-07 H.J. Lu <hongjiu.lu@intel.com>
9393
9394 * doc/invoke.texi: Document Atom support.
9395
9396 2009-04-07 Jason Merrill <jason@redhat.com>
9397
9398 PR c++/25185
9399 * c-common.h, c-common.c: Add flag_pretty_templates.
9400 * c-opts.c (c_common_handle_option): Set it.
9401 * c.opt: Add -fno-pretty-templates.
9402 * doc/invoke.texi (C++ Dialect Options): Likewise.
9403
9404 2009-04-07 Uros Bizjak <ubizjak@gmail.com>
9405
9406 * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
9407 (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
9408 (ia64_expand_builtin): Likewise.
9409
9410 2009-04-07 Martin Jambor <mjambor@suse.cz>
9411
9412 * tree-ssa-alias.c (refs_may_alias_p_1): Check for
9413 is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
9414 ADDR_EXPRS are include too.
9415
9416 2009-04-07 Richard Guenther <rguenther@suse.de>
9417
9418 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
9419 decls are only used if passes as parameters or if they are
9420 local statics and the call is not to a builtin.
9421 (call_may_clobber_ref_p_1): Likewise.
9422
9423 2009-04-07 Paolo Bonzini <bonzini@gnu.org>
9424
9425 * expr.c (do_store_flag): Remove last argument. Simplify code
9426 to avoid duplication of tests already done by can_compare_p.
9427 (expand_expr_real_1): Adjust caller.
9428
9429 2009-04-07 Paolo Bonzini <bonzini@gnu.org>
9430
9431 * optabs.c (can_compare_p): Test the predicate of a
9432 cbranch and cstore pattern.
9433
9434 2009-04-07 Paolo Bonzini <bonzini@gnu.org>
9435
9436 * expr.c (convert_move): Use emit_store_flag instead of
9437 "emulating" it.
9438
9439 2009-04-07 Paolo Bonzini <bonzini@gnu.org>
9440
9441 * config/i386/i386.c (ix86_compare_emitted): Remove.
9442 (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
9443 ix86_compare_op0 like ix86_compare_emitted used to be handled.
9444 * config/i386/i386.h (ix86_compare_emitted): Remove.
9445 * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
9446 instead of ix86_compare_emitted.
9447 * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
9448
9449 2009-04-07 Andrew Stubbs <ams@codesourcery.com>
9450
9451 * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
9452 Add t-sysroot-suffix to tmake_file.
9453 * config/print-sysroot-suffix.sh: New file.
9454 * config/t-sysroot-suffix: New file.
9455
9456 2009-04-07 Ben Elliston <bje@au.ibm.com>
9457
9458 * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
9459 as the latter produces a warning when the target does not support
9460 infinity.
9461
9462 2009-04-07 Ben Elliston <bje@au.ibm.com>
9463
9464 * dfp.c: Replace type punning assignments with memcpy throughout.
9465 * Makefile.in (dfp.o-warn): Remove.
9466
9467 2009-04-07 Alan Modra <amodra@bigpond.net.au>
9468
9469 PR target/39634
9470 * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
9471 Include soft-fp/t-softfp after rs6000/t-linux64.
9472
9473 2009-04-06 Eric Botcazou <ebotcazou@adacore.com>
9474
9475 * stor-layout.c (set_sizetype): Use the full precision of their
9476 machine mode for bitsize types.
9477
9478 2009-04-06 H.J. Lu <hongjiu.lu@intel.com>
9479
9480 * config/i386/i386.md: Revert 2 accidental checkins.
9481
9482 2009-04-06 Joey Ye <joey.ye@intel.com>
9483 Xuepeng Guo <xuepeng.guo@intel.com>
9484 H.J. Lu <hongjiu.lu@intel.com>
9485
9486 Atom pipeline model, tuning and insn selection.
9487 * config.gcc (atom): Add atom config options and target.
9488
9489 * config/i386/atom.md: New.
9490
9491 * config/i386/i386.c (atom_cost): New cost.
9492 (m_ATOM): New macro flag.
9493 (initial_ix86_tune_features): Set m_ATOM.
9494 (x86_accumulate_outgoing_args): Likewise.
9495 (x86_arch_always_fancy_math_387): Likewise.
9496 (processor_target): Add Atom cost.
9497 (cpu_names): Add Atom cpu name.
9498 (override_options): Set Atom ISA.
9499 (ix86_issue_rate): New case PROCESSOR_ATOM.
9500 (ix86_adjust_cost): Likewise.
9501
9502 * config/i386/i386.h (TARGET_ATOM): New target macro.
9503 (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
9504 (TARGET_OPT_AGU): New target option.
9505 (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
9506 (processor_type): Add PROCESSOR_ATOM.
9507
9508 * config/i386/i386.md (cpu): Add new value "atom".
9509 (use_carry, movu): New attr.
9510 (atom.md): Include atom.md.
9511 (adddi3_carry_rex64): Set attr "use_carry".
9512 (addqi3_carry): Likewise.
9513 (addhi3_carry): Likewise.
9514 (addsi3_carry): Likewise.
9515 (*addsi3_carry_zext): Likewise.
9516 (subdi3_carry_rex64): Likewise.
9517 (subqi3_carry): Likewise.
9518 (subhi3_carry): Likewise.
9519 (subsi3_carry): Likewise.
9520 (x86_movdicc_0_m1_rex64): Likewise.
9521 (*x86_movdicc_0_m1_se): Likewise.
9522 (x86_movsicc_0_m1): Likewise.
9523 (*x86_movsicc_0_m1_se): Likewise.
9524 (*adddi_1_rex64): Emit add insn as much as possible.
9525 (*addsi_1): Likewise.
9526 (return_internal): Set atom_unit.
9527 (return_internal_long): Likewise.
9528 (return_pop_internal): Likewise.
9529 (*rcpsf2_sse): Set atom_sse_attr attr.
9530 (*qrt<mode>2_sse): Likewise.
9531 (*prefetch_sse): Likewise.
9532
9533 * config/i386/i386-c.c (ix86_target_macros_internal): New case
9534 PROCESSOR_ATOM.
9535 (ix86_target_macros_internal): Likewise.
9536
9537 * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
9538 (*prefetch_sse_rex): Likewise.
9539 (sse_rcpv4sf2): Likewise.
9540 (sse_vmrcpv4sf2): Likewise.
9541 (sse_sqrtv4sf2): Likewise.
9542 (<sse>_vmsqrt<mode>2): Likewise.
9543 (sse_ldmxcsr): Likewise.
9544 (sse_stmxcsr): Likewise.
9545 (*sse_sfence): Likewise.
9546 (sse2_clflush): Likewise.
9547 (*sse2_mfence): Likewise.
9548 (*sse2_lfence): Likewise.
9549 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
9550 (<sse>_movup<ssemodesuffixf2c>): Likewise.
9551 (avx_movdqu<avxmodesuffix>): Likewise.
9552 (avx_lddqu<avxmodesuffix>): Likewise.
9553 (sse2_movntv2di): Change attr "type" to "ssemov".
9554 (sse2_movntsi): Likewise.
9555 (rsqrtv8sf2): Change attr "type" to "sseadd".
9556 (sse3_addsubv2df3): Set attr "atom_unit".
9557 (sse3_h<plusminus_insn>v4sf3): Likewise.
9558 (*sse2_pmaddwd): Likewise.
9559 (*vec_extractv2di_1_rex64): Likewise.
9560 (*vec_extractv2di_1_avx): Likewise.
9561 (sse2_psadbw): Likewise.
9562 (ssse3_phaddwv8hi3): Likewise.
9563 (ssse3_phaddwv4hi3): Likewise.
9564 (ssse3_phadddv4si3): Likewise.
9565 (ssse3_phadddv2si3): Likewise.
9566 (ssse3_phaddswv8hi3): Likewise.
9567 (ssse3_phaddswv4hi3): Likewise.
9568 (ssse3_phsubwv8hi3): Likewise.
9569 (ssse3_phsubwv4hi3): Likewise.
9570 (ssse3_phsubdv4si3): Likewise.
9571 (ssse3_phsubdv2si3): Likewise.
9572 (ssse3_phsubswv8hi3): Likewise.
9573 (ssse3_phsubswv4hi3): Likewise.
9574 (ssse3_pmaddubsw128): Likewise.
9575 (sse3_pmaddubsw: Likewise.
9576 (ssse3_palignrti): Likewise.
9577 (ssse3_palignrdi): Likewise.
9578
9579 2009-04-06 Gerald Pfeifer <gerald@pfeifer.com>
9580
9581 * doc/install.texi (Specific): Fix two cross-references to MinGW.
9582
9583 2009-04-06 Richard Guenther <rguenther@suse.de>
9584
9585 PR tree-optimization/28868
9586 * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
9587 of which PHI results we inserted.
9588 (insert_into_preds_of_block): Record inserted PHIs.
9589 (eliminate): Eliminate redundant PHI nodes.
9590 (init_pre): Init inserted_phi_names.
9591
9592 2009-04-06 Richard Guenther <rguenther@suse.de>
9593
9594 PR tree-optimization/39643
9595 * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
9596 IMAGPART_EXPRs of complex constants.
9597 (execute_fold_all_builtins): If we folded a call queue
9598 TODO_update_address_taken.
9599
9600 2009-04-06 Jan Hubicka <jh@suse.cz>
9601
9602 PR middle-end/39659
9603 * except.c (remove_unreachable_regions): Propagate may_contain_throw
9604 flag.
9605
9606 2009-04-06 Andrew Stubbs <ams@codesourcery.com>
9607
9608 * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
9609 delay slot.
9610 (ic_invalidate_array): Likewise.
9611
9612 2009-04-06 Hariharan Sandanagobalane <hariharan@picochip.com>
9613
9614 * calls.c (emit_library_call_value_1): Fix a problem with parameter
9615 alignment for library calls.
9616
9617 2009-04-06 Danny Smith <dannysmith@users.sourceforge.net>
9618
9619 * config.gcc (mingw32 tm_file): Add mingw-stdint.h.
9620 (mingw32 tm clause use_gcc_stdint): Set to wrap.
9621 * config/i386/mingw-stdint.h: New file.
9622
9623 2009-04-05 Richard Guenther <rguenther@suse.de>
9624
9625 PR tree-optimization/39648
9626 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
9627 our &A vs. &A[0] IL deficiencies.
9628
9629 2009-04-04 Jan Hubicka <jh@suse.cz>
9630
9631 * except.c (sjlj_find_directly_reachable_regions): Be ready for
9632 removed toplevel regions.
9633 (sjlj_mark_call_sites): Likewise.
9634
9635 2009-04-04 Dave Korn <dave.korn.cygwin@gmail.com>
9636
9637 * config.gcc (cygwin tm_file): Add cygwin-stdint.h.
9638 (cygwin tm clause use_gcc_stdint): Set to wrap.
9639 * config/i386/cygwin-stdint.h: New file.
9640
9641 2009-04-04 Richard Guenther <rguenther@suse.de>
9642
9643 * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
9644 * tree-ssa-copy.c (init_copy_prop): Do not propagate through
9645 single-argument PHIs if we are in loop-closed SSA form.
9646 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
9647 for the pre-condition.
9648 (slpeel_tree_peel_loop_to_edge): Likewise.
9649 (vect_build_loop_niters): Take an optional sequence to append stmts.
9650 (vect_generate_tmps_on_preheader): Likewise.
9651 (vect_do_peeling_for_loop_bound): Take extra guards for the
9652 pre-condition.
9653 (vect_do_peeling_for_alignment): Adjust. Unconditionally apply
9654 the cost model check.
9655 (vect_loop_versioning): Take stmt and stmt list to put pre-condition
9656 guards if we are going to peel. Do not apply versioning in that case.
9657 * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
9658 (vect_do_peeling_for_loop_bound): Likewise.
9659 * tree-vect-loop.c (vect_transform_loop): If we are peeling for
9660 loop bound only record extra pre-conditions, do not apply loop
9661 versioning.
9662
9663 2009-04-04 Richard Guenther <rguenther@suse.de>
9664
9665 * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
9666 renaming code.
9667
9668 2009-04-04 Jan Hubicka <jh@suse.cz>
9669
9670 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
9671 last_basic_block for size of bb->index indexed array.
9672 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
9673 compute_out, link_btr_uses, build_btr_def_use_webs,
9674 build_btr_def_use_webs, migrate_btr_defs): Likewise.
9675
9676 2009-04-04 Jan Hubicka <jh@suse.cz>
9677
9678 * except.c (remove_eh_handler_and_replace): Break out from ...
9679 (remove_eh_handler): ... here.
9680 (bring_to_root): New function.
9681 (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
9682 handled ones, bring others to root of tree.
9683
9684 2009-04-04 Jan Hubicka <jh@suse.cz>
9685
9686 * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
9687 (all_phis_safe_to_merge): New function.
9688 (update_info): New structure.
9689 (make_eh_edge_and_update_phi, update_eh_edges): New functions.
9690 (cleanup_empty_eh): Update SSA if possible.
9691
9692 2009-04-04 Richard Guenther <rguenther@suse.de>
9693
9694 * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
9695 * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
9696 (append_vuse): Likewise.
9697
9698 2009-04-04 Jakub Jelinek <jakub@redhat.com>
9699
9700 * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
9701 * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
9702 instead of REG_UNSAVED for DW_CFA_undefined.
9703 (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
9704 (uw_update_context): If RA column is REG_UNDEFINED, mark it as
9705 outermost frame.
9706
9707 2009-04-04 Richard Earnshaw <rearnsha@arm.com>
9708
9709 PR target/39501
9710 * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
9711 * testsuite/gcc.c-torture/execute/pr39501.c: New file.
9712 * testsuite/gcc.c-torture/execute/pr39501.x: New file.
9713
9714 2009-04-04 Richard Guenther <rguenther@suse.de>
9715
9716 PR tree-optimization/8781
9717 PR tree-optimization/37892
9718 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
9719 * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
9720 (valueize_refs): Call it for *& valueizations.
9721 (shared_reference_ops_from_ref): Rename to ...
9722 (valueize_shared_reference_ops_from_ref): ... this and valueize.
9723 (shared_reference_ops_from_call): Rename to ...
9724 (valueize_shared_reference_ops_from_call): ... this and valueize.
9725 (vn_reference_lookup): Update.
9726 (visit_reference_op_call): Likewise.
9727 * tree-ssa-pre.c (phi_translate_1): Fold *&.
9728 (eliminate): Value-replace the call address in call statements.
9729
9730 2009-04-04 Richard Guenther <rguenther@suse.de>
9731
9732 PR tree-optimization/39636
9733 * tree-ssa-forwprop.c
9734 (forward_propagate_addr_into_variable_array_index): Check for
9735 GIMPLE_ASSIGN before accessing the rhs code.
9736
9737 2009-04-03 Jason Merrill <jason@redhat.com>
9738
9739 * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
9740
9741 2009-04-03 Steve Ellcey <sje@cup.hp.com>
9742
9743 * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
9744 truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
9745 fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
9746 floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
9747 fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
9748 smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
9749 divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
9750 umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
9751 *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
9752 *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
9753 adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
9754 smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
9755 *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
9756 *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
9757 sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
9758 Use fr_reg_or_fp01_operand instead of fr_register_operand
9759
9760 * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
9761 recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
9762 divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
9763
9764 2009-04-03 Vladimir Makarov <vmakarov@redhat.com>
9765
9766 PR rtl-optimization/39607
9767 PR rtl-optimization/39631
9768
9769 Revert:
9770
9771 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
9772 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
9773 instead of DF_LR_OUT.
9774 * ira-lives.c (process_bb_node_lives): Ditto.
9775 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
9776 instead of DF_LR_{OUT,IN}.
9777 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
9778 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
9779
9780 2009-04-03 Steven Bosscher <steven@gcc.gnu.org>
9781
9782 * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
9783 (execute_lower_omp): Always run but take the short way out if -fopenmp
9784 is not given.
9785 (gate_lower_omp): Remove, forcing the pass manager to always run the
9786 pass and always set PROP_gimple_lomp.
9787 (pass_lower_omp): Remove gate function.
9788 * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
9789 PROP_trees. Instead, require it.
9790 * ipa-cp.c (pass_ipa_cp): Likewise.
9791 * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
9792 (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
9793 * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
9794 and PROP_gimple_leh.
9795
9796 2009-04-03 Richard Guenther <rguenther@suse.de>
9797
9798 PR middle-end/13146
9799 PR tree-optimization/23940
9800 PR tree-optimization/33237
9801 PR middle-end/33974
9802 PR middle-end/34093
9803 PR tree-optimization/36201
9804 PR tree-optimization/36230
9805 PR tree-optimization/38049
9806 PR tree-optimization/38207
9807 PR tree-optimization/38230
9808 PR tree-optimization/38301
9809 PR tree-optimization/38585
9810 PR middle-end/38895
9811 PR tree-optimization/38985
9812 PR tree-optimization/39299
9813 * tree-ssa-structalias.h: Remove.
9814 * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
9815 (NULL_DEF_OPERAND_P): Make of type def_operand_p.
9816 (struct vuse_element_d): Remove.
9817 (struct vuse_vec_d): Likewise.
9818 (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
9819 VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
9820 SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
9821 VUSE_ELEMENT_VAR): Likewise.
9822 (struct voptype_d): Likewise.
9823 (NUM_VOP_FREE_BUCKETS): Likewise.
9824 (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
9825 (struct stmt_operands_d): Remove.
9826 (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
9827 VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
9828 VDEF_NUM, VDEF_VECT): Likewise.
9829 (copy_virtual_operands): Remove.
9830 (operand_build_cmp): Likewise.
9831 (create_ssa_artificial_load_stmt): Likewise.
9832 (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
9833 (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
9834 vuse_index and mayuse_index members. Pack and move done and iter_type
9835 members to the front.
9836 (SSA_OP_VMAYUSE): Remove.
9837 (SSA_OP_VIRTUAL_USES): Adjust.
9838 (FOR_EACH_SSA_VDEF_OPERAND): Remove.
9839 (unlink_stmt_vdef): Declare.
9840 (add_to_addressable_set): Remove.
9841 * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
9842 (vrp_visit_stmt): Likewise.
9843 * doc/tree-ssa.texi (Alias analysis): Update.
9844 * doc/invoke.texi (max-aliased-vops): Remove docs.
9845 (avg-aliased-vops): Likewise.
9846 * tree-into-ssa.c (syms_to_rename): Remove.
9847 (need_to_update_vops_p): Likewise.
9848 (need_to_initialize_update_ssa_p): Rename to ...
9849 (update_ssa_initialized_fn): ... this. Track function we are
9850 initialized for.
9851 (symbol_marked_for_renaming): Simplify.
9852 (add_new_name_mapping): Do not set need_to_update_vops_p.
9853 (dump_currdefs): Use SYMS_TO_RENAME.
9854 (rewrite_update_stmt): Always walk all uses/defs.
9855 (dump_update_ssa): Adjust.
9856 (init_update_ssa): Take function argument. Track what we are
9857 initialized for.
9858 (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
9859 (create_new_def_for): Initialize for cfun, assert we are initialized
9860 for cfun.
9861 (mark_sym_for_renaming): Simplify.
9862 (mark_set_for_renaming): Do not initialize update-ssa.
9863 (need_ssa_update_p): Simplify. Take function argument.
9864 (name_mappings_registered_p): Assert we ask for the correct function.
9865 (name_registered_for_update_p): Likewise.
9866 (ssa_names_to_replace): Likewise.
9867 (release_ssa_name_after_update_ssa): Likewise.
9868 (update_ssa): Likewise. Use SYMS_TO_RENAME.
9869 (dump_decl_set): Do not print a newline.
9870 (debug_decl_set): Do it here.
9871 (dump_update_ssa): And here.
9872 * tree-ssa-loop-im.c (move_computations): Adjust.
9873 (movement_possibility): Likewise.
9874 (determine_max_movement): Likewise.
9875 (gather_mem_refs_stmt): Likewise.
9876 * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
9877 or NAME_MEMORY_TAG.
9878 * tree-complex.c (update_all_vops): Remove.
9879 (expand_complex_move): Adjust.
9880 * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
9881 Simplify test for memory referencing statement. Exclude
9882 non-invariant ADDR_EXPRs.
9883 * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
9884 * tree-loop-distribution.c (generate_memset_zero): Adjust.
9885 (rdg_flag_uses): Likewise.
9886 * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
9887 related code.
9888 (tree_optimize_tail_calls_1): Also split the
9889 edge from the entry block if we have degenerate PHI nodes in
9890 the first basic block.
9891 * tree.c (init_ttree): Remove memory-tag related code.
9892 (tree_code_size): Likewise.
9893 (tree_node_structure): Likewise.
9894 (build7_stat): Re-write to be build6_stat.
9895 * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
9896 (SSA_VAR_P): Adjust.
9897 (struct tree_memory_tag): Remove.
9898 (struct tree_memory_partition_tag): Likewise.
9899 (union tree_node): Adjust.
9900 (build7): Re-write to be build6.
9901 * tree-pass.h (pass_reset_cc_flags): Remove.
9902 (TODO_update_address_taken): New flag.
9903 (pass_simple_dse): Remove.
9904 * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
9905 * params.h (MAX_ALIASED_VOPS): Remove.
9906 (AVG_ALIASED_VOPS): Likewise.
9907 * omp-low.c (expand_omp_taskreg): Update SSA form.
9908 * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
9909 aliases the lhs in a copy stmt.
9910 * tree-ssa-dse.c (struct address_walk_data): Remove.
9911 (memory_ssa_name_same): Likewise.
9912 (memory_address_same): Likewise.
9913 (get_kill_of_stmt_lhs): Likewise.
9914 (dse_possible_dead_store_p): Simplify, use the oracle. Handle
9915 unused stores. Look through PHI nodes into post-dominated regions.
9916 (dse_optimize_stmt): Simplify. Properly remove stores.
9917 (tree_ssa_dse): Compute dominators.
9918 (execute_simple_dse): Remove.
9919 (pass_simple_dse): Likewise.
9920 * ipa-reference.c (scan_stmt_for_static_refs): Open-code
9921 gimple_loaded_syms and gimple_stored_syms computation.
9922 * toplev.c (dump_memory_report): Dump alias and pta stats.
9923 * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
9924 (vn_reference_eq): Likewise.
9925 (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
9926 copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
9927 valueize_vuses): Remove.
9928 (get_def_ref_stmt_vuses): Simplify. Rename to ...
9929 (get_def_ref_stmt_vuse): ... this.
9930 (vn_reference_lookup_2): New function.
9931 (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
9932 walking equivalent vuses. Simplify.
9933 (vn_reference_lookup): Likewise.
9934 (vn_reference_insert): Likewise.
9935 (vn_reference_insert_pieces): Likewise.
9936 (visit_reference_op_call): Simplify.
9937 (visit_reference_op_load): Likewise.
9938 (visit_reference_op_store): Likewise.
9939 (init_scc_vn): Remove shared_lookup_vuses initialization.
9940 (free_scc_vn): Remove shared_lookup_vuses freeing.
9941 (sort_vuses, sort_vuses_heap): Remove.
9942 (get_ref_from_reference_ops): Export.
9943 * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
9944 vector with single vuse pointer.
9945 (vn_reference_lookup_pieces, vn_reference_lookup,
9946 vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
9947 (shared_vuses_from_stmt): Remove.
9948 (get_ref_from_reference_ops): Declare.
9949 * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
9950 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
9951 memory-tag related code.
9952 * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
9953 (likely_value): Add comment, skip static-chain of call statements.
9954 (surely_varying_stmt_p): Adjust.
9955 (gimplify_and_update_call_from_tree): Likewise.
9956 (execute_fold_all_builtins): Do not rebuild alias info.
9957 (gimplify_and_update_call_from_tree): Properly update VOPs.
9958 * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
9959 (copy_ref_info): Remove memory-tag related code.
9960 * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
9961 * ipa-pure-const.c (check_decl): Remove memory-tag related code.
9962 (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
9963 computation.
9964 * tree-ssa-dom.c (gimple_p): Remove typedef.
9965 (eliminate_redundant_computations): Adjust.
9966 (record_equivalences_from_stmt): Likewise.
9967 (avail_expr_hash): Likewise.
9968 (avail_expr_eq): Likewise.
9969 * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
9970 (stmt_makes_single_load): Likewise.
9971 (stmt_makes_single_store): Likewise.
9972 * tree-ssa-alias.c: Rewrite completely.
9973 (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
9974 debug_mem_sym_stats, dump_mem_sym_stats_for_var,
9975 debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
9976 delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
9977 dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
9978 Remove public functions.
9979 (pass_reset_cc_flags): Remove.
9980 (pass_build_alias): Move ...
9981 * tree-ssa-structalias.c (pass_build_alias): ... here.
9982 * tree-ssa-alias.c (may_be_aliased): Move ...
9983 * tree-flow-inline.h (may_be_aliased): ... here.
9984 tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
9985 count_uses_and_derefs): Move ...
9986 * gimple.c: ... here.
9987 * gimple.h (count_uses_and_derefs): Declare.
9988 * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
9989 ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
9990 same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
9991 indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
9992 ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
9993 call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
9994 get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
9995 New functions.
9996 * tree-dfa.c (refs_may_alias_p): Move ...
9997 * tree-ssa-alias.c (refs_may_alias_p): ... here. Extend.
9998 * tree-ssa-alias.h: New file.
9999 * tree-ssa-sink.c (is_hidden_global_store): Adjust.
10000 (statement_sink_location): Likewise.
10001 * opts.c (decode_options): Do not adjust max-aliased-vops or
10002 avg-aliased-vops values.
10003 * timevar.def (TV_TREE_MAY_ALIAS): Remove.
10004 (TV_CALL_CLOBBER): Likewise.
10005 (TV_FLOW_SENSITIVE): Likewise.
10006 (TV_FLOW_INSENSITIVE): Likewise.
10007 (TV_MEMORY_PARTITIONING): Likewise.
10008 (TV_ALIAS_STMT_WALK): New timevar.
10009 * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
10010 * tree-ssa-address.c (create_mem_ref_raw): Use build6.
10011 (get_address_description): Remove memory-tag related code.
10012 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
10013 * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
10014 * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
10015 and immediate uses in statements. Document.
10016 * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
10017 (dump_symbols): Remove.
10018 (dump_gimple_mem_ops): Do not dump loaded or stored syms.
10019 * alias.c (get_deref_alias_set): New function split out from ...
10020 (get_alias_set): ... here.
10021 * alias.h (get_deref_alias_set): Declare.
10022 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
10023 type parameter. Remove restrict pointer handling. Create a
10024 ref-all pointer in case type-based alias sets do not conflict.
10025 (vect_analyze_data_refs): Remove SMT related code.
10026 * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
10027 (vectorizable_load): Likewise.
10028 * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
10029 (DR_SYMBOL_TAG, DR_VOPS): Remove.
10030 * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
10031 Ignore vops and SMTs.
10032 (dr_analyze_alias): Likewise..
10033 (free_data_ref): Likewise.
10034 (create_data_ref): Likewise.
10035 (analyze_all_data_dependences): Likewise.
10036 (get_references_in_stmt): Adjust.
10037 * tree-flow-inline.h (gimple_aliases_computed_p,
10038 gimple_addressable_vars, gimple_call_clobbered_vars,
10039 gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
10040 factoring_name_p, mark_call_clobbered, clear_call_clobbered,
10041 compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
10042 gimple_mem_ref_stats): Remove.
10043 (gimple_vop): New function.
10044 (op_iter_next_use): Remove vuses and mayuses cases.
10045 (op_iter_next_def): Remove vdefs case.
10046 (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
10047 (clear_and_done_ssa_iter): Do not set removed fields.
10048 (op_iter_init): Likewise. Skip vuse and/or vdef if requested.
10049 Assert we are not iterating over vuses or vdefs if not also
10050 iterating over uses or defs.
10051 (op_iter_init_use): Likewise.
10052 (op_iter_init_def): Likewise.
10053 (op_iter_next_vdef): Remove.
10054 (op_iter_next_mustdef): Likewise.
10055 (op_iter_init_vdef): Likewise.
10056 (compare_ssa_operands_equal): Likewise.
10057 (link_use_stmts_after): Handle vuse operand.
10058 (is_call_used): Use is_call_clobbered.
10059 (is_call_clobbered): Global variables are always call clobbered,
10060 query the call-clobbers bitmap.
10061 (mark_call_clobbered): Ignore global variables.
10062 (clear_call_clobbered): Likewise.
10063 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
10064 virtual operands sanity check.
10065 * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
10066 Remove.
10067 (TARGET_MEM_REF): Remove TMR_TAG operand.
10068 * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
10069 Remove call-clobber related code.
10070 (remove_referenced_var): Likewise. Do not clear mpt or symbol_mem_tag.
10071 (dump_variable): Do not dump SMTs, memory stats, may-aliases or
10072 partitions or escape reason.
10073 (get_single_def_stmt, get_single_def_stmt_from_phi,
10074 get_single_def_stmt_with_phi): Remove.
10075 (dump_referenced_vars): Tidy.
10076 (get_ref_base_and_extent): Allow bare decls.
10077 (collect_dfa_stats): Adjust.
10078 * graphite.c (rename_variables_in_stmt): Adjust.
10079 (graphite_copy_stmts_from_block): Likewise.
10080 (translate_clast): Likewise.
10081 * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
10082 (EXPR_DIES): New.
10083 (translate_vuse_through_block): Use the oracle.
10084 (phi_translate_1): Adjust.
10085 (value_dies_in_block_x): Use the oracle. Cache the outcome
10086 in EXPR_DIES.
10087 (valid_in_sets): Check if the VUSE for
10088 a REFERENCE is available.
10089 (eliminate): Do not remove stmts during elimination,
10090 instead queue and remove them afterwards.
10091 (do_pre): Do not rebuild alias info.
10092 (pass_pre): Run TODO_rebuild_alias before PRE.
10093 * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
10094 * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
10095 (mark_all_v_defs_stmt): Remove.
10096 (mark_all_v_defs_seq): Adjust.
10097 (sra_replace): Likewise.
10098 (scalarize_use): Likewise.
10099 (scalarize_copy): Likewise.
10100 (scalarize_init): Likewise.
10101 (scalarize_ldst): Likewise.
10102 (todoflags): Remove.
10103 (tree_sra): Do not rebuild alias info.
10104 (tree_sra_early): Adjust.
10105 (pass_sra): Run TODO_update_address_taken before SRA.
10106 * tree-predcom.c (set_alias_info): Remove.
10107 (prepare_initializers_chain): Do not call it.
10108 (mark_virtual_ops_for_renaming): Adjust.
10109 (mark_virtual_ops_for_renaming_list): Remove.
10110 (initialize_root_vars): Adjust.
10111 (initialize_root_vars_lm): Likewise.
10112 (prepare_initializers_chain): Likewise.
10113 * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
10114 (may_propagate_copy_into_stmt): Likewise.
10115 (merge_alias_info): Do nothing for now.
10116 (propagate_tree_value_into_stmt): Adjust.
10117 (stmt_may_generate_copy): Likewise.
10118 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
10119 not mark symbols for renaming.
10120 (forward_propagate_addr_expr): Match up push/pop_stmt_changes
10121 with the same statement, make sure to update the new pointed-to one.
10122 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
10123 call statements, do not mark symbols for renaming.
10124 (mark_operand_necessary): Dump something.
10125 (ref_may_be_aliased): New function.
10126 (mark_aliased_reaching_defs_necessary_1): New helper function.
10127 (mark_aliased_reaching_defs_necessary): Likewise.
10128 (mark_all_reaching_defs_necessary_1): Likewise.
10129 (mark_all_reaching_defs_necessary): Likewise.
10130 (propagate_necessity): Do not process virtual PHIs. For
10131 non-aliased loads mark all reaching definitions as necessary.
10132 For aliased loads and stores mark the immediate dominating
10133 aliased clobbers as necessary.
10134 (visited): New global static.
10135 (perform_tree_ssa_dce): Free visited bitmap after propagating
10136 necessity.
10137 (remove_dead_phis): Perform simple dead virtual PHI removal.
10138 (remove_dead_stmt): Properly unlink virtual operands when
10139 removing stores.
10140 (eliminate_unnecessary_stmts): Schedule PHI removal after
10141 stmt removal.
10142 * tree-ssa-ter.c (is_replaceable_p): Adjust.
10143 (process_replaceable): Likewise.
10144 (find_replaceable_in_bb): Likewise.
10145 * tree-ssa.c (verify_ssa_name): Verify all VOPs are
10146 based on the single gimple vop.
10147 (verify_flow_insensitive_alias_info): Remove.
10148 (verify_flow_sensitive_alias_info): Likewise.
10149 (verify_call_clobbering): Likewise.
10150 (verify_memory_partitions): Likewise.
10151 (verify_alias_info): Likewise.
10152 (verify_ssa): Adjust..
10153 (execute_update_addresses_taken): Export. Update SSA
10154 manually. Optimize only when optimizing. Use a local bitmap.
10155 (pass_update_address_taken): Remove TODO_update_ssa, add
10156 TODO_dump_func.
10157 (pass_update_address_taken): Just use TODO_update_address_taken.
10158 (init_tree_ssa): Do not initialize addressable_vars.
10159 (verify_ssa): Verify new VUSE / VDEF properties.
10160 Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
10161 Do not call verify_alias_info.
10162 (delete_tree_ssa): Clear the VUSE, VDEF operands.
10163 Do not free the loaded and stored syms bitmaps. Reset the escaped
10164 and callused solutions. Do not free addressable_vars.
10165 Remove memory-tag related code.
10166 (warn_uninitialized_var): Aliases are always available.
10167 * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
10168 * lambda-code.c (can_put_in_inner_loop): Adjust.
10169 (can_put_after_inner_loop): Likewise.
10170 (perfect_nestify): Likewise.
10171 * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
10172 (vect_gen_widened_results_half): Remove CALL_EXPR handling.
10173 (vectorizable_conversion): Do not mark symbols for renaming.
10174 * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
10175 (expand_call_inline): Unlink the calls virtual operands before
10176 replacing it.
10177 (tree_function_versioning): Do not call update_ssa if we are not
10178 updating clones. Simplify.
10179 * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
10180 (propagate_with_phi): Likewise..
10181 * tree-outof-ssa.c (create_temp): Remove memory tag and call
10182 clobber code. Assert we are not aliased or global.
10183 * tree-flow.h: Include tree-ssa-alias.h
10184 (enum escape_type): Remove.
10185 (struct mem_sym_stats_d): Likewise.
10186 (struct mem_ref_stats_d): Likewise.
10187 (struct gimple_df): Add vop member. Remove global_var,
10188 call_clobbered_vars, call_used_vars, addressable_vars,
10189 aliases_compted_p and mem_ref_stats members. Add syms_to_rename,
10190 escaped and callused members.
10191 (struct ptr_info_def): Remove all members, add points-to solution
10192 member pt.
10193 (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
10194 call_clobbered, escape_mask, mpt and symbol_mem_tag members.
10195 * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
10196 (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
10197 (tree-ssa-alias.o): Likewise.
10198 (toplev.o): Add tree-ssa-alias.h
10199 (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
10200 * gimple.c (gimple_set_bb): Fix off-by-one error.
10201 (is_gimple_reg): Do not handle memory tags.
10202 (gimple_copy): Also copy virtual operands.
10203 Delay updating the statement. Do not reset loaded and stored syms.
10204 (gimple_set_stored_syms): Remove.
10205 (gimple_set_loaded_syms): Likewise.
10206 (gimple_call_copy_skip_args): Copy the virtual operands
10207 and mark the new statement modified.
10208 * tree-ssa-structalias.c (may_alias_p): Remove.
10209 (set_uids_in_ptset): Take the alias set to prune with as
10210 parameter. Fold in the alias test of may_alias_p.
10211 (compute_points_to_sets): Compute whether a ptr is dereferenced
10212 in a local sbitmap.
10213 (process_constraint): Deal with &ANYTHING on the lhs, reject all
10214 other ADDRESSOF constraints on the lhs.
10215 (get_constraint_for_component_ref): Assert that we don't get
10216 ADDRESSOF constraints from the base of the reference.
10217 Properly generate UNKNOWN_OFFSET for DEREF if needed.
10218 (struct variable_info): Remove collapsed_to member.
10219 (get_varinfo_fc): Remove.
10220 (new_var_info): Do not set collapsed_to.
10221 (dump_constraint): Do not follow cycles.
10222 (dump_constraint_graph): Likewise.
10223 (build_pred_graph): Likewise.
10224 (build_succ_graph): Likewise.
10225 (rewrite_constraints): Likewise.
10226 (do_simple_structure_copy): Remove.
10227 (do_rhs_deref_structure_copy): Remove.
10228 (do_lhs_deref_structure_copy): Remove.
10229 (collapse_rest_of_var): Remove.
10230 (do_structure_copy): Re-implement.
10231 (pta_stats): New global variable.
10232 (dump_pta_stats): New function.
10233 (struct constraint_expr): Make offset signed.
10234 (UNKNOWN_OFFSET): Define special value.
10235 (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
10236 (solution_set_expand): New helper function split out from ...
10237 (do_sd_constraint): ... here.
10238 (solution_set_add): Handle UNKNOWN_OFFSET. Handle negative offsets.
10239 (do_ds_constraint): Likewise.
10240 (do_sd_constraint): Likewise. Do not special-case ESCAPED = *ESCAPED
10241 and CALLUSED = *CALLUSED.
10242 (set_union_with_increment): Make inc argument signed.
10243 (type_safe): Remove.
10244 (get_constraint_for_ptr_offset): Handle unknown and negative
10245 constant offsets.
10246 (first_vi_for_offset): Handle offsets before start. Bail
10247 out early for offsets beyond the variable extent.
10248 (first_or_preceding_vi_for_offset): New function.
10249 (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
10250 Together with ESCAPED = *ESCAPED this properly computes reachability.
10251 (find_what_var_points_to): New function.
10252 (find_what_p_points_to): Implement in terms of find_what_var_points_to.
10253 (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
10254 pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
10255 pt_solutions_intersect): New functions.
10256 (compute_call_used_vars): Remove.
10257 (compute_may_aliases): New main entry into PTA computation.
10258 * gimple.h (gimple_p): New typedef.
10259 (struct gimple_statement_base): Remove references_memory_p.
10260 (struct gimple_statement_with_memory_ops_base): Remove
10261 vdef_ops, vuse_ops, stores and loads members. Add vdef and vuse
10262 members.
10263 (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
10264 gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
10265 gimple_set_references_memory): Remove.
10266 (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
10267 gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
10268 New functions.
10269 * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
10270 (verify_expr): Allow RESULT_DECL.
10271 (gimple_duplicate_bb): Do not copy virtual operands.
10272 (gimple_duplicate_sese_region): Adjust.
10273 (gimple_duplicate_sese_tail): Likewise.
10274 (mark_virtual_ops_in_region): Remove.
10275 (move_sese_region_to_fn): Do not call it.
10276 * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
10277 and pass_simple_dse.
10278 (execute_function_todo): Handle TODO_update_address_taken,
10279 call execute_update_addresses_taken for TODO_rebuild_alias.
10280 (execute_todo): Adjust.
10281 (execute_one_pass): Init dump files early.
10282 * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
10283 call-clobbered.
10284 (create_general_new_stmt): Clear vops.
10285 * tree-ssa-reassoc.c (get_rank): Adjust.
10286 * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
10287 symbols for renaming.
10288 * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
10289 (PARAM_AVG_ALIASED_VOPS): Likewise.
10290 * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
10291 (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
10292 * tree-ssa-operands.c: Simplify for new virtual operand representation.
10293 (operand_build_cmp, copy_virtual_operands,
10294 create_ssa_artificial_load_stmt, add_to_addressable_set,
10295 gimple_add_to_addresses_taken): Remove public functions.
10296 (unlink_stmt_vdef): New function.
10297
10298 2009-04-03 Alan Modra <amodra@bigpond.net.au>
10299
10300 * config.gcc (powerpc-*-linux*): Merge variants.
10301
10302 2009-04-02 Chao-ying Fu <fu@mips.com>
10303 James Grosbach <james.grosbach@microchip.com>
10304
10305 * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
10306 num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
10307 cop0_sp_offset.
10308 (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
10309 keep_interrupts_masked_p, use_debug_exception_return_p.
10310 (mips_attribute_table): Add interrupt, use_shadow_register_set,
10311 keep_interrupts_masked, use_debug_exception_return.
10312 (mips_interrupt_type_p, mips_use_shadow_register_set_p,
10313 mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
10314 New functions.
10315 (mips_function_ok_for_sibcall): Return false for interrupt handlers.
10316 (mips_print_operand): Process COP0 registers to print $0 .. $31
10317 correctly for GAS to process.
10318 (mips_interrupt_extra_call_saved_reg_p): New function.
10319 (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
10320 extra registers.
10321 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
10322 (mips_compute_frame_info): Add supports for interrupt context that
10323 includes doubleword accumulators and COP0 registers.
10324 (mips_for_each_saved_acc): New function.
10325 (mips_for_each_saved_gpr_and_fpr): Change the function name from
10326 mips_for_each_saved_reg.
10327 (mips_save_reg): Save accumulators.
10328 (mips_kernel_reg_p): A new for_each_rtx callback.
10329 (mips_expand_prologue): Support interrupt handlers.
10330 (mips_restore_reg): Restore accumulators.
10331 (mips_expand_epilogue): Support interrupt handlers.
10332 (mips_can_use_return_insn): Return false for interrupt handlers.
10333 (mips_epilogue_uses): New function.
10334 * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
10335 UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
10336 (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
10337 cop0_move): New instructions.
10338 * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
10339 * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
10340 defines.
10341 (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
10342 New defines.
10343 (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
10344 (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
10345 interrupt handlers, we use K0 as the temporary register.
10346 (EPILOGUE_USES): Change to a function call.
10347 * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
10348 handlers, we use K0 as the temporary register.
10349
10350 * doc/extend.texi (Function Attributes): Document interrupt,
10351 use_shadow_register_set, keep_interrupts_masked,
10352 use_debug_exception_return for MIPS attributes.
10353
10354 2009-04-03 Alan Modra <amodra@bigpond.net.au>
10355
10356 * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
10357 Remove a number of t-files from tmake_file.
10358 * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
10359 * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
10360 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
10361 target_prototype, not TARGET_PROTOTYPE.
10362 (LINK_OS_GNU_SPEC): Define.
10363 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
10364 and darwin-ldoubdle.c.
10365
10366 2009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
10367
10368 PR driver/39293
10369 * gcc.c (save_temps_flag): Add support for -save-temps=obj.
10370 (cpp_options): Ditto.
10371 (default_compilers): Ditto.
10372 (display_help): Ditto.
10373 (process_command): Ditto.
10374 (do_spec_1): Ditto.
10375 (set_input): Use lbasename instead of duplicate code.
10376 (save_temps_prefix): New static for -save-temps=obj.
10377 (save_temps_length): Ditto.
10378
10379 * doc/invoke.texi (-save-temps=obj): Document new variant to
10380 -save-temps switch.
10381
10382 2009-04-02 Jeff Law <law@redhat.com>
10383
10384 * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
10385 variable.
10386
10387 2009-04-02 H.J. Lu <hongjiu.lu@intel.com>
10388
10389 * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
10390 * configure: Regenerated.
10391
10392 2009-04-02 Rafael Avila de Espindola <espindola@google.com>
10393
10394 * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
10395 share the argument list.
10396
10397 2009-04-02 Rafael Avila de Espindola <espindola@google.com>
10398
10399 Merge
10400
10401 2009-02-12 Diego Novillo <dnovillo@google.com>
10402
10403 * varpool.c (debug_varpool): New.
10404 * cgraph.h (debug_varpool): Declare.
10405
10406 2009-04-02 Jan Hubicka <jh@suse.cz>
10407
10408 * passes.c (init_optimization_passes): Remove two copies of ehcleanup
10409 pass.
10410
10411 2009-04-02 H.J. Lu <hongjiu.lu@intel.com>
10412
10413 * config/i386/i386.c (ix86_abi): Move initialization to ...
10414 (override_options): Here.
10415
10416 2009-04-02 Christian Bruel <christian.bruel@st.com>
10417
10418 * config/sh/sh.c (sh_dwarf_register_span): New function.
10419 (TARGET_DWARF_REGISTER_SPAN): Define.
10420 * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
10421
10422 2009-04-02 Ira Rosen <irar@il.ibm.com>
10423
10424 PR tree-optimization/39595
10425 * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
10426 interleaved loads group is not greater than the SLP group size.
10427
10428 2009-04-02 Rafael Avila de Espindola <espindola@google.com>
10429
10430 * builtins.c (is_builtin_name): New.
10431 (called_as_built_in): Use is_builtin_name.
10432 * tree.h (is_builtin_name): New.
10433 * varasm.c (incorporeal_function_p): Use is_builtin_name
10434
10435 2009-04-02 Andrew Stubbs <ams@codesourcery.com>
10436
10437 * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
10438
10439 2009-04-02 Dodji Seketeli <dodji@redhat.com>
10440
10441 PR c++/26693
10442 * c-decl.c (clone_underlying_type): Move this ...
10443 * c-common.c (set_underlying_type): ... here.
10444 Also, make sure the function properly sets TYPE_STUB_DECL() on
10445 the newly created typedef variant type.
10446 * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
10447 * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
10448 points.
10449
10450 2009-04-02 Richard Guenther <rguenther@suse.de>
10451
10452 PR tree-optimization/37221
10453 * tree-flow.h (degenerate_phi_result): Declare.
10454 * tree-ssa-dom.c (degenerate_phi_result): Export.
10455 * tree-scalar-evolution.c (analyze_initial_condition): If
10456 the initial condition is defined by a degenerate PHI node
10457 use the degenerate value.
10458
10459 2009-04-01 Eric Botcazou <ebotcazou@adacore.com>
10460
10461 PR rtl-optimization/39588
10462 * combine.c (merge_outer_ops): Do not set the constant when this
10463 is not necessary.
10464 (simplify_shift_const_1): Do not modify it either in this case.
10465
10466 2009-04-01 Steven Bosscher <steven@gcc.gnu.org>
10467
10468 * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
10469 tuning is deprecated if -mtune value is set to an Itanium1 variant.
10470
10471 2009-04-01 Janis Johnson <janis187@us.ibm.com>
10472
10473 PR c/29027
10474 * c-lex.c (interpret_float): Default (no suffix) is double.
10475
10476 2009-04-1 Xinliang David Li <davidxl@google.com>
10477
10478 * config/i386/i386.c (legitimate_constant_p): Recognize
10479 all one vector constant.
10480
10481 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
10482
10483 * config/vax/vax.c: Add #includes to silence warnings.
10484 Change #include order to silence two warnings.
10485
10486 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
10487
10488 * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
10489 (ASM_SPEC): Pass -k to the assembler for PIC code.
10490
10491 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
10492
10493 * config.gcc: Add vax-*-linux* to the switch.
10494 * config/vax/linux.h: New file. (TARGET_VERSION,
10495 TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
10496
10497 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
10498
10499 * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
10500 Use predicate macros instead of GET_CODE() == foo.
10501 * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
10502 ashlsi3, rotrsi3, <unnamed>): Likewise.
10503
10504 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
10505
10506 * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
10507 jbbccihi, jbbccisi): Remova trailing whitespace.
10508 * config/vax/constraints.md: Likewise.
10509 * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
10510 * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
10511 * config/vax/predicates.md: Likewise.
10512 * config/vax/vax.c (print_operand_address, vax_output_int_move,
10513 vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
10514 * config/vax/vax.h: Likewise.
10515 * config/vax/vax.md (nonlocal_goto): Likewise.
10516
10517 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
10518
10519 * config/vax/vax.c (vax_float_literal, vax_output_int_move)
10520 (indirectable_address_p, adjacent_operands_p): Add spaces around
10521 braces.
10522 * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
10523
10524 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
10525
10526 * config/vax/vax.c (legitimate_constant_address_p,
10527 legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
10528 index_term_p, reg_plus_index_p, legitimate_address_p,
10529 vax_mode_dependent_address_p): Update comments to match functions
10530 modified by the recent int->bool conversion.
10531
10532 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
10533
10534 * config/vax/builtins.md: Update copyright message.
10535 * config/vax/constraints.md: Likewise.
10536 * config/vax/netbsd-elf.h: Likewise.
10537 * config/vax/predicates.md: Likewise.
10538 * config/vax/vax-protos.h: Likewise.
10539 * config/vax/vax.c: Likewise.
10540 * config/vax/vax.h: Likewise.
10541 * config/vax/vax.md: Likewise.
10542 * config/vax/vax.opt: Likewise.
10543
10544 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
10545
10546 * config/vax/builtins.md (ffssi2, ffssi2_internal,
10547 sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
10548 * config/vax/constraints.md (B, R): Likewise.
10549 * config/vax/predicates.md (external_memory_operand,
10550 nonimmediate_addsub_di_operand): Likewise.
10551 * config/vax/vax.c (vax_output_int_add): Likewise.
10552 * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
10553 untyped_call): Likewise.
10554
10555 2009-04-01 Matt Thomas <matt@3am-software.com>
10556
10557 * config/vax/predicates.md: New file.
10558 (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
10559 external_const_operand, nonsymbolic_operand, external_memory_operand,
10560 indirect_memory_operand, indexed_memory_operand,
10561 illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
10562 nonimmediate_addsub_di_operand, general_addsub_di_operand): New
10563 predicate.
10564 * config/vax/constraints.md: New file.
10565 (Z0, U06, U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
10566 New constraint.
10567 * config/vax/builtins.md: New file.
10568 (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
10569 jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
10570 jbbccisi): Define.
10571 * config/vax/vax.opt (mqmath): Add option.
10572 * config/vax/vax.md (isfx): Extend with DI.
10573 (VAXintQH, VAXintQHSD): Define.
10574 (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
10575 mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
10576 and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
10577 one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
10578 (movdi): Update constraints and use vax_output_int_move().
10579 (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
10580 movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
10581 pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
10582 nonlocal_goto): New.
10583 (mov<mode>): Extend accepted operand types.
10584 (subdi3_old): Rename from subdi3, change update constraints and use
10585 a new implementation.
10586 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
10587 (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
10588 MOVE_RATIO, CLEAR_RATIO): Define.
10589 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
10590 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
10591 (PRINT_OPERAND): Redefine using a function instead of inlined code.
10592 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
10593 (split_quadword_operands): Make static and really allow variable
10594 splitting.
10595 (print_operand_address): Update for PIC generation.
10596 (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
10597 indexable_address_p, fixup_mathdi_operand,
10598 vax_expand_addsub_di_operands, adjacent_operands_p): New.
10599 (vax_float_literal, legitimate_constant_p,
10600 indirectable_constant_address_p, index_term_p,
10601 reg_plus_index_p): Return bool instead of int.
10602 (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
10603 where needed.
10604 (vax_output_int_move, vax_output_int_add): Extend to allow PIC
10605 generation.
10606 (vax_output_conditional_branch): Indent.
10607 (legitimate_constant_address_p, indirectable_constant_address_p,
10608 indirectable_address_p, nonindexed_address_p, legitimate_address_p,
10609 vax_mode_dependent_address_p): Return bool instead of int, update for
10610 PIC generation.
10611 * config/vax/vax-protos.h (legitimate_constant_address_p,
10612 legitimate_constant_p, legitimate_address_p,
10613 vax_mode_dependent_address_p): Change declaration to bool.
10614 (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
10615 vax_expand_addsub_di_operands, vax_output_int_subtract,
10616 vax_output_movmemsi): Declare.
10617 (split_quadword_operands, vax_float_literal): Delete declaration.
10618 * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
10619 * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
10620 VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
10621 ASM_OUTPUT_DWARF_PCREL): Define.
10622 (ASM_SPEC): Change definition to allow PIC generation.
10623
10624 2009-04-01 Steve Ellcey <sje@cup.hp.com>
10625
10626 * doc/sourcebuild.texi: Update front-end requirements.
10627
10628 2009-04-01 Jakub Jelinek <jakub@redhat.com>
10629
10630 PR target/39226
10631 * config/rs6000/rs6000.md (andsi3_internal5_nomc,
10632 anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
10633 (booldi3_internal3): Use boolean_or_operator instead of
10634 boolean_operator.
10635
10636 2009-04-01 Joseph Myers <joseph@codesourcery.com>
10637
10638 PR c/39605
10639 * c-decl.c (grokdeclarator): Pedwarn for file-scope array
10640 declarator whose size is not an integer constant expression but
10641 folds to an integer constant, then treat it as a constant
10642 subsequently.
10643
10644 2009-04-01 Richard Guenther <rguenther@suse.de>
10645
10646 * fold-const.c (fold_plusminus_mult_expr): Do not fold
10647 i * 4 + 2 to (i * 2 + 1) * 2.
10648
10649 2009-04-01 Jakub Jelinek <jakub@redhat.com>
10650
10651 PR c/37772
10652 * c-parser.c (c_parser_asm_statement): Skip until close paren and
10653 return if c_parser_asm_string_literal returned NULL.
10654
10655 2009-04-01 Nick Clifton <nickc@redhat.com>
10656
10657 * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
10658 already defined.
10659 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
10660 * config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the
10661 other typedefs to avoid conflicts with libgcc2.c. Define labels
10662 to gain 16-bit bit-manipulation functions from libgcc2.c and then
10663 include it.
10664 * config/m32c/m32c-lib2-trapv.c: New file. Define labels
10665 to gain 16-bit trapping arithmetic functions from libgcc2.c and
10666 then include it.
10667
10668 2009-04-01 Rafael Avila de Espindola <espindola@google.com>
10669
10670 * varasm.c (default_function_rodata_section): Declare DOT as
10671 const char*.
10672
10673 2009-04-01 Kai Tietz <kai.tietz@onevision.com>
10674 Andrey Galkin <agalkin@hypercom.com>
10675
10676 PR/39492
10677 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
10678 Make object_name unique for each process.
10679
10680 2009-04-01 Jakub Jelinek <jakub@redhat.com>
10681
10682 PR other/39591
10683 * omp-low.c (remove_exit_barrier): Don't optimize if there are any
10684 addressable variables in the parallel that could go out of scope while
10685 running queued tasks.
10686
10687 2009-04-01 Anatoly Sokolov <aesok@post.ru>
10688
10689 * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
10690 (CASE_VALUES_THRESHOLD): Redefine.
10691 * config/avr/avr.c (avr_override_options): Remove initialization of
10692 avr_case_values_threshold variable.
10693 (avr_case_values_threshold): Remove variable. Add new function.
10694 * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
10695 * config/avr/avr.opt (mno-tablejump): Remove option.
10696 * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
10697
10698 2009-04-01 DJ Delorie <dj@redhat.com>
10699
10700 * varasm.c (default_function_rodata_section): Don't assume
10701 anything about where the first '.' in the section name is.
10702
10703 2009-04-01 Alan Modra <amodra@bigpond.net.au>
10704
10705 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
10706 rs6000_emit_stack_tie.
10707
10708 2009-03-31 Ian Lance Taylor <iant@google.com>
10709
10710 * tree-eh.c (tree_remove_unreachable_handlers): Compare
10711 gimple_code with GIMPLE_RESX, not RESX.
10712
10713 2009-03-31 Joseph Myers <joseph@codesourcery.com>
10714
10715 * c-common.c (c_get_ident): New.
10716 (c_common_nodes_and_builtins): Call it for type names that may be NULL.
10717
10718 2009-04-01 Ben Elliston <bje@au.ibm.com>
10719
10720 * config/rs6000/sysv4.opt (msdata): Improve option description.
10721
10722 2009-03-31 Steve Ellcey <sje@cup.hp.com>
10723
10724 * config/ia64/ia64.md (divsf3_internal_lat): Remove.
10725 (divdf3_internal_lat): Remove.
10726 (divxf3_internal_lat): Remove.
10727 (divxf3_internal_thr): Remove.
10728 (divxf): Use divxf3_internal.
10729 * config/ia64/div.md (divsf3_internal_lat): New.
10730 (divdf3_internal_lat): New.
10731 (divxf3_internal): New.
10732
10733 2009-03-31 Joseph Myers <joseph@codesourcery.com>
10734
10735 PR c/448
10736 * Makefile.in (USE_GCC_STDINT): Define.
10737 (stmp-int-hdrs): Install stdint.h if applicable.
10738 * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
10739 if known.
10740 (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
10741 (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
10742 UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
10743 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
10744 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
10745 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
10746 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
10747 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
10748 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
10749 (c_common_nodes_and_builtins): Initialize
10750 underlying_wchar_type_node. Do not initialize
10751 signed_wchar_type_node or unsigned_wchar_type_node. Initialize
10752 nodes for new types.
10753 (c_stddef_cpp_builtins): Define macros for new types.
10754 * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
10755 Remove.
10756 (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
10757 CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
10758 CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
10759 CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
10760 CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
10761 CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
10762 CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
10763 CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
10764 CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
10765 (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
10766 (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
10767 int16_type_node, int32_type_node, int64_type_node,
10768 uint8_type_node, uint16_type_node, c_uint32_type_node,
10769 c_uint64_type_node, int_least8_type_node, int_least16_type_node,
10770 int_least32_type_node, int_least64_type_node,
10771 uint_least8_type_node, uint_least16_type_node,
10772 uint_least32_type_node, uint_least64_type_node,
10773 int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
10774 int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
10775 uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
10776 uintptr_type_node): Define.
10777 * c-cppbuiltin.c (builtin_define_constants,
10778 builtin_define_type_minmax): New.
10779 (builtin_define_stdint_macros): Define more macros.
10780 (c_cpp_builtins): Define more limit macros.
10781 (type_suffix): New.
10782 (builtin_define_type_max): Define in terms of
10783 builtin_define_type_minmax. Remove is_long parameter. All
10784 callers changed.
10785 * config.gcc (use_gcc_stdint): Define.
10786 (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
10787 Add newlib-stdint.h for generic targets.
10788 * config/glibc-stdint.h, config/newlib-stdint.h,
10789 ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
10790 * config/m32c/m32c.h (UINTPTR_TYPE): Define.
10791 * config/score/score.h (UINTPTR_TYPE): Define.
10792 * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
10793 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
10794 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
10795 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
10796 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
10797 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
10798 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
10799 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
10800 * config/spu/spu.h (STDINT_LONG32): Define.
10801 * configure.ac (use_gcc_stdint): Substitute.
10802 * configure: Regenerate.
10803 * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
10804 __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
10805 __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
10806 __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
10807 __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
10808 __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
10809 __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
10810 __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
10811 __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
10812 __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
10813 __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
10814 __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
10815 __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
10816 __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
10817 __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
10818 __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
10819 __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
10820 __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
10821 __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
10822 __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
10823 __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
10824 * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
10825 INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
10826 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
10827 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
10828 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
10829 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
10830 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
10831 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
10832
10833 2009-03-31 Bernd Schmidt <bernd.schmidt@analog.com>
10834
10835 * loop-iv.c (suitable_set_for_replacement): Renamed from
10836 simplify_using_assignment; changed to return bool and to accept new
10837 args DEST and SRC. Return true iff we find a source/destination pair
10838 that can be used to make a replacement, and fill SRC and DEST if so.
10839 Remove arg ALTERED. Don't deal with altered regs here. All callers
10840 changed.
10841 (simplify_using_initial_values): Deal with altered regs here and track
10842 more precisely the effect they have on the validity of our expression.
10843
10844 * loop-iv.c (simplify_using_condition): A condition of the form
10845 (EQ REG CONST) can be used to simply make a substitution.
10846 (simplify_using_initial_values): Keep track of conditions we have seen
10847 and keep using them to simplify new expressions, while applying the
10848 same substitutions to them as to the expression.
10849
10850 * simplify-rtx.c (simplify_relational_operation_1): Simplify
10851 (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
10852 GEU/LTU reversed.
10853
10854 * loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers
10855 changed. Use this when trying to improve the upper bound.
10856 Generate the comparison by using simplify_gen_relational.
10857
10858 * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
10859
10860 * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
10861 functions.
10862 (simplify_using_assignment, simplify_using_initial_values): Call
10863 replace_in_expr to make replacements. Call replace_single_def_regs
10864 once on the initial version of the expression.
10865
10866 2009-03-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10867
10868 PR target/27237
10869 * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
10870
10871 2009-03-31 Richard Guenther <rguenther@suse.de>
10872
10873 PR middle-end/31029
10874 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
10875 equality comparisons. Fold C - X CMP X if C % 2 == 1.
10876
10877 2009-03-31 Richard Guenther <rguenther@suse.de>
10878
10879 * tree.h (div_if_zero_remainder): Declare.
10880 * fold-const.c (div_if_zero_remainder): Export.
10881 * tree-ssa-forwprop.c
10882 (forward_propagate_addr_into_variable_array_index): Handle
10883 constant array index addition outside of the variable index.
10884
10885 2009-03-31 Joseph Myers <joseph@codesourcery.com>
10886
10887 PR target/39592
10888 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
10889 define_splits, floatunssi<mode>2): Require x87 conversions from
10890 DImode to be permitted.
10891
10892 2009-03-31 Joseph Myers <joseph@codesourcery.com>
10893
10894 PR preprocessor/15638
10895 * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
10896
10897 2009-03-31 Richard Guenther <rguenther@suse.de>
10898
10899 PR middle-end/23401
10900 PR middle-end/27810
10901 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
10902 (struct tree_decl_with_vis): Remove gimple_formal_temp member.
10903 * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
10904 a separate statement.
10905 * gimplify.c (pop_gimplify_context): Remove formal temp handling.
10906 (lookup_tmp_var): Likewise.
10907 (is_gimple_formal_tmp_or_call_rhs): Remove.
10908 (is_gimple_reg_or_call_rhs): Rename to ...
10909 (is_gimple_reg_rhs_or_call): ... this.
10910 (is_gimple_mem_or_call_rhs): Rename to ...
10911 (is_gimple_mem_rhs_or_call): ... this.
10912 (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set
10913 DECL_GIMPLE_REG_P only if is_formal is true.
10914 (gimplify_compound_lval): Use is_gimple_reg. Remove workaround
10915 for non-proper post-modify expression gimplification.
10916 (gimplify_self_mod_expr): For post-modify expressions gimplify
10917 the lvalue to a minimal lvalue.
10918 (rhs_predicate_for): Remove formal temp case.
10919 (gimplify_modify_expr_rhs): Likewise.
10920 (gimplify_addr_expr): Use is_gimple_reg.
10921 (gimplify_expr): Remove formal temp cases.
10922 (gimple_regimplify_operands): Likewise.
10923 * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
10924 and FILTER_EXPR like constants.
10925 * gimple.c (walk_gimple_op): Fix val_only initialization, use
10926 is_gimple_reg.
10927 (is_gimple_formal_tmp_rhs): Remove.
10928 (is_gimple_reg_rhs): Remove special casing.
10929 (is_gimple_mem_rhs): Fix.
10930 (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
10931 (is_gimple_formal_tmp_var): Remove.
10932 (is_gimple_formal_tmp_reg): Likewise.
10933 (is_gimple_min_lval): Allow invariant component ref parts.
10934 * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
10935 is_gimple_formal_tmp_reg): Remove declarations.
10936 * tree-cfg.c (verify_expr): Verify that variables with address
10937 taken do not have DECL_GIMPLE_REG_P set.
10938 * tree-mudflap.c (mf_build_check_statement_for): Use
10939 force_gimple_operand instead of gimplify_expr.
10940
10941 2009-03-31 Ayal Zaks <zaks@il.ibm.com>
10942
10943 * modulo-sched.c (sms_schedule_by_order): Pass the actual
10944 schedulable rows to compute_split_row.
10945
10946 2009-03-31 Ben Elliston <bje@au.ibm.com>
10947
10948 PR target/31635
10949 * config/rs6000/rs6000.c (rs6000_handle_option): Handle
10950 OPT_mvrsave.
10951
10952 2009-03-31 Alan Modra <amodra@bigpond.net.au>
10953
10954 * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
10955 * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
10956 * configure: Regenerate.
10957 * config.in: Regenerate.
10958 * config/rs6000/rs6000.opt (mtls-markers): Add.
10959 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
10960 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
10961 (tls_ld_aix, tls_ld_sysv): Likewise.
10962 (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
10963 (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
10964
10965 2009-03-31 Alan Modra <amodra@bigpond.net.au>
10966
10967 * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
10968
10969 2009-03-30 Jan Hubicka <jh@suse.cz>
10970
10971 * tree-eh.c (make_eh_edges): Set probability 100% to first edge
10972 out of RESX.
10973 (tree_remove_unreachable_handlers): Cleanup EH predecestor
10974 detection and label handling.
10975
10976 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
10977
10978 * ira-int.h (ira_allocno): Rename left_conflicts_num to
10979 left_conflicts_size.
10980 (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
10981 ALLOCNO_LEFT_CONFLICTS_SIZE.
10982
10983 * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
10984 remove_allocno_from_bucket_and_push,
10985 allocno_spill_priority_compare, push_allocnos_to_stack,
10986 setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
10987 instead of ALLOCNO_LEFT_CONFLICTS_NUM.
10988 (setup_allocno_left_conflicts_num): Ditto. Rename to
10989 setup_allocno_left_conflicts_size.
10990 (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
10991 instead of ALLOCNO_LEFT_CONFLICTS_NUM and
10992 setup_allocno_left_conflicts_size instead of
10993 setup_allocno_left_conflicts_num.
10994
10995 * ira-build.c (ira_create_allocno): Use
10996 ALLOCNO_LEFT_CONFLICTS_SIZE instead of
10997 ALLOCNO_LEFT_CONFLICTS_NUM.
10998
10999 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
11000
11001 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
11002 instead of DF_LR_OUT.
11003
11004 * ira-lives.c (process_bb_node_lives): Ditto.
11005
11006 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
11007 instead of DF_LR_{OUT,IN}.
11008
11009 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
11010
11011 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
11012
11013 2009-03-30 Jan Hubicka <jh@suse.cz>
11014
11015 * except.c (label_to_region_map): Fix thinko.
11016
11017 2009-03-30 Steve Ellcey <sje@cup.hp.com>
11018
11019 PR middle-end/38237
11020 * tree.h (tree_find_value): New declaration.
11021 * tree.c (tree_find_value): New function.
11022 * varasm.c (assemble_external): Avoid duplicate entries on lists.
11023
11024 2009-03-30 Jakub Jelinek <jakub@redhat.com>
11025
11026 PR debug/39563
11027 * c-decl.c (struct c_binding): Add locus field.
11028 (bind): Add locus argument, set locus field from it.
11029 (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
11030 add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
11031 (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
11032 implicitly_declare, undeclared_variable, lookup_label,
11033 declare_label, c_make_fname_decl, c_builtin_function,
11034 c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
11035 bind callers.
11036
11037 2009-03-30 H.J. Lu <hongjiu.lu@intel.com>
11038
11039 PR target/38781
11040 * config/i386/i386.c (classify_argument): Check total size of
11041 structure.
11042
11043 2009-03-30 Martin Jambor <mjambor@suse.cz>
11044
11045 * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
11046 IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
11047 IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
11048 respectively.
11049
11050 * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
11051 seen_variable_array_ref while also traversing a union.
11052
11053 * tree-inline.c (optimize_inline_calls): Do not call
11054 cgraph_node_remove_callees.
11055 * cgraphbuild.c (remove_cgraph_callee_edges): New function.
11056 (pass_remove_cgraph_callee_edges): New variable.
11057 * passes.c (init_optimization_passes): Add
11058 pass_remove_cgraph_callee_edges after early inlining and before all
11059 late intraprocedural passes.
11060
11061 * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
11062
11063 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
11064
11065 * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
11066 Fix typos in names.
11067
11068 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
11069
11070 * combine.c (simplify_comparison): Use have_insn_for.
11071 * dojump.c (do_jump): Likewise.
11072
11073 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
11074
11075 * config/sparc/sparc.c (sparc_compare_emitted): Remove.
11076 (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
11077 sparc_compare_op0 like sparc_compare_emitted used to be handled.
11078 (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
11079 instead of sparc_compare_emitted.
11080 * config/sparc/sparc.h (sparc_compare_emitted): Remove.
11081 * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
11082 instead of sparc_compare_emitted.
11083
11084 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
11085
11086 * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
11087 enter/exit cfglayout mode.
11088 (pass_partition_block): Require it.
11089 * combine.c (find_single_use, reg_dead_at_p): Use CFG.
11090 (combine_instructions): Track basic blocks instead of labels.
11091 (update_cfg_for_uncondjump): New.
11092 (try_combine): Use it. Update jumps after rescanning.
11093 (pass_combine): Require PROP_cfglayout.
11094 * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
11095
11096 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
11097
11098 * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
11099 Provide/destroy PROP_cfglayout respectively.
11100 * gcse.c (pass_jump_bypass, pass_gcse): Require it.
11101 * tree-pass.h (PROP_cfglayout): New.
11102
11103 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
11104
11105 * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
11106 fold_convert_const_fixed_from_fixed,
11107 fold_convert_const_fixed_from_int,
11108 fold_convert_const_fixed_from_real, fold_negate_const): Do not
11109 set TREE_CONSTANT_OVERFLOW.
11110 * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
11111 * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
11112
11113 2009-03-30 Ira Rosen <irar@il.ibm.com>
11114
11115 * tree-vect-loop-manip.c: New file.
11116 * tree-vectorizer.c: Update documentation and included files.
11117 (vect_loop_location): Make extern.
11118 (rename_use_op): Move to tree-vect-loop-manip.c
11119 (rename_variables_in_bb, rename_variables_in_loop,
11120 slpeel_update_phis_for_duplicate_loop,
11121 slpeel_update_phi_nodes_for_guard1,
11122 slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
11123 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
11124 slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
11125 set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
11126 find_loop_location): Likewise.
11127 (new_stmt_vec_info): Move to tree-vect-stmts.c.
11128 (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
11129 get_vectype_for_scalar_type, vect_is_simple_use,
11130 supportable_widening_operation, supportable_narrowing_operation):
11131 Likewise.
11132 (bb_in_loop_p): Move to tree-vect-loop.c.
11133 (new_loop_vec_info, destroy_loop_vec_info,
11134 reduction_code_for_scalar_code, report_vect_op,
11135 vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
11136 (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
11137 (vect_supportable_dr_alignment): Likewise.
11138 * tree-vectorizer.h (tree-data-ref.h): Include.
11139 (vect_loop_location): Declare.
11140 Reorganize function declarations according to the new file structure.
11141 * tree-vect-loop.c: New file.
11142 * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
11143 tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
11144 * tree-vect-data-refs.c: New file.
11145 * tree-vect-patterns.c (timevar.h): Don't include.
11146 * tree-vect-stmts.c: New file.
11147 * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
11148 tree-vect-slp.c, tree-vect-loop.c.
11149 * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
11150 tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
11151 tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
11152 (tree-vect-analyze.o): Remove.
11153 (tree-vect-transform.o): Likewise.
11154 (tree-vect-data-refs.o): Add rule.
11155 (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
11156 tree-vect-slp.o): Likewise.
11157 (tree-vect-patterns.o): Remove redundant dependencies.
11158 (tree-vectorizer.o): Likewise.
11159 * tree-vect-slp.c: New file.
11160
11161 2009-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11162
11163 * optc-gen.awk: Warn if an option flag has multiple different
11164 help strings.
11165
11166 2009-03-30 Sebastian Pop <sebastian.pop@amd.com>
11167
11168 * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
11169 -floop-block): Document dependences on PPL, CLooG and Graphite.
11170
11171 2009-03-30 Joseph Myers <joseph@codesourcery.com>
11172
11173 PR rtl-optimization/323
11174 * c-common.c (c_fully_fold, convert_and_check,
11175 c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
11176 (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
11177 * c-common.def (EXCESS_PRECISION_EXPR): New.
11178 * c-cppbuiltin.c (builtin_define_float_constants): Define
11179 constants with enough digits for long double.
11180 * c-lex.c (interpret_float): Interpret constant with excess
11181 precision where appropriate.
11182 * c-opts.c (c_common_post_options): Set
11183 flag_excess_precision_cmdline. Give an error for
11184 -fexcess-precision=standard for C++ for processors where the
11185 option is significant.
11186 * c-parser.c (c_parser_conditional_expression): Handle excess
11187 precision in condition.
11188 * c-typeck.c (convert_arguments): Handle arguments with excess
11189 precision.
11190 (build_unary_op): Move excess precision outside operation.
11191 (build_conditional_expr): Likewise.
11192 (build_compound_expr): Likewise.
11193 (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
11194 (build_modify_expr): Handle excess precision in RHS.
11195 (convert_for_assignment): Handle excess precision in converted
11196 value.
11197 (digest_init, output_init_element, process_init_element): Handle
11198 excess precision in initializer.
11199 (c_finish_return): Handle excess precision in return value.
11200 (build_binary_op): Handle excess precision in operands and add
11201 excess precision as needed for operation.
11202 * common.opt (-fexcess-precision=): New option.
11203 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
11204 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
11205 For standard excess precision, output explicit conversion to and
11206 truncation from XFmode.
11207 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
11208 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
11209 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
11210 define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
11211 define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
11212 floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
11213 divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
11214 *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
11215 *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
11216 define_splits, sqrt<mode>2): Disable where appropriate for
11217 standard excess precision.
11218 * convert.c (convert_to_real): Do not shorten arithmetic to type
11219 for which excess precision would be used.
11220 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
11221 * doc/invoke.texi (-fexcess-precision=): Document option.
11222 (-mfpmath=): Correct index entry.
11223 * flags.h (enum excess_precision, flag_excess_precision_cmdline,
11224 flag_excess_precision): New.
11225 * langhooks.c (lhd_post_options): Set
11226 flag_excess_precision_cmdline.
11227 * opts.c (common_handle_option): Handle -fexcess-precision=.
11228 * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
11229 init_excess_precision): New.
11230 (lang_dependent_init_target): Call init_excess_precision.
11231 * tree.c (excess_precision_type): New.
11232 * tree.h (excess_precision_type): Declare.
11233
11234 2009-03-30 Joseph Myers <joseph@codesourcery.com>
11235
11236 PR c/35235
11237 * c-typeck.c (build_component_ref): Do not copy qualifiers from
11238 non-lvalue to component.
11239
11240 2009-03-29 Joseph Myers <joseph@codesourcery.com>
11241
11242 PR preprocessor/34695
11243 * Makefile.in (c-opts.o): Depend on c-tree.h.
11244 * c-common.c: Move down include of diagnostic.h.
11245 (done_lexing, c_cpp_error): New.
11246 * c-common.h (done_lexing): Declare.
11247 * c-decl.c (c_write_global_declarations): Don't check cpp_errors
11248 (parse_in).
11249 * c-opts.c: Include c-tree.h.
11250 (c_common_init_options): Set preprocessor error callback.
11251 (c_common_handle_option): Do not set preprocessor
11252 inhibit_warnings, warnings_are_errors, warn_system_headers,
11253 pedantic_errors or inhibit_warnings flags.
11254 (c_common_post_options): Do not check cpp_errors (parse_in).
11255 (c_common_finish): Do not output dependencies if there were
11256 errors. Do not check return value of cpp_finish.
11257 * c-ppoutput.c (pp_file_change): Set input_location.
11258 * c-tree.h (c_cpp_error): Declare.
11259 * diagnostic.c (diagnostic_set_info_translated): Also initialize
11260 override_column.
11261 (diagnostic_build_prefix): Check override_column.
11262 * diagnostic.h (diagnostic_info): Add override_column field.
11263 (diagnostic_override_column): Define.
11264
11265 2009-03-28 Paolo Bonzini <bonzini@gnu.org>
11266
11267 * c-common.c (c_expand_expr, c_staticp): Remove.
11268 * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
11269 * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
11270 COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
11271 * c-gimplify.c (gimplify_compound_literal_expr,
11272 optimize_compound_literals_in_ctor): Remove.
11273 (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
11274 * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
11275 * c-semantics.c (emit_local_var): Remove.
11276
11277 * langhooks-def.h (lhd_expand_expr): Remove.
11278 * langhooks.c (lhd_expand_expr): Remove.
11279 * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
11280
11281 * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
11282 handling from c-semantics.c; don't call into langhook.
11283 (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
11284 * gimplify.c (gimplify_compound_literal_expr,
11285 optimize_compound_literals_in_ctor): Move from c-gimplify.c.
11286 (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
11287 (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
11288 as was done in c-gimplify.c.
11289 * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
11290 * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
11291 Move from c-common.h.
11292 * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
11293
11294 * tree.c (staticp): Do not call langhook.
11295 * langhooks.c (lhd_staticp): Delete.
11296 * langhooks-def.h (lhd_staticp): Delete prototype.
11297 (LANG_HOOKS_STATICP): Delete.
11298 (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
11299
11300 * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
11301 instead of DECL_STMTs.
11302
11303 2009-03-29 Joseph Myers <joseph@codesourcery.com>
11304
11305 PR c/456
11306 PR c/5675
11307 PR c/19976
11308 PR c/29116
11309 PR c/31871
11310 PR c/35198
11311 * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
11312 void_type_node.
11313 (fold_call_expr): Return a NOP_EXPR from folding rather than the
11314 contained expression.
11315 * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
11316 (c_common_truthvalue_conversion): Use c_save_expr. Do not fold
11317 conditional expressions for C.
11318 (decl_constant_value_for_optimization): Move from
11319 decl_constant_value_for_broken_optimization in c-typeck.c. Check
11320 whether optimizing and that the expression is a VAR_DECL not of
11321 array type instead of doing such checks in the caller. Do not
11322 check pedantic. Call gcc_unreachable for C++.
11323 * c-common.def (C_MAYBE_CONST_EXPR): New.
11324 * c-common.h (c_fully_fold, c_save_expr,
11325 decl_constant_value_for_optimization): New prototypes.
11326 (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
11327 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
11328 EXPR_INT_CONST_OPERANDS): Define.
11329 * c-convert.c (convert): Strip nops from expression.
11330 * c-decl.c (groktypename): Take extra parameters expr and
11331 expr_const_operands. Update call to grokdeclarator.
11332 (start_decl): Update call to grokdeclarator. Add statement for
11333 expressions used in type of decl.
11334 (grokparm): Update call to grokdeclarator.
11335 (push_parm_decl): Update call to grokdeclarator.
11336 (build_compound_literal): Add parameter non_const and build a
11337 C_MAYBE_COSNT_EXPR if applicable.
11338 (grokdeclarator): Take extra parameters expr and
11339 expr_const_operands. Track expressions used in declaration
11340 specifiers and declarators. Fold array sizes and track whether
11341 they are constant expressions and whether they are integer
11342 constant expressions.
11343 (parser_xref_tag): Set expr and expr_const_operands fields in
11344 return value.
11345 (grokfield): Update call to grokdeclarator.
11346 (start_function): Update call to grokdeclarator.
11347 (build_null_declspecs): Set expr and expr_const_operands fields in
11348 return value.
11349 (declspecs_add_type): Handle expressions in typeof specifiers.
11350 * c-parser.c (c_parser_declspecs): Set expr and
11351 expr_const_operands fields for declaration specifiers.
11352 (c_parser_enum_specifier): Likewise.
11353 (c_parser_struct_or_union_specifier): Likewise.
11354 (c_parser_typeof_specifier): Likewise. Update call to
11355 groktypename. Fold expression as needed. Return expressions with
11356 type instead of adding statements.
11357 (c_parser_attributes): Update calls to c_parser_expr_list.
11358 (c_parser_statement_after_labels): Fold expression before passing
11359 to objc_build_throw_stmt.
11360 (c_parser_condition): Fold expression.
11361 (c_parser_asm_operands): Fold expression.
11362 (c_parser_conditional_expression): Use c_save_expr. Update call
11363 to build_conditional_expr.
11364 (c_parser_alignof_expression): Update call to groktypename.
11365 (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
11366 original_code. Fold expression argument of va_arg. Create
11367 C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
11368 argument to va_arg. Update calls to groktypename. Fold array
11369 index for offsetof. Verify that first argument to
11370 __builtin_choose_expr has integer type.
11371 (c_parser_postfix_expression_after_paren_type): Update calls to
11372 groktypename and build_compound_literal. Handle expressions with
11373 side effects in type name.
11374 (c_parser_postfix_expression_after_primary): Update call to
11375 c_parser_expr_list. Set original_code for calls to
11376 __builtin_constant_p.
11377 (c_parser_expr_list): Take extra parameter fold_p. Fold
11378 expressions if requested.
11379 (c_parser_objc_type_name): Update call to groktypename.
11380 (c_parser_objc_synchronized_statement): Fold expression.
11381 (c_parser_objc_receiver): Fold expression.
11382 (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
11383 (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
11384 c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
11385 * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
11386 (struct c_typespec): Add elements expr and expr_const_operands.
11387 (struct c_declspecs): Add elements expr and expr_const_operands.
11388 (groktypename, build_conditional_expr, build_compound_literal):
11389 Update prototypes.
11390 (in_late_binary_op): Declare.
11391 * c-typeck.c (note_integer_operands): New function.
11392 (in_late_binary_op): New variable.
11393 (decl_constant_value_for_broken_optimization): Move to c-common.c
11394 and rename to decl_constant_value_for_optimization.
11395 (default_function_array_conversion): Do not strip nops.
11396 (default_conversion): Do not call
11397 decl_constant_value_for_broken_optimization.
11398 (build_array_ref): Do not fold result.
11399 (c_expr_sizeof_expr): Fold operand. Use C_MAYBE_CONST_EXPR for
11400 result when operand is a VLA.
11401 (c_expr_sizeof_type): Update call to groktypename. Handle
11402 expressions included in type name. Use C_MAYBE_CONST_EXPR for
11403 result when operand names a VLA type.
11404 (build_function_call): Update call to build_compound_literal.
11405 Only fold result for calls to __builtin_* functions. Strip
11406 NOP_EXPR from INTEGER_CST returned from such functions. Fold
11407 the function designator.
11408 (convert_arguments): Fold arguments. Update call to
11409 convert_for_assignment.
11410 (build_unary_op): Handle increment and decrement of
11411 C_MAYBE_CONST_EXPR. Move lvalue checks for increment and
11412 decrement earlier. Fold operand of increment and decrement.
11413 Handle address of C_MAYBE_CONST_EXPR. Only fold expression being
11414 built for integer operand. Wrap returns that are INTEGER_CSTs
11415 without being integer constant expressions or that have integer
11416 constant operands without being INTEGER_CSTs.
11417 (lvalue_p): Handle C_MAYBE_CONST_EXPR.
11418 (build_conditional_expr): Add operand ifexp_bcp. Track whether
11419 result is an integer constant expression or can be used in
11420 unevaluated parts of one and avoid folding and wrap as
11421 appropriate. Fold operands before possibly doing -Wsign-compare
11422 warnings.
11423 (build_compound_expr): Wrap result for C99 if operands can be used
11424 in integer constant expressions.
11425 (build_c_cast): Update call to digest_init. Do not ignore
11426 overflow from casting floating-point constants to integers. Wrap
11427 results that could be confused with integer constant expressions,
11428 null pointer constants or floating-point constants.
11429 (c_cast_expr): Update call to groktypename. Handle expressions
11430 included in type name.
11431 (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR. Fold
11432 lhs inside possible SAVE_EXPR. Fold RHS before assignment.
11433 Update calls to convert_for_assignment.
11434 (convert_for_assignment): Take new parameter
11435 null_pointer_constant. Do not strip nops or call
11436 decl_constant_value_for_broken_optimization. Set
11437 in_late_binary_op for conversions to boolean.
11438 (store_init_value): Update call to digest_init.
11439 (digest_init): Take new parameter null_pointer_constant. Do not
11440 call decl_constant_value_for_broken_optimization. pedwarn for
11441 initializers not constant expressions. Update calls to
11442 convert_for_assignment.
11443 (constructor_nonconst): New.
11444 (struct constructor_stack): Add nonconst element.
11445 (really_start_incremental_init, push_init_level, pop_init_level):
11446 Handle constructor_nonconst and nonconst element.
11447 (set_init_index): Call constant_expression_warning for array
11448 designators.
11449 (output_init_element): Fold value. Set constructor_nonconst as
11450 applicable. pedwarn for initializers not constant expressions.
11451 Update call to digest_init. Call constant_expression_warning
11452 where constant initializers are required.
11453 (process_init_element): Use c_save_expr.
11454 (c_finish_goto_ptr): Fold expression.
11455 (c_finish_return): Fold return value. Update call to
11456 convert_for_assignment.
11457 (c_start_case): Fold switch expression.
11458 (c_process_expr_stmt): Fold expression.
11459 (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
11460 ensure statement expression is not evaluated in constant expression.
11461 (build_binary_op): Track whether results are integer constant
11462 expressions or may occur in such, disable folding and wrap results
11463 as applicable. Fold operands for -Wsign-compare warnings unless
11464 in_late_binary_op.
11465 (c_objc_common_truthvalue_conversion): Handle results folded to
11466 integer constants that are not integer constant expressions.
11467 * doc/extend.texi: Document when typeof operands are evaluated,
11468 that condition of __builtin_choose_expr is an integer constant
11469 expression, and more about use of __builtin_constant_p in
11470 initializers.
11471
11472 2009-03-29 Richard Guenther <rguenther@suse.de>
11473
11474 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
11475 propagate addresses of array references.
11476
11477 2009-03-29 Steven Bosscher <steven@gcc.gnu.org>
11478
11479 * regmove.c (perhaps_ends_bb_p): Remove.
11480 (optimize_reg_copy_1): Don't call perhaps_ends_bb_p. Get basic block
11481 from INSN and check that the main loop stays within that basic block.
11482 (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
11483 (regmove_forward_pass): Split out from regmove_optimize. Use
11484 FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
11485 (regmove_backward_pass): Split out from regmove_optimize. Use
11486 FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
11487 (regmove_optimize): Simplify.
11488
11489 2009-03-29 H.J. Lu <hongjiu.lu@intel.com>
11490
11491 PR target/39545
11492 * config/i386/i386.c (classify_argument): Ignore flexible array
11493 member in struct and warn ABI change.
11494
11495 2009-03-29 H.J. Lu <hongjiu.lu@intel.com>
11496
11497 * config/i386/i386-protos.h (ix86_agi_dependent): New.
11498
11499 * config/i386/i386.c (ix86_agi_dependent): Rewrite.
11500 (ix86_adjust_cost): Updated.
11501
11502 2009-03-29 Jan Hubicka <jh@suse.cz>
11503
11504 PR middle-end/28850
11505 * tree-pass.h (pass_cleanup_eh): New function.
11506 (remove_unreachable_regions): Break code handling RTL
11507 to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
11508 that can not be reached by runtime.
11509 (can_be_reached_by_runtime): New function.
11510 (label_to_region_map): New function.
11511 (num_eh_regions): New function.
11512 (rtl_remove_unreachable_regions): New function.
11513 (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
11514 (remove_eh_region): New function.
11515 * except.h: Include sbitmap and vecprim.
11516 (remove_eh_region, remove_unreachable_regions, label_to_region_map,
11517 num_eh_regions): Declare.
11518 * passes.c (init_optimization_passes): Schedule cleanup_eh.
11519 * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
11520 * tree-eh.c (tree_remove_unreachable_handlers): New function.
11521 (tree_empty_eh_handler_p): New function.
11522 (cleanup_empty_eh): New function.
11523 (cleanup_eh): New function.
11524 (pass_cleanup_eh): New function.
11525
11526 2009-03-29 Jan Hubicka <jh@suse.cz>
11527
11528 * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
11529 for removed regions.
11530
11531 2009-03-29 Jan Hubicka <jh@suse.cz>
11532
11533 * except.c (dump_eh_tree): Dump all datastructures.
11534
11535 2009-03-29 Jan Hubicka <jh@suse.cz>
11536
11537 * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
11538 (duplicate_eh_regions_1): Likewise.
11539 (duplicate_eh_regions): Likewise; cleanup code gorwing the region
11540 vector; call EH verification.
11541 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
11542 Be ready for region being removed.
11543
11544 2009-03-29 Jan Hubicka <jh@suse.cz>
11545
11546 * bitmap.c (bitmap_last_set_bit): New function.
11547 * bitmap.h (bitmap_last_set_bit): Declare.
11548
11549 2009-03-29 David Ayers <ayers@fsfe.org>
11550
11551 PR objc/27377
11552 * c-typeck.c (build_conditional_expr): Emit ObjC warnings
11553 by calling objc_compare_types and surpress warnings about
11554 incompatible C pointers that are compatible ObjC pointers.
11555
11556 2009-03-29 Adam Nemet <anemet@caviumnetworks.com>
11557
11558 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
11559 call initialize_inline_failed.
11560 (initialize_inline_failed): Move it from here ...
11561 * cgraph.c (initialize_inline_failed): ... to here.
11562 (cgraph_create_edge): Call initialize_inline_failed rather than
11563 setting inline_failed directly.
11564
11565 2009-03-29 Ben Elliston <bje@au.ibm.com>
11566
11567 PR target/32542
11568 * sysv4.opt (msdata): Improve comment.
11569 * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
11570 * sysv4.h (SVR4_ASM_SPEC): Likewise.
11571
11572 2009-03-29 Ben Elliston <bje@au.ibm.com>
11573
11574 PR target/30451
11575 * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
11576 load and store attributes.
11577
11578 2009-03-29 Ben Elliston <bje@au.ibm.com>
11579
11580 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
11581 (ix86_init_builtins): Add built-in function __builtin_huge_valq.
11582 (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
11583 * doc/extend.texi (X86 Built-in Functions): Add index entries for
11584 __builtin_infq and __builtin_huge_valq.
11585
11586 2009-03-28 Anatoly Sokolov <aesok@post.ru>
11587
11588 * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
11589 atmega8m1 devices.
11590 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
11591 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
11592
11593 2009-03-28 Xinliang David Li <davidxl@google.com>
11594
11595 * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
11596 (do_dbg_cnt): New function.
11597
11598 2009-03-28 Jan Hubicka <jh@suse.cz>
11599
11600 Merge from pretty-ipa:
11601
11602 2009-03-27 Jan Hubicka <jh@suse.cz>
11603
11604 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
11605 * tree-pass.h (function_called_by_processed_nodes_p): Declare.
11606 * passes.c (function_called_by_processed_nodes_p): New.
11607 * ipa-pure-const.c (check_call): Fix handling of operands.
11608 (analyze_function): Dump debug output for skipped bodies.
11609 (local_pure_const): Use function_called_by_processed_nodes_p.
11610 * dwarf2out.c (reference_to_unused): Use output.
11611 * passes.c (do_per_function_toporder): Likewise.
11612
11613 2008-11-12 Jan Hubicka <jh@suse.cz>
11614
11615 * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
11616 * ipa-pure-const.c (funct_state_d): Add can throw field; make
11617 state_set_in_source enum
11618 (check_decl): Ignore memory tags; do not set fake looping flags;
11619 dump diagnostics.
11620 (check_operand, check_tree, check_rhs_var, check_lhs_var,
11621 get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
11622 (check_call, analyze_function): Rewrite.
11623 (check_stmt): New.
11624 (add_new_function): Update call of analyze_function.
11625 (generate_summary): Add call of analyze_function.
11626 (propagate): Propagate can_throw; handle state_set_in_source correctly.
11627 (local_pure_const): New function.
11628 (pass_local_pure_const): New pass.
11629 * ipa-inline.c (inline_transform): Set after_inlining.
11630 * tree-eh.c (stmt_can_throw_external): New.
11631 * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
11632 work with aliasing built.
11633 * tree-flow.h (stmt_can_throw_external): New.
11634 * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
11635 and local pure/const pass in early and late optimization queue.
11636
11637 2009-03-28 Martin Jambor <mjambor@suse.cz>
11638
11639 * fold-const.c (get_pointer_modulus_and_residue): New parameter
11640 allow_func_align.
11641 (fold_binary): Allow function decl aligment consideration is the
11642 second argument is integer constant one.
11643 * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
11644 (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
11645 with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
11646
11647 2009-03-28 Jan Hubicka <jh@suse.cz>
11648
11649 * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
11650 * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
11651 * function.h (rtl_data): Add nothrow flag.
11652 * except.c (set_nothrow_function_flags): Use crtl->nothrow;
11653 set DECL_NOTHROW for AVAILABLE functions.
11654
11655 2009-03-28 Jakub Jelinek <jakub@redhat.com>
11656
11657 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
11658 following vector keyword has expansion starting with pixel or bool
11659 keyword, expand vector to __vector and pixel or bool to __pixel or
11660 __bool.
11661
11662 PR c++/39554
11663 * opts.c (warning_disallowed_functions, warn_disallowed_functions,
11664 warn_if_disallowed_function_p): Removed.
11665 (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
11666 * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
11667 warning_if_disallowed_function_p.
11668 * flags.h (warn_if_disallowed_function_p,
11669 warn_disallowed_functions): Removed.
11670 * common.opt (Wdisallowed-function-list=): Removed.
11671 * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
11672
11673 2009-03-28 Richard Guenther <rguenther@suse.de>
11674
11675 PR tree-optimization/38723
11676 * tree-ssa-pre.c (compute_avail): Add all default definitions to
11677 the entry block.
11678
11679 2009-03-28 Jan Hubicka <jh@suse.cz>
11680
11681 * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
11682 test introduced by my previous patch.
11683
11684 2009-03-28 Richard Guenther <rguenther@suse.de>
11685
11686 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
11687 the PHIs value undefined.
11688
11689 2009-03-28 Jan Hubicka <jh@suse.cz>
11690
11691 * tree-pass.h (pass_fixup_cfg): New pass.
11692 * ipa-inline.c (inline_transform): Set
11693 always_inline_functions_inlined/after_inlining.
11694 * tree-optimize.c (execute_fixup_cfg): Do not set them here.
11695 (pass_fixup_cfg): New pass.
11696 * passes.c (init_optimization_passes): Add fixup_cfg.
11697
11698 2009-03-28 Richard Guenther <rguenther@suse.de>
11699
11700 PR tree-optimization/38458
11701 * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
11702 argument use the arguments copy-of value.
11703
11704 2009-03-28 Richard Guenther <rguenther@suse.de>
11705
11706 PR tree-optimization/38180
11707 * tree-ssa-ccp.c (get_default_value): Simplify.
11708 (likely_value): Likewise.
11709 (surely_varying_stmt_p): Properly handle VOP case.
11710 (ccp_initialize): Likewise.
11711 (ccp_fold): Handle propagating through *&.
11712 (fold_const_aggregate_ref): Also handle decls.
11713
11714 2009-03-28 Jan Hubicka <jh@suse.cz>
11715
11716 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
11717 * cgraph.h (cgraph_node): Likewise.
11718 * cgraphunit.c (cgraph_process_new_functions): Set process flag.
11719 (cgraph_reset_node): Use process flag.
11720 (cgraph_mark_functions_to_output): Likewise.
11721 (cgraph_expand_function): Likewise.
11722 (cgraph_expand_all_functions): Likewise.
11723 (cgraph_output_in_order): Likewise.
11724 * dwarf2out.c (reference_to_unused): Likewise.
11725 * passes.c do_per_function_toporder): Likewise.
11726
11727 2009-03-28 Jan Hubicka <jh@suse.cz>
11728
11729 Bring from lto-branch:
11730
11731 2008-09-03 Doug Kwan <dougkwan@google.com>
11732
11733 * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
11734 enums instead of reason strings.
11735 * cgraph.c (cgraph_create_edge): Same.
11736 (cgraph_inline_failed_string): New function.
11737 * cgraph.h (cgraph_inline_failed_t): New enum type.
11738 (cgraph_inline_failed_string): New prototype.
11739 (struct cgraph_edge): Change type of INLINED_FAILED from constant
11740 char pointer to cgraph_inline_failed_t.
11741 (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
11742 (cgraph_default_inline_p): Ditto.
11743 * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
11744 to cgraph_inline_failed_t pointer.
11745 * cif-code.def: New file.
11746 * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
11747 reason string.
11748 (cgraph_check_inline_limits): Change type of REASON to pointer to
11749 cgraph_inline_failed_t. Replace reason strings with enums.
11750 (cgraph_default_inline_p): Ditto.
11751 (cgraph_recursive_inlining_p): Ditto.
11752 (update_caller_keys): Change type of FAILED_REASON to
11753 cgraph_inline_failed_t.
11754 (cgraph_set_inline_failed): Change type of REASON to pointer to
11755 cgraph_inline_failed_t. Call cgraph_inline_failed_string to
11756 convert enums to strings for text output.
11757 (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
11758 to be of type cgraph_inline_failed_t. Replace reason strings with
11759 enums. Call cgraph_inline_failed_string to covert enums
11760 to strings for text output.
11761 (cgraph_decide_inlining): Replace reason strings with enums.
11762 (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
11763 to cgraph_inline_failed_t type. Call cgraph_inline_failed_string
11764 for text output.
11765 * tree-inline.c (expand_call_inline): Change type of REASON
11766 to cgraph_inline_failed_t. Replace reason strings with enums.
11767 Call cgraph_inline_failed_string for text output.
11768 * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
11769 (cgraph.o): Ditto.
11770
11771 2009-03-28 Jan Hubicka <jh@suse.cz>
11772
11773 * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
11774 cgraph_clone_node): Remove master clone handling.
11775 (cgraph_is_master_clone, cgraph_master_clone): Remove.
11776 * cgraph.h (master_clone): Remove.
11777 (cgraph_is_master_clone, cgraph_master_clone): Remove.
11778 * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
11779 (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
11780
11781 2009-03-28 Jan Hubicka <jh@suse.cz>
11782
11783 * cgraph.c (cgraph_function_body_availability): Functions declared
11784 inline are always safe to assume that it is not going to be replaced.
11785
11786 2009-03-28 Richard Guenther <rguenther@suse.de>
11787
11788 PR tree-optimization/38513
11789 * tree-ssa-pre.c (eliminate): Remove redundant stores.
11790 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
11791 EXC_PTR_EXPR and FILTER_EXPR.
11792 (get_ref_from_reference_ops): Likewise.
11793
11794 2009-03-28 Richard Guenther <rguenther@suse.de>
11795
11796 PR tree-optimization/38968
11797 * tree-vect-analyze.c (vect_compute_data_ref_alignment):
11798 Use FLOOR_MOD_EXPR to compute misalignment.
11799
11800 2009-03-28 Richard Guenther <rguenther@suse.de>
11801
11802 PR tree-optimization/37795
11803 * tree.h (combine_comparisons): Declare.
11804 * fold-const.c (combine_comparisons): Export.
11805 * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
11806 comparisons.
11807 (ifcombine_iforif): Use combine_comparisons.
11808
11809 2009-03-28 Jan Hubicka <jh@suse.cz>
11810
11811 * tree-eh.c (inlinable_call_p): New function.
11812 (make_eh_edges): Use it.
11813 (verify_eh_edges): Use it.
11814 (stmt_can_throw_external, stmt_can_throw_internal): Use it.
11815 * except.c (reachable_next_level): Add inlinable_function argument
11816 (sjlj_find_directly_reachable_regions): Update.
11817 (add_reachable_handler): Do not set saw_any_handlers.
11818 (reachable_next_level): Handle MUST_NOT_THROW more curefully.
11819 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
11820 Add new inlinable call parameter.
11821 (can_throw_internal, can_throw_external): Update.
11822 * except.h (can_throw_internal_1, can_throw_external_1,
11823 foreach_reachable_handler): Update declaration.
11824
11825 2009-03-28 Joseph Myers <joseph@codesourcery.com>
11826
11827 * config/arm/t-arm-coff, config/h8300/coff.h,
11828 config/i386/i386-aout.h, config/i386/i386-coff.h,
11829 config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
11830 config/pdp11/2bsd.h, config/rs6000/aix41.h,
11831 config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
11832 fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
11833 scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
11834 sys-types.h: Remove.
11835 * Makefile.in: Remove protoize and fixproto support and references
11836 in comments.
11837 (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
11838 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
11839 Remove.
11840 (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
11841 (MOSTLYCLEANFILES): Remove protoize$(exeext) and
11842 unprotoize$(exeext).
11843 (rest.encap): Don't depend on $(STMP_FIXPROTO)
11844 (.PHONY): Don't depend on proto.
11845 (libgcc-support): Don't depend on $(STMP_FIXPROTO).
11846 (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
11847 protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
11848 deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
11849 build/gen-protos.o, build/scan.o, xsys-protos.h,
11850 build/fix-header$(build_exeext), build/fix-header.o,
11851 build/scan-decls.o, fixhdr.ready, stmp-fixproto,
11852 stmp-install-fixproto): Remove.
11853 (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
11854 SYSCALLS.c or fixproto files.
11855 (install-common): Don't install protoize.
11856 (install-headers-tar, install-headers-cpio, install-headers-cp):
11857 Don't depend on $(STMP_FIXPROTO).
11858 (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't
11859 install fixproto files or write out fixproto settings.
11860 (uninstall): Don't uninstall protoize.
11861 * config.gcc (use_fixproto): Remove.
11862 (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
11863 i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
11864 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
11865 * config/m32r/t-linux (STMP_FIXPROTO): Remove.
11866 * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
11867 * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
11868 * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
11869 * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
11870 * config/t-svr4 (FIXPROTO_DEFINES): Remove.
11871 * config/t-vxworks (STMP_FIXPROTO): Remove.
11872 * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
11873 STMP_FIXPROTO): Remove.
11874 * config.in, configure: Regenerate.
11875 * crtstuff.c (gid_t, uid_t): Don't undefine.
11876 * doc/install.texi: Change m68k-coff to m68k-elf in example.
11877 (arm-*-coff, arm-*-aout: Remove target entries.
11878 (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
11879 Remove mention of AIX 4.1.
11880 (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
11881 * doc/invoke.texi (Running Protoize): Remove.
11882 * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
11883 (Protoize Caveats): Remove.
11884 * tsystem.h: Update comments on headers assumed to exist.
11885
11886 2009-03-27 Vladimir Makarov <vmakarov@redhat.com>
11887
11888 * genautomata.c: Add a new year to the copyright. Add a new
11889 reference.
11890 (struct insn_reserv_decl): Add comments for member bypass_list.
11891 (find_bypass): Remove.
11892 (insert_bypass): New.
11893 (process_decls): Use insert_bypass.
11894 (output_internal_insn_latency_func): Output all bypasses with the
11895 same input insn in one switch case.
11896
11897 * rtl.def (define_bypass): Describe bypass choice.
11898 * doc/md.texi (define_bypass): Ditto.
11899
11900 2009-03-27 Richard Guenther <rguenther@suse.de>
11901
11902 * gimplify.c (mark_addressable): Export.
11903 * tree-flow.h (mark_addressable): Declare.
11904 * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
11905 * tree-ssa.c (verify_phi_args): Verify that address taken
11906 variables have TREE_ADDRESSABLE set.
11907
11908 2009-03-27 Richard Guenther <rguenther@suse.de>
11909
11910 * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
11911 (build_fold_addr_expr_with_type): ... this. Remove in_fold handling.
11912 Do not mark decls TREE_ADDRESSABLE.
11913 (build_fold_addr_expr): Adjust.
11914 (fold_addr_expr): Remove.
11915 (fold_unary): Use build_fold_addr_expr.
11916 (fold_comparison): Likewise.
11917 (split_address_to_core_and_offset): Likewise.
11918 * coverage.c (tree_coverage_counter_addr): Mark the array decl
11919 TREE_ADDRESSABLE.
11920 * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
11921 (gimplify_modify_expr_to_memcpy): Mark source and destination
11922 addressable.
11923 * omp-low.c (create_omp_child_function): Mark the object decl
11924 TREE_ADDRESSABLE.
11925 (lower_rec_input_clauses): Mark the var we take the address of
11926 TREE_ADDRESSABLE.
11927 (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
11928
11929 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
11930
11931 PR middle-end/39315
11932 * cfgexpand.c (expand_one_stack_var_at): Change alignment
11933 limit to MAX_SUPPORTED_STACK_ALIGNMENT.
11934
11935 2009-03-27 Richard Guenther <rguenther@suse.de>
11936
11937 PR tree-optimization/39120
11938 * tree-ssa-structalias.c (handle_rhs_call): Fill out return
11939 constraints.
11940 (handle_lhs_call): Process return constraints. Add escape
11941 constraints if necessary.
11942 (handle_const_call): Fill out return constraints. Make nested
11943 case more precise. Avoid consttmp if possible.
11944 (handle_pure_call): Fill out return constraints. Avoid
11945 callused if possible.
11946 (find_func_aliases): Simplify call handling.
11947
11948 2009-03-27 Richard Guenther <rguenther@suse.de>
11949
11950 PR tree-optimization/39120
11951 * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
11952 as a representative.
11953 (solve_graph): Do propagate CALLUSED.
11954 (handle_pure_call): Use a scalar constraint from CALLUSED for
11955 the return value.
11956 (find_what_p_points_to): CALLUSED shall not appear in poins-to
11957 solutions.
11958
11959 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
11960
11961 PR c/39323
11962 * c-common.c (handle_aligned_attribute): Properly check alignment
11963 overflow. Use (1U << i) instead of (1 << i).
11964
11965 * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
11966
11967 * expr.h (get_mem_align_offset): Updated.
11968
11969 * tree.h (tree_decl_common): Change align to "unsigned int" and
11970 move it before pointer_alias_set.
11971
11972 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
11973 Jakub Jelinek <jakub@redhat.com>
11974
11975 PR target/38034
11976 * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
11977 gr_register_operand with gr_reg_or_0_operand.
11978 (cmpxchg_rel_di): Likewise.
11979 (sync_lock_test_and_set<mode>): Likewise.
11980
11981 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
11982
11983 * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
11984 (true_regnum): Likewise.
11985
11986 * rtlanal.c (subreg_info): Moved to ...
11987 * rtl.h (subreg_info): Here. New.
11988 (subreg_get_info): New.
11989
11990 * rtlanal.c (subreg_get_info): Make it extern.
11991
11992 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
11993
11994 PR target/39472
11995 * config/i386/i386.c (ix86_abi): New.
11996 (override_options): Handle -mabi=.
11997 (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
11998 (ix86_call_abi_override): Likewise.
11999 (init_cumulative_args): Likewise.
12000 (function_arg_advance): Likewise.
12001 (function_arg_64): Likewise.
12002 (function_arg): Likewise.
12003 (ix86_pass_by_reference): Likewise.
12004 (ix86_function_value_regno_p): Likewise.
12005 (ix86_build_builtin_va_list_abi): Likewise.
12006 (setup_incoming_varargs_64): Likewise.
12007 (is_va_list_char_pointer): Likewise.
12008 (ix86_init_machine_status): Likewise.
12009 (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
12010 (ix86_function_type_abi): Return enum calling_abi. Rewrite
12011 for 64bit. Replace DEFAULT_ABI with ix86_abi.
12012 (ix86_function_abi): Make it static and return enum calling_abi.
12013 (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI
12014 with ix86_abi.
12015 (ix86_fn_abi_va_list): Updated.
12016
12017 * config/i386/i386.h (ix86_abi): New.
12018 (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
12019 (CONDITIONAL_REGISTER_USAGE): Likewise.
12020 (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
12021 (machine_function): Likewise.
12022
12023 * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
12024 with ix86_abi.
12025 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
12026 (STACK_BOUNDARY): Likewise.
12027 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
12028
12029 * config/i386/i386.opt (mabi=): New.
12030
12031 * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
12032 return enum calling_abi.
12033 (ix86_function_type_abi): Likewise.
12034 (ix86_function_abi): Removed.
12035
12036 * doc/invoke.texi: Document -mabi= option for x86.
12037
12038 2009-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12039
12040 * builtins.c (real_dconstp): Delete.
12041 (fold_builtin_logarithm): Remove inaccurate log(e) special case.
12042
12043 2009-03-27 Dodji Seketeli <dodji@redhat.com>
12044 Jakub Jelinek <jakub@redhat.com>
12045
12046 PR debug/37959
12047 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
12048 (gen_subprogram_die): When a function is explicit, generate the
12049 DW_AT_explicit attribute.
12050 * langhooks.h (struct lang_hooks_for_decls): Add
12051 function_decl_explicit_p langhook.
12052 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
12053 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
12054
12055 2009-03-27 Jakub Jelinek <jakub@redhat.com>
12056
12057 * builtins.c (fold_builtin_memory_op): Optimize memmove
12058 into memcpy if we can prove source and destination don't overlap.
12059
12060 * tree-inline.c: Include gt-tree-inline.h.
12061 (clone_fn_id_num): New variable.
12062 (clone_function_name): New function.
12063 (tree_function_versioning): Use it.
12064 * Makefile.in (GTFILES): Add tree-inline.c.
12065
12066 2009-03-27 Mark Mitchell <mark@codesourcery.com>
12067
12068 * BASE-VER: Change to 4.5.0.
12069
12070 2009-03-27 Xinliang David Li <davidxl@google.com>
12071
12072 PR tree-optimization/39557
12073 * tree-ssa.c (warn_uninitialized_vars): free postdom info.
12074
12075 2009-03-27 Xinliang David Li <davidxl@google.com>
12076
12077 PR tree-optimization/39548
12078 * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
12079 candidate check.
12080
12081 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12082
12083 * c-common.c (pointer_int_sum): Use %wd on return from
12084 tree_low_cst.
12085
12086 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12087
12088 * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
12089 on return from tree_low_cst.
12090
12091 2009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com>
12092
12093 PR c++/36799
12094 * ginclude/stdarg.h (va_copy): Define also for
12095 __GXX_EXPERIMENTAL_CXX0X__.
12096
12097 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
12098
12099 PR c++/35652
12100 * builtins.h (c_strlen): Do not warn here.
12101 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
12102 * c-common.c (pointer_int_sum): Take an explicit location.
12103 Warn about offsets out of bounds.
12104 * c-common.h (pointer_int_sum): Adjust declaration.
12105
12106 2009-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12107
12108 * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
12109 markup glitch.
12110
12111 2009-03-26 Jakub Jelinek <jakub@redhat.com>
12112
12113 PR c++/39554
12114 * opts.c (warn_if_disallowed_function_p): Don't assume
12115 get_callee_fndecl must return non-NULL.
12116
12117 2009-03-26 Vladimir Makarov <vmakarov@redhat.com>
12118
12119 PR rtl-optimization/39522
12120 * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
12121 when reg_reloaded_valid is set.
12122
12123 2009-03-26 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12124
12125 * config/spu/divv2df3.c: New file.
12126 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
12127 (DPBIT_FUNCS): Filter out _div_df.
12128
12129 2009-03-26 Bernd Schmidt <bernd.schmidt@analog.com>
12130
12131 * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
12132 a jump insn, count that jump in the distance to the loop start.
12133
12134 2009-03-25 Kaz Kojima <kkojima@gcc.gnu.org>
12135
12136 PR target/39523
12137 * config/sh/sh.c (calc_live_regs): Fix condition for global
12138 registers except PIC_OFFSET_TABLE_REGNUM.
12139
12140 2009-03-25 Kai Tietz <kai.tietz@onevision.com>
12141
12142 PR/39518
12143 * doc/invoke.texi (-mconsole): New.
12144 (-mcygwin): New.
12145 (-mno-cygwin): New.
12146 (-mdll): New.
12147 (-mnop-fun-dllimport): New.
12148 (-mthread): New.
12149 (-mwin32): New.
12150 (-mwindows): New.
12151 (sub section "i386 and x86-64 Windows Options"): New.
12152
12153 2009-03-25 Ralf Corsépius <ralf.corsepius@rtems.org>
12154
12155 * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
12156 * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
12157
12158 2009-03-25 Richard Guenther <rguenther@suse.de>
12159
12160 PR middle-end/39497
12161 * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
12162 of -Wno-error.
12163
12164 2009-03-25 Andrey Belevantsev <abel@ispras.ru>
12165
12166 * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
12167 neither of haifa/selective schedulers are working.
12168
12169 2009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12170
12171 * doc/invoke.texi (Debugging Options): Fix description of
12172 -fno-merge-debug-strings.
12173
12174 2009-03-24 Hans-Peter Nilsson <hp@axis.com>
12175
12176 * config/cris/libgcc.ver: New version-script.
12177 * config/cris/t-linux (SHLIB_MAPFILES): Use it.
12178
12179 * configure.ac <GAS features, nop mnemonic>: Add pattern
12180 crisv32-*-* for "nop".
12181 <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
12182 * configure: Regenerate.
12183
12184 2009-03-24 Ira Rosen <irar@il.ibm.com>
12185
12186 PR tree-optimization/39529
12187 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
12188 mark_sym_for_renaming for the tag copied to the new vector
12189 pointer.
12190
12191 2009-03-24 Arthur Loiret <aloiret@debian.org>
12192
12193 * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
12194 * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
12195 EXTRA_SPEC_FUNCTIONS.
12196 (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
12197 * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
12198 * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
12199 -march and -mtune options.
12200
12201 2009-03-24 Ralf Corsépius <ralf.corsepius@rtems.org>
12202
12203 * config/m68k/t-rtems: Add m5329 multilib.
12204
12205 2009-03-24 Dodji Seketeli <dodji@redhat.com>
12206 Jakub Jelinek <jakub@redhat.com>
12207
12208 PR debug/39524
12209 * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
12210 nodes.
12211
12212 2009-03-23 Jakub Jelinek <jakub@redhat.com>
12213
12214 PR c/39495
12215 * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
12216 instead of c_parser_expression_conv, if original_code isn't one of the
12217 4 allowed comparison codes, fail.
12218
12219 2009-03-23 Richard Guenther <rguenther@suse.de>
12220
12221 * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
12222 * tree.h (struct tree_type): Likewise.
12223 * reload.h (struct insn_chain): Likewise.
12224 * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
12225 * function.h (struct function): Likewise.
12226 * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
12227
12228 2009-03-23 Jakub Jelinek <jakub@redhat.com>
12229
12230 PR tree-optimization/39516
12231 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
12232
12233 2009-03-23 Bingfeng Mei <bmei@broadcom.com>
12234
12235 * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
12236 should be set true if BITS_PER_WORD of target is bigger than 32
12237
12238 2009-03-22 Hans-Peter Nilsson <hp@axis.com>
12239
12240 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
12241 Translate -B-options to -rpath-link. Correct existing
12242 rpath-link and conditionalize on !nostdlib.
12243
12244 2009-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12245
12246 * doc/extend.texi (Function Attributes, Variable Attributes):
12247 Fix typos.
12248 * doc/invoke.texi (Debugging Options, Optimize Options)
12249 (i386 and x86-64 Options, MCore Options): Likewise.
12250
12251 2009-03-20 Jakub Jelinek <jakub@redhat.com>
12252
12253 PR debug/37890
12254 * dwarf2out.c (gen_namespace_die): Add context_die argument and use
12255 it for block local namespace aliases.
12256 (gen_decl_die): Pass context_die to gen_namespace_die.
12257
12258 2009-03-19 Jakub Jelinek <jakub@redhat.com>
12259
12260 PR c/39495
12261 * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
12262 minimum or maximum value.
12263
12264 2009-03-19 Alexandre Oliva <aoliva@redhat.com>
12265
12266 * reginfo.c (globalize_reg): Recompute derived reg sets.
12267
12268 2009-03-19 Ozkan Sezer <sezeroz@gmail.com>
12269
12270 PR target/39063
12271 * libgcc2.c (mprotect): Do not use signed arguments for
12272 VirtualProtect, use DWORD arguments. Also fix the 'may
12273 be used uninitialized' warning for the np variable.
12274
12275 2009-03-19 Jakub Jelinek <jakub@redhat.com>
12276
12277 PR target/39496
12278 * config/i386/i386.c (ix86_function_regparm): Don't optimize local
12279 functions using regparm calling conventions when not optimizing.
12280 (ix86_function_sseregparm): Similarly for sseregparm calling
12281 conventions.
12282
12283 2009-03-19 Li Feng <nemokingdom@gmail.com>
12284
12285 PR middle-end/39500
12286 * tree-data-ref.c (analyze_subscript_affine_affine): There is no
12287 dependence if the first conflict is after niter iterations.
12288
12289 2009-03-19 Hans-Peter Nilsson <hp@axis.com>
12290
12291 PR middle-end/38609
12292 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
12293 functions with dynamic stack-pointer adjustments.
12294
12295 2009-03-19 Ben Elliston <bje@au.ibm.com>
12296
12297 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
12298 option; change to -msdata=data.
12299
12300 2009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12301
12302 * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
12303 and -fopenmp.
12304
12305 2009-03-18 Eric Botcazou <ebotcazou@adacore.com>
12306
12307 PR target/35180
12308 * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
12309
12310 2009-03-18 Sandra Loosemore <sandra@codesourcery.com>
12311
12312 * doc/invoke.texi (Code Gen Options): Expand discussion of
12313 -fno-common.
12314
12315 2009-03-18 Jakub Jelinek <jakub@redhat.com>
12316
12317 * dse.c (struct group_info): Reorder fields for 64-bit hosts.
12318 * matrix-reorg.c (struct matrix_info): Likewise.
12319 * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
12320 * rtl.h (struct mem_attrs): Likewise.
12321 * df.h (struct df): Likewise.
12322 * tree-data-ref.h (struct data_dependence_relation): Likewise.
12323 * ira-int.h (struct ira_allocno): Likewise.
12324 * df-scan.c (struct df_collection_rec): Likewise.
12325 * ira.c (struct equivalence): Likewise.
12326 * function.c (struct temp_slot): Likewise.
12327 * cfgloop.h (struct loop): Likewise.
12328
12329 PR debug/39485
12330 * function.c (use_register_for_decl): When not optimizing, disregard
12331 register keyword for variables with types containing methods.
12332
12333 2009-03-18 Sebastian Pop <sebastian.pop@amd.com>
12334
12335 PR middle-end/39447
12336 * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
12337 (is_simple_operand): Call contains_component_ref_p before calling data
12338 reference analysis that would fail on COMPONENT_REFs.
12339
12340 * tree-vrp.c (search_for_addr_array): Fix formatting.
12341
12342 2009-03-18 Richard Guenther <rguenther@suse.de>
12343
12344 * tree-vect-transform.c (vect_loop_versioning): Fold the
12345 generated comparisons.
12346 * tree-vectorizer.c (set_prologue_iterations): Likewise.
12347 (slpeel_tree_peel_loop_to_edge): Likewise.
12348
12349 2009-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12350
12351 PR middle-end/37805
12352 * opts.c (print_specific_help): In addition to `undocumented',
12353 accept `separate' and `joined' flags if passed alone. Describe
12354 output by the first matched one of those.
12355 (common_handle_option): Skip over empty strings.
12356 * gcc.c (display_help): Fix help string for `--help='.
12357 * doc/invoke.texi (Option Summary, Overall Options): With
12358 `--help=', classes and qualifiers can both be repeated, but
12359 only the latter can be negated. One should not pass only
12360 negated qualifiers. Fix markup and examples.
12361
12362 Revert
12363 2008-10-14 Jakub Jelinek <jakub@redhat.com>
12364 PR middle-end/37805
12365 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
12366 and -fhelp=separate.
12367
12368 2009-03-17 Jing Yu <jingyu@google.com>
12369
12370 PR middle-end/39378
12371 * function.h (struct rtl_data): Move is_thunk from here...
12372 (struct function): ...to here.
12373 * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
12374 * varasm.c (assemble_start_function): Change is_thunk from crtl to
12375 cfun.
12376 * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
12377 cfun.
12378 (alpha_does_function_need_gp, alpha_start_function): Likewise.
12379 (alpha_output_function_end_prologue): Likewise.
12380 (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
12381 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
12382 (rs6000_output_function_epilogue): Likewise.
12383 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
12384
12385 2009-03-17 Uros Bizjak <ubizjak@gmail.com>
12386
12387 PR target/39482
12388 * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
12389 from different units in a single alternative.
12390 (*truncdfsf_i387): Ditto.
12391 (*truncxfsf2_mixed): Ditto.
12392 (*truncxfdf2_mixed): Ditto.
12393
12394 2009-03-17 Jakub Jelinek <jakub@redhat.com>
12395
12396 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
12397 non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
12398
12399 PR debug/39474
12400 * tree-ssa-live.c (remove_unused_locals): Don't remove local
12401 unused non-artificial variables when not optimizing.
12402
12403 PR debug/39471
12404 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
12405 DW_TAG_imported_module even if decl is IMPORTED_DECL with
12406 NAMESPACE_DECL in its DECL_INITIAL.
12407
12408 PR middle-end/39443
12409 * optabs.c (set_user_assembler_libfunc): New function.
12410 * expr.h (set_user_assembler_libfunc): New prototype.
12411 * c-common.c: Include libfuncs.h.
12412 (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
12413 for memcmp, memset, memcpy, memmove and abort.
12414 * Makefile.in (c-common.o): Depend on libfuncs.h.
12415
12416 PR debug/39412
12417 * dwarf2out.c (gen_inlined_enumeration_type_die,
12418 gen_inlined_structure_type_die, gen_inlined_union_type_die,
12419 gen_tagged_type_instantiation_die): Removed.
12420 (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
12421 do nothing.
12422
12423 2009-03-17 Janis Johnson <janis187@us.ibm.com>
12424
12425 PR testsuite/38526
12426 * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
12427 its use.
12428 (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
12429 (check-parallel-%): Ditto.
12430 (check-consistency): Ditto.
12431
12432 2009-03-17 Kai Tietz <kai.tietz@onevision.com>
12433
12434 * ipa-struct-reorg.c (create_general_new_stmt): Initialize
12435 local variable rhs by NULL_TREE.
12436
12437 2009-03-17 H.J. Lu <hongjiu.lu@intel.com>
12438
12439 PR target/39477
12440 * doc/extend.texi: Correct register behavior for regparm on Intel 386.
12441
12442 2009-03-17 H.J. Lu <hongjiu.lu@intel.com>
12443
12444 PR target/39476
12445 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
12446
12447 2009-03-17 H.J. Lu <hongjiu.lu@intel.com>
12448
12449 PR target/39473
12450 * config/i386/i386.c (ix86_expand_call): Check extra clobbers
12451 for ms->sysv ABI calls only in 64bit mode.
12452
12453 * config/i386/i386.md (untyped_call): Support 32bit.
12454
12455 2009-03-16 H.J. Lu <hongjiu.lu@intel.com>
12456
12457 * doc/extend.texi: Replace x86_65 with x86_64.
12458
12459 2009-03-16 Jakub Jelinek <jakub@redhat.com>
12460
12461 PR tree-optimization/39455
12462 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
12463 mismatches for POINTER_TYPE_P (type).
12464 (number_of_iterations_le): Likewise.
12465
12466 2009-03-16 Hariharan Sandanagobalane <hariharan@picochip.com>
12467
12468 * config/picochip/picochip.c: Removed profiling support.
12469 * config/picochip/picochip.md: Removed profiling instruction.
12470 * config/picochip/picochip.h: Removed profiling builtin.
12471
12472 2009-03-16 Joseph Myers <joseph@codesourcery.com>
12473
12474 * doc/install.texi (--with-host-libstdcxx): Document.
12475
12476 2009-03-14 Anatoly Sokolov <aesok@post.ru>
12477
12478 PR target/34299
12479 * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
12480 generate a warning if the function name does not begin with
12481 "__vector" and the function has either the 'signal' or 'interrupt'
12482 attribute, from here to ...
12483 (avr_declare_function_name): ...here. New function.
12484 * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
12485 * config/avr/avr-protos.h (avr_declare_function_name): Declare.
12486
12487 2009-03-14 Jakub Jelinek <jakub@redhat.com>
12488
12489 PR bootstrap/39454
12490 * cse.c (fold_rtx): Don't modify original const_arg1 when
12491 canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
12492 separate variable instead.
12493 * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
12494 from out of range shift counts.
12495 (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
12496
12497 2009-03-13 Catherine Moore <clm@codesourcery.com>
12498
12499 * config/i386/x-mingw32 (host-mingw32.o): Replace
12500 diagnostic.h with $(DIAGNOSTIC_H).
12501
12502 2009-03-12 Jakub Jelinek <jakub@redhat.com>
12503
12504 PR target/39431
12505 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
12506 predicate.
12507 * config/i386/sync.md (sync_compare_and_swap<mode>,
12508 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
12509 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
12510 into a register.
12511 (sync_double_compare_and_swapdi_pic,
12512 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
12513 cmpxchg8b_pic_memory_operand instead of just memory_operand.
12514
12515 2009-03-12 H.J. Lu <hongjiu.lu@intel.com>
12516
12517 PR target/39445
12518 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
12519
12520 2009-03-12 H.J. Lu <hongjiu.lu@intel.com>
12521
12522 PR target/39327
12523 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
12524 (avx_addsubv4df3): Likewise.
12525 (*avx_addsubv4sf3): Likewise.
12526 (sse3_addsubv4sf3): Likewise.
12527
12528 2009-03-12 H.J. Lu <hongjiu.lu@intel.com>
12529
12530 PR target/38824
12531 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
12532
12533 2009-03-12 Vladimir Makarov <vmakarov@redhat.com>
12534
12535 PR debug/39432
12536 * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
12537 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
12538 registers for allocnos created from user-defined variables.
12539
12540 2009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12541
12542 PR target/39181
12543 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
12544 of non-integer mode as well.
12545
12546 2009-03-11 Adam Nemet <anemet@caviumnetworks.com>
12547
12548 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
12549 for functions for which the parameter types are unknown.
12550
12551 2009-03-11 Jakub Jelinek <jakub@redhat.com>
12552
12553 PR target/39137
12554 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
12555 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
12556 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
12557 * config/i386/i386.c (ix86_local_alignment): For
12558 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
12559 long long variables on the stack to avoid dynamic realignment.
12560 Allow the first argument to be a decl rather than type.
12561 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
12562
12563 2009-03-11 Nick Clifton <nickc@redhat.com>
12564
12565 PR target/5362
12566 * config/mcore/mcore.opt: Remove deprecated m4align and m8align
12567 options.
12568 Add description to mno-lsim option.
12569 * config/mcore/mcore.h: Remove comment about deprecated m4align
12570 option.
12571 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
12572 * doc/invoke.texi: Add description of mno-lsim and
12573 mstack-increment options.
12574
12575 * config/fr30/fr30.opt: Document the -mno-lsim option.
12576 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
12577 and -mno-lsim options.
12578
12579 2009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12580
12581 * fold-const.c (fold_comparison): Only call fold_inf_compare
12582 if the mode supports infinities.
12583
12584 2009-03-11 Jason Merrill <jason@redhat.com>
12585
12586 PR debug/39086
12587 * tree-nrv.c (tree_nrv): Don't do this optimization if the front
12588 end already did. Notice GIMPLE_CALL modifications of the result.
12589 Don't copy debug information from an ignored decl or a decl from
12590 another function.
12591
12592 2009-03-10 Richard Guenther <rguenther@suse.de>
12593 Nathan Froyd <froydnj@codesourcery.com>
12594
12595 PR middle-end/37850
12596 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
12597 (__divMODE3): Likewise.
12598
12599 2009-03-09 Jakub Jelinek <jakub@redhat.com>
12600
12601 PR tree-optimization/39394
12602 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
12603 DECL_SIZE_UNIT of variable length FIELD_DECLs.
12604
12605 2009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12606
12607 * recog.c (verfiy_changes): Disallow renaming of hard regs in
12608 inline asms for register asm ("") declarations.
12609
12610 2009-03-09 Eric Botcazou <ebotcazou@adacore.com>
12611
12612 * fold-const.c (fold_unary): Fix comment.
12613
12614 2009-03-07 Jan Hubicka <jh@suse.cz>
12615
12616 PR target/39361
12617 * tree-inline.c (setup_one_parameter): Do replacement of const
12618 argument by constant in SSA form.
12619
12620 2009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12621
12622 PR middle-end/38028
12623 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
12624 determine alignment passed to assign_stack_local.
12625 (assign_parms_unsplit_complex): Likewise.
12626 * except.c (sjlj_build_landing_pads): Likewise.
12627
12628 2009-03-06 Jakub Jelinek <jakub@redhat.com>
12629
12630 PR middle-end/39360
12631 * tree-flow.h (add_referenced_var): Return bool instead of void.
12632 * tree-dfa.c (add_referenced_var): Return result of
12633 referenced_var_check_and_insert call.
12634 * tree-inline.c (expand_call_inline): Call add_referenced_var instead
12635 of referenced_var_check_and_insert.
12636
12637 PR debug/39372
12638 * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
12639 (gen_variable_die): Emit DW_AT_location on abstract static variable's
12640 DIE, don't emit it if abstract origin already has it.
12641 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
12642 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
12643
12644 2009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
12645
12646 * genpreds.c (needs_variable): Fix parentheses at variable name
12647 detection.
12648 (write_tm_constrs_h): Indent generated code.
12649
12650 2009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12651
12652 * doc/extend.texi (Function Attributes): Add documentation
12653 for isr attributes.
12654
12655 2009-03-06 Jakub Jelinek <jakub@redhat.com>
12656
12657 PR debug/39387
12658 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
12659 take locus from its DECL_SOURCE_LOCATION instead of input_location.
12660
12661 2009-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
12662
12663 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
12664 the loop as bad.
12665
12666 2009-03-05 Jakub Jelinek <jakub@redhat.com>
12667
12668 PR debug/39379
12669 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
12670 with blocks containing IMPORTED_DECLs in BLOCK_VARS.
12671
12672 2009-03-05 Uros Bizjak <ubizjak@gmail.com>
12673
12674 * config/i386/i386.md (R8_REG, R9_REG): New constants.
12675 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
12676 constants instead of magic numbers.
12677 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
12678 (QI_REG_P): Ditto.
12679 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
12680 (x86_64_ms_abi_int_parameter_registers): Ditto.
12681 (x86_64_int_return_registers): Ditto.
12682 (ix86_maybe_switch_abi): Ditto.
12683 (ix86_expand_call): Ditto for clobbered_registers array.
12684 (ix86_hard_regno_mode_ok): Ditto.
12685 (x86_extended_QIreg_mentioned_p): Ditto.
12686
12687 2009-03-05 J"orn Rennecke <joern.rennecke@arc.com>
12688
12689 PR tree-optimization/39349
12690 * cse.c (cse_insn): Fix loop to stop at VOIDmode.
12691
12692 * combine.c (gen_lowpart_for_combine): Use omode when generating
12693 clobber.
12694
12695 2009-03-04 J"orn Rennecke <joern.rennecke@arc.com>
12696
12697 PR rtl-optimization/39235
12698 * loop-iv.c (get_simple_loop_desc): Use XCNEW.
12699
12700 2009-03-04 Zdenek Dvorak <ook@ucw.cz>
12701
12702 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
12703
12704 2009-03-04 Richard Guenther <rguenther@suse.de>
12705
12706 PR tree-optimization/39362
12707 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
12708 that occur in abnormal PHIs should be varying.
12709
12710 2009-03-04 Zdenek Dvorak <ook@ucw.cz>
12711
12712 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
12713 Extend comments.
12714 (simple_iv): Take loop as an argument instead of statement.
12715 * tree-scalar-evolution.h (simple_iv): Declaration changed.
12716 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
12717 to simple_iv.
12718 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
12719 Ditto.
12720 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
12721 * matrix-reorg.c (analyze_transpose): Ditto.
12722 * tree-data-ref.c (dr_analyze_innermost): Ditto.
12723 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
12724 * tree-predcom.c (ref_at_iteration): Ditto.
12725 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
12726
12727 2009-03-04 Richard Guenther <rguenther@suse.de>
12728
12729 PR tree-optimization/39358
12730 * tree-ssa-structalias.c (do_sd_constraint): Fix check for
12731 escaped_id and callused_id.
12732 (solve_graph): Likewise.
12733
12734 2009-03-04 Richard Guenther <rguenther@suse.de>
12735
12736 PR tree-optimization/39339
12737 * tree-sra.c (try_instantiate_multiple_fields): Make it
12738 no longer ICE on the above.
12739
12740 2009-03-03 Joseph Myers <joseph@codesourcery.com>
12741
12742 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
12743 that fits within Pmode.
12744
12745 2009-03-03 Steve Ellcey <sje@cup.hp.com>
12746
12747 PR middle-end/10109
12748 * tm.texi (LIBCALL_VALUE): Update description.
12749
12750 2009-03-03 Steve Ellcey <sje@cup.hp.com>
12751
12752 PR middle-end/34443
12753 * doc/extend.texi (section): Update description.
12754
12755 2009-03-03 H.J. Lu <hongjiu.lu@intel.com>
12756
12757 PR middle-end/39345
12758 * tree-inline.c (remapped_type): New.
12759 (can_be_nonlocal): Call remapped_type instead of remap_type.
12760
12761 2009-03-03 Jakub Jelinek <jakub@redhat.com>
12762
12763 PR fortran/39354
12764 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
12765 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
12766
12767 2009-03-03 Richard Guenther <rguenther@suse.de>
12768
12769 PR middle-end/39272
12770 * tree.c (tree_nonartificial_location): New function.
12771 * tree.h (tree_nonartificial_location): Declare.
12772 * builtins.c (expand_builtin_memory_chk): Provide location
12773 of the call location for artificial function pieces.
12774 (maybe_emit_chk_warning): Likewise.
12775 (maybe_emit_sprintf_chk_warning): Likewise.
12776 (maybe_emit_free_warning): Likewise.
12777 * expr.c (expand_expr_real_1): Likewise.
12778
12779 2009-03-03 Jakub Jelinek <jakub@redhat.com>
12780
12781 PR tree-optimization/39343
12782 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
12783 COMPONENT_REF t has ARRAY_TYPE.
12784
12785 2009-03-02 Sebastian Pop <sebastian.pop@amd.com>
12786
12787 PR middle-end/39335
12788 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
12789 when the type precision of the induction variable should be
12790 larger than the type precision of nit.
12791 (gen_parallel_loop): Update use of canonicalize_loop_ivs.
12792 * graphite.c (graphite_loop_normal_form): Same.
12793 * tree-flow.h (canonicalize_loop_ivs): Update declaration.
12794
12795 2009-03-02 Uros Bizjak <ubizjak@gmail.com>
12796
12797 * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
12798 (*call_1_rex64_ms_sysv): Use named constants instead of magic
12799 numbers to describe clobbered registers.
12800 (*call_value_0_rex64_ms_sysv): Ditto.
12801 * config/i386/mmx.md (mmx_emms): Ditto.
12802 (mmx_femms): Ditto.
12803
12804 2009-03-02 Richard Sandiford <rdsandiford@googlemail.com>
12805
12806 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
12807 of ABI_64.
12808
12809 2009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12810
12811 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
12812 (spu_section_type_flags): New function.
12813
12814 2009-03-02 Uros Bizjak <ubizjak@gmail.com>
12815
12816 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
12817 reg_class_contents of FLOAT_REGS into a temporary.
12818
12819 2009-03-02 Richard Guenther <rguenther@suse.de>
12820 Ira Rosen <irar@il.ibm.com>
12821
12822 PR tree-optimization/39318
12823 * tree-vect-transform.c (vectorizable_call): Transfer the EH region
12824 information to the vectorized statement.
12825
12826 2009-03-01 Uros Bizjak <ubizjak@gmail.com>
12827
12828 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
12829 variable. Use defined names instead of magic constants for REX SSE
12830 registers.
12831
12832 2009-03-01 Richard Guenther <rguenther@suse.de>
12833
12834 PR tree-optimization/39331
12835 * omp-low.c (lower_send_shared_vars): Do not receive new
12836 values for the reference of DECL_BY_REFERENCE parms or results.
12837
12838 2009-03-01 Jan Hubicka <jh@suse.cz>
12839
12840 PR debug/39267
12841 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
12842 BLOCK_NONLOCALIZED_VAR): New macros.
12843 (tree_block): Add nonlocalized_vars.
12844 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
12845 gen_decl_die): Add origin argument. Allow generation of die with
12846 origin at hand only.
12847 (gen_member_die, gen_type_die_with_usage, force_decl_die,
12848 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
12849 of gen_*.
12850 (gen_block_die): Fix checking for unused blocks.
12851 (process_scope_var): Break out from .... ; work with origins only.
12852 (decls_for_scope) ... here; process nonlocalized list.
12853 (dwarf2out_ignore_block): Look for nonlocalized vars.
12854 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
12855 vars.
12856 (dump_scope_block): Dump them.
12857 * tree-inline.c (remap_decls): Handle nonlocalized vars.
12858 (remap_block): Likewise.
12859 (can_be_nonlocal): New predicate.
12860 (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
12861
12862 2009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12863
12864 * configure: Regenerate.
12865
12866 2009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12867
12868 * optc-gen.awk: No need to duplicate option flags twice.
12869 Reuse help texts for duplicate options which do not have any.
12870
12871 * gcc.c (display_help): Document --version.
12872
12873 * gcc.c (main): If print_help_list and verbose_flag, ensure
12874 driver output comes before subprocess output.
12875
12876 * optc-gen.awk: Assign all remaining fields to help string,
12877 space-separated, for multi-line help in *.opt.
12878
12879 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
12880 -Wno-pedantic-ms-format is for MinGW targets only.
12881
12882 * doc/options.texi (Option file format): Fix bad indentation,
12883 restoring dropped sentence.
12884
12885 2009-02-28 Jan Hubicka <jh@suse.cz>
12886
12887 * tree-inline.c (tree_function_versioning): Output debug info.
12888
12889 2009-02-28 Jan Hubicka <jh@suse.cz>
12890
12891 PR debug/39267
12892 * tree-inline.c (setup_one_parameter): Do not copy propagate
12893 arguments when not optimizing.
12894
12895 2009-02-28 H.J. Lu <hongjiu.lu@intel.com>
12896
12897 PR target/39327
12898 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
12899 (avx_addsubv4df3): Likewise.
12900 (*avx_addsubv4sf3): Likewise.
12901 (sse3_addsubv4sf3): Likewise.
12902 (*avx_addsubv2df3): Likewise.
12903 (sse3_addsubv2df3): Likewise.
12904 (avx_unpckhps256): Correct item selectors.
12905 (avx_unpcklps256): Likewise.
12906 (avx_unpckhpd256): Likewise.
12907 (avx_unpcklpd256): Likewise.
12908
12909 2009-02-28 Jan Hubicka <jh@suse.cz>
12910
12911 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
12912 static vars.
12913 (copy_arguments_for_versioning): If var is declared don't declare it.
12914 (tree_function_versioning): First setup substitutions and then copy
12915 args.
12916
12917 2009-02-27 Jan Hubicka <jh@suse.cz>
12918
12919 PR debug/39267
12920 * cgraph.h (varpool_output_debug_info): Remove.
12921 * cgraphunit.c (varpool_output_debug_info): Remove.
12922 * dwarf2out.c (deferred_locations_struct): New struct
12923 (deferred_locations): New type.
12924 (deferred_locations_list): New static var.
12925 (deffer_location): New function.
12926 (gen_variable_die): Use it.
12927 (decls_for_scope): Output info on local static vars.
12928 (dwarf2out_finish): Process deferred locations.
12929 * varpool.c (varpool_output_debug_info): Remove.
12930
12931 2009-02-27 Jan Hubicka <jh@suse.cz>
12932
12933 PR debug/39267
12934 * tree.h (TREE_PROTECTED): Fix comment.
12935 (BLOCK_HANDLER_BLOCK): Remove.
12936 (struct tree_block): Remove handler_block add body_block.
12937 (inlined_function_outer_scope_p): New.
12938 (is_body_block): Remove.
12939 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
12940 * dwarf2out.c (is_inlined_entry_point): Remove.
12941 (add_high_low_attributes): Use inlined_function_outer_scope_p.
12942 (gen_block_die): Use is_inlined_entry_point check. Remove body block
12943 code.
12944 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
12945 * gimplify.c (gimplify_expr): Gimplify body blocks.
12946 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
12947 block with multiple subblocks.
12948 (dump_scope_block): Prettier output; dump more flags and info.
12949 (dump_scope_blocks): New.
12950 (remove_unused_locals): Use dump_scope_blocks.
12951 * tree-flow.h (dump_scope_blocks): Declare.
12952 * tree-cfg.c (execute_build_cfg): Dump scope blocks.
12953 * stmt.c (is_body_block): Remove.
12954 * tree-inline.c (remap_block): Copy BODY_BLOCK info.
12955 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
12956
12957 2009-02-27 Sebastian Pop <sebastian.pop@amd.com>
12958
12959 PR middle-end/39308
12960 * graphite.c (graphite_loop_normal_form): Do not call
12961 number_of_iterations_exit from a gcc_assert.
12962
12963 2009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12964
12965 * config/s390/s390.c (s390_swap_cmp): Look for conditional
12966 jumps if COND is NULL.
12967 (find_cond_jump): New function.
12968 (s390_z10_optimize_cmp): Handling for reg-reg compares added.
12969 * config/s390/s390.md: Remove z10_cobra attribute value.
12970
12971 2009-02-26 Uros Bizjak <ubizjak@gmail.com>
12972
12973 * config/alpha/alpha.h (alpha_expand_mov): Return false if
12974 force_const_mem returns NULL_RTX.
12975
12976 2009-02-26 Jan Hubicka <jh@suse.cz>
12977
12978 PR debug/39267
12979 * cgraph.h (varpool_output_debug_info): Remove.
12980 * cgraphunit.c (varpool_output_debug_info): Remove.
12981 * dwarf2out.c (deferred_locations_struct): New struct
12982 (deferred_locations): New type.
12983 (deferred_locations_list): New static var.
12984 (deffer_location): New function.
12985 (gen_variable_die): Use it.
12986 (decls_for_scope): Output info on local static vars.
12987 (dwarf2out_finish): Process deferred locations.
12988 * varpool.c (varpool_output_debug_info): Remove.
12989
12990 2009-02-25 H.J. Lu <hongjiu.lu@intel.com>
12991
12992 PR rtl-optimization/39241
12993 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
12994 to subreg_offset_representable_p.
12995
12996 2009-02-25 Paolo Bonzini <bonzini@gnu.org>
12997
12998 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
12999 execute function prototype. Get f and nregs from max_reg_num
13000 and get_insns. Remove the first backward pass as it's dead,
13001 guard the forward pass by flag_expensive_optimizations.
13002 (rest_of_handle_regmove): Delete.
13003 (pass_regmove): Replace it with regmove_optimize.
13004
13005 2009-02-25 Martin Jambor <mjambor@suse.cz>
13006
13007 PR tree-optimization/39259
13008 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
13009 calls_alloca function flags.
13010 (copy_bb): Set calls_setjmp and alls_alloca function flags if such
13011 calls are detected.
13012
13013 2009-02-25 Paolo Bonzini <bonzini@gnu.org>
13014
13015 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
13016 flags_set_1_rtx, flags_set_1_set): Delete.
13017 (regmove_optimize): Do not call mark_flags_life_zones.
13018
13019 2009-02-24 Julian Brown <julian@codesourcery.com>
13020
13021 PR target/35965
13022 * config/arm/arm.c (require_pic_register): Only set
13023 cfun->machine->pic_reg once per function.
13024
13025 2009-02-24 Sandra Loosemore <sandra@codesourcery.com>
13026
13027 * doc/invoke.texi (Link Options): Document an easier way to pass
13028 options that take arguments to the GNU linker using -Xlinker and -Wl.
13029
13030 2009-02-24 Steve Ellcey <sje@cup.hp.com>
13031
13032 PR target/33785
13033 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
13034
13035 2009-02-24 Richard Guenther <rguenther@suse.de>
13036
13037 PR debug/39285
13038 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
13039
13040 2009-02-24 Richard Guenther <rguenther@suse.de>
13041 Zdenek Dvorak <ook@ucw.cz>
13042
13043 PR tree-optimization/39233
13044 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
13045 from converting them to a generic type.
13046
13047 2009-02-23 Sebastian Pop <sebastian.pop@amd.com>
13048
13049 PR tree-optimization/39260
13050 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
13051 contains a condition with a real type.
13052 (build_scop_conditions_1): Conditions are always last_stmt of a bb.
13053
13054 2009-02-23 Jason Merrill <jason@redhat.com>
13055
13056 PR c++/38880
13057 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
13058 narrowing_initializer_constant_valid_p.
13059 (narrowing_initializer_constant_valid_p): Don't return
13060 null_pointer_node for adding a pointer to itself.
13061
13062 2009-02-23 Jan Hubicka <jh@suse.cz>
13063
13064 PR c/12245
13065 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
13066 resizing.
13067
13068 2009-02-23 Jan Hubicka <jh@suse.cz>
13069
13070 PR tree-optimization/37709
13071 * tree.c (block_ultimate_origin): Move here from dwarf2out.
13072 * tree.h (block_ultimate_origin): Declare.
13073 * dwarf2out.c (block_ultimate_origin): Move to tree.c
13074 * tree-ssa-live.c (remove_unused_scope_block_p):
13075 Eliminate blocks containig no instructions nor live variables nor
13076 nested blocks.
13077 (dump_scope_block): New function.
13078 (remove_unused_locals): Enable removal of dead blocks by default;
13079 enable dumping at TDF_DETAILS.
13080
13081 2009-02-21 H.J. Lu <hongjiu.lu@intel.com>
13082
13083 * config/i386/i386.c (classify_argument): Don't allow COImode
13084 and OImode.
13085 (function_arg_advance_32): Don't allow OImode.
13086 (function_arg_32): Likewise.
13087 (function_value_32): Likewise.
13088 (return_in_memory_32): Likewise.
13089 (function_arg_64): Remove OImode comment.
13090
13091 2009-02-21 H.J. Lu <hongjiu.lu@intel.com>
13092
13093 PR target/39261
13094 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
13095 ix86_expand_vector_set for V4DImode in 64bit mode only.
13096 (ix86_expand_vector_init_one_var): Likewise.
13097
13098 2009-02-21 Sebastian Pop <sebastian.pop@amd.com>
13099
13100 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
13101
13102 2009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
13103
13104 PR bootstrap/39257
13105 * loop-iv.c: Revert last change.
13106 * emit-rtl.c: Likewise.
13107
13108 2009-02-21 H.J. Lu <hongjiu.lu@intel.com>
13109
13110 PR target/39256
13111 * config/i386/i386.c (type_natural_mode): Remove an extra
13112 space in the warning message.
13113 (function_value_32): Handle 32-byte vector modes.
13114 (return_in_memory_32): Likewise.
13115
13116 2009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
13117
13118 * loop-iv.c (truncate_value): New function.
13119 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
13120 of lowpart_subreg.
13121 (lowpart_subreg): Move to...
13122 * emit-rtl.c: ...here.
13123
13124 2009-02-21 Danny Smith <dannysmith@users.sourceforge.net>
13125
13126 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
13127 accidental and undocumented change at revision 140860.
13128
13129 2009-02-21 Joseph Myers <joseph@codesourcery.com>
13130
13131 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
13132 take gimple_seq * arguments.
13133 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
13134 types_compatible_p langhook.
13135
13136 2009-02-20 Mark Mitchell <mark@codesourcery.com>
13137 Joseph Myers <joseph@codesourcery.com>
13138
13139 * config/arm/arm.c (arm_builtin_va_list): New function.
13140 (arm_expand_builtin_va_start): Likewise.
13141 (arm_gimplify_va_arg_expr): Likewise.
13142 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
13143 (TARGET_BUILD_BUILTIN_VA_START): Likewise.
13144 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
13145 (va_list_type): New variable.
13146 (arm_mangle_type): Mangle va_list_type appropriately.
13147
13148 2009-02-20 Jakub Jelinek <jakub@redhat.com>
13149
13150 PR middle-end/39157
13151 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
13152 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
13153 * params.def (loop-invariant-max-bbs-in-loop): New parameter.
13154 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
13155 parameter to 1000 for -O1 by default.
13156 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
13157 parameter.
13158 * loop-invariant.c: Include params.h.
13159 (move_loop_invariants): Don't call move_single_loop_invariants on
13160 very large loops.
13161
13162 2009-02-20 Jaka Mocnik <jaka@xlab.si>
13163
13164 * calls.c (emit_library_call_value_1): Use slot_offset instead of
13165 offset when calculating bounds for indexing stack_usage_map. Fixes
13166 a buffer overflow with certain target setups.
13167
13168 2009-02-20 Jakub Jelinek <jakub@redhat.com>
13169
13170 PR target/39240
13171 * calls.c (expand_call): Clear try_tail_call if caller and callee
13172 disagree in promotion of function return value.
13173
13174 2009-02-19 Jakub Jelinek <jakub@redhat.com>
13175
13176 PR target/39175
13177 * c-common.c (c_determine_visibility): If visibility changed and
13178 DECL_RTL has been already set, call make_decl_rtl to update symbol
13179 flags.
13180
13181 2009-02-19 H.J. Lu <hongjiu.lu@intel.com>
13182
13183 PR c++/39188
13184 * varasm.c (assemble_variable): Don't check DECL_NAME when
13185 globalizing a variable.
13186
13187 2009-02-19 Joseph Myers <joseph@codesourcery.com>
13188
13189 PR c/38483
13190 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
13191 expression before any __builtin_trap call.
13192 * c-typeck.c (build_function_call): Convert and check function
13193 arguments before generating a call to a trap. Evaluate the
13194 function arguments before the trap.
13195
13196 2009-02-19 Uros Bizjak <ubizjak@gmail.com>
13197
13198 PR target/39228
13199 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
13200 (UNSPEC_FXAM_MEM): New unspec.
13201 (fxam<mode>2_i387_with_temp): New insn and split pattern.
13202 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
13203 memory using fxam<mode>2_i387_with_temp to remove excess precision.
13204
13205 2009-02-19 Richard Guenther <rguenther@suse.de>
13206
13207 PR tree-optimization/39207
13208 PR tree-optimization/39074
13209 * tree-ssa-structalias.c (storedanything_id, var_storedanything,
13210 storedanything_tree): New.
13211 (do_ds_constraint): Simplify ANYTHING shortcutting. Update
13212 the STOREDANYTHING solution if the lhs solution contains ANYTHING.
13213 (build_succ_graph): Add edges from STOREDANYTHING to all
13214 non-direct nodes.
13215 (init_base_vars): Initialize STOREDANYTHING.
13216 (compute_points_to_sets): Free substitution info after
13217 building the succ graph.
13218 (ipa_pta_execute): Likewise.
13219
13220 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
13221 field.
13222 (do_ds_constraint): Do not add to special var or non-pointer
13223 field solutions.
13224 (type_could_have_pointers): Split out from ...
13225 (could_have_pointers): ... here. For arrays use the element type.
13226 (create_variable_info_for): Initialize may_have_pointers.
13227 (new_var_info): Likewise.
13228 (handle_lhs_call): Make the HEAP variable unknown-sized.
13229 (intra_create_variable_infos): Use a type with pointers for
13230 PARM_NOALIAS, make it unknown-sized.
13231
13232 2009-02-18 H.J. Lu <hongjiu.lu@intel.com>
13233
13234 PR target/39224
13235 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
13236
13237 2009-02-18 Jason Merrill <jason@redhat.com>
13238
13239 PR target/39179
13240 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
13241 value if DECL_EXTERNAL.
13242 * tree-sra.c (sra_walk_gimple_assign): Likewise.
13243 * target.h (gcc_target::binds_local_p): Clarify "module".
13244 * tree.h (TREE_PUBLIC): Clarify "module".
13245
13246 2009-02-17 Xuepeng Guo <xuepeng.guo@intel.com>
13247
13248 PR target/38891
13249 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
13250 initialization for MS_ABI prior to the hunk of !TARGET_MMX.
13251
13252 2009-02-17 H.J. Lu <hongjiu.lu@intel.com>
13253
13254 PR target/39082
13255 * c.opt (Wabi): Support C and ObjC.
13256 (Wpsabi): New.
13257
13258 * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
13259
13260 * config/i386/i386.c (classify_argument): Warn once about the ABI
13261 change when passing union with long double.
13262
13263 * doc/invoke.texi: Update -Wabi for warning psABI changes.
13264
13265 2009-02-18 Joseph Myers <joseph@codesourcery.com>
13266
13267 PR c/35447
13268 * c-parser.c (c_parser_compound_statement): Always enter and leave
13269 a scope.
13270
13271 2009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13272
13273 PR target/34587
13274 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
13275
13276 2009-02-18 Jakub Jelinek <jakub@redhat.com>
13277
13278 PR tree-optimization/36922
13279 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
13280 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
13281 Likewise.
13282
13283 2009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
13284
13285 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
13286 to 0 for EABI64.
13287
13288 2009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
13289
13290 * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
13291
13292 2009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
13293
13294 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
13295 tree sharing.
13296
13297 2009-02-17 Ruan Beihong <ruanbeihong@gmail.com>
13298 Richard Sandiford <rdsandiford@googlemail.com>
13299
13300 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
13301 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
13302 (loongson_biadd): ...this.
13303
13304 2009-02-17 Richard Guenther <rguenther@suse.de>
13305
13306 PR tree-optimization/39202
13307 * tree-ssa-structalias.c (do_structure_copy): Before collapsing
13308 a var make sure to follow existing collapses.
13309
13310 2009-02-17 Richard Guenther <rguenther@suse.de>
13311
13312 PR middle-end/39214
13313 * langhooks.c (lhd_print_error_function): Check for NULL block.
13314
13315 2009-02-17 Richard Guenther <rguenther@suse.de>
13316
13317 PR tree-optimization/39204
13318 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
13319 of the PHI arg.
13320
13321 2009-02-17 Uros Bizjak <ubizjak@gmail.com>
13322
13323 * config/soft-fp/double.h: Update from glibc CVS.
13324
13325 2009-02-17 Richard Guenther <rguenther@suse.de>
13326
13327 PR tree-optimization/39207
13328 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
13329 strict-aliasing warnings for pointers pointing to NULL.
13330
13331 2009-02-16 Joseph Myers <joseph@codesourcery.com>
13332
13333 PR c/35446
13334 * c-parser.c (c_parser_braced_init): Call pop_init_level when
13335 skipping until next close brace.
13336
13337 2009-02-16 H.J. Lu <hongjiu.lu@intel.com>
13338
13339 PR target/37049
13340 * config/i386/i386.c (ix86_expand_push): Set memory alignment
13341 to function argument boundary.
13342
13343 2009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com>
13344
13345 * config/picochip/picochip.md (lea_add): Allow any nonimmediate
13346 in the lea_add. Reload eventually constraints it properly.
13347 * config/picochip/constraints.md: Remove the target constraint
13348 "b", since it is not needed anymore.
13349
13350 2009-02-16 Jakub Jelinek <jakub@redhat.com>
13351
13352 * gthr-dce.h: Uglify function parameter and local variable names.
13353 * gthr-gnat.h: Likewise.
13354 * gthr-mipssde.h: Likewise.
13355 * gthr-nks.h: Likewise.
13356 * gthr-posix95.h: Likewise.
13357 * gthr-posix.h: Likewise.
13358 * gthr-rtems.h: Likewise.
13359 * gthr-single.h: Likewise.
13360 * gthr-solaris.h: Likewise.
13361 * gthr-tpf.h: Likewise.
13362 * gthr-vxworks.h: Likewise.
13363 * gthr-win32.h: Likewise.
13364
13365 2009-02-15 H.J. Lu <hongjiu.lu@intel.com>
13366
13367 PR target/39196
13368 * config/i386/i386.md: Restrict the new peephole2 to move
13369 between MMX/SSE registers.
13370
13371 2009-02-15 Richard Guenther <rguenther@suse.de>
13372
13373 Revert
13374 2009-02-13 Richard Guenther <rguenther@suse.de>
13375
13376 * configure.ac: Enable LFS.
13377 * configure: Re-generate.
13378 * config.in: Likewise.
13379
13380 2009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13381
13382 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
13383 spu_srqwbyte, spu_srqwbytebc): Define.
13384 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
13385 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
13386 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
13387 "shrqby_<mode>"): New insn-and-split patterns.
13388 * config/spu/spu.c (expand_builtin_args): Determine and return
13389 number of operands using spu_builtin_description data.
13390 (spu_expand_builtin_1): Use it.
13391
13392 2009-02-13 Steve Ellcey <sje@cup.hp.com>
13393
13394 PR target/38056
13395 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
13396 TARGET_CONST_GP.
13397
13398 2009-02-13 H.J. Lu <hongjiu.lu@intel.com>
13399
13400 PR target/39149
13401 * config/i386/i386.c (override_options): Correct warning
13402 messages for -malign-loops, -malign-jumps and -malign-functions.
13403
13404 2009-02-13 H.J. Lu <hongjiu.lu@intel.com>
13405
13406 PR target/39152
13407 * config/i386/i386.md: Restrict the new peephole2 to move
13408 between the general purpose registers.
13409
13410 2009-02-13 H.J. Lu <hongjiu.lu@intel.com>
13411
13412 PR target/39162
13413 * config/i386/i386.c (type_natural_mode): Add a new argument.
13414 Return the original mode and warn ABI change if vector size is 32byte.
13415 (function_arg_advance): Updated.
13416 (function_arg): Likewise.
13417 (ix86_function_value): Likewise.
13418 (ix86_return_in_memory): Likewise.
13419 (ix86_sol10_return_in_memory): Likewise.
13420 (ix86_gimplify_va_arg): Likewise.
13421 (function_arg_32): Don't warn ABX ABI change here.
13422 (function_arg_64): Likewise.
13423
13424 2009-02-13 Bernd Schmidt <bernd.schmidt@analog.com>
13425
13426 * loop-iv.c (implies_p): In the final case, test that operands 0
13427 of the two comparisons match.
13428
13429 * config/bfin/bfin.c (find_prev_insn_start): New function.
13430 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
13431 (find_next_insn_start): Move.
13432
13433 2009-02-13 Richard Guenther <rguenther@suse.de>
13434
13435 * configure.ac: Enable LFS.
13436 * configure: Re-generate.
13437 * config.in: Likewise.
13438
13439 2009-02-13 Joseph Myers <joseph@codesourcery.com>
13440
13441 PR c/35444
13442 * c-parser.c (c_parser_parms_list_declarator): Discard pending
13443 sizes on syntax error after some arguments have been parsed.
13444
13445 2009-02-12 Jakub Jelinek <jakub@redhat.com>
13446
13447 * doc/invoke.texi (-fira): Remove.
13448
13449 2009-02-12 H.J. Lu <hongjiu.lu@intel.com>
13450
13451 * caller-save.c: Replace regclass.c with reginfo.c in comments.
13452 * recog.c: Likewise.
13453 * rtl.h: Likewise.
13454
13455 2009-02-12 Uros Bizjak <ubizjak@gmail.com>
13456
13457 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
13458 (umul_ppmm): Likewise.
13459 (count_leading_zeros): Likewise.
13460 (count_trailing_zeros): Likewise.
13461 (UMUL_TIME): Likewise.
13462
13463 2009-02-12 H.J. Lu <hongjiu.lu@intel.com>
13464
13465 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
13466 soft-fp/t-softfp to tmake_file.
13467
13468 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
13469 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
13470 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
13471 IA64_BUILTIN_INFQ]: New.
13472 (ia64_init_builtins): Initialize __builtin_infq,
13473 __builtin_fabsq and __builtin_copysignq if not HPUX.
13474 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
13475 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
13476
13477 * config/ia64/lib1funcs.asm (__divtf3): Define only if
13478 SHARED is defined.
13479 (__fixtfti): Likewise.
13480 (__fixunstfti): Likewise.
13481 (__floattitf): Likewise.
13482
13483 * config/ia64/libgcc-glibc.ver: New.
13484 * config/ia64/t-fprules-softfp: Likewise.
13485 * config/ia64/sfp-machine.h: Likewise.
13486
13487 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
13488 (LIBGCC2_TF_CEXT): Likewise.
13489 (TF_SIZE): Likewise.
13490 (TARGET_INIT_LIBFUNCS): Likewise.
13491
13492 * config/ia64/t-glibc (SHLINB_MAPFILES):
13493 Add $(srcdir)/config/ia64/libgcc-glibc.ver.
13494
13495 2009-02-12 H.J. Lu <hongjiu.lu@intel.com>
13496
13497 * config/i386/i386.c (construct_container): Rewrite processing
13498 BLKmode with X86_64_SSE_CLASS.
13499
13500 2009-02-12 Paolo Bonzini <bonzini@gnu.org>
13501
13502 PR target/39152
13503 * config/i386/i386.md: Replace simplify_replace_rtx with
13504 replace_rtx in the new peephole2.
13505
13506 2009-02-12 Nathan Sidwell <nathan@codesourcery.com>
13507
13508 * doc/invoke.texi (Optimize Options): Stop claiming inlining and
13509 loop unrolling do not happen at -O2.
13510
13511 2009-02-12 Michael Matz <matz@suse.de>
13512
13513 * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
13514
13515 2009-02-12 Jakub Jelinek <jakub@redhat.com>
13516
13517 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
13518 for -g3.
13519
13520 2009-02-12 Ben Elliston <bje@au.ibm.com>
13521
13522 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
13523 patterns when updating the back chain. Missed in the 2009-02-10
13524 change.
13525
13526 2009-02-11 Janis Johnson <janis187@us.ibm.com>
13527
13528 * doc/extend.texi (Decimal Floating Types): Update identifier of
13529 draft TR and list of missing support.
13530
13531 2009-02-11 Jakub Jelinek <jakub@redhat.com>
13532
13533 PR middle-end/39154
13534 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
13535 bit to variable length decl's flags, add it also to its
13536 pointer replacement variable.
13537
13538 2009-02-11 Uros Bizjak <ubizjak@gmail.com>
13539 Jakub Jelinek <jakub@redhat.com>
13540
13541 PR target/39118
13542 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
13543 (memory_blockage): New expander.
13544 (*memory_blockage): New insn pattern.
13545 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
13546 instead of general blockage at the end of function prologue when
13547 frame pointer is used to access red zone area. Do not emit blockage
13548 when profiling, it is emitted in generic code.
13549 (ix86_expand_epilogue): Emit memory_blockage at the beginning of
13550 function epilogue when frame pointer is used to access red zone area.
13551
13552 2009-02-11 Paolo Bonzini <bonzini@gnu.org>
13553
13554 PR target/38824
13555 * config/i386/i386.md: Add two new peephole2 to avoid mov followed
13556 by arithmetic with memory operands.
13557 * config/i386/predicates.md (commutative_operator): New.
13558
13559 2009-02-10 Janis Johnson <janis187@us.ibm.com>
13560
13561 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
13562 bulleted lists.
13563
13564 2009-02-10 Eric Botcazou <ebotcazou@adacore.com>
13565
13566 * alias.h (record_alias_subset): Declare.
13567 * alias.c (record_alias_subset): Make global.
13568
13569 2009-02-10 Nick Clifton <nickc@redhat.com>
13570
13571 * tree-parloops.c: Change license to GPLv3.
13572 * ipa-struct-reorg.c: Change license to GPLv3.
13573 * ipa-struct-reorg.h: Change license to GPLv3.
13574
13575 2009-02-10 Steve Ellcey <sje@cup.hp.com>
13576
13577 PR c/39084
13578 * c-decl.c (start_struct): Return NULL on error.
13579
13580 2009-02-10 Jakub Jelinek <jakub@redhat.com>
13581
13582 PR middle-end/39124
13583 * cfgloopmanip.c (remove_path): Call remove_bbs after
13584 cancel_loop_tree, not before it.
13585
13586 PR target/39139
13587 * function.h (struct function): Add has_local_explicit_reg_vars bit.
13588 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
13589 VAR_DECLs were seen.
13590 * tree-ssa-live.c (remove_unused_locals): Recompute
13591 cfun->has_local_explicit_reg_vars.
13592 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
13593 copies or clearings if cfun->has_local_explicit_reg_vars.
13594
13595 2009-02-10 Uros Bizjak <ubizjak@gmail.com>
13596
13597 PR target/39118
13598 * config/i386/i386.c (expand_prologue): Emit blockage at the end
13599 of function prologue when frame pointer is used to access
13600 red zone area.
13601
13602 2009-02-10 Richard Guenther <rguenther@suse.de>
13603
13604 PR middle-end/39127
13605 * gimplify.c (gimple_regimplify_operands): Always look if
13606 we need to create a temporary.
13607
13608 2009-02-10 Richard Guenther <rguenther@suse.de>
13609
13610 PR tree-optimization/39132
13611 * tree-loop-distribution.c (todo): New global var.
13612 (generate_memset_zero): Trigger TODO_rebuild_alias.
13613 (tree_loop_distribution): Return todo.
13614
13615 2009-02-10 H.J. Lu <hongjiu.lu@intel.com>
13616
13617 PR target/39119
13618 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
13619 (x86_64_reg_class_name): Removed.
13620 (classify_argument): Return 0 if bytes > 32. Return 0 if the
13621 first one isn't X86_64_SSE_CLASS or any other ones aren't
13622 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn
13623 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
13624 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS
13625 and 3 X86_64_SSEUP_CLASS.
13626 (construct_container): Remove X86_64_AVX_CLASS. Handle 4
13627 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
13628
13629 2009-02-10 Ben Elliston <bje@au.ibm.com>
13630
13631 * config/rs6000/rs6000.md (allocate_stack): Always use an update
13632 form instruction to update the stack back chain word, even if the
13633 user has disabled the generation of update instructions.
13634 (movdi_<mode>_update_stack): New.
13635 (movsi_update_stack): Likewise.
13636 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
13637 always use an update form instruction to update the stack back
13638 chain word.
13639
13640 2009-02-09 Sebastian Pop <sebastian.pop@amd.com>
13641
13642 PR middle-end/38953
13643 * graphite.c (if_region_set_false_region): After moving a region in
13644 the false branch of a condition, remove the empty dummy basic block.
13645 (gloog): Remove wrong fix for PR38953.
13646
13647 2009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13648
13649 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
13650 generation due to implicit sign extension.
13651
13652 2009-02-09 Eric Botcazou <ebotcazou@adacore.com>
13653
13654 PR middle-end/38981
13655 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
13656 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
13657
13658 2009-02-09 Richard Guenther <rguenther@suse.de>
13659
13660 PR middle-end/35202
13661 * convert.c (convert_to_real): Disable (float)fn((double)x)
13662 to fnf(x) conversion if errno differences may occur and
13663 -fmath-errno is set.
13664
13665 2009-02-07 Anatoly Sokolov <aesok@post.ru>
13666
13667 * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
13668 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
13669 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
13670
13671 2009-02-06 Joseph Myers <joseph@codesourcery.com>
13672
13673 PR c/35434
13674 * c-common.c (handle_alias_attribute): Disallow attribute for
13675 anything not a FUNCTION_DECL or VAR_DECL.
13676
13677 2009-02-06 Janis Johnson <janis187@us.ibm.com>
13678
13679 PR c/39035
13680 * real.c (do_compare): Special-case compare of zero against
13681 decimal float value.
13682
13683 2009-02-06 Joseph Myers <joseph@codesourcery.com>
13684
13685 PR c/36432
13686 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
13687 as indicating flexible array members unless the field itself is
13688 being declarared as the incomplete array.
13689
13690 2009-02-06 Jan Hubicka <jh@suse.cz>
13691
13692 PR tree-optimization/38844
13693 * ipa-inline.c (try_inline): Stop inlining recursion when edge
13694 is already inlined.
13695
13696 2009-02-06 Richard Guenther <rguenther@suse.de>
13697
13698 PR middle-end/38977
13699 * tree-cfg.c (need_fake_edge_p): Force a fake edge for
13700 fork because we may expand it as __gcov_fork.
13701
13702 2009-02-06 Nick Clifton <nickc@redhat.com>
13703
13704 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
13705
13706 2009-02-06 Paolo Bonzini <bonzini@gnu.org>
13707
13708 PR tree-optimization/35659
13709 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
13710 vn_phi_eq): Shortcut if hashcode does not match.
13711 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
13712 NULL operands.
13713 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
13714 and avoid iterative_hash_expr.
13715 (FOR_EACH_VALUE_ID_IN_SET): New.
13716 (value_id_compare): Remove.
13717 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
13718 sort expressions by value id.
13719
13720 2009-02-05 Kaz Kojima <kkojima@gcc.gnu.org>
13721
13722 PR target/38991
13723 * config/sh/predicates.md (general_movsrc_operand): Don't check
13724 the subreg of system registers here.
13725
13726 2009-02-05 Jakub Jelinek <jakub@redhat.com>
13727
13728 PR c++/39106
13729 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
13730 on the copied decl.
13731
13732 2009-02-05 Paolo Bonzini <bonzini@gnu.org>
13733
13734 PR rtl-optimization/39110
13735 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
13736 addresses, not aligned ones.
13737
13738 2009-02-05 Daniel Berlin <dberlin@dberlin.org>
13739 Richard Guenther <rguenther@suse.de>
13740
13741 PR tree-optimization/39100
13742 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
13743 comment says and add edges.
13744
13745 2009-02-05 Joseph Myers <joseph@codesourcery.com>
13746
13747 PR c/35435
13748 * c-common.c (handle_tls_model_attribute): Ignore attribute for
13749 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
13750
13751 2009-02-04 Tobias Grosser <grosser@fim.uni-passau.de>
13752
13753 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
13754 sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
13755 register_bb_in_sese, new_sese, free_sese): Moved.
13756 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
13757 outermost_loop_in_scop, build_scop_iteration_domain,
13758 expand_scalar_variables_ssa_name, get_vdef_before_scop,
13759 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
13760 Use loop_in_sese_p instead of loop_in_scop_p.
13761 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
13762 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
13763 (scopdet_basic_block_info): Fix bug in scop detection.
13764 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
13765 eq_loop_to_cloog_loop): Remove.
13766 (nb_loops_around_loop_in_scop, nb_loop
13767 ref_nb_loops): Moved here...
13768 * graphite.h (ref_nb_loops): ... from here.
13769 (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
13770 (loop_domain_dim, loop_iteration_vector_dim): Remove.
13771 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
13772 * testsuite/gcc.dg/graphite/scop-19.c: New
13773
13774 2009-02-04 Paolo Bonzini <bonzini@gnu.org>
13775 Hans-Peter Nilsson <hp@axis.com>
13776
13777 PR rtl-optimization/37889
13778 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
13779 Move offset handling from PLUS to before the switch. Use new
13780 arguments when considering SYMBOL_REFs too.
13781 (rtx_addr_can_trap_p): Pass dummy offset and size.
13782 (enum may_trap_p_flags): Remove.
13783 (may_trap_p_1): Pass size from MEM_SIZE.
13784
13785 PR rtl-optimization/38921
13786 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
13787 * rtl.h (may_trap_after_code_motion_p): Delete prototype.
13788 * rtlanal.c (may_trap_after_code_motion_p): Delete.
13789 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
13790
13791 2009-02-04 H.J. Lu <hongjiu.lu@intel.com>
13792
13793 AVX Programming Reference (January, 2009)
13794 * config/i386/sse.md (*vpclmulqdq): New.
13795
13796 2009-02-04 Jakub Jelinek <jakub@redhat.com>
13797
13798 PR tree-optimization/38977
13799 PR gcov-profile/38292
13800 * calls.c (special_function_p): Disregard __builtin_ prefix.
13801
13802 2009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com>
13803
13804 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
13805 non-indexable addresses even before reload.
13806
13807 2009-02-03 Joseph Myers <joseph@codesourcery.com>
13808
13809 PR c/29129
13810 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
13811 as having variable size. Do not give an error for unnamed
13812 parameters with [*] declarators. Give a warning for type names
13813 with [*] declarators and mark them as variable size.
13814 * c-parser.c (c_parser_sizeof_expression): Do not give an error
13815 for sizeof applied to [*] type names.
13816
13817 2009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
13818
13819 PR C++/36607
13820 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
13821
13822 2009-02-03 Jakub Jelinek <jakub@redhat.com>
13823
13824 * gcc.c (process_command): Update copyright notice dates.
13825 * gcov.c (print_version): Likewise.
13826 * gcov-dump.c (print_version): Likewise.
13827 * mips-tfile.c (main): Likewise.
13828 * mips-tdump.c (main): Likewise.
13829
13830 2009-02-03 Joseph Myers <joseph@codesourcery.com>
13831
13832 PR c/35433
13833 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
13834 for composite type involving a zero-length array type.
13835
13836 2009-02-03 Jakub Jelinek <jakub@redhat.com>
13837
13838 PR target/35318
13839 * function.c (match_asm_constraints_1): Skip over
13840 initial optional % in the constraint.
13841
13842 PR inline-asm/39059
13843 * c-parser.c (c_parser_postfix_expression): If fixed point is not
13844 supported, don't accept FIXED_CSTs.
13845 * c-decl.c (finish_declspecs): Error if fixed point is not supported
13846 and _Sat is used without _Fract/_Accum. Set specs->type to
13847 integer_type_node for cts_fract/cts_accum if fixed point is not
13848 supported.
13849
13850 2009-02-02 Catherine Moore <clm@codesourcery.com>
13851
13852 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
13853
13854 2009-02-02 Richard Sandiford <rdsandiford@googlemail.com>
13855
13856 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
13857 (ABI_HAS_64BIT_SYMBOLS): Use it.
13858 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
13859
13860 2009-02-02 Paul Brook <paul@codesourcery.com>
13861
13862 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
13863
13864 2009-02-02 Jakub Jelinek <jakub@redhat.com>
13865
13866 PR inline-asm/39058
13867 * recog.h (asm_operand_ok): Add constraints argument.
13868 * recog.c (asm_operand_ok): Likewise. If it is set, for digits
13869 recurse on matching constraint.
13870 (check_asm_operands): Pass constraints as 3rd argument to
13871 asm_operand_ok. Don't look up matching constraint here.
13872 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
13873 to asm_operand_ok.
13874
13875 2009-02-02 Ben Elliston <bje@au.ibm.com>
13876
13877 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
13878 TARGET_NARROW_VOLATILE_BITFIELD macro names.
13879
13880 2009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13881
13882 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
13883 information. Remove some obsolete information. Reorganize.
13884
13885 * config/pa/fptr.c: Revert license to GPL 2.
13886 * config/pa/milli64.S: Likewise.
13887
13888 2009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
13889
13890 PR target/38904
13891 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass
13892 LIBRARY name in, instead of hard-coding it.
13893 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an
13894 extra target make frag to tmake_files according to EH model.
13895 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
13896 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target
13897 frags that define makefile variable EH_MODEL appropriately.
13898 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment.
13899 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or
13900 to "-sjlj" according to type of EH configured.
13901 (LIBGCC_SONAME): Concatenate it to shared library base name.
13902 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or
13903 to "_sjlj" according to type of EH configured.
13904 (LIBGCC_SONAME): Concatenate it to shared library base name.
13905 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL.
13906 (SHLIB_LINK): Add missing semicolon to if-else construct.
13907 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
13908 string value of "pe_dll" command-line option.
13909 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper.
13910 (SHLIB_SONAME): Use it when overriding t-cygming default.
13911 (SHLIB_IMPLIB): Override t-cygming default.
13912 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
13913 string value of "pe_dll" command-line option.
13914
13915 2009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
13916
13917 PR target/38952
13918 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
13919 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
13920
13921 2009-01-31 Richard Guenther <rguenther@suse.de>
13922
13923 PR tree-optimization/38937
13924 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
13925 computing the transitive closure.
13926
13927 2009-01-30 Richard Guenther <rguenther@suse.de>
13928
13929 PR tree-optimization/39041
13930 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
13931 Propagate variable indices only if the types match for this stmt.
13932
13933 2009-01-30 Jakub Jelinek <jakub@redhat.com>
13934
13935 PR target/39013
13936 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
13937 inline but never defined.
13938
13939 2009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com>
13940
13941 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
13942 (*insv_h_di_reg_extimm): New insn.
13943 (*insv_l<mode>_reg_extimm): New insn.
13944
13945 2009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
13946
13947 * config/picochip/picochip.c (flag_conserve_stack): set
13948 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
13949 fconserve-stack. Reduce call-overhead used by inliner.
13950
13951 2009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
13952
13953 PR/38157
13954 * common.opt (flag_conserve_stack): Initialised to zero.
13955
13956 2009-01-30 Kai Tietz <kai.tietz@onevision.com>
13957
13958 PR/39002
13959 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
13960 (ix86_expand_epilogue): Take nsseregs in account to use proper restore
13961 method.
13962
13963 2009-01-29 H.J. Lu <hongjiu.lu@intel.com>
13964
13965 * ira-color.c (allocno_reload_assign): Update comments.
13966 * regmove.c (regmove_optimize): Likewise.
13967
13968 * ra.h: Removed.
13969
13970 2009-01-29 Robert Millan <rmh@aybabtu.com>
13971
13972 * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
13973 * config/i386/kopensolaris-gnu.h: New file. Undefine
13974 `MD_UNWIND_SUPPORT'.
13975 * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
13976
13977 2009-01-29 Kazu Hirata <kazu@codesourcery.com>
13978
13979 PR tree-optimization/39007
13980 * tree-loop-distribution.c (generate_builtin): Use
13981 recompute_dominator to compute the immediate dominator of the
13982 basic block just after the loop.
13983
13984 2009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
13985
13986 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
13987 (ASM_OUTPUT_DWARF_PCREL): Define.
13988
13989 2009-01-29 Vladimir Makarov <vmakarov@redhat.com>
13990
13991 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
13992 * doc/passes.texi: Remove entries about regclass, local-alloc, and
13993 global. Modify entries about regmove and IRA.
13994
13995 * ra-conflict.c: Remove the file.
13996
13997 * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
13998
13999 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
14000 (pass_regclass_init): Rename to pass_reginfo_init.
14001
14002 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
14003
14004 * toplev.h (flag_ira): Remove.
14005
14006 * caller-save.c (setup_save_areas): Remove flag_ira.
14007
14008 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
14009
14010 * global.c: Remove the file.
14011
14012 * opts.c (decode_options): Remove flag_ira.
14013
14014 * hard-reg-set.h (losing_caller_save_reg_set): Remove.
14015
14016 * regmove.c: Modify file description.
14017 (find_use_as_address, try_auto_increment): Define them only if
14018 AUTO_INC_DEC is defined.
14019 (replacement_quality, replace_in_call_usage, fixup_match_1,
14020 stable_and_no_regs_but_for_p): Remove.
14021 (reg_set_in_bb): Make it static.
14022 (regmove_optimize): Remove flag_ira and code which worked for
14023 !flag_ira.
14024
14025 * local-alloc.c: Remove the file.
14026
14027 * common.opt (fira): Remove.
14028
14029 * ira.c: Include except.h.
14030 (eliminable_regset): Move from global.c.
14031 (mark_elimination): Ditto. Remove flag_ira.
14032 (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
14033 equiv_mem_modified, validate_equiv_mem_from_store,
14034 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
14035 contains_replace_regs, memref_referenced_p, memref_used_between_p,
14036 no_equiv, recorded_label_ref): Move from local-alloc.c.
14037 (update_equiv_regs): Ditto. Make it static.
14038 (print_insn_chain, print_insn_chains): Move it from global.c.
14039 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira.
14040 (build_insn_chain): Ditto. Make it static.
14041 (ra_init_live_subregs): Move from ra-conflict.c. Make it static.
14042 Rename to init_live_subregs.
14043 (gate_ira): Remove flag_ira.
14044
14045 * regclass.c: Rename reginfo.c. Change file description.
14046 (FORBIDDEN_INC_DEC_CLASSES): Remove.
14047 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
14048 (init_reg_sets_1): Remove code for evaluation of
14049 reg_class_superclasses and losing_caller_save_reg_set.
14050 (init_regs): Remove init_reg_autoinc.
14051 (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
14052 ok_for_base_p_nonstrict): Remove.
14053 (regclass_init): Rename to reginfo_init. Don't initialize init_cost.
14054 (pass_regclass_init): Rename to pass_reginfo_init. Modify
14055 corresponding entries.
14056 (dump_regclass, record_operand_costs, scan_one_insn,
14057 init_reg_autoinc, regclass, record_reg_classes, copy_cost,
14058 record_address_regs, auto_inc_dec_reg_p): Remove.
14059 (gt-regclass.h): Rename to gt-reginfo.h.
14060
14061 * rtl.h (dump_global_regs, retry_global_alloc,
14062 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
14063
14064 * Makefile.in (RA_H): Remove.
14065 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
14066 Rename regclass.o to reginfo.o.
14067 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to
14068 gt-reginfo.h.
14069 (global.o, local-alloc.o, ra-conflict.o): Remove entries.
14070 (GTFILES): Rename regclass.c to reginfo.c.
14071
14072 * passes.c (init_optimization_passes): Remove pass_local_alloc and
14073 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init.
14074
14075 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
14076 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
14077 Remove flag_ira.
14078 (finish_spills): Ditto. Remove code for !flag_ira.
14079
14080 2009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
14081
14082 PR middle-end/35854
14083 * doc/invoke.texi (rtl debug options): Complete rewrite.
14084 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
14085 to auto_inc_dec".
14086 * mode-switching.c (pass_mode_switching): Rename pass from
14087 "mode-sw" to "mode_sw".
14088 * except.c (pass_convert_to_eh_ranges): Rename pass from
14089 "eh-ranges" to "eh_ranges".
14090 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
14091 to "subreg1".
14092
14093
14094 2009-01-29 Andrey Belevantsev <abel@ispras.ru>
14095 Alexander Monakov <amonakov@ispras.ru>
14096
14097 PR middle-end/38857
14098 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
14099 register.
14100 (move_exprs_to_boundary): Change return type and pass through
14101 should_move from move_op. Relax assert. Update usage ...
14102 (schedule_expr_on_boundary): ... here. Use should_move instead of
14103 cant_move.
14104 (move_op_orig_expr_found): Indicate that insn was disconnected from
14105 stream.
14106 (code_motion_process_successors): Do not call after_merge_succs
14107 callback if original expression was not found when traversing any of
14108 the branches.
14109 (code_motion_path_driver): Change return type. Update prototype.
14110 (move_op): Update comment. Add a new parameter (should_move). Update
14111 prototype. Set *should_move based on indication provided by
14112 move_op_orig_expr_found.
14113
14114 2009-01-28 Pat Haugen <pthaugen@us.ibm.com>
14115
14116 * doc/invoke.texi (avoid-indexed-addresses): Document new option.
14117 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
14118 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
14119 * config/rs6000/rs6000.c (rs6000_override_options): Default
14120 avoid-indexed-addresses on for Power6, off for everything else.
14121 (avoiding_indexed_address_p): New function.
14122 (rs6000_legitimize_address): Use it.
14123 (rs6000_legitimate_address): Likewise.
14124 * config/rs6000/rs6000.md (movXX_updateX): Likewise
14125
14126 2009-01-28 Kazu Hirata <kazu@codesourcery.com>
14127
14128 PR tree-optimization/38997
14129 * tree-loop-distribution.c (generate_memset_zero): Use
14130 POINTER_PLUS_EXPR for a pointer addition.
14131
14132 2009-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
14133
14134 * config/s390/s390.md (bswap<mode>2): New pattern added.
14135
14136 2009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
14137
14138 * config/s390/s390.md (*tls_load_31): Added type attribute.
14139
14140 2009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
14141
14142 * config/s390/s390.md: Fix a few comments.
14143
14144 2009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
14145
14146 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
14147 (*tm<mode>_full): Fixed z10prop attribute.
14148 (*tst<mode>_extimm): Fixed z10prop attribute.
14149 (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
14150 (*tstqiCCT_cconly): Fixed z10prop attribute.
14151 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
14152 (*movsi_larl): Fixed z10prop attribute.
14153 (*movsi_zarch): Fixed z10prop attribute.
14154 (*movsi_eas): Fixed z10prop attribute.
14155 (*movhi): Fixed z10prop attribute.
14156 (*movqi): Fixed z10prop attribute.
14157 (*movstrictqi): Fixed z10prop attribute.
14158 (*mov<mode>): Fixed z10prop attribute.
14159 (*movcc): Fixed z10prop attribute.
14160 (*sethighpartdi_64): Fixed z10prop attribute.
14161 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
14162 (*negdi2_sign_cc): Fixed z10prop attribute.
14163 (*negdi2_sign): Fixed z10prop attribute.
14164 (*absdi2_sign_cc): Fixed z10prop attribute.
14165 (*absdi2_sign): Fixed z10prop attribute.
14166 (*negabsdi2_sign_cc): Fixed z10prop attribute.
14167 (*negabsdi2_sign): Fixed z10prop attribute.
14168 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
14169 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
14170 (doloop_si64): Fixed z10prop attribute.
14171 (doloop_si31): Fixed z10prop attribute.
14172 (doloop_long): Fixed z10prop attribute.
14173 (indirect_jump): Fixed z10prop attribute.
14174 (nop): Fixed z10prop attribute.
14175 (main_base_64): Fixed z10prop attribute.
14176 (reload_base_64): Fixed z10prop attribute.
14177
14178 2009-01-28 Jakub Jelinek <jakub@redhat.com>
14179
14180 PR rtl-optimization/38740
14181 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
14182 if !optimize.
14183 * config/mips/mips.c (mips_reorg): Likewise.
14184
14185 2009-01-28 Richard Guenther <rguenther@suse.de>
14186
14187 PR tree-optimization/38926
14188 * tree-ssa-pre.c (add_to_value): Assert we add only expressions
14189 with the correct value id to a value.
14190 (do_regular_insertion): Use the value number of edoubleprime
14191 for the value number of the expr.
14192
14193 Revert
14194 2008-08-21 Richard Guenther <rguenther@suse.de>
14195
14196 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
14197 a PHI ask VN if it is already available.
14198 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
14199 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
14200
14201 2009-01-28 Jakub Jelinek <jakub@redhat.com>
14202
14203 PR middle-end/38934
14204 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
14205 set to varying whenever max has TREE_OVERFLOW set, similarly
14206 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
14207
14208 2009-01-28 Richard Guenther <rguenther@suse.de>
14209
14210 PR middle-end/38908
14211 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
14212 uninitialized aggregate uses in call arguments.
14213
14214 2009-01-28 Paolo Bonzini <bonzini@gnu.org>
14215
14216 PR tree-optimization/38984
14217 * tree-ssa-structalias.c (get_constraints_for_1): Do not use
14218 the nothing_id variable if -fno-delete-null-pointer-checks.
14219
14220 2009-01-28 Uros Bizjak <ubizjak@gmail.com>
14221
14222 PR target/38988
14223 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
14224 (set_got_offset_rex64): Ditto.
14225
14226 2009-01-27 H.J. Lu <hongjiu.lu@intel.com>
14227
14228 PR target/38941
14229 * doc/extend.texi: Improve local variable with asm reg.
14230
14231 2009-01-27 Adam Nemet <anemet@caviumnetworks.com>
14232
14233 * c.opt (Wpacked-bitfield-compat): Change init value to -1.
14234 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
14235 was not supplied then set warn_packed_bitfield_compat to the
14236 default value of 1.
14237 * stor-layout.c (place_field): Check warn_packed_bitfield_compat
14238 against 1.
14239
14240 2009-01-27 Richard Guenther <rguenther@suse.de>
14241
14242 PR tree-optimization/38503
14243 * cfgexpand.c (expand_gimple_basic_block): Ignore
14244 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
14245 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
14246 variables that cannot have TBAA applied.
14247 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
14248 statements.
14249
14250 2009-01-27 Uros Bizjak <ubizjak@gmail.com>
14251
14252 PR middle-end/38969
14253 * calls.c (initialize_argument_information): Do not wrap complex
14254 arguments in SAVE_EXPR.
14255
14256 2009-01-26 Andreas Tobler <a.tobler@schweiz.org>
14257
14258 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
14259 (INSTALL_LIBGCC): Revert typo commit.
14260
14261 2009-01-26 Richard Guenther <rguenther@suse.de>
14262
14263 PR tree-optimization/38745
14264 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
14265 from special handling.
14266
14267 2009-01-26 Richard Guenther <rguenther@suse.de>
14268
14269 PR tree-optimization/38745
14270 * tree-ssa.c (execute_update_addresses_taken): Do not include
14271 variables that cannot possibly be a register in not_reg_needs.
14272 Do not clear TREE_ADDRESSABLE on vars that may not become
14273 registers.
14274 * tree-ssa.c (update_alias_info_1): Include those in the set
14275 of addressable vars.
14276
14277 2009-01-26 Richard Guenther <rguenther@suse.de>
14278
14279 PR middle-end/38851
14280 * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
14281 * tree-ssa-dse.c: Include langhooks.h
14282 (execute_simple_dse): Remove stores with zero size.
14283
14284 2009-01-24 Jakub Jelinek <jakub@redhat.com>
14285
14286 PR c/38957
14287 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
14288 as PLUS_EXPR.
14289
14290 2009-01-24 Julian Brown <julian@codesourcery.com>
14291
14292 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
14293 config/arm/linux-atomic.c.
14294 * config/arm/linux-atomic.c: New.
14295
14296 2009-01-24 Eric Botcazou <ebotcazou@adacore.com>
14297
14298 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
14299 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
14300 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
14301
14302 2009-01-24 H.J. Lu <hongjiu.lu@intel.com>
14303
14304 PR c/38938
14305 * c-opts.c (c_common_handle_option): Update warn_pointer_sign
14306 properly.
14307
14308 2009-01-24 Sebastian Pop <sebastian.pop@amd.com>
14309
14310 PR tree-optimization/38953
14311 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
14312 (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
14313 (gloog): Split the exit of the scop when the scop exit is a loop exit.
14314 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
14315 changed the CFG.
14316
14317 2009-01-24 Paul Brook <paul@codesourcery.com>
14318
14319 * config/arm/neon.md (neon_type): Move to arm.md.
14320 (neon_mov<VSTRUCT>): Add neon_type attribute.
14321 * config/arm/arm.md (neon_type): Move to here.
14322 (conds): Add "unconditioal" and use as default for NEON insns.
14323
14324 2009-01-24 Ben Elliston <bje@au.ibm.com>
14325
14326 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
14327 void *' warning from -Wc++-compat.
14328 * Makefile.in (dominance.o-warn): Remove.
14329
14330 2009-01-23 Paolo Bonzini <bonzini@gnu.org>
14331
14332 PR tree-optimization/38932
14333 * fold-const.c (fold_unary_ignore_overflow): New.
14334 * tree.h (fold_unary_ignore_overflow): Declare.
14335 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
14336 * tree-ssa-sccvn.c (visit_reference_op_load,
14337 simplify_unary_expression): Likewise.
14338
14339 2009-01-22 Adam Nemet <anemet@caviumnetworks.com>
14340
14341 * c-decl.c (finish_struct): Move code to set DECL_PACKED after
14342 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields
14343 regardless of their type.
14344 * c-common.c (handle_packed_attribute): Don't ignore packed on
14345 bitfields.
14346 * c.opt (Wpacked-bitfield-compat): New warning option.
14347 * stor-layout.c (place_field): Warn if offset of a field changed.
14348 * doc/extend.texi (packed): Mention the ABI change.
14349 * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
14350 (Warning Options): Add it to the list.
14351
14352 2009-01-22 H.J. Lu <hongjiu.lu@intel.com>
14353
14354 * c-opts.c (c_common_post_options): Fix a typo in comments.
14355
14356 2009-01-22 Steve Ellcey <sje@cup.hp.com>
14357
14358 PR middle-end/38615
14359 * gimplify.c (gimplify_init_constructor): Fix promotion of const
14360 variables to static.
14361 * doc/invoke.texi (-fmerge-all-constants): Update description.
14362
14363 2009-01-22 Uros Bizjak <ubizjak@gmail.com>
14364
14365 PR target/38931
14366 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
14367 (*movdi_1_rex64): Use type "mmx" for alternative 5.
14368
14369 2009-01-22 Richard Earnshaw <rearnsha@arm.com>
14370
14371 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
14372 a word boundary.
14373 (LOCAL_ALIGNMENT): Similarly.
14374
14375 2009-01-22 Mark Shinwell <shinwell@codesourcery.com>
14376 Joseph Myers <joseph@codesourcery.com>
14377
14378 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
14379 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
14380 * config/arm/arm-tune.md: Regenerate.
14381 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
14382 -march=iwmmxt2.
14383
14384 2009-01-22 Mark Shinwell <shinwell@codesourcery.com>
14385
14386 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
14387 version number to five.
14388
14389 2009-01-22 Dodji Seketeli <dodji@redhat.com>
14390
14391 PR c++/38930
14392 * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
14393 * c-common.c (set_underlying_type): Likewise.
14394 (is_typedef_decl ): Likewise
14395 * tree.h: Likewise
14396 (set_underlying_type): Likewise.
14397 (is_typedef_type): Likewise.
14398
14399 2009-01-21 Vladimir Makarov <vmakarov@redhat.com>
14400
14401 PR middle-end/38587
14402 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
14403 crossing setjmps.
14404
14405 2009-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
14406
14407 PR bootstrap/37660
14408 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro.
14409 (LIBGCC_SPEC): Don't define.
14410 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC.
14411
14412 2009-01-21 Uros Bizjak <ubizjak@gmail.com>
14413
14414 PR rtl-optimization/38879
14415 * alias.c (base_alias_check): Unaligned access via AND address can
14416 alias all surrounding object types except those with sizes equal
14417 or wider than the size of unaligned access.
14418
14419 2009-01-21 Dodji Seketeli <dodji@redhat.com>
14420
14421 PR c++/26693
14422 * c-decl.c (clone_underlying_type): Move this ...
14423 * c-common.c (set_underlying_type): ... here.
14424 Also, make sure the function properly sets TYPE_STUB_DECL() on
14425 the newly created typedef variant type.
14426 (is_typedef_decl ): New entry point.
14427 * tree.h: Added a new member member_types_needing_access_check to
14428 struct tree_decl_non_common.
14429 (set_underlying_type): New entry point.
14430 (is_typedef_type): Likewise.
14431
14432 2009-01-21 Bingfeng Mei <bmei@broadcom.com>
14433
14434 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
14435 Check whether two instructions have memory references that
14436 belong to conflicting alias sets. walk_mems_1 and walk_mems_2
14437 are helper functions for traversing.
14438 * alias.h (insn_alias_sets_confilict_p): New prototypes.
14439 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
14440 not to draw dependency edge for instructions with non-conflicting
14441 alias sets.
14442
14443 2009-01-20 Joseph Myers <joseph@codesourcery.com>
14444
14445 PR other/38758
14446 * longlong.h: Update copyright years. Use soft-fp license notice.
14447 Sync __clz_tab declaration with glibc.
14448
14449 2009-01-20 Steve Ellcey <sje@cup.hp.com>
14450
14451 PR target/30687
14452 * doc/extend.texi (syscall_linkage): New.
14453 (version_id): Modify.
14454
14455 2009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
14456 Richard Guenther <rguenther@suse.de>
14457
14458 PR tree-optimization/38747
14459 PR tree-optimization/38748
14460 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
14461 conversion if the base address is an indirect reference and the
14462 aliasing sets could cause issues.
14463
14464 2009-01-20 Sebastian Pop <sebastian.pop@amd.com>
14465
14466 * common.opt (fgraphite, fgraphite-identity): Add comment for
14467 explaining why these options are not documented.
14468
14469 2009-01-20 Sebastian Pop <sebastian.pop@amd.com>
14470
14471 * graphite.c (stmt_simple_for_scop_p): Also handle cases when
14472 gimple_call_lhs is NULL.
14473
14474 2009-01-20 Paolo Bonzini <bonzini@gnu.org>
14475
14476 PR target/38868
14477 * emit-rtl.c (adjust_address_1): Make sure memref is never
14478 overwritten.
14479
14480 2009-01-20 Ben Elliston <bje@au.ibm.com>
14481
14482 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
14483 const qualifier from arg parameter. Remove unnecessary cast to char *.
14484 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
14485 const qualifier from arg 2.
14486
14487 2009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
14488
14489 * config/darwin.h: Add static-libgfortran to LINK_SPEC.
14490
14491 2009-01-19 Vladimir Makarov <vmakarov@redhat.com>
14492
14493 PR c/38869
14494 * rtl.h (reinit_regs): New prototype.
14495 * regclass.c: Include ira.h.
14496 (reinit_regs): New.
14497 * Makefile.in (regclass.o): Add ira.h.
14498 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
14499
14500 2009-01-18 H.J. Lu <hongjiu.lu@intel.com>
14501
14502 PR target/38736
14503 * c-common.c (handle_aligned_attribute): Use
14504 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
14505 default alignment value.
14506
14507 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
14508
14509 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
14510 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
14511
14512 * doc/extend.texi: Update __attribute__ ((aligned)). Document
14513 __BIGGEST_ALIGNMENT__.
14514
14515 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
14516
14517 2009-01-18 Richard Guenther <rguenther@suse.de>
14518
14519 PR tree-optimization/38819
14520 * tree-flow.h (operation_could_trap_helper_p): Declare.
14521 * tree-eh.c (operation_could_trap_helper_p): Export.
14522 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
14523 * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
14524 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
14525 are about to insert a possibly trapping instruction and fail
14526 in this case.
14527
14528 2009-01-18 Andreas Schwab <schwab@suse.de>
14529
14530 * doc/install.texi (Configuration): Remove obsolete paragraph
14531 about use of --with-gnu-ld with --with-gnu-as.
14532
14533 2009-01-18 Kazu Hirata <kazu@codesourcery.com>
14534
14535 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
14536 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
14537 Follow spelling conventions.
14538
14539 2009-01-18 Ben Elliston <bje@au.ibm.com>
14540
14541 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
14542 C++ warning about implicit conversion from void * to struct
14543 bitmap_head_def *.
14544 (bitmap_obstack_free): Likewise for bitmap_element *.
14545 * Makefile.in (bitmap.o-warn): Remove.
14546
14547 2009-01-17 Dave Korn <dave.korn.cygwin@gmail.com>
14548
14549 * Makefile.in (BACKENDLIBS): Reorder to match dependencies.
14550
14551 2009-01-17 Sebastian Pop <sebastian.pop@amd.com>
14552 Tobias Grosser <tobi.grosser@amd.com>
14553
14554 * graphite.c (graphite_trans_scop_block): Do not block single
14555 nested loops.
14556
14557 2009-01-16 Alexandre Oliva <aoliva@redhat.com>
14558
14559 * ebitmap.h (ebitmap_iter_init): Initialize all fields.
14560 * ipa-struct-reorg.c (gen_struct_type): Replace known-true
14561 test with assertion.
14562
14563 2009-01-16 Richard Guenther <rguenther@suse.de>
14564
14565 PR tree-optimization/38835
14566 PR middle-end/36227
14567 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
14568 and INT + PTR -> (INT)(PTR p+ INT) folding.
14569 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
14570
14571 2009-01-16 Adam Nemet <anemet@caviumnetworks.com>
14572
14573 PR target/38554
14574 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
14575 the subreg from a lowpart subreg if it is also casting the value.
14576
14577 2009-01-16 Sebastian Pop <sebastian.pop@amd.com>
14578 Tobias Grosser <tobi.grosser@amd.com>
14579
14580 * graphite.c (compare_prefix_loops): New.
14581 (build_scop_canonical_schedules): Rewritten.
14582 (graphite_transform_loops): Move build_scop_canonical_schedules
14583 after build_scop_iteration_domain.
14584
14585 2009-01-16 Sebastian Pop <sebastian.pop@amd.com>
14586 Tobias Grosser <tobi.grosser@amd.com>
14587
14588 * graphite.c (add_conditions_to_domain): Add the loops to
14589 the dimension of the iteration domain. Do copy the domain
14590 only when it exists.
14591 (build_scop_conditions_1): Do not call add_conditions_to_domain.
14592 (add_conditions_to_constraints): New.
14593 (can_generate_code_stmt, can_generate_code): Removed.
14594 (gloog): Do not call can_generate_code.
14595 (graphite_transform_loops): Call add_conditions_to_constraints
14596 after building the iteration domain.
14597
14598 2009-01-16 Jakub Jelinek <jakub@redhat.com>
14599
14600 PR tree-optimization/38789
14601 * tree-ssa-threadedge.c
14602 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
14603 __builtin_constant_p.
14604
14605 2009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com>
14606
14607 * dce.c (delete_unmarked_insns): Reversed the order that insns are
14608 examined before deleting them.
14609
14610 2009-01-16 Richard Earnshaw <rearnsha@arm.com>
14611
14612 * function.c (aggregate_value_p): Correctly extract the function
14613 type from CALL_EXPR_FN lookup.
14614
14615 2009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com>
14616
14617 * config/picochip/picochip.c (picochip_override_options): Revert
14618 CFI asm flag disable commited previously.
14619
14620 2009-01-15 Sebastian Pop <sebastian.pop@amd.com>
14621 Tobias Grosser <tobi.grosser@amd.com>
14622 Jan Sjodin <jan.sjodin@amd.com>
14623
14624 * graphite.c (scan_tree_for_params): On substractions negate
14625 all the coefficients of the term.
14626 (clast_to_gcc_expression_red): New. Handle reduction expressions
14627 of more than two operands.
14628 (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
14629 (get_vdef_before_scop): Handle also the case of default definitions.
14630
14631 2009-01-15 Richard Sandiford <rdsandiford@googlemail.com>
14632
14633 * caller-save.c (add_used_regs_1, add_used_regs): New functions.
14634 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
14635 Also use them when walking CALL_INSN_FUNCTION_USAGE.
14636
14637 2009-01-15 H.J. Lu <hongjiu.lu@intel.com>
14638 Joey Ye <joey.ye@intel.com>
14639
14640 PR middle-end/37843
14641 * cfgexpand.c (expand_stack_alignment): Don't update stack
14642 boundary nor check incoming stack boundary here.
14643 (gimple_expand_cfg): Update stack boundary and check incoming
14644 stack boundary here.
14645
14646 2009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com>
14647
14648 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
14649
14650 2009-01-14 Jakub Jelinek <jakub@redhat.com>
14651
14652 PR rtl-optimization/38245
14653 * calls.c (expand_call): Add stack arguments to
14654 CALL_INSN_FUNCTION_USAGE even for pure calls (when
14655 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
14656 in regs and partially in memory or BLKmode arguments.
14657 (emit_library_call_value_1): Add stack arguments to
14658 CALL_INSN_FUNCTION_USAGE even for pure calls (when
14659 ACCUMULATE_OUTGOING_ARGS).
14660 * dce.c: Include tm_p.h.
14661 (find_call_stack_args): New function.
14662 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
14663 argument.
14664 (mark_insn): Call find_call_stack_args for CALL_Ps.
14665 (prescan_insns_for_dce): Walk insns backwards in bb rather than
14666 forwards. Allocate and free arg_stores bitmap if needed, pass it
14667 down to deletable_insn_p, don't mark stores set in arg_stores
14668 bitmap, clear the bitmap at the beginning of each bb.
14669 * Makefile.in (dce.o): Depend on $(TM_P_H).
14670
14671 2009-01-14 Michael Meissner <gnu@the-meissners.org>
14672
14673 PR target/22599
14674 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
14675 to make sure the insn is a conditional test (bug 22599). Reformat a
14676 few long lines.
14677
14678 2009-01-14 Sebastian Pop <sebastian.pop@amd.com>
14679
14680 PR middle-end/38431
14681 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
14682 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
14683 (gloog): Do not call cleanup_tree_cfg.
14684 (graphite_transform_loops): Call cleanup_tree_cfg after all
14685 scops have been code generated.
14686
14687 2009-01-14 Basile Starynkevitch <basile@starynkevitch.net>
14688 * doc/gty.texi (Invoking the garbage collector): Added new node
14689 and section documenting ggc_collect.
14690
14691 2009-01-14 Richard Guenther <rguenther@suse.de>
14692
14693 PR tree-optimization/38826
14694 PR middle-end/38477
14695 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
14696 initialization notes only if we actually emitted a warning.
14697 (intra_create_variable_infos): Add constraints for a result decl
14698 that is passed by hidden reference.
14699 (build_pred_graph): Mark all related variables non-direct on
14700 address-taking.
14701
14702 2009-01-14 Nick Clifton <nickc@redhat.com>
14703
14704 * ira-conflicts.c: Include addresses.h for the definition of
14705 base_reg_class.
14706 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
14707 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
14708
14709 2009-01-13 Vladimir Makarov <vmakarov@redhat.com>
14710
14711 PR target/38811
14712 * Makefile.in (ira-lives.o): Add except.h.
14713
14714 * ira-lives.c: Include except.h.
14715 (process_bb_node_lives): Process can_throw_internal.
14716
14717 2009-01-13 Jakub Jelinek <jakub@redhat.com>
14718
14719 PR rtl-optimization/38774
14720 * combine.c (simplify_set): When undoing cc_use change, don't do
14721 PUT_CODE on the newly created comparison, but instead put back the
14722 old comparison.
14723
14724 2009-01-13 Joseph Myers <joseph@codesourcery.com>
14725
14726 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
14727 values. Remove duplicate arm8 entry.
14728
14729 2009-01-13 Sebastian Pop <sebastian.pop@amd.com>
14730
14731 PR tree-optimization/38786
14732 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
14733 the SSA_NAME case of expand_scalar_variables_expr.
14734 Set the type of an expression to the type of its assign statement.
14735 (expand_scalar_variables_expr): Also gather the scalar computation
14736 used to index the memory access. Do not pass loop_p.
14737 Fix comment. Stop recursion on tcc_constant or tcc_declaration.
14738 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
14739 the gimple_stmt_iterator where it inserts new code.
14740 Do not pass loop_p.
14741 (copy_bb_and_scalar_dependences): Do not pass loop_p.
14742 (translate_clast): Update call to copy_bb_and_scalar_dependences.
14743
14744 2009-01-13 Sebastian Pop <sebastian.pop@amd.com>
14745
14746 * graphite.h (debug_value): Removed.
14747 * graphite.c (debug_value): Removed.
14748
14749 2009-01-13 Richard Earnshaw <rearnsha@arm.com>
14750
14751 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
14752 ldrd/strd with two 32-bit instructions.
14753
14754 2009-01-13 Richard Earnshaw <rearnsha@arm.com>
14755
14756 * config/arm/arm.c (struct processors): Pass for speed down into
14757 cost helper functions.
14758 (const_ok_for_op): Handle COMPARE and inequality nodes.
14759 (arm_rtx_costs_1): Rewrite.
14760 (arm_size_rtx_costs): Update prototype.
14761 (arm_rtx_costs): Pass speed down to helper functions.
14762 (arm_slowmul_rtx_costs): Rework cost calculations.
14763 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
14764 (arm_9e_rtx_costs): Likewise.
14765
14766 2009-01-13 Uros Bizjak <ubizjak@gmail.com>
14767
14768 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
14769 relocations of local symbols wider than UNITS_PER_WORD are not valid.
14770 (alpha_legitimize_address): Do not split local symbols wider than
14771 UNITS_PER_WORD into HIGH/LO_SUM parts.
14772
14773 2009-01-13 Danny Smith <dannysmith@users.sourceforge.net>
14774
14775 PR bootstrap/38580
14776 * gcc.c (process_command): Replace call to execvp with calls
14777 to pex_one and exit.
14778
14779 2009-01-03 Anatoly Sokolov <aesok@post.ru>
14780
14781 PR target/29141
14782 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
14783 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
14784 variant for devices with 3-byte PC.
14785 (__tablejump_elpm__): New.
14786
14787 2009-01-12 Jakub Jelinek <jakub@redhat.com>
14788
14789 PR c/32041
14790 * c-parser.c (c_parser_postfix_expression): Allow `->' in
14791 offsetof member-designator, handle it as `[0].'.
14792
14793 2009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14794
14795 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
14796 function when not using named sections on targets with named sections
14797 if branch distance is less than 262132.
14798
14799 2009-01-12 Richard Earnshaw <rearnsha@arm.com>
14800
14801 * combine.c (combine_instructions): Recompute
14802 optimize_this_for_speed_p for each BB in the main combine loop.
14803
14804 2009-01-12 Tomas Bily <tbily@suse.cz>
14805
14806 PR middlend/38385
14807 * tree-loop-distribution.c (prop_phis): New function.
14808 (generate_builtin): Call prop_phis.
14809 * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
14810
14811 2009-01-12 Jakub Jelinek <jakub@redhat.com>
14812
14813 PR tree-optimization/38807
14814 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
14815 gimple_visited_p unless stmt is GIMPLE_ASSIGN.
14816
14817 2009-01-11 Adam Nemet <anemet@caviumnetworks.com>
14818
14819 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
14820 subreg of op0 to the original op0.
14821
14822 2009-01-11 Laurent GUERBY <laurent@guerby.net>
14823
14824 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
14825
14826 2009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
14827
14828 PR debug/7055
14829 * mips-tfile.c (parse_def): Fix parsing of def strings
14830 starting with digits.
14831
14832 2009-01-10 Jakub Jelinek <jakub@redhat.com>
14833
14834 PR target/38695
14835 * config/arm/arm.c (arm_is_long_call_p): Don't call
14836 arm_function_in_section_p if decl isn't a FUNCTION_DECL.
14837
14838 2009-01-09 Steven Bosscher <steven@gcc.gnu.org>
14839
14840 * regrename.c (regrename_optimize): Fix dumping.
14841 (find_oldest_value_reg): Preserve REG_POINTER.
14842 (copy_hardreg_forward_1): Likewise.
14843
14844 2009-01-09 Diego Novillo <dnovillo@google.com>
14845
14846 * gimple.h (struct gimple_statement_base) <uid>: Document
14847 the restrictions on its use.
14848 (gimple_uid): Tidy.
14849 (gimple_set_uid): Tidy.
14850
14851 2009-01-09 Jakub Jelinek <jakub@redhat.com>
14852
14853 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
14854 zero guard even if align_bytes != 0 and count is smaller than
14855 size_needed.
14856
14857 2009-01-09 Vladimir Makarov <vmakarov@redhat.com>
14858
14859 PR rtl-optimization/38495
14860 * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
14861 (add_range_and_copies_from_move_list): Print all added ranges.
14862 Add ranges to memory optimized destination.
14863
14864 2009-01-09 Jakub Jelinek <jakub@redhat.com>
14865
14866 PR target/38686
14867 PR target/38708
14868 * config/i386/i386.c (override_options): Reject
14869 -mstringop-strategy=rep_8byte with -m32.
14870 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
14871 to 1. Do count comparison against epilogue_size_needed at compile
14872 time even when count_exp was constant forced into register. For
14873 size_needed don't jump to epilogue, instead just avoid aligning
14874 and invoke the body algorithm. If need_zero_guard, add zero guard
14875 even if count is non-zero, but smaller than size_needed + number of
14876 bytes that could be stored for alignment.
14877 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
14878 to 1. If need_zero_guard, add zero guard even if count is non-zero,
14879 but smaller than size_needed + number of bytes that could be stored
14880 for alignment. Compare size_needed with epilogue_size_needed instead
14881 of desired_align - align, don't adjust size_needed, pass
14882 epilogue_size_needed to the epilogue expanders.
14883
14884 PR c/35742
14885 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
14886
14887 2009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14888
14889 * pa.c (last_address): Change to unsigned.
14890 (update_total_code_bytes): Change argument to unsigned. Don't
14891 check if insn addresses are set.
14892 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
14893 addresses are not set.
14894 (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
14895
14896 2009-01-09 Nick Clifton <nickc@redhat.com>
14897
14898 * config/sh/symbian.c: Replace uses of DECL_INLINE with
14899 DECL_DECLARED_INLINE_P.
14900
14901 2009-01-09 Jakub Jelinek <jakub@redhat.com>
14902
14903 PR middle-end/38347
14904 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
14905 GET_MODE (op0) in operand_subword_force calls.
14906
14907 PR middle-end/38771
14908 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
14909 fold_convert arg0 operands to TREE_TYPE (op0) first.
14910
14911 2009-01-08 Vladimir Makarov <vmakarov@redhat.com>
14912
14913 * params.def (ira-max-conflict-table-size): Decrease default value
14914 to 1000.
14915
14916 2009-01-08 Jakub Jelinek <jakub@redhat.com>
14917
14918 PR tree-optimization/37031
14919 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
14920 on parameter_set.
14921 (build_access_matrix): Reserve correct size for AM_MATRIX vector,
14922 allocate it using gc instead of heap, use VEC_quick_push instead of
14923 VEC_safe_push.
14924 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
14925 instead of heap, use VEC_quick_push instead of VEC_safe_push.
14926 * tree-data-ref.h (struct access_matrix): Change matrix to gc
14927 allocated vector from heap allocated.
14928 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
14929 * tree-loop-linear.c (linear_transform_loops): Allocate nest
14930 vector only after perfect_loop_nest_depth call.
14931
14932 2009-01-08 Sebastian Pop <sebastian.pop@amd.com>
14933 Jan Sjodin <jan.sjodin@amd.com>
14934
14935 PR tree-optimization/38559
14936 * graphite.c (debug_value, copy_constraint,
14937 swap_constraint_variables, scale_constraint_variable, ): New.
14938 (get_lower_bound, get_upper_bound): Removed.
14939 (graphite_trans_bb_strip_mine): Clean up this code that works
14940 only for constant number of iterations. Fully copy upper and
14941 lower bound constraints, not only the constant part of them.
14942 * graphite.h (debug_value): Declared.
14943
14944 2009-01-08 Ira Rosen <irar@il.ibm.com>
14945
14946 PR tree-optimization/37194
14947 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
14948 Don't add the cost of cost model guard in prologue to scalar
14949 outside cost in case of known number of iterations.
14950
14951 2009-01-07 Nathan Froyd <froydnj@codesourcery.com>
14952 Alan Modra <amodra@bigpond.net.au>
14953
14954 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
14955 non-word-aligned REG+CONST addressing.
14956
14957 2009-01-07 Uros Bizjak <ubizjak@gmail.com>
14958
14959 PR target/38706
14960 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
14961 free_after_compilation when outputting a thunk.
14962 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
14963 Do not call free_after_compilation here.
14964
14965 2009-01-07 Uros Bizjak <ubizjak@gmail.com>
14966
14967 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
14968 (ix86_valid_target_attribute_inner_p): Ditto.
14969
14970 2009-01-07 Jan Sjodin <jan.sjodin@amd.com>
14971
14972 PR tree-optimization/38492
14973 PR tree-optimization/38498
14974 * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
14975 * tree-chrec.h (scev_is_linear_expression): Declared.
14976 * graphite.c (graphite_cannot_represent_loop_niter): New.
14977 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
14978 (graphite_loop_normal_form): Use gcc_assert.
14979 (scan_tree_for_params): Use CASE_CONVERT.
14980 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
14981 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
14982 Use gcc_assert. Discard scops that contain unhandled cases.
14983 (build_scop_conditions): Return a boolean status for unhandled cases.
14984 (strip_mine_profitable_p): Print the loop number, not its depth.
14985 (is_interchange_valid): Pass the depth of the loop nest, don't
14986 recompute it wrongly.
14987 (graphite_trans_bb_block): Same.
14988 (graphite_trans_bb_block): Print tentative of loop blocking.
14989 (graphite_trans_scop_block): Do not print that the loop has been
14990 blocked.
14991 (graphite_transform_loops): Do not handle scops that contain condition
14992 scalar phi nodes.
14993
14994 2009-01-07 H.J. Lu <hongjiu.lu@intel.com>
14995
14996 AVX Programming Reference (December, 2008)
14997 * config/i386/avxintrin.h (_mm256_stream_si256): New.
14998 (_mm256_stream_pd): Likewise.
14999 (_mm256_stream_ps): Likewise.
15000
15001 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
15002 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
15003 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
15004 (bdesc_special_args): Add __builtin_ia32_movntdq256,
15005 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
15006 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
15007 (ix86_expand_special_args_builtin): Likewise.
15008
15009 * config/i386/sse.md (AVXMODEDI): New.
15010 (avx_movnt<mode>): Likewise.
15011 (avx_movnt<mode>): Likewise.
15012 (<sse>_movnt<mode>): Remove AVX support.
15013 (sse2_movntv2di): Likewise.
15014
15015 2009-01-07 Richard Guenther <rguenther@suse.de>
15016
15017 PR middle-end/38751
15018 * fold-const.c (extract_muldiv): Remove obsolete comment.
15019 (fold_plusminus_mult_expr): Undo MINUS_EXPR
15020 to PLUS_EXPR canonicalization for the canonicalization.
15021
15022 2009-01-07 Gerald Pfeifer <gerald@pfeifer.com>
15023
15024 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
15025 hosted cross-compilers generating less efficient code.
15026
15027 2009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
15028
15029 * function.h (rtl_data): Add a dbr_scheduled_p field.
15030 * reorg.c (dbr_schedule): Set it.
15031 (gate_handle_delay_slots): Check it.
15032 * config/mips/mips.c (mips_base_delayed_branch): Delete.
15033 (mips_reorg): Check flag_delayed_branch instead of
15034 mips_base_delayed_branch.
15035 (mips_override_options): Don't set mips_base_delayed_branch
15036 or flag_delayed_branch.
15037
15038 2009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
15039
15040 PR rtl-optimization/38426.
15041 * ira.c (ira): Set current_function_is_leaf earlier.
15042
15043 2009-01-06 Jakub Jelinek <jakub@redhat.com>
15044
15045 PR rtl-optimization/38722
15046 * combine.c (try_combine): Don't modify PATTERN (i3) and notes
15047 too early, only set a flag and modify after last possible
15048 undo_all point.
15049
15050 2009-01-06 Janis Johnson <janis187@us.ibm.com>
15051
15052 PR c/34252
15053 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
15054 * real.c (decimal_single_format): Correct values of emin and emax.
15055 (decimal_double_format): Ditto.
15056 (decimal_quad_format): Ditto.
15057 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
15058 computation of DECnn_MIN and DECnn_MAX for corrected values of
15059 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of
15060 __DECnn_MIN__, and adjust its computation for the corrected value
15061 of emin.
15062
15063 2009-01-06 Jan Hubicka <jh@suse.cz>
15064
15065 PR target/38744
15066 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
15067
15068 2009-01-06 Gerald Pfeifer <gerald@pfeifer.com>
15069
15070 * doc/contrib.texi (Contributors): Slightly adjust the end note.
15071 Add Robert Clark to the list of testers.
15072
15073 2009-01-06 Jan Hubicka <jh@suse.cz>
15074 Kai Tietz <kai.tietz@onevision.com>
15075
15076 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
15077 * config/i386/i386.c (ix86_expand_call): Add clobbers.
15078
15079 2009-01-06 Jan Hubicka <jh@suse.cz>
15080 Kai Tietz <kai.tietz@onevision.com>
15081
15082 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
15083 for w64 ABI.
15084 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
15085 (ix86_nsaved_regs): Count only general purpose regs.
15086 (ix86_nsaved_sseregs): New.
15087 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
15088 to 16 for w64; compute padding and size of sse reg save area.
15089 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
15090 general purpose regs.
15091 (ix86_emit_save_sse_regs_using_mov): New.
15092 (ix86_expand_prologue): Save SSE regs if needed.
15093 (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
15094 (ix86_emit_restore_sse_regs_using_mov): New.
15095 (ix86_expand_epilogue): Save SSE regs if needed.
15096
15097 2009-01-06 Jan Hubicka <jh@suse.cz>
15098 Kai Tietz <kai.tietz@onevision.com>
15099
15100 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
15101 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
15102 functions when accumulate outgoing args is off.
15103
15104 2009-01-06 H.J. Lu <hongjiu.lu@intel.com>
15105
15106 PR bootstrap/38742
15107 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
15108 before using pseudos_have_intersected_live_ranges_p.
15109
15110 * ira-int.h (ira_assert): Always define.
15111
15112 2009-01-06 H.J. Lu <hongjiu.lu@intel.com>
15113
15114 AVX Programming Reference (December, 2008)
15115 * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
15116 (_mm256_permute2_pd): Likewise.
15117 (_mm_permute2_ps): Likewise.
15118 (_mm256_permute2_ps): Likewise.
15119 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
15120 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
15121
15122 * config/i386/i386.c (ix86_builtins): Remove
15123 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
15124 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
15125 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
15126 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
15127 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
15128 (bdesc_args): Remove __builtin_ia32_vpermil2pd,
15129 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
15130 __builtin_ia32_vpermil2ps256.
15131 (ix86_init_mmx_sse_builtins): Updated.
15132 (ix86_expand_args_builtin): Likewise.
15133
15134 2009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15135
15136 * pa.c (output_call): Relocate non-jump insns in the delay slot of
15137 long absolute calls when generating PA 2.0 code.
15138
15139 2009-01-05 Vladimir Makarov <vmakarov@redhat.com>
15140
15141 PR rtl-optimization/38583
15142 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
15143
15144 * params.def (ira-max-conflict-table-size): New.
15145
15146 * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
15147
15148 * ira.h (ira_conflicts_p): New external definition.
15149
15150 * ira-conflicts.c (build_conflict_bit_table): Do not build too big
15151 table. Report this. Return result of building.
15152 (ira_build_conflicts): Use ira_conflicts_p. Check result of
15153 building conflict table.
15154
15155 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
15156 (ira_color): Use ira_conflicts_p.
15157
15158 * global.c: Include ira.h.
15159 (pseudo_for_reload_consideration_p, build_insn_chain): Use
15160 ira_conflicts_p.
15161
15162 * Makefile.in (global.o): Add ira.h.
15163
15164 * ira-build.c (mark_all_loops_for_removal,
15165 propagate_some_info_from_allocno): New.
15166 (remove_unnecessary_allocnos): Call
15167 propagate_some_info_from_allocno.
15168 (remove_low_level_allocnos): New.
15169 (remove_unnecessary_regions): Add parameter. Call
15170 mark_all_loops_for_removal and remove_low_level_allocnos. Pass
15171 parameter to remove_unnecessary_regions.
15172 (ira_build): Remove all regions but root if the conflict table was
15173 not built. Update conflict hard regs for allocnos crossing calls.
15174
15175 * ira.c (ira_conflicts_p): New global.
15176 (ira): Define and use ira_conflicts_p.
15177
15178 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
15179 count_spilled_pseudo, find_reg, alter_reg, finish_spills,
15180 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
15181
15182 2009-01-06 Ben Elliston <bje@au.ibm.com>
15183
15184 * gengtype-lex.l (YY_NO_INPUT): Define.
15185
15186 2009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
15187
15188 PR c/34911
15189 * c-common.c (handle_vector_size_attribute): Also reject
15190 BOOLEAN_TYPE types.
15191
15192 2009-01-05 Sebastian Pop <sebastian.pop@amd.com>
15193
15194 PR tree-optimization/38492
15195 * graphite.c (rename_map_elt, debug_rename_elt,
15196 debug_rename_map_1, debug_rename_map, new_rename_map_elt,
15197 rename_map_elt_info, eq_rename_map_elts,
15198 get_new_name_from_old_name, bb_in_sese_p): Moved around.
15199 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
15200 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
15201 (sese_build_livein_liveouts): New.
15202 (new_sese, free_sese): New.
15203 (new_scop): Call new_sese.
15204 (free_scop): Call free_sese.
15205 (rename_variables_from_edge, rename_phis_end_scop): Removed.
15206 (register_old_new_names): Renamed register_old_and_new_names.
15207 (register_scop_liveout_renames, add_loop_exit_phis,
15208 insert_loop_close_phis, struct igp,
15209 default_liveout_before_guard, add_guard_exit_phis,
15210 insert_guard_phis, copy_renames): New.
15211 (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
15212 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
15213 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
15214 (scop_adjust_phis_for_liveouts): New.
15215 (gloog): Call scop_adjust_phis_for_liveouts.
15216
15217 * graphite.h (struct sese): Documented. Added fields liveout,
15218 num_ver and livein.
15219 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
15220 (new_sese, free_sese, sese_build_livein_liveouts): Declared.
15221 (struct scop): Added field liveout_renames.
15222 (SCOP_LIVEOUT_RENAMES): New.
15223
15224 2009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
15225
15226 PR tree-optimization/38510
15227 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
15228 (translate_clast): Call recompute_all_dominators before
15229 graphite_verify.
15230 (gloog): Call recompute_all_dominators before graphite_verify.
15231
15232 2009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
15233 Jan Sjodin <jan.sjodin@amd.com>
15234
15235 PR tree-optimization/38500
15236 * graphite.c (create_sese_edges): Call fix_loop_structure after
15237 splitting blocks.
15238
15239 2009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
15240
15241 * config.gcc: Add m32r*-*-rtems*.
15242 * config/m32r/rtems.h: New file.
15243
15244 2009-01-05 Ben Elliston <bje@au.ibm.com>
15245
15246 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
15247 (.po.pox): Likewise.
15248 (po/gcc.pot): Likewise.
15249
15250 2009-01-04 David S. Miller <davem@davemloft.net>
15251
15252 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
15253 (STARTING_FRAME_OFFSET): Always set to zero.
15254
15255 2009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
15256
15257 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
15258 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
15259 fixed-point types, and vectors of the same.
15260
15261 2009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
15262
15263 * config/mips/sync.md (*mb_barrier): Rename to...
15264 (*memory_barrier): ...this.
15265
15266 2009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com>
15267
15268 * doc/extend.texi (Function Attributes): Move @cindex after @item
15269 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
15270 and put in alphabetical order. Fix 'target' name and put in order.
15271 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
15272 typos.
15273
15274 2009-01-04 Uros Bizjak <ubizjak@gmail.com>
15275
15276 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
15277 (memory_barrier): Expand as unspec instead of unspec_volatile.
15278 Remove mem:BLK from insn operands. Use Pmode scratch register.
15279 (*memory_barrier): Define as unspec instead of unspec_volatile.
15280 Use (match_dup 0) as input operand.
15281
15282 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
15283 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
15284 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
15285 scratch register. Remove operand 1.
15286 (*stbar): Define as unspec instead of unspec_volatile.
15287 Use (match_dup 0) as input operand, remove (const_int 8).
15288 (*membar): Define as unspec instead of unspec_volatile.
15289 Use (match_dup 0) as input operand, remove input operand 2.
15290
15291 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
15292 (memory_barrier): Expand as unspec instead of unspec_volatile.
15293 Remove mem:BLK from insn operands. Use Pmode scratch register.
15294 (*memory_barrier): Define as unspec instead of unspec_volatile.
15295 Use (match_dup 0) as input operand.
15296
15297 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
15298 Remove mem:BLK from insn operands. Use Pmode scratch register.
15299 Set volatile flag on operand 0.
15300 (*memory_barrier): New insn pattern.
15301
15302 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
15303 insn operands.
15304 (*memory_barrier): Use (match_dup 0) as input operand.
15305
15306 * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
15307 Remove mem:BLK from insn operands. Use Pmode scratch register.
15308 Set volatile flag on operand 0.
15309 (*mb_internal): New insn pattern.
15310
15311 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
15312
15313 2009-01-04 Steven Bosscher <steven@gcc.gnu.org>
15314
15315 PR middle-end/38586
15316 * function.c (struct temp_slot): Move to the section of the file
15317 that deals with temp slots. Remove field 'address'.
15318 (temp_slot_address_table): New hash table of address -> temp slot.
15319 (struct temp_slot_address_entry): New struct, items for the table.
15320 (temp_slot_address_compute_hash, temp_slot_address_hash,
15321 temp_slot_address_eq, insert_temp_slot_address): Support functions
15322 for the new table.
15323 (find_temp_slot_from_address): Rewrite to use the new hash table.
15324 (remove_unused_temp_slot_addresses): Remove addresses of temp
15325 slots that have been made available.
15326 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
15327 worker function for remove_unused_temp_slot_addresses.
15328 (assign_stack_temp_for_type): Don't clear the temp slot address list.
15329 Add the temp slot address to the address -> temp slot map.
15330 (update_temp_slot_address): Update via insert_temp_slot_address.
15331 (free_temp_slots): Call remove_unused_temp_slot_addresses.
15332 (pop_temp_slots): Likewise.
15333 (init_temp_slots): Allocate the address -> temp slot map, or empty
15334 the map if it is already allocated.
15335 (prepare_function_start): Initialize temp slot processing.
15336
15337 2009-01-04 Steven Bosscher <steven@gcc.gnu.org>
15338
15339 PR middle-end/38584
15340 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
15341 Calculate the size of all stack vars assuming no packing of stack
15342 vars will happen, replacing a quadratic algorithm with a linear one.
15343
15344 2009-01-03 Jakub Jelinek <jakub@redhat.com>
15345
15346 PR target/38707
15347 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
15348 can't be used.
15349
15350 2009-01-03 Diego Novillo <dnovillo@google.com>
15351
15352 * doc/contrib.texi: Update contributions.
15353
15354 2009-01-03 Jakub Jelinek <jakub@redhat.com>
15355
15356 PR c++/38705
15357 * builtins.c (fold_builtin_memory_op): Give up if either operand
15358 is volatile. Set srctype or desttype to non-qualified version
15359 of the other type.
15360
15361 PR c/38700
15362 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
15363 and FUNCTION_DECLs.
15364
15365 2009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
15366
15367 PR rtl-optimization/35805
15368 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
15369 problem if fast dce is able to remove any instructions.
15370 * dce.c (dce_process_block): Fix dump message.
15371
15372 2009-01-02 Mark Mitchell <mark@codesourcery.com>
15373
15374 PR 33649
15375 * tree-ssa-pre.c (compute_antic): Correct loop bounds.
15376
15377 2009-01-02 Jakub Jelinek <jakub@redhat.com>
15378
15379 PR middle-end/38690
15380 * tree-flow.h (op_code_prio, op_prio): New prototypes.
15381 * tree-pretty-print.c (op_code_prio): New function.
15382 (op_prio): No longer static. Use op_code_prio.
15383 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
15384 Use op_prio and op_code_prio to determine if () should be
15385 printed around operand(s) or not.
15386
15387 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
15388 dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
15389 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
15390 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
15391 pp_character instead of pp_string for single letter printing.
15392
15393 2009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
15394
15395 * doc/extend.texi: Fix '#pragma GCC option' typo.
15396
15397 2009-01-02 Richard Guenther <rguenther@suse.de>
15398
15399 * doc/install.texi (--enable-checking): Mention different
15400 default for stage1.
15401 (--enable-stage1-checking): Document.
15402
15403 2009-01-01 Andrew Pinski <pinskia@gmail.com>
15404
15405 PR middle-end/30142
15406 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
15407 case to be an error.
15408
15409 2009-01-02 Ben Elliston <bje@au.ibm.com>
15410
15411 * config/fp-bit.h (pack_d): Constify argument.
15412 * config/fp-bit.c (makenan): Constify return type. Remove casts.
15413 (isnan): Constify argument.
15414 (isinf): Likewise.
15415 (iszero): Likewise.
15416 (pack_d): Likewise.
15417 (_fpadd_parts): Constify return type.
15418 (_fpmul_parts): Likewise.
15419 (_fpdiv_parts): Likewise.
15420
15421 2009-01-01 Jakub Jelinek <jakub@redhat.com>
15422
15423 PR c/36489
15424 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only
15425 warn about overwriting initializer with side-effects or
15426 -Woverride-init if !IMPLICIT.
15427 (output_init_element): Likewise. Pass IMPLICIT down to
15428 add_pending_init.
15429 (process_init_element): Add IMPLICIT argument. Pass it down
15430 to output_init_element.
15431 (push_init_element, pop_init_level, set_designator): Adjust
15432 process_init_element callers.
15433 (set_nonincremental_init, set_nonincremental_init_from_string):
15434 Adjust add_pending_init callers.
15435 (output_pending_init_elements): Adjust output_init_element callers.
15436 * c-tree.h (process_init_element): Adjust prototype.
15437 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
15438 process_init_element callers.
15439
15440 \f
15441 Copyright (C) 2009 Free Software Foundation, Inc.
15442
15443 Copying and distribution of this file, with or without modification,
15444 are permitted in any medium without royalty provided the copyright
15445 notice and this notice are preserved.