]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
rs6000-protos.h (altivec_resolve_overloaded_builtin): Change first argument type...
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
4b29c5e5
AH
12009-06-13 Aldy Hernandez <aldyh@redhat.com>
2
3 * config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin):
4 Change first argument type to location_t.
5 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Same.
6 Do not set input_location.
7 Use loc instead of input_location throughout.
8
e1e6dc73
RG
92009-06-13 Richard Guenther <rguenther@suse.de>
10
11 PR tree-optimization/40389
12 * tree-predcom.c (should_unroll_loop_p): Remove.
13 (tree_predictive_commoning_loop): Use can_unroll_loop_p.
14
8012b923
MM
152009-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
16
17 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
18 Add location argument.
19
4c4bde29
AH
202009-06-13 Aldy Hernandez <aldyh@redhat.com>
21
22 * config/alpha/alpha.c (alpha_build_builtin_va_list): Pass location to
23 build_decl.
24 * config/s390/s390.c (s390_build_builtin_va_list): Same.
25 (s390_gimplify_va_arg): Pass location to create_artificial_label.
26 * config/spu/spu-protos.h: Add location to
27 spu_resolve_overloaded_builtin.
28 * config/spu/spu.c (spu_build_builtin_va_list): Pass location to
29 spu_build_builtin_va_list.
30 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Add location
31 argument. Pass location to build_function_call_vec.
32 * config/sh/sh.c (sh_build_builtin_va_list): Pass location to
33 build_decl.
34 (emit_fpu_switch): Same.
35 (sh_gimplify_va_arg_expr): Pass location to create_artificial_label.
36 * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Pass location
37 to build_decl and create_artificial_label.
38 (xtensa_gimplify_va_arg_expr): Same.
39 * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list): Same.
40 (xstormy16_gimplify_va_arg_expr): Same.
41 * config/iq2000/iq2000.c (iq2000_expand_prologue): Same.
42 * config/arm/arm.c (arm_build_builtin_va_list): Same.
43 * config/mips/mips.c (mips_build_builtin_va_list): Same.
44 (mips16_build_function_stub): Same.
45 (mips16_build_call_stub): Same.
46
81beb031
RE
472009-06-13 Richard Earnshaw <rearnsha@arm.com>
48
49 PR target/40327
50 * arm/constraints.md (Pa, Pb): New constraints.
51 * arm/arm.md (thumb1_addsi3): Support more complex additions. Add a
52 split pattern to deal with them.
53
98f6c600
JS
542009-06-13 Joerg Sonnenberger <joerg@britannica.bec.de>
55
56 * doc/invoke.texi: Add missing option -Wp,OPTION in list,
57 fix index entry for -Xpreprocessor.
58
71856685
AH
592009-06-12 Aldy Hernandez <aldyh@redhat.com>
60
61 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
62 Add location argument to build_decl call.
63 * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Same.
64 (rs6000_init_builtins): Same.
65 (spe_init_builtins): Same.
66 (rs6000_gimplify_va_arg): Add location argument to
67 create_artificial_label call.
68
756b65f5
SB
692009-06-12 Steven Bosscher <steven@gcc.gnu.org>
70
71 * timevar.def (TV_COMBINE_STACK_ADJUST): New timevar.
72 * combine-stack-adj.c (pass_stack_adjustments): Use it.
73 * Makefile.in: Fix GGC dependency for gcse.o.
74
c2255bc4
AH
752009-06-12 Aldy Hernandez <aldyh@redhat.com>
76
77 * tree-pretty-print.c (dump_generic_node): Dump column numbers.
78 * gimple-pretty-print.c (dump_gimple_stmt): Same.
79 * gimplify.c (gimplify_modify_expr): Set location for GIMPLE_ASSIGNs
80 created.
81 * c-parser.c (c_parser_binary_expression): Use current column while
82 building binary operations.
83 * common.opt (fshow-column): Enable by default.
84 * tree-vrp.c (check_array_ref): Use warning_at.
85 (check_array_bounds): Use location from call back if expr has no
86 location.
87 * tree.h: Add location argument to maybe_fold_*.
88 * tree-ssa-ccp.c (ccp_fold): Pass location to maybe_fold_*.
89 (maybe_fold_offset_to_array_ref): Add location argument and use it.
90 (maybe_fold_offset_to_component_ref): Same.
91 (maybe_fold_offset_to_reference): Same.
92 (maybe_fold_offset_to_address): Same.
93 (maybe_fold_stmt_indirect): Same.
94 (maybe_fold_stmt_addition): Same.
95 (fold_stmt_r): Pass location to maybe_fold_*.
96 (fold_gimple_assign): Same.
97 * c-tree.h: Add location argument to finish_decl,
98 default_function_array_conversion, store_init_value.
99 * c-decl.c (define_label): Use error_at.
100 (c_make_fname_decl): Pass location to finish_decl.
101 (finish_decl): New location argument.
102 (build_compound_literal): Pass location to store_init_value.
103 (grokdeclarator): Pass location to finish_decl.
104 (grokfield): Same.
105 * c-typeck.c (array_to_pointer_conversion): New location argument.
106 (function_to_pointer_conversion): Same.
107 (default_function_array_conversion): Same.
108 (parser_build_unary_op): Pass location to overflow_warning.
109 (parser_build_binary_op): Same. Use warning_at.
110 (build_unary_op): Pass location to array_to_pointer_conversion.
111 (build_c_cast): Pass location to digest_init.
112 (build_modify_expr): New location argument.
113 (convert_for_assignment): Same.
114 (store_init_value): Same.
115 (digest_init): Same.
116 (output_init_element): Pass location to digest_init and
117 array_to_pointer_conversion.
118 (c_finish_return): Pass location to convert_for_assignment.
119 * gimplify.c (gimplify_conversion): Pass location to
120 maybe_fold_offset_to_address.
121 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Pass location
122 to maybe_fold_stmt_addition.
123 * c-omp.c (c_finish_omp_atomic): Pass new location to
124 build_modify_expr.
125 (c_finish_omp_for): Same.
126 * c-common.c (overflow_warning): New argument.
127 * c-common.h: New argument to build_modify_expr, overflow_warning.
128 * c-parser.c (c_parser_declaration_or_fndef): Pass location to
129 finish_decl.
130 (c_parser_initializer): Pass location to
131 default_function_array_conversion.
132 (c_parser_initelt): Same.
133 (c_parser_initval): Same.
134 (c_parser_asm_operands): Same.
135 (c_parser_expr_no_commas): Same. Pass location to build_modify_expr.
136 (c_parser_conditional_expression): Same.
137 (c_parser_binary_expression): Add location info to stack. Use it.
138 (c_parser_unary_expression): Pass location to
139 default_function_array_conversion, parser_build_unary_op,
140 build_indirect_ref, c_parser_postfix_expression_after_primary.
141 (c_parser_postfix_expression_after_primary): New location argument.
142 Use it.
143 (c_parser_expression_conv): Pass location to
144 default_function_array_conversion.
145 (c_parser_expr_list): Same.
146 (c_parser_omp_atomic): Same.
147 (c_parser_omp_for_loop): Same.
148 * c-tree.h: (struct c_declarator): Add comment to id_loc.
149 (build_array_declarator): New argument.
150 * c-decl.c (build_array_declarator): Add location argument.
151 (grokdeclarator): Set id_loc for cdk_array.
152 * c-parser.c (c_parser_direct_declarator_inner): Pass location to
153 build_array_declarator.
154 * tree.c (build_omp_clause): Add location argument.
155 * tree.h (OMP_CLAUSE_HAS_LOCATION): New macro.
156 (OMP_CLAUSE_LOCATION): New macro.
157 (struct tree_omp_clause): Add location field.
158 (build_omp_clause): Add argument.
159 * testsuite/gcc.dg/gomp/for-1.c: Fix column.
160 * cp/pt.c (tsubst_omp_for_iterator): Pass location to
161 build_omp_clause.
162 * cp/parser.c (cp_parser_omp_var_list_no_open): Same.
163 (cp_parser_omp_clause_collapse): Same.
164 (cp_parser_omp_clause_default): Same.
165 (cp_parser_omp_clause_if): Same.
166 (cp_parser_omp_clause_nowait): Same.
167 (cp_parser_omp_clause_num_threads): Same.
168 (cp_parser_omp_clause_ordered): Same.
169 (cp_parser_omp_clause_schedule): Same.
170 (cp_parser_omp_clause_untied): Same.
171 (cp_parser_omp_for_loop): Same.
172 (cp_parser_omp_parallel): Pass location to c_split_parallel_clauses.
173 * c-tree.h (c_start_case): Add location argument.
174 (c_process_expr_stmt): Same.
175 (c_finish_goto_*): Same.
176 * tree-parloops.c (initialize_reductions): Pass location to
177 build_omp_clause.
178 (create_parallel_loop): Same.
179 * fortran/trans-openmp.c (gfc_trans_omp_variable_list): Same.
180 (gfc_trans_omp_reduction_list): Same.
181 (gfc_trans_omp_clauses): Same.
182 (gfc_trans_omp_do): Same.
183 * c-typeck.c (c_finish_goto_label): Same.
184 (c_finish_goto_ptr): New location argument.
185 (c_start_case): Same.
186 (emit_side_effect_warnings): Same.
187 (c_process_expr_stmt): Same.
188 (c_finish_stmt_expr): Same.
189 (c_finish_omp_clauses): Use error_at instead of error.
190 * gimplify.c (gimplify_adjust_omp_clauses_1): Pass location to
191 build_omp_clause.
192 * c-omp.c (c_split_parallel_clauses): New location argument.
193 * tree-nested.c (convert_nonlocal_reference_stmt): Pass location
194 to build_omp_clause.
195 (convert_local_reference_stmt): Same.
196 (convert_gimple_call): Same.
197 * c-common.h (c_split_parallel_clauses): New argument.
198 * c-parser.c (c_parser_statement_after_labels): Pass location to
199 c_finish_goto_label.
200 (c_parser_switch_statement): Pass location to c_start_case.
201 (c_parser_for_statement): Pass location to c_finish_expr_stmt,
202 and c_process_expr_stmt.
203 (c_parser_omp_variable_list): Add location argument.
204 (c_parser_omp_clause_collapse): Pass location to
205 build_omp_clause.
206 (c_parser_omp_clause_default): Same.
207 (c_parser_omp_clause_if): Same.
208 (c_parser_omp_clause_num_threads): Same.
209 (-c_parser_omp_clause_ordered): Same.
210 (c_parser_omp_clause_reduction): Pass location to
211 c_parser_omp_variable_list.
212 (c_parser_omp_clause_schedule): Pass location to build_omp_clause.
213 (c_parser_omp_clause_untied): Same.
214 (c_parser_omp_for_loop): Pass location to c_process_expr_stmt.
215 (c_parser_omp_parallel): Pass location to
216 c_split_parallel_clauses.
217
218 * c-tree.h (check_for_loop_decls, undeclared_variable,
219 build_component_ref, build_array_ref, build_external_ref,
220 c_expr_sizeof_expr, c_expr_sizeof_type, parser_build_unary_op,
221 build_conditional_expr, build_compound_expr, c_cast_expr,
222 build_c_cast, build_asm_expr, c_end_compound_stmt, c_finish_stmt_expr,
223 c_finish_return, c_finish_omp_parallel, c_finish_omp_task): New
224 argument.
225 * c-semantics.c (build_stmt): Same.
226 (build_case_label): Same.
227 * c-decl.c (c_finish_incomplete_decl): Pass location on down.
228 (undeclared_variable): New argument.
229 (make_label): Same.
230 (lookup_label): Pass location on down.
231 (define_label): Same.
232 (finish_decl): Same.
233 (build_compound_literal): Same.
234 (finish_struct): Same.
235 (finish_function): Do not set location here.
236 (check_for_loop_decls): New argument.
237 * tree.c (save_expr): Set location.
238 (build_empty_stmt): New argument.
239 * tree.h (build_empty_stmt): New argument to build_empty_stmt.
240 (CAN_HAVE_LOCATION_P): Make sure we have a non empty node.
241 * builtins.c (gimplify_va_arg_expr): Use locations.
242 (expand_builtin_sync_operation): Same.
243 * c-typeck.c (build_component_ref): New argument.
244 (build_array_ref): Same.
245 (build_external_ref): Same.
246 (c_expr_sizeof_expr): Same.
247 (c_expr_sizeof_type): Same.
248 (parser_build_unary_op): Same.
249 (build_conditional_expr): Same.
250 (build_compound_expr): Pass location on down.
251 (build_compound_expr): New argument.
252 (build_c_cast): Same.
253 (c_cast_expr): Same.
254 (build_asm_expr): Same.
255 (c_finish_return): Same.
256 (c_process_expr_stmt): Pass location on down.
257 (c_finish_stmt_expr): New argument.
258 (push_clenaup): Same.
259 (c_finish_omp_parallel): Same.
260 (c_finish_omp_task): Same.
261 * gimplify.c (gimplify_call_expr): Pass location on down.
262 * c-omp.c (c_finish_omp_master): New argument.
263 (c_finish_omp_critical): Same.
264 (c_finish_omp_ordered): Same.
265 (c_finish_omp_barrier): Same.
266 (-c_finish_omp_taskwait): Same.
267 (c_finish_omp_atomic): Same.
268 (c_finish_omp_flush): Same.
269 * tree-inline.c (copy_tree_body_r): Pass location on down.
270 (inline_forbidden_p): Remove use of input_location.
271 * c-gimplify.c (c_build_bind_expr): New argument.
272 * c-common.c (c_common_truthvalue_conversion): Pass location on down.
273 (c_sizeof_or_alignof_type): New argument.
274 (c_alignof_expr): Same.
275 (build_va_arg): Same.
276 (c_add_case_label): Same.
277 * c-common.h (c_sizeof_or_alignof_type, c_alignof_expr,
278 c_sizeof, c_alignof, build_va_arg, build_stmt, build_case_label,
279 c_build_bind_expr, objc_build_selector_expr, objc_build_throw_stmt,
280 c_finish_omp_master, c_finish_omp_critical, c_finish_omp_ordered,
281 c_finish_omp_barrier, c_finish_omp_atomic, c_finish_omp_flush,
282 c_finish_omp_taskwait, c_finish_omp_for, c_split_parallel_clauses):
283 New argument.
284 * stub-objc.c (objc_build_selector_expr): Same.
285 (objc_build_throw_stmt): Same.
286 * c-parser.c (c_parser_declaration_or_fndef): Pass location on down.
287 (c_parser_initelt): Same.
288 (c_parser_compound_statement): Same.
289 (c_parser_compound_statement_nostart): Same.
290 (c_parser_label): Same.
291 (c_parser_statement_after_labels): Same.
292 (c_parser_if_body): Same.
293 (c_parser_else_body): Same.
294 (c_parser_if_statement): Same.
295 (c_parser_switch_statement): Same.
296 (c_parser_while_statement): Same.
297 (c_parser_do_statement): Same.
298 (c_parser_for_statement): Same.
299 (c_parser_asm_statement): Same.
300 (c_parser_conditional_expression): Same.
301 (c_parser_binary_expression): Same.
302 (c_parser_cast_expression): Same.
303 (c_parser_unary_expression): Same.
304 (c_parser_sizeof_expression): Same.
305 (c_parser_alignof_expression): Same.
306 (c_parser_postfix_expression): Same.
307 (c_parser_expression): Same.
308 (c_parser_objc_receiver): Same.
309 (c_parser_omp_variable_list): Same.
310 (c_parser_omp_structured_block): Same.
311 (c_parser_omp_atomic): New argument.
312 (c_parser_omp_barrier): Same.
313 (c_parser_omp_critical): Same.
314 (c_parser_omp_flush): Pass location on down.
315 (c_parser_omp_for_loop): New argument.
316 (c_parser_omp_for): Same.
317 (c_parser_omp_master): Same.
318 (c_parser_omp_ordered): Same.
319 (c_parser_omp_sections_scope): Same.
320 (c_parser_omp_sections): Same.
321 (c_parser_omp_parallel): Same.
322 (c_parser_omp_single): Same.
323 (c_parser_omp_task): Same.
324 (c_parser_omp_taskwait): Pass location on down.
325 (c_parser_omp_construct): Same.
326 (c_parser_omp_threadprivate): Same.
327 * dwarf2asm.c, targhooks.c, optabs.c, tree.c, tree.h, target.h,
328 builtins.c, omp-low.c, cgraphunit.c, tree-call-cdce.c,
329 tree-ssa-alias.c, gimple-low.c, c-tree.h, expr.c, tree-parloops.c,
330 c-decl.c, tree-eh.c, langhooks.c, function.c, stor-layout.c,
331 c-typeck.c, gimplify.c, c-pragma.c, expmed.c, except.c, coverage.c,
332 emit-rtl.c, cfgexpand.c, tree-mudflap.c, varasm.c, tree-nested.c,
333 rtl.h, tree-inline.c, tree-profile.c, c-common.c, c-common.h,
334 tree-switch-conversion.c, tree-cfg.c, ipa-struct-reorg.c, c-parser.c,
335 config/i386/i386.c, stmt.c:
336 Add location argument to the following function definitions and/or
337 function calls: build_decl, objcp_start_struct, objcp_finish_struct,
338 start_struct, finish_struct, PUSH_FIELD, create_artificial_label,
339 cp_make_fname_decl, pushtag, implicitly_declare, c_make_fname_decl,
340 build_compound_literal, parser_xref_tag, resolve_overloaded_builtin,
341 do_case, c_finish_bc_stmt, build_compound_literal,
342 build_function_call.
343 * c-decl.c (build_compound_literal): Add location argument.
344 Make all diagnostic calls use location.
345 (start_struct): Same.
346 (finish_struct): Same.
347 (start_enum): Same.
348 (build_enumerator): Same.
349 (start_function): Same.
350 (grokdeclarator): Make all diagnostic calls use location.
351 (store_parm_decls_oldstyle): Same.
352 * c-typeck.c (build_function_call): Add location argument.
353 Make all diagnostic calls use location.
354 (do_case): Same.
355 (c_finish_bc_stmt): Same.
356 * tree-nested.c (get_trampoline_type): Add argument.
357 Pass location to build_decl.
358 (lookup_tramp_for_decl): Pass location to get_trampoline_type.
359 * rtl.h (RTL_LOCATION): New.
360 * c-common.c (c_add_case_label): Add location argument.
361 Make all diagnostic calls use location.
362 * c-common.h: Add location argument to make_fname_decl, do_case,
363 c_add_case_label, build_function_call, resolve_overloaded_builtin.
364 * c-parser.c (c_parser_enum_specifier): Rename ident_loc to enum_loc.
365 Set it appropriately for every case. Pass enum_loc to start_enum
366 call. Pass value_loc first to build_enumerator. Pass enum_loc to
367 parser_xref_tag.
368 (c_parser_struct_or_union_specifier): Save location. Use it for
369 start_struct, finish_struct, and parser_xref_tag.
370
3d8b2a98
ILT
3712009-06-12 Ian Lance Taylor <iant@google.com>
372
373 * fold-const.c (fold_unary): Rename local variable and to
374 and_expr.
375
376 * c-opts.c (c_common_handle_option): For -Wc++-compat set
377 cpp_opts->warn_cxx_operator_names.
378
737142ce
AP
3792009-06-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
380
381 PR tree-opt/38865
382 * tree-ssa-sccvn.c (visit_reference_op_load): If vn_reference_lookup
383 is returns NULL and OP is a VCE, look through the VCE.
384
d3a0d55d
ILT
3852009-06-12 Ian Lance Taylor <iant@google.com>
386
387 PR bootstrap/40430
388 * collect2.c (main): Use CONST_CAST2 in code inside #if
389 LINK_ELIMINATE_DUPLICATE_LDIRECTORIES.
390
f85882d8
JY
3912009-06-12 Joey Ye <joey.ye@intel.com>
392
393 PR middle-end/39146
394 * cfgexpand.c (get_decl_align_unit): Update
395 max_used_stack_slot_alignment with align instead of
396 stack_alignment_needed.
397
398 * function.c (assign_stack_local_1): Update
399 max_used_stack_slot_alignment with alignment_in_bits instead
400 of stack_alignment_needed.
401 (locate_and_pad_parm): Don't update max_used_stack_slot_alignment
402 here.
403
fc9f468b
JJ
4042009-06-12 Jakub Jelinek <jakub@redhat.com>
405
406 * dwarf2out.c (last_var_location_insn): New variable.
407 (dwarf2out_end_epilogue): Clear last_var_location_insn.
408 (dwarf2out_var_location): Don't record anything after last real
409 insn. Only change labels if there were any real instructions
410 in between last note and this one, or if changed sections.
411
7c1db202
RH
4122009-06-11 Richard Henderson <rth@redhat.com>
413
f85882d8 414 * alpha.c (alpha_expand_prologue): Add a REF_CFA_REGISTER
15cb981a
RH
415 note when storing the frame pointer in a register.
416 (FRP): Don't redefine to nothing for epilogue.
417 (alpha_expand_epilogue): Mark register and sp restores.
418 (unicosmk_gen_dsib): Don't mark weird frame pointer adjust.
419
7c1db202
RH
420 * config/alpha/alpha.c (alpha_emit_setcc): Fix test for
421 when gen_lowpart is needed.
422
f2ae7631
RH
4232009-06-11 Richard Henderson <rth@redhat.com>
424
42755c21
RH
425 * dwarf2out.c (def_cfa_1): Likewise for DW_CFA_cfa_offset.
426
f2ae7631
RH
427 * dwarf2out.c (need_data_align_sf_opcode): New.
428 (div_data_align): Move earlier.
429 (def_cfa_1, reg_save): Use it.
430
8ed0ce99
L
4312009-06-11 H.J. Lu <hongjiu.lu@intel.com>
432
433 * config/i386/i386.c (OPTION_MASK_ISA_CRC32_SET): New.
434 (OPTION_MASK_ISA_CRC32_UNSET): Likewise.
435 (ix86_handle_option): Handle OPT_mcrc32.
436 (ix86_target_string): Add -mcrc32.
437 (bdesc_args): Enable crc32 builtins with OPTION_MASK_ISA_CRC32.
438
439 * config/i386/i386.h (TARGET_CRC32): New.
440
441 * config/i386/i386.md (sse4_2_crc32<mode>): Also check
442 TARGET_CRC32.
443 (sse4_2_crc32di): Likewise.
444
445 * config/i386/i386.opt (mcrc32: New.
446
447 * doc/invoke.texi: Document -mcrc32.
448
9fd68a1f
RH
4492009-06-11 Richard Henderson <rth@redhat.com>
450
8ed0ce99 451 * common.opt (gdwarf-): Accept a version number.
9fd68a1f
RH
452 * doc/invoke.texi (gdwarf-): Update docs.
453 * opth-gen.awk: Special case -gdwarf+ to OPT_gdwarfplus.
454 * opts.c (common_handle_option) [OPT_gdwarf_]: Verify dwarf
455 version level, and record it.
456
457 * dwarf2.h (DW_CIE_VERSION): Remove.
458 * dwarf2out.c (DWARF_VERSION): Remove.
459 (add_fde_cfi): Skip DW_CFA_set_loc addition for dwarf3.
460 (output_call_frame_info): Use CIE version 3 for dwarf3,
461 or if the return register column is out of range for version 1.
462 (dwarf_stack_op_name): Add all dwarf3 values.
463 (DEBUG_PUBTYPES_SECTION): New.
464 (size_of_die) [dw_val_class_die_ref]: Handle DW_FORM_ref_addr
465 encoding change for dwarf3.
466 (output_die) [dw_val_class_die_ref]: Likewise.
467 (output_compilation_unit_header): Emit correct version for dwarf3.
468 (output_line_info): Likewise.
469 (output_pubnames): Update for DWARF_VERSION removal.
470 (output_aranges): Likewise.
471 (gen_subprogram_die): Emit DW_OP_call_frame_cfa if emitting dwarf3.
472 (dwarf2out_init): Don't ifdef DEBUG_PUBTYPES_SECTION.
473 (dwarf2out_finish): Likewise.
474
4de8ce3b
DD
4752009-06-11 David Daney <ddaney@caviumnetworks.com>
476
477 * system.h (gcc_assert, gcc_unreachable): Revert accidental commit
478 in r148403.
479
468059bc
DD
4802009-06-11 David Daney <ddaney@caviumnetworks.com>
481
482 PR c/39252
483 * doc/extend.texi ( __builtin_unreachable): Document new builtin.
484 * builtins.c (expand_builtin_unreachable): New function.
485 (expand_builtin): Handle BUILT_IN_UNREACHABLE case.
486 * builtins.def (BUILT_IN_UNREACHABLE): Add new builtin.
487 * cfgcleanup.c (try_optimize_cfg): Delete empty blocks with no
488 successors.
489 * cfgrtl.c (rtl_verify_flow_info): Handle empty blocks when
490 searching for missing barriers.
491
b5a6e96f
FXC
4922009-06-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
493
494 * config/darwin.h (LINK_COMMAND_SPEC): Adjust spec to link libcov
495 when -fprofile-generate* was passed.
496 * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
497
6be6462e
AG
4982009-06-11 Anthony Green <green@moxielogic.com>
499
500 * config/moxie/moxie.md: Define length attribute for all
501 instructions.
502 (rCC): Define.
503 (*b<cond:code>): Support limited branch ranges for new PC-relative
504 branch instructions.
505 * config/moxie/moxie.h (HAS_LONG_UNCOND_BRANCH): Define.
506
caaabe0a
JJ
5072009-06-11 Jakub Jelinek <jakub@redhat.com>
508
e5219642
JJ
509 * config/i386/i386.c (min_insn_size): Use get_attr_length
510 for normal insns other than TYPE_MULTI, TYPE_OTHER and TYPE_FCMP.
511 For __asm return 0.
512
caaabe0a
JJ
513 * config/i386/i386.c (ix86_pad_returns): Use emit_jump_insn_before
514 instead of emit_insn_before.
515
a567fa6a
ILT
5162009-06-10 Ian Lance Taylor <iant@google.com>
517
518 PR bootstrap/40408
519 * graphite.c (add_conditions_to_domain): Change SWITCH_EXPR to
520 GIMPLE_SWITCH.
521
6a753d5f
RE
5222009-06-10 Revital Eres <eres@il.ibm.com>
523
524 * passes.c (init_optimization_passes): Reschedule
525 predictive-commoning pass before complete unroll pass.
526
a550d677
MJ
5272009-06-10 Martin Jambor <mjambor@suse.cz>
528
529 * cgraph.c (cgraph_node_can_be_local_p): New function.
530 (cgraph_make_node_local): New function.
531 * cgraph.h (cgraph_node_can_be_local_p): Declare.
532 (cgraph_make_node_local): Declare.
533
d8259b07
NF
5342009-06-10 Nathan Froyd <froydnj@codesourcery.com>
535
536 * tree.h (tree_base): Add packed_flag and user_align fields.
537 Decrease size of spare field.
538 (TYPE_USER_ALIGN): Use user_align from tree_base.
539 (DECL_USER_ALIGN): Likewise.
540 (TYPE_PACKED): Use packed_flag from tree_base.
541 (DECL_PACKED): Likewise.
542 (tree_type): Delete packed_flag and user_align fields. Widen
543 precision field. Widen mode field and shuffle fields to align
544 mode on an 8-bit boundary.
545 (tree_decl_common): Delete decl_flag_1 and user_align fields.
546 Renumber decl_flag_* fields. Fix comments. Widen
547 decl_common_unused field.
548 (DECL_HAS_VALUE_EXPR_P): Adjust for renumbering of decl_flag_*
549 fields.
550 (DECL_EXTERNAL): Likewise.
551 (DECL_BIT_FIELD): Likewise.
552 (DECL_NONADDRESSABLE_P): Likewise.
553 (TYPE_DECL_SUPRESS_DEBUG): Likewise.
554 * config/arm/arm-modes.def (XImode): Make it an INT_MODE.
555
c2569604
ILT
5562009-06-10 Ian Lance Taylor <iant@google.com>
557
558 * vec.h (DEF_VEC_ALLOC_I): Use DEF_VEC_NONALLOC_FUNCS_I.
559 (DEF_VEC_ALLOC_P): Use DEF_VEC_NONALLOC_FUNCS_P.
560 (DEF_VEC_ALLOC_O): Use DEF_VEC_NONALLOC_FUNCS_O.
561 (DEF_VEC_ALLOC_FUNC_P): Only define VEC_OP (T,A,alloc).
562 (DEF_VEC_NONALLOC_FUNCS_P): New macro, broken out of old
563 DEF_VEC_ALLOC_FUNC_P.
564 (DEF_VEC_ALLOC_FUNC_O): Only define VEC_OP (T,A,alloc).
565 (DEF_VEC_NONALLOC_FUNCS_O): New macro, broken out of old
566 DEF_VEC_ALLOC_FUNC_O.
567 (DEF_VEC_ALLOC_FUNC_I): Only define VEC_OP (T,A,alloc).
568 (DEF_VEC_NONALLOC_FUNCS_I): New macro, broken out of old
569 DEF_VEC_ALLOC_FUNC_I.
570 (vec_stack_p_reserve, vec_stack_p_reserve_exact): Declare.
571 (vec_stack_p_reserve_exact_1): Declare.
572 (vec_stack_o_reserve, vec_stack_o_reserve_exact): Declare.
573 (vec_stack_free): Declare.
574 (VEC_stack_alloc): Define.
575 (DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_FUNC_P_STACK): Define.
576 (DEF_VEC_ALLOC_O_STACK, DEF_VEC_ALLOC_FUNC_O_STACK): Define.
577 (DEF_VEC_ALLOC_I_STACK, DEF_VEC_ALLOC_FUNC_I_STACK): Define.
578 * vec.c (void_p): New type. Call DEF_VEC_P and DEF_VEC_ALLOC_P
579 for void_p.
580 (stack_vecs): New static variable.
581 (vec_stack_p_reserve_exact_1): New function.
582 (vec_stack_o_reserve_1): New static function.
583 (vec_stack_p_reserve, vec_stack_p_reserve_exact): New functions.
584 (vec_stack_o_reserve, vec_stack_o_reserve_exact): New functions.
585 (vec_stack_free): New function.
586 * df-scan.c (df_ref): Use DEF_VEC_P and DEF_VEC_ALLOC_P_STACK.
587 (VEC_df_ref_stack_alloc): Define.
588 (df_mw_hardreg_ptr): New type. Use DEF_VEC_P and
589 DEF_VEC_ALLOC_P_STACK.
590 (VEC_df_mw_hardreg_ptr_stack_alloc): Define.
591 (struct df_collection_rec): Change _vec fields to VEC. Remove
592 _use fields.
593 (df_free_collection_rec): Adjust for new fields.
594 (df_insn_rescan): Use new df_collection_rec fields.
595 (df_notes_rescan, df_canonize_collection_rec): Likewise.
596 (df_ref_create_structure, df_ref_record): Likewise.
597 (df_get_conditional_uses, df_get_call_refs): Likewise.
598 (df_insn_refs_collect, df_bb_refs_collect): Likewise.
599 (df_bb_refs_record, df_record_entry_block_defs): Likewise.
600 (df_record_exit_block_uses, df_bb_verify): Likewise.
601 (df_swap_refs): Change ref_vec parameter to VEC. Change all
602 callers.
603 (df_sort_and_compress_refs): Change ref_vec parameter to VEC.
604 Remove count parameter. Change return type to void. Change all
605 callers.
606 (df_sort_and_compress_mws): Change mw_vec parameter to VEC.
607 Remove count parameter. Change return type to void. Change all
608 callers.
609 (df_install_refs): Change old_vec parameter to VEC. Remove count
610 parameter. Change all callers.
611 (df_install_mws): Change old_vec parameter to VEC. Remove count
612 parameter. Change all callers.
613 (df_refs_verify): Change new_rec parameter to VEC. Change call
614 callers.
615 (df_mws_verify): Likewise.
616
e7aae3e8
AO
6172009-06-10 Alexandre Oliva <aoliva@redhat.com>
618
619 * gcc.c (compare_files): Cast munmap argumento to caddr_t.
620
412ac8d5
L
6212009-06-10 H.J. Lu <hongjiu.lu@intel.com>
622
623 * doc/extend.texi: Add description for __builtin_ia32_crc32di.
624
cceb575c
AG
6252009-06-10 Anthony Green <green@moxielogic.com>
626
627 * config/moxie/crti.asm: New file.
628 * config/moxie/crtn.asm: New file.
629 * config/moxie/moxie.c: New file.
630 * config/moxie/moxie.h: New file.
631 * config/moxie/sfp-machine.h: New file.
632 * config/moxie/moxie-protos.h: New file.
633 * config/moxie/t-moxie: Created.
634 * config/moxie/t-moxie-softfp: Created.
635 * config/moxie/moxie.md: Created.
636 * config/moxie/constraints.md: Created.
637 * config.gcc: Add moxie support.
638 * doc/md.texi (Machine Constraints): Add moxie constraints.
639 * doc/contrib.texi (Contributors): Mention moxie port.
640 * doc/install.texi (Specific): Mention the moxie port.
641
bf406687
ILT
6422009-06-09 Ian Lance Taylor <iant@google.com>
643
644 * system.h (HAVE_DESIGNATED_INITIALIZERS): Don't define if
645 compiling with C++.
646 * optabs.c (optab_table): Only use designated initializers if
647 HAVE_DESIGNATED_INITIALIZERS is defined.
648 (convert_optab_table): Likewise.
649 (init_optabs): Always call init_insn_codes if
650 HAVE_DESIGNATED_INITIALIZERS is not defined.
651
744aa42f
ILT
6522009-06-09 Ian Lance Taylor <iant@google.com>
653
654 * targhooks.c (default_builtin_vectorized_function): Change fn
655 parameter to unsigned int.
656 (default_builtin_vectorized_conversion): Change code parameter to
657 unsigned int.
658 (default_builtin_reciprocal): Change fn parameter to unsigned int.
659 * targhooks.h: Update declarations.
660 * config/rs6000/rs6000.c (rs6000_builtin_conversion): Change code
661 parameter to unsigned int.
662
663 * c-typeck.c (comptypes_check_enum_int): New static function.
664 (comptypes_internal): Add enum_and_int_p parameter. Change all
665 callers.
666 (comp_target_types): Add location parameter. Change all callers.
667 (tagged_types_tu_compatible_p): Add enum_and_int_p parameter.
668 Change all callers.
669 (function_types_compatible_p, type_lists_compatible_p): Likewise.
670 (build_conditional_expr): Add colon_loc parameter. Change all
671 callers.
672 (convert_for_assignment): Add location parameter. Change all
673 callers.
674 * c-parser.c (c_parser_conditional_expression): Pass location of
675 colon to build_conditional_expr.
676 * c-tree.h (build_conditional_expr): Update declaration.
677
bcbe3b25
SP
6782009-06-09 Sebastian Pop <sebastian.pop@amd.com>
679
680 * graphite.c: Revert previous patch.
681
dc2a6925
SP
6822009-06-09 Sebastian Pop <sebastian.pop@amd.com>
683
684 PR bootstrap/40103
685 * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
686
d81f5387
GS
6872009-06-09 Ghassan Shobaki <ghassan.shobaki@amd.com>
688
8ed0ce99
L
689 * tree-ssa-loop-prefetch.c
690 (loop_prefetch_arrays): Fixed a portability problem in printf format
691 string.
d81f5387 692
8056eb4f
MJ
6932009-06-09 Martin Jambor <mjambor@suse.cz>
694
695 PR tree-optimization/40351
696 * tree-sra.c (propagate_subacesses_accross_link): Check that a refrence
697 to a potential artifical subaccess can be constructed.
698
bd9a3465
KK
6992009-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
700
701 * config/sh/sh-protos.h (sh_optimization_options): Declare.
702 (sh_override_options): Likewise.
703 * config/sh/sh.c: Include params.h.
704 (sh_optimization_options): New.
705 (sh_override_options): Likewise.
706 * config/sh/sh.c (OPTIMIZATION_OPTIONS): Use sh_optimization_options.
707 (OVERRIDE_OPTIONS): Use sh_override_options.
708
8845deab
JJ
7092009-06-08 Jakub Jelinek <jakub@redhat.com>
710
711 * dwarf2out.c (emit_cfa_remember): New variable.
712 (add_fde_cfi): If emit_cfa_remember, recurse to add
713 DW_CFA_remember_state first.
714 (dwarf2out_begin_epilogue): Don't add_fde_cfi DW_CFA_remember_state,
715 instead just set emit_cfa_remember.
716
9ea81b0c
JH
7172009-06-08 Jan Hubicka <jh@suse.cz>
718
719 PR debug/40126
720 * dwarf2out.c (dwarf2out_abstract_function): Free decl_loc_table.
721
21ecdec5
JH
7222009-06-08 Jan Hubicka <jh@suse.cz>
723
724 PR middle-end/39834
725 * cgraphunit.c (save_inline_function_body): Do not copy transform hooks
726 for saved inline bodies.
727 * ipa-passes.c (do_per_function): Do not add the hoks multiple times
728 for given function.
729
72e48218
AN
7302009-06-08 Adam Nemet <anemet@caviumnetworks.com>
731
732 * jump.c (returnjump_p): Handle delayed branches. Add missing
733 function comment.
734
6ce2002b
JH
7352009-06-08 Jan Hubicka <jh@suse.cz>
736
737 PR middle-end/40102
738 * cgraph.c (cgraph_create_edge_including_clones): Also asume that the
739 original node might've been modified.
740 * tree-inline.c (copy_bb): Do not assume that all clones are the same.
741
eb9ed98a
JJ
7422009-06-08 Jakub Jelinek <jakub@redhat.com>
743
744 * tree-object-size.c (addr_object_size): Add OSI argument.
745 Handle also INDIRECT_REF with SSA_NAME inside of it as base address.
746 (compute_builtin_object_size, expr_object_size): Adjust callers.
747 (plus_stmt_object_size): Call addr_object_size instead of
748 compute_builtin_object_size.
749
db34470d 7502009-06-08 Ghassan Shobaki <ghassan.shobaki@amd.com>
8ed0ce99 751 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
db34470d
GS
752
753 * tree-ssa-loop-prefetch.c
754 (gather_memory_references): Introduced a counter for the number of
755 memory references.
756 (anything_to_prefetch_p): Introduced a counter for the number of
757 prefetches.
758 (is_loop_prefetching_profitable): New function with a cost model
759 for prefetching.
760 (loop_prefetch_arrays): Use the new cost model to determine if
761 prefetching is profitable.
762 * params.def (MIN_INSN_TO_PREFETCH_RATIO,
763 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
764 * params.h (MIN_INSN_TO_PREFETCH_RATIO,
765 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
766 * doc/invoke.texi (MIN_INSN_TO_PREFETCH_RATIO,
767 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
768
eb7adebc
MM
7692009-06-08 Michael Matz <matz@suse.de>
770
771 PR debug/40012
eb7adebc
MM
772 * cfgexpand.c (set_rtl): Store place also in DECL_RTL, if all
773 partitions use the same.
774 (expand_one_var): Deal with DECL_RTL sometimes begin set also
775 for basevars of SSA_NAMEs.
776 (expand_used_vars): Reset TREE_USED for basevars of SSA_NAMEs,
777 to not expand them twice.
778 (gimple_expand_cfg): Clear DECL_RTL for those decls that have
779 multiple places.
780
2153915d
AO
7812009-06-08 Alexandre Oliva <aoliva@redhat.com>
782
783 * common.opt (fcompare-debug=, fcompare-debug-second): New.
784 (fdump-final-insns=, gtoggle): New.
785 * doc/invoke.texi: Document them.
786 * final.c (rest_of_clean_state): Dump final insn stream.
787 * gcc.c (invoke_as): Hook in -fcompare-debug.
788 (static_spec_functions): Add compare-debug-dump-opt,
789 compare-debug-self-opt and compare-debug-auxbase-opt.
790 (compare_debug, compare_debug_second, compare_debug_opt): New.
791 (switches_debug_check, n_switches_debug_check): New.
792 (debug_auxbase_opt, debug_check_temp_file): New.
793 (process_command): Handle -fno-compare-debug, -fcompare-debug and
794 -fcompare-debug=*.
795 (do_self_spec): Handle arguments after switches.
796 (do_spec_1): Add .gk extension to temp file basenames for compare.
797 (check_live_switch): Take SWITCH_IGNORE into account, and earlier.
798 (cc1_options): Use it instead of normal auxbase computation for
799 the second compare-debug compilation.
800 (compare_files): New.
801 (main): Set up and implement compare debug mode.
802 (compare_debug_dump_opt_spec_function): New.
803 (compare_debug_self_opt_spec_function): New.
804 (compare_debug_auxbase_opt_spec_function): New.
805 * toplev.c (process_options): Handle flag_gtoggle,
806 flag_dump_final_insns.
807 * coverage.c (coverage_begin_output): Don't overwrite .gcno file
808 during -fcompare-debug-second compilation.
809
cdb88468
ILT
8102009-06-07 Ian Lance Taylor <iant@google.com>
811
812 * dwarf2.h (enum dwarf_location_atom): Add
813 INTERNAL_DW_OP_tls_addr.
814 * dwarf2out.c (INTERNAL_DW_OP_tls_addr): Don't #define.
815
816 * c-common.c (c_do_switch_warnings): Don't exit early for -Wswitch
817 with no default node. Change warning with %H to warning_at.
818 Don't clear warn_switch around case checking.
819 * doc/invoke.texi (Warning Options): Clarify distinction between
820 -Wswitch and -Wswitch-enum.
821
4fe8e1a2
BRF
8222009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
823
824 * tree-pass.h (TODO_update_ssa_any): Document internal use only.
825
69952c1d
BRF
8262009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
827
828 * gbl-ctors.h: Add header guard.
829
b2ad0284
BRF
8302009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
831
832 * tree-flow.h (make_value_handle, set_value_handle, sort_vuses,
833 sort_vuses_heap, vn_lookup_or_add, vn_lookup_or_add_with_stmt,
834 vn_lookup_or_add_with_vuses, vn_add, vn_add_with_vuses,
835 vn_lookup_with_stmt, vn_lookup, vn_lookup_with_vuses): Remove
836 prototypes for removed functions.
837 (expressions_equal_p): Move to ...
838 * tree-ssa-sccvn.h: ... here and ...
839 * matrix-reorg.c: ... adjust includes.
840
c3df55f9
BRF
8412009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
842
843 * ipa-struct-reorg.c (do_reorg_1): Fix whitespace in dump output.
844
b5a7159f
BRF
8452009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
846
847 * c-decl.c (finish_decl): Use bool for variable was_incomplete.
848 (finish_function): Remove erroneous whitespace.
849
95bca6b0
BRF
8502009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
851
2cd713a0
BRF
852 * tree-cfg.c (gimple_merge_blocks): Commentary typo fix.
853 (verify_stmts): Print statement who's gimple_bb is set to a wrong BB
249eb506
BRF
854
8552009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
856
857 * errors.c (internal_error): Commentary typo fix.
858 * gimple-iterator.c (gsi_insert_seq_on_edge): Ditto.
859 * tree-ssa-pre.c: Ditto.
95bca6b0 860
2cd713a0
BRF
8612009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
862
863 * basic-block.h (ENTRY_BLOCK, EXIT_BLOCK): Document that neither of
864 them is supposed to hold actual statements.
865
5bca4e80
ILT
8662009-06-06 Ian Lance Taylor <iant@google.com>
867
868 * doc/extend.texi (Attribute Syntax): Document that C++ labels on
869 empty statements can now have attributes.
870
47ac44d6
SZ
8712009-06-05 Shujing Zhao <pearly.zhao@oracle.com>
872
873 * config/mips/mips.c: Use REG_P and CONST_INT_P where applicable.
874 * config/mips/mips.md: Ditto.
875
19b905ce
NF
8762009-06-05 Nathan Froyd <froydnj@codesourcery.com>
877
878 * config/rs6000/eabi.asm (__eabi_convert): Don't define if
879 _RELOCATABLE.
880 (__eabi_uconvert): Likewise.
881
16702e19
NF
8822009-06-05 Nathan Froyd <froydnj@codesourcery.com>
883
884 * config/rs6000/ppc-asm.h: Protect auto-host.h inclusion and
885 CFI_* definitions with IN_GCC.
886
a735afd1
DE
8872009-06-05 David Edelsohn <edelsohn@gnu.org>
888
889 * xcoffout.h (xcoffout_source_line): Update prototype.
890
26a347c5
KG
8912009-06-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
892
893 * builtins.c (do_mpc_ckconv, do_mpc_arg1): Use
894 mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM.
895
9f706f23
JJ
8962009-06-05 Jakub Jelinek <jakub@redhat.com>
897
898 PR middle-end/40340
899 * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
900 inlined_function_outer_scope_p blocks for artificial inlines
901 even at -g0/-g1.
902 * tree.c (tree_nonartificial_location): Rewrite using
903 block_nonartificial_location.
904
8f439681
RE
9052009-06-05 Revital Eres <eres@il.ibm.com>
906 Leehod Baruch <leehod@il.ibm.com>
907
908 * expr.c (expand_assignment): Expand MISALIGNED_INDIRECT_REF.
909 (expand_expr_real_1): Remove comment.
910 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
911 Vectorize misaligned access when the target supports it.
912 (vect_supportable_dr_alignment): Check for unaligned access
913 support.
914 * tree-vect-stmts.c (vectorizable_store): Generate misaligned store
915 and remove asset.
916
b89f8e3c
JB
9172009-06-05 Julian Brown <julian@codesourcery.com>
918
919 * config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP.
920 * config/arm/ieee754-sf.S (cmpsf2): Likewise.
921
47d1f191
RG
9222009-06-05 Richard Guenther <rguenther@suse.de>
923
924 PR bootstrap/40350
925 * dwarf2out.c (dwarf2out_begin_function): Mark discriminator
926 as possibly unused.
927
9f706f23 9282009-06-05 Jakub Jelinek <jakub@redhat.com>
75707b28
JJ
929
930 * config/s390/s390.c (global_not_special_regno_p): New static inline.
931 (save_gprs): Don't tell unwinder when a global register is saved.
932 (s390_emit_epilogue): Emit needed epilogue unwind info.
933
90f06248
AO
9342009-06-05 Alexandre Oliva <aoliva@redhat.com>
935
936 * dwarf2out.c (deferred_asm_name): New.
937 (add_name_and_src_coords_attributes): Defer creation of
938 DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not
939 computed yet.
940 (move_linkage_attr): New.
941 (dwarf2out_finish): Revisit deferrals and emit attributes at the
942 right place.
943
c10348e5
AO
9442009-06-05 Alexandre Oliva <aoliva@redhat.com>
945
946 * tree-nested.c (finalize_nesting_tree_1): Declare the
947 frame_decl in the binding tree.
948
6c52e687
CC
9492009-06-04 Cary Coutant <ccoutant@google.com>
950
951 * basic-block.h (struct basic_block_def): Add discriminator field.
952 * dbxout.c (dbxout_source_line): Add new parameter. Change all
953 callers.
954 * debug.c (do_nothing_debug_hooks): Add additional entry.
955 (debug_nothing_int_charstar_int): New function.
956 * debug.h (struct gcc_debug_hooks): Add parameter to source_line
957 hook.
958 (debug_nothing_int_charstar_int): New declaration.
959 * dwarf2out.c (dwarf2out_source_line): Add new parameter. Write
960 discriminator value in .loc directive.
961 * final.c (last_discriminator): New variable.
962 (discriminator): New variable.
963 (final_start_function): Initialize above variables, pass current
964 discriminator to debug hook.
965 (notice_source_line): Check for discriminator change.
966 * gimple-pretty-print.c (dump_bb_header): Print discriminator value.
967 * sdbout.c (sdbout_source_line): New parameter.
968 * tree-cfg.c (struct locus_discrim_map): New structure type.
969 (discriminator_per_locus): New hash table.
970 (build_gimple_cfg): Allocate and free discriminator hash table.
971 (make_edges): Call assign_discriminator.
972 (locus_map_hash): New function.
973 (locus_map_eq): New function.
974 (next_discriminator_for_locus): New function.
975 (same_line_p): New function.
976 (assign_discriminator): New function.
977 (make_cond_expr_edges): Call assign_discriminator.
978 (make_gimple_switch_edges): Likewise.
979 (first_non_label_stmt): New function.
980 * vmsdbgout.c (vmsdbgout_source_line): Add new parameter. Change
981 all callers.
982 * xcoffout.c (xcoffout_source_line): Add new parameter.
983
984 * configure.ac (gcc_cv_as_discriminator): New configury check for
985 gas support for discriminator.
986 * configure: Regenerate.
987 * config.in: Regenerate.
988
e07e020b
RR
9892009-06-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
990
991 * config/arm/arm.c (thumb2_legitimate_index_p): Initialize
992 val after checking for integers.
993
72fa3605
UB
9942009-06-04 Uros Bizjak <ubizjak@gmail.com>
995
996 * config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from
997 X64_REGPARM_MAX.
998 (REGPARM_MAX): Use X86_64_MS_REGPARM_MAX.
999 (X86_64_MS_SSE_REGPARM_MAX): Rename from X64_SSE_REGPARM_MAX.
1000 (SSE_REGPARM_MAX): Use X86_64_MS_SSE_REGPARM_MAX.
1001 * config/i386/i386.c: Use X86_64_MS_REGPARM_MAX instead of
1002 X64_REGPARM_MAX. Use X86_64_MS_SSE_REGPARM_MAX instead of
1003 X64_SSE_REGPARM_MAX.
1004 * config/i386/i386.md: Use X86_64_MS_SSE_REGPARM_MAX instead of
1005 X64_SSE_REGPARM_MAX.
1006
bdde878c
AO
10072009-06-04 Alexandre Oliva <aoliva@redhat.com>
1008
1009 * gcc.c (report_times_to_file): New.
1010 (execute): Implement it.
1011 (process_command): Support -time=.
1012 * doc/invoke.texi: Document it.
1013
2ce59df7
AO
10142009-06-04 Alexandre Oliva <aoliva@redhat.com>
1015
1016 * tree-ssa-live.c (remove_unused_scope_block_p): Keep variables
1017 that have value exprs.
1018
78bd9046
AO
10192009-06-04 Alexandre Oliva <aoliva@redhat.com>
1020
1021 * dwarf2asm.c (dw2_force_const_mem): Defer creation of
1022 declarations for constants until...
1023 (dw2_output_indirect_constant_1): ... this point.
1024
e63d4106
RE
10252009-06-04 Richard Earnshaw <rearnsha@arm.com>
1026
1027 PR target/10242
1028 * arm.md (arm_addsi3): Don't try to split an add with an
1029 eliminable register until after reload has completed.
1030
6bc7bc14
ILT
10312009-06-03 Ian Lance Taylor <iant@google.com>
1032
1033 * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST.
1034 * genattrtab.c (write_length_unit_log): Likewise.
1035 * genchecksum.c (dosum): Likewise.
1036 * gengtype.c (write_rtx_next): Likewise.
1037 (finish_root_table, write_roots): Likewise.
1038 * gimple.c (gimple_ops_offset_): Likewise.
1039 * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise.
1040 * config/arc/arc.c (arc_attribute_table): Likewise.
1041 * config/arm/arm.c (arm_attribute_table): Likewise.
1042 * config/avr/avr.c (avr_attribute_table): Likewise.
1043 * config/crx/crx.c (crx_attribute_table): Likewise.
1044 * config/m32r/m32r.c (m32r_attribute_table): Likewise.
1045 * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise.
1046 * config/mcore/mcore.c (mcore_attribute_table): Likewise.
1047 * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
1048 * config/sh/sh.c (sh_attribute_table): Likewise.
1049 * config/sparc/sparc.c (sparc_attribute_table): Likewise.
1050 * config/spu/spu.c (spu_attribute_table): Likewise.
1051 * config/v850/v850.c (v850_attribute_table): Likewise.
1052
1053 * config/alpha/alpha.c (vms_attribute_table): Make static.
1054 * config/bfin/bfin.c (bfin_attribute_table): Likewise.
1055 * config/h8300/h8300.c (h8300_attribute_table): Likewise.
1056 * config/mips/mips.c (mips_attribute_table): Likewise.
1057
1058 * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and
1059 $(SYSTEM_H).
1060 (cc1-checksum.o): Likewise.
1061
19d892fd
SE
10622009-06-03 Steve Ellcey <sje@cup.hp.com>
1063
1064 * config/ia64/vect.md (*movv2sf_internal): Handle big endian case.
1065
679f3354
JJ
10662009-06-03 Jakub Jelinek <jakub@redhat.com>
1067
ff35822b
JJ
1068 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated
1069 insn if it is changing sp. Use gen_add3_insn instead of
1070 conditionally gen_addsi3 and gen_adddi3.
1071 (offset_below_red_zone_p): New static inline function.
1072 (rs6000_emit_epilogue): Emit needed epilogue unwind info.
1073 Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3.
1074 * config/rs6000/ppc-asm.h: Include auto-host.h.
1075 (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET,
1076 CFI_RESTORE): Define.
1077 * config/rs6000/crtresxgpr.asm: Add unwind info.
1078 * config/rs6000/crtresxfpr.asm: Likewise.
1079 * config/rs6000/crtresgpr.asm: Likewise.
1080 * config/rs6000/crtresfpr.asm: Likewise.
1081 * config/rs6000/crtsavgpr.asm: Likewise.
1082 * config/rs6000/crtsavfpr.asm: Likewise.
1083
679f3354
JJ
1084 * dwarf2out.c (output_cfi_directive): Pass 1 instead of
1085 0 to second argument of DWARF2_FRAME_REG_OUT macros.
1086
2e94c12d
JB
10872009-06-03 Julian Brown <julian@codesourcery.com>
1088
1089 * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four
1090 words or less (including TImode) in core registers.
1091
3111cce0
RG
10922009-06-03 Richard Guenther <rguenther@suse.de>
1093
1094 PR middle-end/40328
1095 * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.
1096
5e1b50f6
AB
10972009-06-03 Andrey Belevantsev <abel@ispras.ru>
1098
1099 * statistics.c (statistics_counter_event): Do not record event
1100 in pass dump if its number == -1.
1101 (curr_statistics_hash): Add assert that we never get passes
1102 with static number == -1.
1103
6f11d690
RG
11042009-06-03 Richard Guenther <rguenther@suse.de>
1105 Andrey Belevantsev <abel@ispras.ru>
1106
1107 * cfgexpand.c (discover_nonconstant_array_refs_r): Make only
1108 non-BLKmode arrays addressable.
1109
88961471
MK
11102009-06-03 Maxim Kuvyrkov <maxim@codesourcery.com>
1111
1112 * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
1113 * config/m68k/m68k.h: ... here.
1114 * testsuite/gcc.dg/falign-labels.c (dg-options): Don't restrict for
1115 m68k and fido.
1116
9961eb45
MJ
11172009-06-03 Martin Jambor <mjambor@suse.cz>
1118
1119 PR tree-optimization/40323
1120 * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single
1121 assignment.
1122
2f2c62a0
RG
11232009-06-03 Richard Guenther <rguenther@suse.de>
1124
1125 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
1126 consistently.
1127
d6ced3b7
SZ
11282009-06-03 Shujing Zhao <pearly.zhao@oracle.com>
1129
1130 * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
1131 JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
1132 JUMP_TABLE_DATA_P where applicable.
1133 * config/sh/sh.c: Ditto.
1134 * config/sh/sh.h: Ditto.
1135 * config/sh/sh.md: Ditto.
1136 * config/sh/symbian.c: Ditto.
1137
f3afc8a7
UB
11382009-06-03 Uros Bizjak <ubizjak@gmail.com>
1139
1140 * config/i386/driver-i386.c (describe_cache): Optimize
1141 concatenation of strings. Use snprintf instead of sprintf.
1142 (host_detect_local_cpu): Ditto. Ignore -march and -mtune for native
1143 target when not compiling with GCC.
1144
1964788a
KK
11452009-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
1146
1147 * config/sh/sh.c: Revert last change.
1148 (sh_expand_epilogue): Emit a blockage insn before the frame
1149 pointer adjustment unconditionally.
1150
8633c315
RS
11512009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1152
1153 * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
1154 * config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
1155 * config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
1156 * gcc.c (set_collect_gcc_options): Don't add -fwhole-program
1157 to COLLECT_GCC_OPTIONS.
1158
781a1758
RS
11592009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1160
1161 * collect2.c (target_system_root): New variable.
1162 (main): Handle --sysroot=.
1163 (ignore_library): Strip the sysroot from the library path.
1164
dfb636dc
RS
11652009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1166
1167 * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
1168 (collect2.o): Depend on collect2-aix.h.
1169 (collect2-aix.o): New rule.
1170 * collect2-aix.h: New file.
1171 * collect2-aix.c: Likewise.
1172 * collect2.c: Include collect2-aix.h. Don't undefine
1173 OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
1174 Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
1175 Use TARGET_AIX_VERSION instead of _AIX51.
1176 * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
1177 * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
1178 * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
1179 * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
1180 * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.
1181
51136ae8
RS
11822009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1183
1184 * collect2.c (ignore_library): Avoid premature post-increment
1185 and null deference.
1186
7f142d33
RS
11872009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1188
1189 * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
1190 * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
1191 !CROSS_DIRECTORY_STRUCTURE alternative and use it for
1192 CROSS_DIRECTORY_STRUCTURE too.
1193 (LINK_LIBG_SPEC): Likewise.
1194 (LIB_SPEC): Add %R to sysroot paths.
1195 * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
1196 (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
1197 * config/rs6000/aix51.h: As for aix43.h.
1198 * config/rs6000/aix52.h: Likewise.
1199 * config/rs6000/aix53.h: Likewise.
1200 * config/rs6000/aix61.h: Likewise.
1201 * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
1202 to the beginning of sysroot paths.
1203
9e74b7d2
AO
12042009-06-02 Alexandre Oliva <aoliva@redhat.com>
1205
1206 * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
1207 INSN_LISTs that are out of the REG_NOTE range.
1208
a9f6ecee
AO
12092009-06-02 Alexandre Oliva <aoliva@redhat.com>
1210
1211 * loop-unroll.c (struct iv_to_split): Add pointer to next.
1212 (struct var_to_expand): Likewise.
1213 (struct opt_info): Add head and tail for linked lists of the above.
1214 (analyze_insn_to_expand_var): Initialize next.
1215 (analyze_iv_to_split_insn): Likewise.
1216 (analyze_insns_in_loop): Create linked lists.
1217 (allocate_basic_variable): Simplify for use without hash table.
1218 (insert_var_expansion_initialization): Likewise, make it type-safer.
1219 (combine_var_copies_in_loop_exit): Likewise.
1220 (apply_opt_in_copies): Walk lists rather than hash tables.
1221 (release_var_copies): Simplified and inlined by hand into...
1222 (free_opt_info): ... this function.
1223
69596c69
RG
12242009-06-02 Richard Guenther <rguenther@suse.de>
1225
1226 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
1227 for field decls.
1228
fe8a7779
AO
12292009-06-02 Alexandre Oliva <aoliva@redhat.com>
1230
1231 * cfgexpand.c (gimple_expand_cfg): Discard the source location
1232 only for builtins that are not overridden.
1233
1bcca2c5
AO
12342009-06-02 Alexandre Oliva <aoliva@redhat.com>
1235
1236 * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
1237 label string.
1238
8588f797
AO
12392009-06-02 Alexandre Oliva <aoliva@redhat.com>
1240
1241 * df-core.c (df_ref_debug): Honor -fdump-noaddr.
1242
45f39d78
AO
12432009-06-02 Alexandre Oliva <aoliva@redhat.com>
1244
1245 * combine.c (move_deaths): Compare LUIDs within the same BB only.
1246
2aa7c49b
AO
12472009-06-02 Alexandre Oliva <aoliva@redhat.com>
1248
1249 * common.opt (fdump-unnumbered-links): New.
1250 * doc/invoke.texi (-fdump-unnumbered-links): Document it.
1251 * print-rtl.c (flag_dump_unnumbered_links): New.
1252 (print_rtx): Test it.
1253
55b2829b
RE
12542009-06-02 Richard Earnshaw <rearnsha@arm.com>
1255
1256 * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
1257 push/pop multiple to 8-byte alignment.
e63d4106 1258
6c0d7021
JJ
12592009-06-01 Jakub Jelinek <jakub@redhat.com>
1260
0aa34d44
JJ
1261 * config/i386/i386.c (queued_cfa_restores): New static variable.
1262 (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
1263 functions.
1264 (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
1265 (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
1266 Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
1267 Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
1268 note unconditionally.
1269 (ix86_emit_restore_regs_using_mov): Likewise.
1270 (ix86_emit_restore_sse_regs_using_mov): Likewise.
1271 (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
1272 it through to ix86_emit_restore_reg_using_pop.
1273 (ix86_emit_leave): Add RED_OFFSET argument. Call
1274 ix86_add_queued_cfa_restore_notes. Call ix86_add_cfa_restore_note
1275 instead of adding REG_CFA_OFFSET note unconditionally.
1276 (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
1277 the above functions. Call ix86_add_queued_cfa_restore_notes when
1278 needed.
1279
1280 * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
1281 force output of the label even for dwarf2out_do_cfi_asm.
1282 (add_fde_cfi): If -g2 and above and cfi might change CFA,
1283 force creation of CFI label and chain DW_CFA_set_loc jumping to it
1284 for convert_cfa_to_fb_loc_list. Adjust other dwarf2out_cfi_label
1285 caller.
1286 (dwarf2out_stack_adjust, dwarf2out_frame_debug,
1287 dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
1288 dwarf2out_cfi_label callers.
1289 * tree.h (dwarf2out_cfi_label): Adjust prototype.
1290 * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
1291 Adjust dwarf2out_cfi_label callers.
1292 * config/vax/vax.c (vax_output_function_prologue): Likewise.
1293
604a6be9
JJ
1294 * config/i386/i386.h (struct machine_cfa_state,
1295 struct machine_function): Guard with ifndef USED_FOR_TARGET
1296 instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.
1297
df0026a7
JJ
1298 PR other/40024
1299 * emutls.c (__emutls_get_address): Change arr->size to mean number
1300 of allocated arr->data entries instead of # of slots + 1.
1301
6c0d7021
JJ
1302 PR middle-end/40316
1303 * recog.c (peep2_reinit_state): New function.
1304 (peephole2_init_state): Use it at the end of a basic block and also
1305 when seeing a RTX_FRAME_RELATED_P insn.
1306
49df2fb8
SE
13072009-06-01 Steve Ellcey <sje@cup.hp.com>
1308
1309 * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
1310 fixuns_truncrfdi2): New.
1311 (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
1312 *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
1313 *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
1314 *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
1315 *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
1316 *recip_approx): Remove.
1317 (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
1318 moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
1319 divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
1320 move to div.md.
1321 * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
1322 setf_exp_rf): New.
1323
67165eb3
ILT
13242009-06-01 Ian Lance Taylor <iant@google.com>
1325
1326 * attribs.c (register_attribute): Use CONST_CAST.
1327 * collect2.c (main): Use CONST_CAST2.
1328 (scan_prog_file): Likewise.
1329 * gcc.c (process_command, main): Likewise.
1330 * toplev.c (toplev_main): Likewise.
1331
1332 * c-typeck.c (handle_warn_cast_qual): New static function,
1333 partially broken out of build_c_cast.
1334 (build_c_cast): Call handle_warn_cast_qual.
1335 * doc/invoke.texi (Warning Options): Document new effect of
1336 -Wcast-qual.
1337
e74fe492
AH
13382009-06-01 Aldy Hernandez <aldyh@redhat.com>
1339
1340 * diagnostic.c (diagnostic_build_prefix): Always print columns.
1341 (diagnostic_report_current_module): Print columns.
1342 * common.opt (flag_show_column): Enable by default.
1343
7eba2d1f
LM
13442009-06-01 Luis Machado <luisgpm@br.ibm.com>
1345
1346 * alias.c (find_base_term): Check for NULL term before returning.
1347
ee88d9aa
MK
13482009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
1349
1350 Revert due to PR40320:
ee88d9aa
MK
1351 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
1352 * calls.c (emit_library_call_value_1): Don't force_operand for move
1353 and push insns.
1354
324c9b02 13552009-06-01 Olivier Hainque <hainque@adacore.com>
40d0d9e4 1356 Eric Botcazou <ebotcazou@adacore.com>
324c9b02
OH
1357
1358 * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
1359 to be processed as a bitfield for constructor output purposes.
1360 * output.h (initializer_constant_valid_for_bitfield_p): Declare
1361 new function.
1362 * varasm.c (oc_local_state): New type, output_constructor
1363 local state to support communication with helpers.
1364 (oc_outer_state): New type, output_constructor outer state of
1365 relevance in recursive calls.
1366 (output_constructor_array_range): New output_constructor helper,
1367 extracted code for an array range element.
1368 (output_constructor_regular_field): New output_constructor helper,
1369 extracted code for an element that is not a bitfield.
1370 (output_constructor_bitfield): New output_constructor helper,
1371 extracted code for a bitfield element. Accept an OUTER state
1372 argument for recursive processing. Recurse on record or array
1373 CONSTRUCTOR values, possibly past noop conversions.
62295314 1374 (initializer_constant_valid_for_bitfield_p): New predicate. Whether
324c9b02
OH
1375 VALUE is a valid constant-valued expression for use in a static
1376 bit-field initializer.
62295314
OH
1377 (output_constructor): Rework to use helpers. Accept and honor an
1378 OUTER state argument for recursive calls. Return total size. Be
324c9b02
OH
1379 prepared for nested constructors initializing bitfields.
1380 (output_constant): Feed OUTER in calls to output_constructor.
1381
0980d7fe
MK
13822009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
1383
1384 * calls.c (emit_library_call_value_1): Don't force_operand for move
1385 and push insns.
1386
29661412
NC
13872009-06-01 Nick Clifton <nickc@redhat.com>
1388
1389 * doc/invoke.texi (IA-64 Options): Fix typo.
1390
e9dbe7bb
IR
13912009-06-01 Ira Rosen <irar@il.ibm.com>
1392
1393 PR tree-optimization/39129
1394 * tree-vect-loop-manip.c (conservative_cost_threshold): Change the
1395 printed message.
1396 (vect_do_peeling_for_loop_bound): Use
1397 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
1398 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
1399 (vect_loop_versioning): Likewise.
1400 (vect_create_cond_for_alias_checks): Fix indentation.
1401 * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the
1402 macros.
1403 (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
1404 (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
1405 * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to
1406 "control flow in loop".
1407 (vect_estimate_min_profitable_iters): Use
1408 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
1409 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
1410 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
1411 (vect_create_data_ref_ptr): Don't mention array dimension in printing.
1412 * tree-vect-stmts.c (vectorizable_store): Replace the check that the
1413 statement belongs to a group of strided accesses with the exact code
1414 check.
1415 (vectorizable_load): Likewise.
1416 * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
1417 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
1418
5ac69a80
GP
14192009-06-01 Gerald Pfeifer <gerald@pfeifer.com>
1420
1421 * config/freebsd-stdint.h: New file.
1422 * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
1423 Add freebsd-stdint.h to tm_file.
1424
54b2b460
RE
14252009-06-01 Richard Earnshaw <rearnsha@arm.com>
1426
1427 * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
1428 (thumb2_extendhidi2): Likewise.
1429
a7ca77cf
ILT
14302009-05-31 Ian Lance Taylor <iant@google.com>
1431
f3afc8a7 1432 * regstat.c (regstat_n_sets_and_refs): Remove duplicate definition.
c50d84e3
ILT
1433
14342009-05-31 Ian Lance Taylor <iant@google.com>
1435
f3afc8a7 1436 * Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H).
a7ca77cf
ILT
1437 (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
1438 (ipa-reference.o): Depend upon gt-ipa-reference.h.
1439
1aec401e
JM
14402009-05-31 Jason Merrill <jason@redhat.com>
1441
1442 * tree-pretty-print.c (print_call_name): Take the callee, not the
f3afc8a7 1443 call itself. Make non-static. Use dump_function_name for functions.
1aec401e
JM
1444 (dump_generic_node): Adjust.
1445 * diagnostic.h: Declare print_call_name.
1446 * gimple-pretty-print.c (dump_gimple_call): Use it.
1447
ed7910bb
KK
14482009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
1449
1450 * config/sh/sh.md (ashldi3_std): New define_expand.
1451 (ashldi3): Use it.
1452
47ea8d4e
KK
14532009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
1454
1455 PR target/40313
1456 * config/sh/sh.c: Include debug.h.
1457 (sh_expand_epilogue): Emit a blockage insn before the frame
1458 pointer adjustment also when dwarf2out_do_frame returns true.
1459
405e8b49
RE
14602009-05-31 Richard Earnshaw <rearnsha@arm.com>
1461
1462 * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
1463 (thumb2_extendqidi2): New pattern.
1464
71ece343
IR
14652009-05-31 Ira Rosen <irar@il.ibm.com>
1466
1467 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
1468 mark phis for renaming.
1469 * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
1470 (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
1471 Call mark_sym_for_renaming.
1472 * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
f3afc8a7
UB
1473 * tree-vect-loop.c (vect_transform_loop): Remove
1474 vect_memsyms_to_rename initialization and a call to
1475 mark_set_for_renaming.
71ece343 1476
b3041944
JJ
14772009-05-31 Jakub Jelinek <jakub@redhat.com>
1478
1479 PR middle-end/40304
1480 * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
1481 frame related even if !set_cfa && style < 0.
1482
a1bda0d7
KT
14832009-05-30 Kai Tietz <kai.tietz@onevision.com>
1484
1485 * config/i386/mingw-tls.c: New file.
f3afc8a7
UB
1486 * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file.
1487 * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets
1488 defining _WIN32 but not __CYGWIN__.
a1bda0d7 1489
acd26225
KG
14902009-05-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1491
1492 * configure.ac: Add MPC support.
1493
1494 * config.in, configure: Regenerate.
1495
cd9c1ca8
RH
14962009-05-29 Richard Henderson <rth@redhat.com>
1497
1498 * cfgcleanup.c (try_crossjump_to_edge): Only skip past
1499 NOTE_INSN_BASIC_BLOCK.
1500 * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
1501 Duplicate NOTE_INSN_EPILOGUE_BEG notes.
1502 * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
1503 to be deleted.
1504 * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
1505 add in_use field.
1506 (add_cfi): Disable check redefining cfa away from drap.
1507 (lookup_cfa_1): Add remember argument; handle remember/restore.
1508 (lookup_cfa): Pass remember argument.
1509 (cfa_remember): New.
1510 (compute_barrier_args_size_1): Remove sibcall check.
1511 (dwarf2out_frame_debug_def_cfa): New.
1512 (dwarf2out_frame_debug_adjust_cfa): New.
1513 (dwarf2out_frame_debug_cfa_offset): New.
1514 (dwarf2out_frame_debug_cfa_register): New.
1515 (dwarf2out_frame_debug_cfa_restore): New.
1516 (dwarf2out_frame_debug): Handle REG_CFA_* notes.
1517 (dwarf2out_begin_epilogue): New.
1518 (dwarf2out_frame_debug_restore_state): New.
1519 (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
1520 DW_CFA_restore_state.
1521 (output_cfi_directive): Likewise.
1522 (convert_cfa_to_fb_loc_list): Likewise.
1523 (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
1524 * dwarf2out.h: Update.
1525 * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
1526 (copy_insn_1): Early out for null.
1527 * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
1528 and dwarf2out_frame_debug_restore_state.
1529 * function.c (prologue, epilogue, sibcall_epilogue): Remove.
1530 (prologue_insn_hash, epilogue_insn_hash): New.
1531 (free_after_compilation): Adjust freeing accordingly.
1532 (record_insns): Create hash table if needed; push insns into
1533 hash instead of array.
1534 (maybe_copy_epilogue_insn): New.
1535 (contains): Search hash table instead of array.
1536 (sibcall_epilogue_contains): Remove.
1537 (thread_prologue_and_epilogue_insns): Split eh_return insns
1538 and mark them as epilogues.
1539 (reposition_prologue_and_epilogue_notes): Rewrite epilogue
1540 scanning in terms of basic blocks.
1541 * insn-notes.def (CFA_RESTORE_STATE): New.
1542 * jump.c (returnjump_p_1): Accept EH_RETURN.
1543 (eh_returnjump_p_1, eh_returnjump_p): New.
1544 * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
1545 CFA_REGISTER, CFA_RESTORE): New.
1546 * rtl.def (EH_RETURN): New.
1547 * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
1548
1549 * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
1550 (eh_return_internal): Use eh_return rtx; split w/ epilogue.
1551
1552 * config/i386/i386.c (gen_push): Update cfa state.
1553 (pro_epilogue_adjust_stack): Add set_cfa argument. When true,
1554 add a CFA_ADJUST_CFA note.
1555 (ix86_dwarf_handle_frame_unspec): Remove.
1556 (ix86_expand_prologue): Update cfa state.
1557 (ix86_emit_restore_reg_using_pop): New.
1558 (ix86_emit_restore_regs_using_pop): New.
1559 (ix86_emit_leave): New.
1560 (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
1561 (ix86_expand_epilogue): Add notes for unwinding the epilogue.
1562 * config/i386/i386.h (struct machine_cfa_state): New.
1563 (ix86_cfa_state): New.
1564 * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
1565 (eh_return_internal): Merge from eh_return_<mode>,
1566 use eh_return rtx, split w/ epilogue.
1567
72b5577d
ILT
15682009-05-29 Ian Lance Taylor <iant@google.com>
1569
1570 * builtins.c (validate_gimple_arglist): Don't use va_arg with
1571 enum type.
1572 * calls.c (emit_library_call_value_1): Likewise.
1573
1574 * c-typeck.c (c_build_va_arg): New function.
1575 * c-tree.h (c_build_va_arg): Declare.
1576 * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
1577 instead of build_va_arg.
1578
7a2faca1
EB
15792009-05-29 Eric Botcazou <ebotcazou@adacore.com>
1580
1581 * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
1582 (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
1583 (ptr_difference_cost): Use affine combinations to compute it.
1584 (difference_cost): Likewise.
1585 (get_computation_cost_at): Compute more accurate cost for addresses
1586 if the ratio is a multiplier allowed in addresses.
1587 For non-addresses, consider that an additional offset or symbol is
1588 added only once.
1589
725fd454
JJ
15902009-05-29 Jakub Jelinek <jakub@redhat.com>
1591
a0987204
JJ
1592 * config/i386/i386.c (ix86_decompose_address): Avoid useless
1593 0 displacement. Add 0 displacement if base is %[er]bp or %r13.
1594
725fd454
JJ
1595 * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
1596 TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
1597 (prefix_rex): For UNIT_MMX don't imply the prefix by default
1598 if MODE_DI.
1599 (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
1600 to 1 for TYPE_SSE{IADD1,CVT1}.
1601 (prefix_vex_imm8): Removed.
1602 (length_vex): Only pass 1 as second argument to
1603 ix86_attr_length_vex_default if prefix_extra is 0.
1604 (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
1605 (length): For prefix vex computation use length_immediate
1606 attribute instead of prefix_vex_imm8.
1607 (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
1608 addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
1609 *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
1610 *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
1611 (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
1612 *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
1613 a space in between the operands.
1614 (*anddi_1_rex64, *andsi_1): Likewise. Override prefix_rex to 1
1615 if one operand is 0xff and the other one si, di, bp or sp.
1616 (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
1617 other one si, di, bp or sp.
1618 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
1619 (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
1620 type and mode attributes.
1621 (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
1622 (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
1623 prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
1624 (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
1625 prefix_data16 attribute iff MODE_DF.
1626 (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
1627 (fix_trunc<mode>di_sse): Set prefix_rex attribute.
1628 (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
1629 constm128_operand in length_immediate computation.
1630 (*addhi_4): Likewise. Fix mode attribute to MODE_HI.
1631 (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
1632 (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
1633 length_immediate attribute to 1.
1634 (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
1635 (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
1636 for certain alternatives.
1637 (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
1638 prefix_data16 attribute if MODE_V1DF.
1639 (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
1640 length_immediate to 1.
1641 (set_got_rex64, set_rip_rex64): Remove length attribute, set
1642 length_address to 4, set mode attribute to MODE_DI.
1643 (set_got_offset_rex64): Likewise. Set length_immediate to 0.
1644 (fxam<mode>2_i387): Set length attribute to 4.
1645 (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
1646 *prefetch_3dnow_rex): Override length_address attribute.
1647 (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
1648 attributes.
1649 * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
1650 (constm128_operand): Removed.
1651 * config/i386/i386.c (memory_address_length): For
1652 disp && !index && !base in 64-bit mode account for SIB byte if
1653 print_operand_address can't optimize disp32 into disp32(%rip)
1654 and UNSPEC doesn't imply (%rip) addressing. Add 1 to length
1655 for fs: or gs: segment.
1656 (ix86_attr_length_immediate_default): When checking if shortform
1657 is possible, truncate immediate to the length of the non-shortened
1658 immediate.
1659 (ix86_attr_length_address_default): Ignore MEM_P operands
1660 with X constraint.
1661 (ix86_attr_length_vex_default): Only check for DImode on
1662 GENERAL_REG_P operands.
1663 * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
1664 prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
1665 (sse_cvttps2pi): Clear prefix_rep attribute.
1666 (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
1667 attribute.
1668 (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
1669 (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
1670 *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
1671 iff operand 2 is const_int_operand.
1672 (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
1673 sse2_shufpd_<mode>): Set length_immediate attribute to 1.
1674 (sse2_pshufd_1): Likewise. Set prefix attribute to maybe_vex
1675 instead of vex.
1676 (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
1677 prefix_data16.
1678 (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
1679 prefix_data16 attribute for movlpd and movhpd instructions.
1680 (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise. Override
1681 length_immediate for shufpd instruction.
1682 (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
1683 (avx_cmpp<avxmodesuffixf2c><mode>3,
1684 avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
1685 <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
1686 avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
f3afc8a7 1687 *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1.
725fd454
JJ
1688 (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
1689 (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
1690 (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
1691 prefix_data16 attribute for the first alternative to 1.
1692 (*avx_loadlps): Override length_immediate for the first alternative.
1693 (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
1694 attributes for second alternative.
1695 (*vec_concatv2sf_sse4_1): Override length_immediate and
1696 prefix_data16 attributes for second alternative.
1697 (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
1698 vec_extract_hi_<mode>, vec_extract_lo_v16hi,
1699 vec_extract_hi_v16hi, vec_extract_lo_v32qi,
1700 vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
1701 (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
1702 prefix_data16 and length_immediate to 1.
1703 (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
1704 to 1.
1705 (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
f3afc8a7 1706 prefix_extra attribute for variants that don't have 0f prefix alone.
725fd454
JJ
1707 (*avx_pinsr<ssevecsize>): Likewise. Set length_immediate to 1.
1708 (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
1709 *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
1710 *sse4_1_pextrd): Set length_immediate to 1.
1711 (*sse4_1_pinsrd): Likewise. Set prefix_extra to 1.
1712 (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
1713 to 1.
1714 (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
1715 *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
1716 length_immediate to 1 for second alternative.
1717 (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
1718 prefix_extra and length_immediate attributes for the first
1719 alternative.
1720 (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
1721 first alternative.
1722 (*vec_concatv2di_rex64_sse4_1): Likewise. Override prefix_rex
1723 to 1 for the first and third alternative.
1724 (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
1725 alternative.
1726 (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
1727 attribute.
1728 (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
1729 attribute to 0.
1730 (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
1731 *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
1732 *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
1733 *avx_psign<mode>3): Set prefix_extra attribute to 1.
1734 (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
1735 ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
1736 ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
1737 ssse3_psign<mode>3): Override prefix_rex attribute.
f3afc8a7 1738 (*avx_palignrti): Override prefix_extra and length_immediate to 1.
725fd454
JJ
1739 (ssse3_palignrti): Override length_immediate to 1.
1740 (ssse3_palignrdi): Override length_immediate to 1, override
1741 prefix_rex attribute.
f3afc8a7 1742 (abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute.
725fd454
JJ
1743 (sse4a_extrqi): Override length_immediate to 2.
1744 (sse4a_insertqi): Likewise. Override prefix_data16 to 0.
1745 (sse4a_insertq): Override prefix_data16 to 0.
1746 (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
1747 avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
1748 avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
1749 *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
1750 avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
1751 and length_immediate to 1.
1752 (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
1753 sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
1754 sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
1755 sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
1756 and length_immediate to 1.
1757 (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
1758 (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
1759 (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
1760 avx_ptest256): Override prefix_extra to 1.
1761 (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
1762 Override prefix_data16 and length_immediate to 1.
1763 (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
1764 sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
1765 sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
1766 sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
1767 prefix_data16 to 0 and prefix_extra to 2.
1768 (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
1769 (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
1770 attribute.
1771 (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
1772 sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
1773 Override prefix_data16 and prefix_rep to 0, length_immediate to 1
1774 and prefix_extra to 2.
1775 (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
1776 prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
1777 (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
1778 avx_vpermilvar<mode>3,
1779 avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
1780 avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
1781 avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
1782 avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
1783 Override prefix_extra to 1.
1784 (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
1785 (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
1786 vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
1787 vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
1788 prefix_extra and length_immediate to 1.
1789 (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
1790 modrm to 0.
1791 (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
1792 to 1 for the first alternative.
1793 * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
1794 prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
1795 cases.
1796 (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
1797 *movv2sf_internal_avx, *movv2sf_internal): Override
1798 prefix_rep attribute for certain alternatives.
1799 (*mov<mode>_internal): Override prefix_rep or prefix_data16
1800 attributes for certain alternatives.
1801 (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
1802 attributes for certain alternatives.
1803 (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
1804 *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
1805 mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
1806 mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
1807 *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
1808 mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
1809 mmx_pswapdv2si2): Set prefix_extra attribute to 1.
1810 (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
1811 length_immediate to 1 if operand 2 is const_int_operand.
1812 (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
f3afc8a7 1813 *vec_extractv2si_1): Set length_immediate attribute to 1.
725fd454
JJ
1814 (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
1815 using old 3DNOW insn rather than SSE/3DNOW_A.
1816 (mmx_emms, mmx_femms): Clear modrm attribute.
1817
0674b9d0
MJ
18182009-05-29 Martin Jambor <mjambor@suse.cz>
1819
1820 * tree-sra.c: New implementation of SRA.
1821
1822 * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
1823 (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
1824 (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
1825 * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
1826 (SRA_MAX_STRUCTURE_COUNT): Removed.
1827 (SRA_FIELD_STRUCTURE_RATIO): Removed.
1828 * doc/invoke.texi (sra-max-structure-size): Removed.
1829 (sra-field-structure-ratio): Removed.
1830
616f21df
JJ
18312009-05-29 Jakub Jelinek <jakub@redhat.com>
1832
1833 PR middle-end/40291
1834 * builtins.c (expand_builtin_memcmp): Convert len to sizetype
1835 before expansion.
1836
da7ba240
AB
18372009-05-29 Andrey Belevantsev <abel@ispras.ru>
1838
1839 PR rtl-optimization/40101
1840 * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
1841 seqno. Adjust comment.
1842 * sel-sched.c (find_seqno_for_bookkeeping): Assert that when
1843 inserting bookkeeping before a jump, the jump is not scheduled.
1844 When no positive seqno found, provide a value. Add comment.
1845
71dcd609
RG
18462009-05-29 Richard Guenther <rguenther@suse.de>
1847
1848 * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
1849 short-cutting on the first component.
1850
a900ae6b
JJ
18512009-05-29 Jakub Jelinek <jakub@redhat.com>
1852
1853 PR middle-end/39958
1854 * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
1855 for trees other than decls/types.
1856
821bb7f8
RG
18572009-05-29 Richard Guenther <rguenther@suse.de>
1858
1859 * tree-ssa-operands.c (get_expr_operands): Do not handle
1860 INDIRECT_REFs in the handled-component case. Remove
1861 unused get_ref_base_and_extent case.
1862 * tree-dfa.c (get_ref_base_and_extent): Avoid calling
1863 tree_low_cst and host_integerp where possible.
1864 * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
1865 codes for equivalence.
1866 * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
1867
e997fb9c
DB
18682009-05-29 David Billinghurst <billingd@gcc.gnu.org>
1869
1870 * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
1871 to tmake_file for i[34567]86-*-cygwin*.
1872
58195b74
JJ
18732009-05-29 Jakub Jelinek <jakub@redhat.com>
1874
1875 PR target/40017
1876 * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
1877 (altivec_categorize_keyword, init_vector_keywords,
1878 rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
1879 similar to bool.
1880
055df276
KT
18812009-05-29 Kai Tietz <kai.tietz@onevision.com>
1882
1883 * tree.c (handle_dll_attribute): Check if node is
1884 of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
1885
f5939ef3
RE
18862009-05-29 Richard Earnshaw <rearnsha@arm.com>
1887
1888 * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
1889 component.
1890 (thumb2_zero_extendqidi2): Likewise.
1891
c185de40
KK
18922009-05-28 Kaz Kojima <kkojima@gcc.gnu.org>
1893
1894 * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
1895 instead of gen_movrt.
1896 * config/sh/sh.md (movrt): Remove.
1897
bf3c6caf
SE
18982009-05-28 Steve Ellcey <sje@cup.hp.com>
1899
f3afc8a7 1900 * doc/invoke.texi (IA-64 Options):
bf3c6caf
SE
1901 Add -msdata, -mfused-madd, -mno-inline-float-divide,
1902 -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
1903 -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
1904 -msched-prefer-non-control-spec-insns,
1905 -msched-stop-bits-after-every-cycle,
1906 -msched-count-spec-in-critical-path,
1907 -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
f3afc8a7 1908 -msched-max-memory-insns-hard-limit, -msched-max-memory-insns.
bf3c6caf
SE
1909 Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
1910 and -msched-spec-verbose.
1911
8a66e987
JM
19122009-05-28 Joseph Myers <joseph@codesourcery.com>
1913
f3afc8a7 1914 * config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache.
8a66e987
JM
1915 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
1916 error if used.
1917 * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
1918
b45d2719
RG
19192009-05-28 Richard Guenther <rguenther@suse.de>
1920
1921 * tree-ssa-alias.c (ao_ref_init): New function.
1922 (ao_ref_base): Likewise.
1923 (ao_ref_base_alias_set): Likewise.
1924 (ao_ref_alias_set): Likewise.
1925 (refs_may_alias_p_1): Change signature.
1926 (refs_may_alias_p): Adjust.
1927 (refs_anti_dependent_p): Likewise.
1928 (refs_output_dependent_p): Likewise.
1929 (call_may_clobber_ref_p_1): Change signature.
1930 (call_may_clobber_ref_p): Adjust.
1931 (stmt_may_clobber_ref_p_1): New function split out from ...
1932 (stmt_may_clobber_ref_p): ... here.
1933 (maybe_skip_until): Adjust signature.
1934 (get_continuation_for_phi): Likewise.
1935 (walk_non_aliased_vuses): Likewise.
1936 * tree-ssa-alias.h (struct ao_ref_s): New structure type.
1937 (ao_ref_init): Declare.
1938 (ao_ref_base): Likewise.
1939 (ao_ref_alias_set): Likewise.
1940 (stmt_may_clobber_ref_p_1): Likewise.
1941 (walk_non_aliased_vuses): Adjust.
1942 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
1943 (get_ref_from_reference_ops): remove.
1944 (vn_reference_lookup_2): Adjust signature.
1945 (vn_reference_lookup_3): Do not re-build trees. Handle unions.
f3afc8a7 1946 (vn_reference_lookup_pieces): Adjust signature, do not re-build trees.
b45d2719
RG
1947 (vn_reference_lookup): Adjust.
1948 (vn_reference_insert): Likewise.
1949 (vn_reference_insert_pieces): Adjust signature.
1950 (visit_reference_op_call): Adjust.
1951 * tree-ssa-pre.c (get_expr_type): Simplify.
1952 (phi_translate_1): Adjust.
1953 (compute_avail): Likewise.
1954 (translate_vuse_through_block): Do not re-build trees.
1955 (value_dies_in_block_x): Likewise.
1956 * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
1957 fields.
1958 (vn_reference_lookup_pieces): Adjust declaration.
1959 (vn_reference_insert_pieces): Likewise.
1960
554223b6
BK
19612009-05-28 Benjamin Kosnik <bkoz@redhat.com>
1962
1963 * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
1964 with checking disabled.
1965
233215fe
DK
19662009-05-28 Dave Korn <dave.korn.cygwin@gmail.com>
1967
1968 PR target/37216
1969
1970 * configure.ac (HAVE_GAS_ALIGNED_COMM): Add autoconf test and
1971 macro definition for support of three-operand format aligned
1972 .comm directive in assembler on cygwin/pe/mingw target OS.
1973 * configure: Regenerate.
1974 * config.h: Regenerate.
1975
1976 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Use
1977 aligned form of .comm directive if -mpe-aligned-commons is in effect.
1978 * config/i386/cygming.opt (-mpe-aligned-commons): Add new option.
1979
1980 * doc/invoke.texi (-mpe-aligned-commons): Document new target option.
1981 * doc/tm.texi (ASM_OUTPUT_COMMON): Document zero size commons.
1982
24adb18f
IR
19832009-05-28 Ira Rosen <irar@il.ibm.com>
1984
1985 PR tree-optimization/40254
1986 * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
1987 in analysis of basic blocks.
1988
2c5bfdf7
AN
19892009-05-28 Adam Nemet <anemet@caviumnetworks.com>
1990
1991 PR middle-end/33699
f3afc8a7 1992 * target.h (struct gcc_target): Fix indentation. Add const_anchor.
2c5bfdf7
AN
1993 * target-def.h (TARGET_CONST_ANCHOR): New macro.
1994 (TARGET_INITIALIZER): Use it.
1995 * cse.c (CHEAPER): Move it up to the other macros.
1996 (insert): Rename this ...
1997 (insert_with_costs): ... to this. Add cost parameters. Update
1998 function comment.
1999 (insert): New function. Call insert_with_costs.
2000 (compute_const_anchors, insert_const_anchor, insert_const_anchors,
2001 find_reg_offset_for_const, try_const_anchors): New functions.
2002 (cse_insn): Call try_const_anchors. Adjust cost of src_related
2003 when using a const-anchor. Call insert_const_anchors.
f3afc8a7 2004 * config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor.
2c5bfdf7
AN
2005 * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
2006
9e6aced0
AO
20072009-05-28 Alexandre Oliva <aoliva@redhat.com>
2008
2009 * tree-inline.c (remap_decls): Enable nonlocalized variables
2010 when not optimizing.
2011
89fbbe4e
AO
20122009-05-28 Alexandre Oliva <aoliva@redhat.com>
2013
2014 * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
2015 Simplify other tests involving optimize.
2016
e455776a
TT
20172009-05-27 Tom Tromey <tromey@redhat.com>
2018
2019 * unwind-dw2.c (_Unwind_DebugHook): New function.
2020 (uw_install_context): Call _Unwind_DebugHook.
2021
cea32bca
TT
20222009-05-27 Tom Tromey <tromey@redhat.com>
2023
2024 * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
2025
c607156f
ILT
20262009-05-27 Ian Lance Taylor <iant@google.com>
2027
2028 * Makefile.in (LINKER, LINKER_FLAGS): Define.
2029 (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
2030 (ALL_LINKERFLAGS): Define.
2031 (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
2032 (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
2033 (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
2034 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
2035 (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
2036 $(LINKER_FOR_BUILD).
2037 (build/gcov-iov$(build_exeext)): Likewise.
2038
ec0a1343
JB
20392009-05-27 Julian Brown <julian@codesourcery.com>
2040
2041 * gcse.c (target.h): Include.
2042 (can_assign_to_reg_without_clobbers_p): Check that the target allows
2043 copy of argument to a pseudo register.
2044
ac80ba07
DN
20452009-05-27 Diego Novillo <dnovillo@google.com>
2046
2047 * tree-ssa-live.c (dump_scope_block): Document arguments.
2048 (dump_scope_blocks): Document.
2049 (debug_scope_blocks): New.
2050 * tree-flow.h (debug_scope_blocks): Declare.
2051
d1803a17
DC
20522009-05-21 Denis Chertykov <denisc@overta.ru>
2053
f3afc8a7 2054 * doc/contrib.texi (Contributors): Add myself to the list.
d1803a17 2055
51fb7760 20562009-05-27 Olivier Hainque <hainque@adacore.com>
ceadb728
OH
2057
2058 * expr.c (target_align): New function. Alignment the TARGET of an
2059 assignment may be assume to have.
2060 (highest_pow2_factor_for_target): Use it instead of relying on
2061 immediate tree attributes of TARGET, not necessarily honored when
2062 intermediate bitfields are involved.
2063
634fa334
L
20642009-05-27 H.J. Lu <hongjiu.lu@intel.com>
2065
2066 PR target/40266
2067 * config/i386/driver-i386.c (host_detect_local_cpu): Support
2068 AVX, SSE4, AES, PCLMUL and POPCNT.
2069
65332587
DN
20702009-05-27 Diego Novillo <dnovillo@google.com>
2071
2072 * tree-pretty-print.c (dump_location): New.
2073 (dump_generic_node): Call it.
2074 Factor code to handle BLOCK nodes ...
2075 (dump_block_node): ... here.
2076
3e17e31d
RAE
20772009-05-27 Rafael Avila de Espindola <espindola@google.com>
2078
f3afc8a7
UB
2079 * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h
2080 with it.
3e17e31d
RAE
2081 * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
2082 included.
2083 * gcc-plugin.h: Include config.h and system.h.
2084 (IN_GCC): Define if not defined.
2085
5e370570
HPN
20862009-05-27 Hans-Peter Nilsson <hp@axis.com>
2087
2088 PR middle-end/40249
2089 * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
2090 with -fno-inline.
2091
d000f0d9
SZ
20922009-05-27 Shujing Zhao <pearly.zhao@oracle.com>
2093
2094 * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
2095 applicable.
2096 * config/m32r/m32r.h: Ditto.
2097 * config/m32r/m32r.md: Ditto.
2098 * config/m32r/predicates.md: Ditto.
2099
82f331ff
AO
21002009-05-27 Alexandre Oliva <aoliva@redhat.com>
2101
2102 * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
2103
ae2392a9
BS
21042009-05-26 Basile Starynkevitch <basile@starynkevitch.net>
2105
2106 * doc/plugins.texi
2107 (Loading plugins): typo.
2108 (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
2109 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
2110 (Interacting with the GCC Garbage Collector): Added new section.
2111 (Giving information about a plugin): Added new section for
2112 PLUGIN_INFO.
ae2392a9
BS
2113 * ggc.h (ggc_register_root_tab): Added declaration.
2114 * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
2115 (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
2116 (register_callback): Improved comment in declaration.
f3afc8a7
UB
2117 * ggc-common.c (const_ggc_root_tab_t) Added new typedef for vectors.
2118 (extra_root_vec) Added static variable for dynamic roots registration.
ae2392a9
BS
2119 (ggc_register_root_tab) Added new routine.
2120 (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
2121 PLUGIN_GGC_MARKING event.
2122 * ggc-zone.c: Include plugin.h.
2123 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
2124 * ggc-page.c: Include plugin.h.
2125 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
2126 * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
2127 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
2128 (register_callback): check lack of callbacks for
2129 pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
2130 PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
2131 (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
2132 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
2133 * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
2134 dependency on plugin.h.
2135 (plugin.o): Added dependency on ggc.h...
2136
f0cfd3a8
RG
21372009-05-26 Richard Guenther <rguenther@suse.de>
2138
2139 PR middle-end/40248
2140 Revert
2141 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
2142 with mismatched comparison modes.
2143
2144 * expr.c (expand_expr_real_1): Expand the operand of a
2145 VIEW_CONVERT_EXPR in its natural mode.
2146
7980bfb8
ILT
21472009-05-26 Ian Lance Taylor <iant@google.com>
2148
2149 * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
2150 (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
2151 (ALL_COMPILERFLAGS): Define.
2152 (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
2153 (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
2154 (collect2$(exeext), collect2.o): Likewise.
2155 (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
2156 (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
2157 ($(out_object_file), mips-tfile, mips-tdump): Likewise.
2158 (libbackend.o, intl.o, cppdefault.o): Likewise.
2159 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
2160 (build/%.o): Use $(COMPILER_FOR_BUILD).
2161 (build/gen%$(build_exeext)): Likewise.
2162 (build/gcov-iov$(build_exeext)): LIkewise.
2163 * config/t-darwin (darwin.o): Use $(COMPILER).
2164 (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
2165 * config/t-sol2 (sol2-c.o): Likewise.
2166 (sol2.o): Likewise.
2167 * config/t-vxworks (vxworks.o): Likewise.
2168 * config/x-darwin (host-darwin.o): Likewise.
2169 * config/x-hpux (host-hpux.o): Likewise.
2170 * config/x-linux (host-linux.o): Likewise.
2171 * config/x-solaris (host-solaris.o): Likewise.
2172 * config/alpha/x-alpha (driver-alpha.o): Likewise.
2173 * config/arm/t-arm (arm-c.o): Likewise.
2174 * config/arm/t-pe (pe.o): Likewise.
2175 * config/arm/t-wince-pe (pe.o): Likewise.
2176 * config/i386/t-cygming (winnt.o): Likewise.
2177 (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
2178 * config/i386/t-cygwin (cygwin1.o): Likewise.
2179 (cygwin2.o): Likewise.
2180 * config/i386/t-i386 (i386-c.o): Likewise.
2181 * config/i386/t-interix (winnt.o): Likewise.
2182 * config/i386/t-netware (netware.o): Likewise.
2183 * config/i386/t-nwld (nwld.o): Likewise.
2184 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
2185 * config/i386/x-i386 (driver-i386.o): Likewise.
2186 * config/i386/x-cygwin (host-cygwin.o): Likewise.
2187 * config/i386/x-mingw32 (host-mingw32.o): Likewise.
2188 * config/ia64/t-ia64 (ia64-c.o): Likewise.
2189 * config/m32c/t-m32c (m32c-pragma.o): Likewise.
2190 * config/mips/x-native (driver-native.o): Likewise.
2191 * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
2192 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
2193 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
2194 * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
2195 * config/score/t-score-elf (score7.o): Likewise.
2196 (score3.o): Likewise.
2197 * config/sh/t-sh (sh-c.o): Likewise.
2198 * config/sh/t-symbian (sh-c.o): Likewise.
2199 (symbian.o): Likewise.
2200 * config/spu/t-spu-elf (spu-c.o): Likewise.
2201 * config/v850/t-v850 (v850-c.o): Likewise.
2202 * config/v850/t-v850e (v850-c.o): Likewise.
2203
23977d3c
RG
22042009-05-26 Richard Guenther <rguenther@suse.de>
2205
2206 PR tree-optimization/40122
2207 * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
2208 VECTOR_CSTs if possible.
2209 (fold_gimple_assign): Likewise.
2210
3d62b895
RG
22112009-05-26 Richard Guenther <rguenther@suse.de>
2212
2213 PR middle-end/40252
2214 * fold-const.c (fold_binary): Use the correct types for building
2215 rotates.
2216
12346147
RG
22172009-05-26 Richard Guenther <rguenther@suse.de>
2218
2219 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
2220 redundant calls to merge_alias_info.
2221 (bump_vector_ptr): Likewise.
2222 * tree-ssa-copy.c (merge_alias_info): Remove.
2223 (replace_exp_1): Remove call to merge_alias_info.
2224 (propagate_tree_value): Likewise.
2225 (fini_copy_prop): Propagate points-to info.
2226 * tree-flow.h (merge_alias_info): Remove.
2227
807d5e6f
HS
22282009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
2229
2230 * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
2231
85057983
JH
22322009-05-25 Jan Hubicka <jh@suse.cz>
2233
2234 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
2235 * cgraph.h (struct inline_summary): New filed self_wize,
2236 size_inlining_benefit, self_time and time_inlining_benefit.
2237 (struct cgraph_global_info): Replace insns by time ans size fields.
2238 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
2239 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
2240 (ipcp_update_callgraph): Do not touch function bodies.
2241 * ipa-inline.c: Include except.h
2242 (MAX_TIME): New constant.
2243 (overall_insns): Remove.
2244 (leaf_node_p): New.
2245 (overall_size, max_benefit): New static variables.
2246 (cgraph_estimate_time_after_inlining): New function.
2247 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
2248 (cgraph_clone_inlined_nodes): Update size.
2249 (cgraph_mark_inline_edge): Update size.
2250 (cgraph_estimate_growth): Use size info.
2251 (cgraph_check_inline_limits): Check size.
2252 (cgraph_default_inline_p): Likewise.
2253 (cgraph_edge_badness): Compute badness based on benefit and size cost.
2254 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
2255 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
2256 and times.
85057983
JH
2257 (cgraph_decide_inlining): Likewise.
2258 (cgraph_decide_inlining_incrementally): Likewise; honor
2259 PARAM_EARLY_INLINING_INSNS.
2260 (likely_eliminated_by_inlining_p): New predicate.
2261 (estimate_function_body_sizes): New function.
2262 (compute_inline_parameters): Use it.
2263 * except.c (must_not_throw_labels): New function.
2264 * except.h (must_not_throw_labels): Declare.
2265 * tree-inline.c (init_inline_once): Kill inlining_weigths
2266 * tree-ssa-structalias.c: Avoid uninitialized warning.
2267 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
2268 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
2269 (PARAM_INLINE_CALL_COST): Remove.
2270 (PARAM_EARLY_INLINING_INSNS): New.
2271
01df5c8a
RG
22722009-05-25 Richard Guenther <rguenther@suse.de>
2273
2274 PR tree-optimization/36327
2275 * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
f3afc8a7 2276 callback for reference translation or lookup at the point of may-defs.
01df5c8a
RG
2277 * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
2278 * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
2279 for union COMPONENT_REFs.
2280 (vn_reference_lookup_3): New callback. Lookup from memset
2281 and CONSTRUCTOR assignment, translate through struct copies.
2282 (vn_reference_lookup_pieces): Make sure to not free the
2283 passed operands array. Adjust walk_non_aliased_vuses call.
2284 (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
2285 make sure we do not leak memory.
2286
6b8ed145
RG
22872009-05-25 Richard Guenther <rguenther@suse.de>
2288
2289 * tree-ssa-alias.h (dump_points_to_solution): Declare.
2290 * tree-inline.c (expand_call_inline): Reset the escaped and
2291 callused solutions.
2292 * tree-ssa-structalias.c (pass_build_ealias): New.
2293 * tree-pass.h (pass_build_ealias): Declare.
2294 * passes.c (init_optimization_passes): Add PTA during
2295 early optimizations.
2296 * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
2297 and CALLUSED solutions.
2298 (dump_points_to_solution): New function, split out from ...
2299 (dump_points_to_info_for): ... here.
2300 * tree-parloops.c (parallelize_loops): Reset the escaped and
2301 callused solutions.
2302
0adcf178
RO
23032009-05-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2304
2305 PR bootstrap/40027
2306 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
2307 * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
2308
12aaf609
IR
23092009-05-25 Ira Rosen <irar@il.ibm.com>
2310
2311 PR tree-optimization/40238
2312 * tree-vect-stmts.c (vect_init_vector): Insert initialization
2313 statements after basic block's labels.
2314 * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info()
2315 to free the allocated memory.
2316
7f9a14e3
KK
23172009-05-24 Kaz Kojima <kkojima@gcc.gnu.org>
2318
2319 * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
2320 return address with a USE.
2321
b842d478
RG
23222009-05-24 Richard Guenther <rguenther@suse.de>
2323
2324 PR middle-end/40233
2325 * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
2326 array type from the main variant of the inner type.
2327
8db7b33f
JBG
23282009-05-24 Jan-Benedict Glaw <jbglaw@lug-owl.de>
2329
2330 * config/vax/vax-protos.h (legitimate_constant_address_p): Change
2331 definition to bool (from int) to un-break build.
2332 (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
2333
cff4e50d
PB
23342009-05-24 Paolo Bonzini <bonzini@gnu.org>
2335
2336 * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
2337 discard_stmt_changes): Delete.
2338 * tree-ssa-operands.c (scb_stack): Delete.
2339 (init_ssa_operands): Do not initialize it.
2340 (fini_ssa_operands): Do not free it.
2341 (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
2342
2343 * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with
2344 update_stmt, remove the others. Fix comments.
2345 * tree-dfa.c (optimize_stack_restore): Likewise.
2346 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
2347 * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
2348 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
2349 * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
2350 Likewise.
2351 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
2352 * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
f3afc8a7
UB
2353 (dom_opt_finalize_block): Likewise, adjusting access to
2354 stmts_to_rescan.
cff4e50d
PB
2355 (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
2356 (stmts_to_rescan): Change item type to gimple.
2357 (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
2358
a70d6342
IR
23592009-05-24 Ira Rosen <irar@il.ibm.com>
2360
2361 * doc/passes.texi (Tree-SSA passes): Document SLP pass.
2362 * tree-pass.h (pass_slp_vectorize): New pass.
2363 * params.h (SLP_MAX_INSNS_IN_BB): Define.
2364 * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
2365 * tree-vectorizer.c (timevar.h): Include.
2366 (user_vect_verbosity_level): Declare.
2367 (vect_location): Fix comment.
2368 (vect_set_verbosity_level): Update user_vect_verbosity_level
2369 instead of vect_verbosity_level.
2370 (vect_set_dump_settings): Add an argument. Ignore user defined
2371 verbosity if dump flags require higher level of verbosity. Print to
2372 stderr only for loop vectorization.
2373 (vectorize_loops): Update call to vect_set_dump_settings.
2374 (execute_vect_slp): New function.
2375 (gate_vect_slp): Likewise.
2376 (struct gimple_opt_pass pass_slp_vectorize): New.
2377 * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
2378 access its members.
2379 (vec_info_for_bb): New function.
2380 (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
2381 (VECTORIZATION_ENABLED): New macro.
2382 (SLP_ENABLED, SLP_DISABLED): Likewise.
2383 (vect_is_simple_use): Add bb_vec_info argument.
2384 (new_stmt_vec_info, vect_analyze_data_ref_dependences,
2385 vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
2386 vect_analyze_data_ref_accesses, vect_analyze_data_refs,
2387 vect_schedule_slp, vect_analyze_slp): Likewise.
2388 (vect_analyze_stmt): Add slp_tree argument.
2389 (find_bb_location): Declare.
2390 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
2391 * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
2392 (vect_analyze_loop_operations, vect_analyze_loop,
2393 get_initial_def_for_induction, vect_create_epilog_for_reduction,
2394 vect_finalize_reduction, vectorizable_reduction,
2395 vectorizable_live_operation, vect_transform_loop): Likewise.
2396 * tree-data-ref.c (dr_analyze_innermost): Update comment,
2397 skip evolution analysis if analyzing a basic block.
2398 (dr_analyze_indices): Likewise.
2399 (initialize_data_dependence_relation): Skip the test whether the
2400 object is invariant for basic blocks.
2401 (compute_all_dependences): Skip dependence analysis for data
2402 references in basic blocks.
2403 (find_data_references_in_stmt): Don't fail in case of invariant
2404 access in basic block.
2405 (find_data_references_in_bb): New function.
2406 (find_data_references_in_loop): Move code to
782dc37a 2407 find_data_references_in_bb and add a call to it.
a70d6342
IR
2408 (compute_data_dependences_for_bb): New function.
2409 * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
2410 * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
2411 that STEP is 0.
2412 (vect_analyze_data_ref_dependence): Check for interleaving in case of
2413 unknown dependence in basic block and fail in case of dependence in
2414 basic block.
2415 (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
2416 dependence instances from either loop or basic block vectorization
2417 info.
2418 (vect_compute_data_ref_alignment): Check if it is loop vectorization
2419 before calling nested_in_vect_loop_p.
2420 (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
2421 dependence instances from either loop or basic block vectorization
2422 info.
2423 (vect_verify_datarefs_alignment): Likewise.
2424 (vect_enhance_data_refs_alignment): Adjust function calls.
2425 (vect_analyze_data_refs_alignment): Likewise.
2426 (vect_analyze_group_access): Fix printing. Skip different checks if
2427 DR_STEP is 0. Keep strided stores either in loop or basic block
2428 vectorization data structure. Fix indentation.
2429 (vect_analyze_data_ref_access): Fix comments, allow zero step in
2430 basic blocks.
2431 (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
2432 dependence instances from either loop or basic block vectorization
2433 info.
2434 (vect_analyze_data_refs): Update comment. Call
2435 compute_data_dependences_for_bb to analyze basic blocks.
2436 (vect_create_addr_base_for_vector_ref): Check for outer loop only in
2437 case of loop vectorization. In case of basic block vectorization use
782dc37a 2438 data-ref itself as a base.
a70d6342
IR
2439 (vect_create_data_ref_ptr): In case of basic block vectorization:
2440 don't advance the pointer, add new statements before the current
2441 statement. Adjust function calls.
2442 (vect_supportable_dr_alignment): Support only aligned accesses in
2443 basic block vectorization.
2444 * common.opt (ftree-slp-vectorize): New flag.
2445 * tree-vect-patterns.c (widened_name_p): Adjust function calls.
2446 (vect_pattern_recog_1): Likewise.
2447 * tree-vect-stmts.c (process_use): Likewise.
2448 (vect_init_vector): Add new statements in the beginning of the basic
2449 block in case of basic block SLP.
2450 (vect_get_vec_def_for_operand): Adjust function calls.
2451 (vect_finish_stmt_generation): Likewise.
2452 (vectorizable_call): Add assert that it is loop vectorization, adjust
2453 function calls.
2454 (vectorizable_conversion, vectorizable_assignment): Likewise.
2455 (vectorizable_operation): In case of basic block SLP, take
2456 vectorization factor from statement's type and skip the relevance
2457 check. Adjust function calls.
2458 (vectorizable_type_demotion): Add assert that it is loop
2459 vectorization, adjust function calls.
2460 (vectorizable_type_promotion): Likewise.
2461 (vectorizable_store): Check for outer loop only in case of loop
2462 vectorization. Adjust function calls. For basic blocks, skip the
2463 relevance check and don't advance pointers.
2464 (vectorizable_load): Likewise.
2465 (vectorizable_condition): Add assert that it is loop vectorization,
2466 adjust function calls.
2467 (vect_analyze_stmt): Add argument. In case of basic block SLP, check
2468 that it is not reduction, get vector type, call only supported
782dc37a 2469 functions, skip loop specific parts.
a70d6342
IR
2470 (vect_transform_stmt): Check for outer loop only in case of loop
2471 vectorization.
2472 (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
2473 (vect_is_simple_use): Fix comment, add new argument, fix conditions
2474 for external definition.
2475 * passes.c (pass_slp_vectorize): New pass.
2476 * tree-vect-slp.c (find_bb_location): New function.
2477 (vect_get_and_check_slp_defs): Add argument, adjust function calls,
2478 check for patterns only in loops.
2479 (vect_build_slp_tree): Add argument, adjust function calls, fail in
2480 case of multiple types in basic block SLP.
2481 (vect_mark_slp_stmts_relevant): New function.
2482 (vect_supported_load_permutation_p): Fix comment.
2483 (vect_analyze_slp_instance): Add argument. In case of basic block
2484 SLP, take vectorization factor from statement's type, check that
2485 unrolling factor is 1. Adjust function call. Save SLP instance in
2486 either loop or basic block vectorization structure. Return FALSE,
2487 if SLP failed.
2488 (vect_analyze_slp): Add argument. Get strided stores groups from
2489 either loop or basic block vectorization structure. Return FALSE
2490 if basic block SLP failed.
2491 (new_bb_vec_info): New function.
2492 (destroy_bb_vec_info, vect_slp_analyze_node_operations,
2493 vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
2494 (vect_schedule_slp): Add argument. Get SLP instances from either
2495 loop or basic block vectorization structure. Set vectorization factor
2496 to be 1 for basic block SLP.
2497 (vect_slp_transform_bb): New function.
2498 * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
2499
0676c393
MM
25002009-05-23 Mark Mitchell <mark@codesourcery.com>
2501
2502 * final.c (shorten_branches): Do not align labels for jump tables.
2503 (final_scan_insn): Use JUMP_TABLE_DATA_P.
2504
94324dae
EB
25052009-05-23 Eric Botcazou <ebotcazou@adacore.com>
2506
2507 * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
2508 Remove outdated reference to flow.c and fix nits.
2509 * doc/gccint.texi: Tweak RTL description.
2510 * doc/rtl.texi: Likewise.
2511
92bffc14
DC
25122009-05-23 Denis Chertykov <chertykov@gmail.com>
2513
2514 * config/avr/avr.c: Change my email address.
2515 * config/avr/avr.h: Likewise.
2516 * config/avr/avr.md: Likewise.
2517 * config/avr/avr-protos.h: Likewise.
2518 * config/avr/libgcc.S: Likewise.
2519
eec9405e
TS
25202009-05-22 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
2521
2522 * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
2523 (spu_split_load, spu_split_store): Change return type to int.
2524 (spu_split_convert): Declare.
2525 * config/spu/predicates.md (spu_mem_operand): Remove.
2526 (spu_mov_operand): Update.
2527 (spu_dest_operand, shiftrt_operator, extend_operator): Define.
2528 * config/spu/spu.c (regno_aligned_for_load): Remove.
2529 (reg_aligned_for_addr, spu_expand_load): Define.
2530 (spu_expand_extv): Reimplement and handle MEM.
2531 (spu_expand_insv): Handle MEM.
2532 (spu_sched_reorder): Handle insn's with length 0.
2533 (spu_legitimate_address_p): Reimplement.
2534 (store_with_one_insn_p): Return TRUE for any mode with size
2535 larger than 16 bytes.
2536 (address_needs_split): Define.
2537 (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
2538 operands.
2539 (spu_convert_move): Define.
782dc37a 2540 (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
eec9405e
TS
2541 (spu_split_store): Change all MEM's to TImode.
2542 (spu_init_expanders): Preallocate registers that correspond to
2543 LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
2544 mark_reg_pointer.
2545 (spu_split_convert): Define.
2546 * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
2547 (_move<mode>, _movdi, _movti): Update predicate and condition.
2548 (load, store): Change to define_split.
2549 (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
2550 extend<mode>ti2.
2551 (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
2552 (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
2553 define_insn_and_split of lshr<mode>3.
2554 (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
2555 (<v>ashr<mode>3_imm): Define.
2556 (extv, extzv, insv): Allow MEM operands.
2557 (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
2558 shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
2559 sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
2560 (_spu_convert2): Change to define_insn_and_split and remove the
2561 corresponding define_peephole2.
2562 (stack_protect_set, stack_protect_test, stack_protect_test_si):
2563 Change predicates to memory_operand.
2564
7d31a807
MM
25652009-05-22 Mark Mitchell <mark@codesourcery.com>
2566
2567 * config/arm/thumb2.md: Add 16-bit multiply instructions.
7d31a807 2568
d021d274
MM
25692009-05-21 Michael Meissner <meissner@linux.vnet.ibm.com>
2570
2571 PR tree-optimization/40219
2572 * tree.c (iterative_hash_expr): Make sure the builtin function is
2573 a normal builtin function and not a front end or back end builtin
2574 before indexing into the built_in_decls array.
2575
4d7a65ea
RG
25762009-05-22 Richard Guenther <rguenther@suse.de>
2577
2578 PR middle-end/38964
2579 * alias.c (write_dependence_p): Do not use TBAA for answering
2580 anti-dependence or output-dependence.
782dc37a 2581 * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
4d7a65ea
RG
2582 (emit_pointer_definition): Remove.
2583 (emit_alias_warning): Likewise.
2584 (find_what_var_points_to): Remove TBAA pruning code.
2585 (find_what_p_points_to): Likewise. Do not warn about strict-aliasing
2586 violations.
2587 (compute_points_to_sets): Remove code computing the set of
2588 dereferenced pointers.
2589 * tree-data-ref.c (dr_may_alias_p): Properly use the split
2590 oracle for querying anti and output dependencies.
2591 * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
2592 if TBAA may be applied.
2593 (refs_anti_dependent_p): New function.
2594 (refs_output_dependent_p): Likewise.
2595 * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
2596 (refs_output_dependent_p): Likewise.
2597 * doc/tree-ssa.texi (Memory model): New section.
2598 * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
2599 * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
2600 * cfgexpand.c (expand_gimple_basic_block): Do not handle
2601 GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
2602 * expr.c (expand_expr_real_1): Likewise.
2603 * gimple-low.c (lower_stmt): Likewise.
2604 * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
2605 (dump_gimple_cdt): Remove.
2606 * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
2607 (gimple_size): Likewise.
2608 (walk_gimple_op): Likewise.
2609 (is_gimple_stmt): Likewise.
2610 (walk_stmt_load_store_addr_ops): Likewise.
2611 (gimple_build_cdt): Remove.
2612 * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
2613 * gimple.h (gimple_cdt_new_type): Remove.
2614 (gimple_cdt_new_type_ptr): Likewise.
2615 (gimple_cdt_set_new_type): Likewise.
2616 (gimple_cdt_location): Likewise.
2617 (gimple_cdt_location_ptr): Likewise.
2618 (gimple_cdt_set_location): Likewise.
2619 * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
2620 * tree-cfg.c (remove_useless_stmts_1): Do not handle
2621 GIMPLE_CHANGE_DYNAMIC_TYPE.
2622 (verify_types_in_gimple_stmt): Likewise.
2623 * tree-inline.c (estimate_num_insns): Likewise.
2624 (expand_call_inline): Do not copy DECL_NO_TBAA_P.
2625 (copy_decl_to_var): Likewise.
2626 (copy_result_decl_to_var): Likewise.
2627 * tree-pretty-print.c (dump_generic_node): Do not handle
2628 CHANGE_DYNAMIC_TYPE_EXPR.
2629 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
2630 * tree-ssa-operands.c (get_expr_operands): Likewise.
2631 * tree-ssa-structalias.c (struct variable_info): Remove
2632 no_tbaa_pruning member.
2633 (new_var_info): Do not set it based on DECL_NO_TBAA_P.
2634 (unify_nodes): Do not copy it.
2635 (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
2636 (dump_solution_for_var): Do not dump no_tbaa_pruning state.
2637 (set_uids_in_ptset): Do not check it.
2638 (find_what_var_points_to): Likewise.
2639 (compute_tbaa_pruning): Remove.
2640 (compute_points_to_sets): Do not call it.
2641 * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
2642 * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
2643 * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
2644 (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
2645 (DECL_NO_TBAA_P): Likewise.
2646 (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
2647 * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
2648 (expand_omp_atomic_pipeline): Do not set it.
2649 * print-tree.c (print_node): Do not dump it.
2650 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
2651 redundant check.
2652
83a6ac60
VM
26532009-05-22 Vladimir Makarov <vmakarov@redhat.com>
2654
2655 PR target/39856
2656 * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
2657 for clobber.
2658
fe2978fb
MM
26592009-05-22 Mark Mitchell <mark@codesourcery.com>
2660
2661 * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
2662 non-external.
2663
134ef638
BE
26642009-05-22 Ben Elliston <bje@au.ibm.com>
2665
2666 * Makefile.in (bversion.h, s-bversion): New targets.
2667 (TOPLEV_H): Add bversion.h.
2668 * toplev.h: Include "bversion.h".
2669 (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
2670 the __format__ attribute only if compiling with the same version
2671 of GCC as the sources (the "build version").
2672
52fc669d
BE
26732009-05-22 Ben Elliston <bje@au.ibm.com>
2674
2675 * c-format.c (handle_format_attribute): Fix comment typo.
2676
583ca921
SE
26772009-05-21 Steve Ellcey <sje@cup.hp.com>
2678
2679 PR target/37846
2680 * config/ia64/ia64.opt (mfused-madd): New.
2681 * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
2682 * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
2683 * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
2684 madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
2685 nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
2686 msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
2687 nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
2688 * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms
2689 instruction if !TARGET_FUSED_MADD.
2690 (fpma, fpms): Remove colon from name.
2691
150e3929
RG
26922009-05-22 Richard Guenther <rguenther@suse.de>
2693
2694 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
2695 TMR_ORIGINAL. Always either record TMR_SYMBOL or TMR_BASE.
2696 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
2697 TARGET_MEM_REF.
2698 (create_expression_by_pieces): Only convert if necessary.
2699 * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
2700 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
2701
9a2b090c
AN
27022009-05-21 Adam Nemet <anemet@caviumnetworks.com>
2703
2704 * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
2705 regular pattern from a template and rename it ...
2706 (*extzv_truncsi_exts): ... to this.
2707
33b92c9d
RG
27082009-05-21 Richard Guenther <rguenther@suse.de>
2709
2710 * cgraph.h (struct cgraph_node): Remove inline_decl member.
2711 * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
2712 (cgraph_default_inline_p): Likewise.
2713 (cgraph_decide_inlining_incrementally): Likewise.
2714
cabf85c3
L
27152009-05-21 H.J. Lu <hongjiu.lu@intel.com>
2716 Uros Bizjak <ubizjak@gmail.com>
2717
2718 * config/i386/cpuid.h (bit_MOVBE): New.
2719
2720 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
2721
2722 * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
2723 (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
2724 (ix86_handle_option): Handle OPT_mmovbe.
2725 (ix86_target_string): Add -mmovbe.
2726 (pta_flags): Add PTA_MOVBE.
2727 (processor_alias_table): Add PTA_MOVBE to "atom".
2728 (override_options): Handle PTA_MOVBE.
2729
2730 * config/i386/i386.h (TARGET_MOVBE): New.
2731
2732 * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
2733 (*bswapsi_movbe): New.
2734 (*bswapdi_movbe): Likewise.
2735 (bswapdi2): Renamed to ...
2736 (*bswapdi_1): This.
2737 (bswapdi2): New expander.
2738
2739 * config/i386/i386.opt (mmovbe): New.
2740
2741 * doc/invoke.texi: Document -mmovbe.
2742
9fefa0aa
TG
27432009-05-21 Taras Glek <tglek@mozilla.com>
2744
2745 * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
2746 * gcc-plugin.h (plugin_init): Updated signature.
2747 * gcc-plugin.h (plugin_name_args): Moved to this header.
cabf85c3
L
2748 * doc/plugins.texi (plugin_init): Updated documention to reflect
2749 API change.
9fefa0aa
TG
2750 * doc/plugins.texi (plugin_name_args): Added to documention.
2751
1ea9fe56
MM
27522009-05-21 Mark Mitchell <mark@codesourcery.com>
2753
2754 * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
2755 (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
2756
52f84254
SZ
27572009-05-21 Shujing Zhao <pearly.zhao@oracle.com>
2758
2759 * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
2760 JUMP_TABLE_DATA_P predicates where applicable.
2761 * config/i386/predicates.md: Ditto.
2762 * config/i386/sse.md: Ditto.
2763
a952487c
JJ
27642009-05-21 Jakub Jelinek <jakub@redhat.com>
2765
93cac287
JJ
2766 * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
2767 operand2 -128 override length_immediate attribute to 1.
2768 * config/i386/predicates.md (constm128_operand): New predicate.
2769
a952487c
JJ
2770 * config/i386/i386.c (memory_address_length): Handle %r12
2771 the same as %rsp and %r13 the same as %rbp. For %rsp and %rbp
2772 also check REGNO.
2773 (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
2774 mode look through optional ZERO_EXTEND and SUBREG.
2775 * config/i386/i386.md (R12_REG): New define_constant.
2776 (prefix_data16): For sse unit set also for MODE_TI insns.
2777 (prefix_rex): For -m32 always return 0. For TYPE_IMOVX
2778 insns set if operand 1 is ext_QIreg_operand.
2779 (modrm): For TYPE_IMOV clear only if not MODE_DI. For
2780 TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
2781 immediate.
2782 (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
2783 mode from MODE_DI to MODE_SI.
2784 (movdi_1_rex64): Override modrm and length_immediate attributes
2785 only for movabs (TYPE_IMOV, alternative 2).
2786 (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
2787 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
2788 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
2789 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
2790 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
2791 prefix_rex attribute if DImode.
2792 (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
2793 *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
2794 *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
2795 *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
2796 attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
2797 (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
2798 Likewise. For TYPE_IMOV clear length_immediate attribute.
2799 (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
2800 *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
2801 *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
2802 *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
2803 *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
2804 or one operand TYPE_ISHIFT.
2805 (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
2806 *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
2807 *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
2808 *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
2809 *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
2810 *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
2811 *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
2812 *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
2813 *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
2814 *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
2815 *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
2816 *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
2817 *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
2818 *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
2819 *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
2820 *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
2821 *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
2822 set mode attribute, don't override length attribute.
2823 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
2824 to 1.
2825 (return_internal_long): Set length attribute to 2 instead of 1.
2826 (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
2827 *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
2828 prefix_rex attribute.
782dc37a
UB
2829 * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
2830 New predicates.
2831 (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
a952487c 2832
64af62c2
RR
28332009-05-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2834
2835 * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
2836
c166b898
ILT
28372009-05-20 Ian Lance Taylor <iant@google.com>
2838
2839 * tree.c (build_tree_list_vec_stat): New function.
2840 (ctor_to_vec): New function.
2841 (build_nt_call_vec): New function.
2842 (build_call_array): Change args to be a const pointer.
2843 (build_call_vec): New function.
2844 * tree.h (build_nt_call_vec): Declare.
2845 (build_tree_list_vec_stat): Declare.
2846 (build_tree_list_vec): Define.
2847 (build_call_array): Update declaration.
2848 (build_call_vec): Declare.
2849 (ctor_to_vec): Declare.
2850 * c-common.c (tree_vector_cache): New static variable.
2851 (make_tree_vector): New function.
2852 (release_tree_vector): New function.
2853 (make_tree_vector_single): New function.
2854 (make_tree_vector_copy): New function.
2855 * c-common.h (tree_vector_cache, make_tree_vector): Declare.
2856 (make_tree_vector_single, make_tree_vector_copy): Declare.
2857 * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
2858 (c_parser_expr_list): Don't manage cache here, instead call
2859 make_tree_vector.
2860 (c_parser_release_expr_list): Remove static function.
2861 (c_parser_vec_to_tree_list): Remove static function.
2862 (c_parser_attributes): Call build_tree_list_vec instead of
2863 c_parser_vec_to_tree_list. Call release_tree_vector instead of
2864 c_parser_release_expr_list.
2865 (c_parser_postfix_expression_after_primary): Likewise.
2866 (c_parser_objc_keywordexpr): Likewise.
2867
40449a90
SL
28682009-05-20 Sandra Loosemore <sandra@codesourcery.com>
2869
2870 * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
2871 TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
2872 TARGET_CONVERT_TO_TYPE.
2873 * hooks.c (hook_tree_const_tree_null): Define.
2874 * hooks.h (hook_tree_const_tree_null): Declare.
2875 * target.h (struct gcc_target): Add invalid_parameter_type,
2876 invalid_return_type, promoted_type, and convert_to_type fields.
2877 * target-def.h: (TARGET_INVALID_PARAMETER_TYPE): Define.
2878 (TARGET_INVALID_RETURN_TYPE): Define.
2879 (TARGET_PROMOTED_TYPE): Define.
2880 (TARGET_CONVERT_TO_TYPE): Define.
2881 (TARGET_INITIALIZER): Update for new fields.
2882 * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
2883 (grokparms): Check targetm.invalid_parameter_type.
2884 * c-typeck.c (default_conversion): Check targetm.promoted_type.
2885 * c-convert.c (convert): Check targetm.convert_to_type.
2886
642d97ff
AN
28872009-05-20 Adam Nemet <anemet@caviumnetworks.com>
2888
2889 * config/mips/mips.md (*extenddi_truncate<mode>,
2890 *extendsi_truncate<mode>): Emit exts if supported. Add attribute
2891 defintions.
2892 (*extendhi_truncateqi): New define_insn_and_sptit.
2893
776248b8
JJ
28942009-05-20 Jakub Jelinek <jakub@redhat.com>
2895
2896 PR middle-end/40204
2897 * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
782dc37a 2898 recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
776248b8 2899
d98e8686
EB
29002009-05-20 Eric Botcazou <ebotcazou@adacore.com>
2901
2902 * fold-const.c (build_fold_addr_expr_with_type): Take the address of
2903 the operand of VIEW_CONVERT_EXPR.
2904
37c50435
L
29052009-05-20 H.J. Lu <hongjiu.lu@intel.com>
2906
2907 * config/i386/driver-i386.c (host_detect_local_cpu): Check
f3afc8a7 2908 extended family and model for Intel processors. Support Intel Atom.
37c50435 2909
dbb6088f
OH
29102009-05-20 Olivier Hainque <hainque@adacore.com>
2911
2912 * gstab.h (stab_code_type): Define, to be used instead of the
2913 __stab_debug_code enum, made anonymous. Add 2009 to the copyright
2914 notice.
2915 * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
2916 occurrences by stab_code_type.
2917 * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
2918
7ec49257
MJ
29192009-05-20 Martin Jambor <mjambor@suse.cz>
2920
2921 * tree-flow.h (insert_edge_copies_seq): Undeclare.
2922 (sra_insert_before): Likewise.
2923 (sra_insert_after): Likewise.
2924 (sra_init_cache): Likewise.
2925 (sra_type_can_be_decomposed_p): Likewise.
2926 * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
2927 * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
2928 (sra_insert_before): Likewise.
2929 (sra_insert_after): Likewise.
2930 (sra_init_cache): Likewise.
2931 (insert_edge_copies_seq): Made static and moved upwards.
2932
2933 * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
2934 case.
2935
2936 * tree-flow-inline.h (contains_view_convert_expr_p): New function.
2937
2938 * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
2939 (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
2940 simple copies.
2941
0328ae4d
RG
29422009-05-20 Richard Guenther <rguenther@suse.de>
2943
2944 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
2945 with mismatched comparison modes.
2946
a7994a57 29472009-05-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
782dc37a 2948
a7994a57 2949 * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
782dc37a
UB
2950 (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
2951 * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
2952 with shifts for Thumb2.
2953 (orsi_notsi): New for orn.
2954 (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
2955 (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
2956 * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
2957 (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
2958 Don't invert remainder for IOR.
a7994a57 2959
e36dc339
ZD
29602009-05-19 Zdenek Dvorak <ook@ucw.cz>
2961
2962 PR tree-optimization/40087
2963 * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
2964 number_of_iterations_ne): Rename never_infinite argument.
2965 (number_of_iterations_lt_to_ne, number_of_iterations_lt,
2966 number_of_iterations_le): Handle pointer-type ivs when
2967 exit_must_be_taken is false.
2968 (number_of_iterations_cond): Do not always assume that
2969 exit_must_be_taken if the control variable is a pointer.
2970
5cfd5d9b
AP
29712009-05-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
2972
2973 * c-typeck.c (build_binary_op): Allow % on integal vectors.
2974 * doc/extend.texi (Vector Extension): Document that % is allowed too.
2975
2f1c7156
L
29762009-05-19 H.J. Lu <hongjiu.lu@intel.com>
2977
2978 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
2979 ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
2980
7bb27074
MLI
29812009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
2982
2983 PR c/40172
2984 * c.opt (Wlogical-op): Disabled by default.
2985 * c-opt (c_common_post_options): Do not enable Wlogical-op with
2986 Wextra.
2987 * doc/invoke.texi (Wlogical-op): Likewise.
2988
5aefc6a0
EB
29892009-05-19 Eric Botcazou <ebotcazou@adacore.com>
2990
2991 * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
2992 into CASE_CONVERT.
2993 <PLUS_EXPR>: Strip useless type conversions instead of type nops.
2994 Propagate the type of the first operand.
2995 <ASSERT_EXPR>: Simplify.
2996 (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
2997 Rewrite using the RHS code as discriminant.
2998 <NOP_EXPR>: Turn into CASE_CONVERT.
2999 <PLUS_EXPR>: Propagate the type of the first operand.
3000
f3a83111
SE
30012009-05-19 Steve Ellcey <sje@cup.hp.com>
3002
3003 * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
3004 (ia64_dconst_0_375): New.
3005 * config/ia64/ia64.c (ia64_override_options): Remove
3006 -minline-sqrt-min-latency warning.
3007 (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
3008 (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
3009 * config/ia64/ia64.md (*sqrt_approx): Remove.
3010 (sqrtsf2): Remove #if 0.
3011 (sqrtsf2_internal_thr): Rewrite and move to div.md.
3012 (sqrtdf): Remove assert.
3013 (sqrtdf2_internal_thr): Rewrite and move to div.md.
3014 (sqrtxf2): Remove #if 0.
3015 (sqrtxf2_internal_thr): Rewrite and move to div.md.
3016 * div.md (sqrt_approx_rf): New.
3017 (sqrtsf2_internal_thr): New implementation.
3018 (sqrtsf2_internal_lat): New.
3019 (sqrtdf2_internal_thr: New implementation.
3020 (sqrtxf2_internal): New implementation.
3021
1ffc7157
FXC
30222009-05-19 Francois-Xavier Coudert <fxcoudert@gmail.com>
3023 Hans-Peter Nilsson <hp@axis.com>
3024
3025 * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
3026 (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
3027 (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
3028 (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
3029 (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
3030 (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
3031 (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
3032 (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
3033 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
3034 (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
3035 * c-common.c: ...from here.
3036
db91d9ef
MLI
30372009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
3038
f3afc8a7 3039 * c-common.c (warn_logical_operator): Remove unnecessary conditionals.
db91d9ef 3040
bbb9d91f
KG
30412009-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3042
3043 * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
3044
ce883f54
BE
30452009-05-19 Ben Elliston <bje@au.ibm.com>
3046
3047 * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
3048 assignments with memcpy calls.
3049 (add_fdes): Likewise.
3050 (binary_search_unencoded_fdes): Likewise.
3051 (linear_search_fdes): Eliminate type puns.
3052
377f099a
RG
30532009-05-19 Richard Guenther <rguenther@suse.de>
3054
3055 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
3056 not falsely claim to have propagated into all uses.
3057
848bc769
BE
30582009-05-19 Ben Elliston <bje@au.ibm.com>
3059
3060 * doc/invoke.texi (C Dialect Options): Update OpenMP specification
3061 version to v3.0.
3062
1bb99877
KK
30632009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
3064
3065 * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
3066 * config/sh/sh.c (sh_legitimate_address_p): Make static.
3067 (TARGET_LEGITIMATE_ADDRESS_P): New.
3068 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3069 * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
3070
82725547
DS
30712009-05-18 Dodji Seketeli <dodji@redhat.com>
3072
3073 PR debug/40109
3074 * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
3075 child of the containing namespace's DIE.
3076
f6a1e430
AN
30772009-05-18 Adam Nemet <anemet@caviumnetworks.com>
3078
3079 * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
3080 *zero_extendhi_truncqi): Move after the zero_extend patterns.
3081 (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
3082 extend patterns.
3083
6a90d232
L
30842009-05-18 H.J. Lu <hongjiu.lu@intel.com>
3085
3086 PR target/39942
3087 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
3088 gen_align with gen_pad.
3089 (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
3090 #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
3091
3092 * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
3093 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
3094
3095 * config/i386/i386.md (align): Renamed to ...
3096 (pad): This. Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
3097 ASM_OUTPUT_MAX_SKIP_PAD.
3098
c4406f74
AS
30992009-05-18 Andreas Schwab <schwab@linux-m68k.org>
3100
06555043
AS
3101 * config.gcc: Fix variable syntax.
3102
c4406f74
AS
3103 PR target/39531
3104 * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
3105 before calling exact_log2.
3106 (output_iorsi3): Likewise.
3107 (output_xorsi3): Likewise.
3108
99052692
KK
31092009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
3110
3111 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
3112 for the none zero constant operand except for EQ and NE
3113 comprisons even when the first operand is R0.
3114
f4aa3848
AK
31152009-05-18 Andreas Krebbel <krebbel1@de.ibm.com>
3116
3117 * config/s390/2064.md: Remove trailing whitespaces.
3118 * config/s390/2084.md: Likewise.
3119 * config/s390/constraints.md: Likewise.
3120 * config/s390/fixdfdi.h: Likewise.
3121 * config/s390/libgcc-glibc.ver: Likewise.
3122 * config/s390/s390-modes.def: Likewise.
3123 * config/s390/s390-protos.h: Likewise.
3124 * config/s390/s390.c: Likewise.
3125 * config/s390/s390.h: Likewise.
3126 * config/s390/s390.md: Likewise.
3127 * config/s390/tpf-unwind.h: Likewise.
3128
ab7256e4
MK
31292009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
3130
3131 * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
3132
75df395f
MK
31332009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
3134
3135 M68K TLS support.
3136 * configure.ac (m68k-*-*): Check if binutils support TLS.
3137 * configure: Regenerate.
3138 * config/m68k/predicates.md (symbolic_operand): Extend comment.
3139 * config/m68k/constraints.md (Cu): New constraint.
3140 * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
3141 (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
3142 (movsi): Handle TLS symbols.
3143 (addsi3_5200): Handle XTLS symbols, indent.
3144 * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
3145 (m68k_tls_reference_p): Declare.
3146 (m68k_legitimize_address): Declare.
3147 (m68k_unwrap_symbol): Declare.
3148 * config/m68k/m68k.opt (mxtls): New option.
3149 * config/m68k/m68k.c (ggc.h): Include.
3150 (m68k_output_dwarf_dtprel): Implement hook.
3151 (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
3152 (m68k_expand_prologue): Load GOT pointer when function needs it.
3153 (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
3154 (m68k_legitimate_constant_address_p): Same.
3155 (m68k_decompose_address): Handle TLS references.
3156 (m68k_get_gp): New static function.
3157 (enum m68k_reloc): New contants.
3158 (TLS_RELOC_P): New macro.
3159 (m68k_wrap_symbol): New static function.
3160 (m68k_unwrap_symbol): New function.
3161 (m68k_final_prescan_insn_1): New static function.
3162 (m68k_final_prescan_insn): New function.
3163 (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
3164 functions.
3165 (legitimize_pic_address): Handle TLS references..
3166 (m68k_tls_get_addr, m68k_get_tls_get_addr)
3167 (m68k_libcall_value_in_a0_p)
3168 (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
3169 (m68k_call_m68k_read_tp): Helper variables and functions for ...
3170 (m68k_legitimize_tls_address): Handle TLS references.
3171 (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
3172 New functions.
3173 (m68k_legitimize_address): Handle TLS symbols.
3174 (m68k_get_reloc_decoration): New static function.
3175 (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
3176 UNSPEC_RELOC32.
3177 (m68k_output_dwarf_dtprel): Implement hook.
3178 (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
3179 (m68k_libcall_value): Return result in A0 instead of D0 when asked by
3180 m68k_call_* routines.
3181 (sched_attr_op_type): Handle TLS symbols.
3182 (gt-m68k.h): Include.
3183 * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
3184 (LEGITIMATE_PIC_OPERAND_P): Support TLS.
3185
8b75fc9b
MJ
31862009-05-18 Martin Jambor <mjambor@suse.cz>
3187
3188 * ipa-prop.c (ipa_check_stmt_modifications): Removed.
3189 (visit_store_addr_for_mod_analysis): New function.
3190 (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
3191 (determine_cst_member_ptr): Use gimple_assign_single_p.
3192 (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
3193 (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
3194 operands. Don't check number of operands of a NOP_EXPR.
3195
f133d4a2
EF
31962009-05-18 Eric Fisher <joefoxreal@gmail.com>
3197
3198 * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
3199
ae8af500
L
32002009-05-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
3201
3202 PR c/40172
3203 * c-common.c (warn_logical_operator): Don't warn if one of
3204 expression isn't always true or false.
3205
25e8fde8
KT
32062009-05-17 Kai Tietz <kai.tietz@onevision.com>
3207
ae8af500
L
3208 * config/i386/biarch32.h: New file.
3209 * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
25e8fde8 3210
ef67af22
AN
32112009-05-17 Adam Nemet <anemet@caviumnetworks.com>
3212
3213 * config/mips/mips.md (*zero_extend<mode>_trunchi,
3214 *zero_extend<mode>_truncqi): Merge these into ...
3215 (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
3216 Name the pattern following this as *zero_extendhi_truncqi.
3217
e2d87023
BL
32182009-05-16 Brad Lucier <lucier@math.purdue.edu>
3219
3220 PR middle-end/39301
3221 * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
3222 * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
3223 (output_info): Make field HOST_WIDEST_INT.
3224 (print_statistics): Use HOST_WIDEST_INT_PRINT.
3225 (dump_bitmat_statistics): Same.
3226
428ddbf0
FXC
32272009-05-16 Francois-Xavier Coudert <fxcoudert@gmail.com>
3228
3229 * config.gcc (use_gcc_stdint): Set to wrap.
3230 * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
3231 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
3232 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
3233 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
3234 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
3235 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
3236 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
3237 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
3238
1ab8a8c2
JM
32392009-05-16 Joseph Myers <joseph@codesourcery.com>
3240
3241 * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
3242 tune_64.
3243 * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
3244 Move definitions earlier.
3245 (OPT_ARCH64, OPT_ARCH32): Define.
3246 (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
3247 and tune_64.
3248
70544f44
RE
32492009-05-16 Richard Earnshaw <rearnsha@arm.com>
3250
3251 PR target/40153
3252 * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
3253 implies.
3254
6241ded1
RE
32552009-05-16 Richard Earnshaw <rearnsha@arm.com>
3256
3257 * arm.md (movdi2): Copy non-reg values to DImode registers.
3258
a99c6711
JJ
32592009-05-16 Jakub Jelinek <jakub@redhat.com>
3260
40a8f07a
JJ
3261 PR target/39942
3262 * final.c (label_to_max_skip): New function.
3263 (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
3264 CODE_LABEL_NUMBER <= max_labelno.
3265 * output.h (label_to_max_skip): New prototype.
3266 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
3267 (ix86_avoid_jump_mispredicts): ... this. Don't define if
3268 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined. Update comment.
3269 Handle CODE_LABELs with >= 16 byte alignment or with
3270 max_skip == (1 << align) - 1.
3271 (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
3272 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
3273
a99c6711
JJ
3274 PR target/39942
3275 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
3276 .p2align 3 if MAX_SKIP is smaller than 7.
3277 * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
3278
7e5487a2
ILT
32792009-05-15 Ian Lance Taylor <iant@google.com>
3280
3281 * alias.c (struct alias_set_entry_d): Rename from struct
3282 alias_set_entry. Change all uses.
3283 * except.c (struct call_site_record_d): Rename from struct
3284 call_site_record. Change all uses.
3285 * except.h (struct eh_region_d): Rename from struct eh_region.
3286 Change all uses.
3287 * gcse.c (struct hash_table_d): Rename from struct hash_table.
3288 Change all uses.
3289 * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
3290 ivtype_map_elt. Change all uses.
3291 (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
3292 Change all uses.
3293 (struct ifsese_d): Rename fromstruct ifsese. Change all uses.
3294 * graphite.h (struct name_tree_d): Rename from struct name_tree.
3295 Change all uses.
3296 (struct sese_d): Rename from struct sese. Change all uses.
782dc37a
UB
3297 * omega.h (struct eqn_d): Rename from struct eqn. Change all uses.
3298 (struct omega_pb_d): Rename from struct omega_pb. Change all uses.
7e5487a2
ILT
3299 * optabs.h (struct optab_d): Rename from struct optab. Change all
3300 uses.
3301 (struct convert_optab_d): Rename from struct convert_optab.
3302 Change all uses.
3303 * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
3304 ipa_opt_pass. Change all uses.
3305 * tree-predcom.c (struct dref_d): Rename from struct dref. Change
3306 all uses.
3307
3308 * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
3309 defined as a typedef.
3310 (grokdeclarator): If -Wc++-compat, warn if a typedef is already
3311 defined as a tag.
3312
a243fb4a
MLI
33132009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
3314
3315 PR 16302
3316 * fold-const.c (make_range,build_range_check,merge_ranges): Move
3317 declaration to...
3318 (merge_ranges): Returns bool.
3319 * tree.h (make_range): .. to here.
3320 (build_range_check): Likewise.
3321 (merge_ranges): Likewise. Renamed from merge_ranges.
3322 * c-typeck.c (parser_build_binary_op): Update calls to
3323 warn_logical_operator.
3324 * c-common.c (warn_logical_operator): Add new warning.
3325 * c-common.h (warn_logical_operator): Update declaration.
3326
1b53c5f3
MLI
33272009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
3328
782dc37a 3329 * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
1b53c5f3 3330
c128599a
KG
33312009-05-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3332
f9bab007
KG
3333 * doc/install.texi: Document MPC requirements, flags etc.
3334
c128599a
KG
3335 * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
3336 (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
3337 Evaluate constant arguments.
3338 (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
3339 (fold_builtin_1): Likewise, also evaluate constant arguments.
3340 Remove superfluous break.
3341 (do_mpc_ckconv): New.
3342 * real.h: Include mpc.h.
3343 * toplev.c (print_version): Output MPC version info if available.
3344
d33e4b70
SL
33452009-05-15 Sandra Loosemore <sandra@codesourcery.com>
3346
782dc37a 3347 * fold-const.c (fold_convert_const_real_from_real): Check for overflow.
d33e4b70 3348
a02ab464
L
33492009-05-15 H.J. Lu <hongjiu.lu@intel.com>
3350
3351 * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
3352 only once.
3353
796bda22
JH
33542009-05-15 Jan Hubicka <jh@suse.cz>
3355
3356 * doc/invoke.texi (max-early-inliner-iterations): New flag.
3357 * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
3358 (try_inline): Fix return value.
3359 (cgraph_decide_inlining_incrementally): Honor new value.
3360 (cgraph_early_inlining): Handle indirect inlining.
3361 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
3362
d88e5c37
JH
33632009-05-15 Jan Hubicka <jh@suse.cz>
3364
3365 * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
3366 * cgraphunit.c (cgraph_finalize_function): Set it.
3367 (cgraph_expand_function): Use it.
3368
ae63687c
SL
33692009-05-15 Sandra Loosemore <sandra@codesourcery.com>
3370
3371 * real.c (encode_ieee_half): Define.
3372 (decode_ieee_half): Define.
3373 (ieee_half_format): Define.
3374 (arm_half_format): Define.
3375 * real.h (ieee_half_format): Declare.
3376 (arm_half_format): Declare.
3377
1bd74ad9
SL
33782009-05-15 Sandra Loosemore <sandra@codesourcery.com>
3379
3380 * optabs.c (prepare_float_lib_cmp): Test that the comparison,
3381 swapped, and reversed optabs exist before trying to use them.
3382
dc34db56
PB
33832009-05-15 Paul Brook <paul@codesourcery.com>
3384 Sandra Loosemore <sandra@codesourcery.com>
3385
dc34db56
PB
3386 * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
3387 loads. Allow PRE_DEC.
3388 (output_move_neon): Handle PRE_DEC.
3389 (arm_print_operand): Add 'A' for neon structure loads.
3390 * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
3391 * config/arm/neon.md (neon_mov): Update comment.
3392 * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
3393 calls.
3394 (Um): New constraint.
3395
1d405d7b
JH
33962009-05-15 Jan Hubicka <jh@suse.cz>
3397
3398 Revert the following patch until testsuite fallout is fixed:
3399 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
3400 * cgraph.h (struct inline_summary): New filed self_wize,
3401 size_inlining_benefit, self_time and time_inlining_benefit.
3402 (struct cgraph_global_info): Replace insns by time ans size fields.
3403 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
3404 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
3405 (ipcp_update_callgraph): Do not touch function bodies.
3406 * ipa-inline.c: Include except.h
782dc37a 3407 (MAX_TIME): New constant.
1d405d7b
JH
3408 (overall_insns): Remove
3409 (overall_size, max_benefit): New static variables.
3410 (cgraph_estimate_time_after_inlining): New function.
3411 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
3412 (cgraph_clone_inlined_nodes): Update size.
3413 (cgraph_mark_inline_edge): Update size.
3414 (cgraph_estimate_growth): Use size info.
3415 (cgraph_check_inline_limits): Check size.
3416 (cgraph_default_inline_p): Likewise.
3417 (cgraph_edge_badness): Compute badness based on benefit and size cost.
3418 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
3419 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
3420 and times.
1d405d7b 3421 (cgraph_decide_inlining): Likewise.
00c5fa1b
EB
3422 (cgraph_decide_inlining_incrementally): Likewise; honor
3423 PARAM_EARLY_INLINING_INSNS.
1d405d7b
JH
3424 (likely_eliminated_by_inlining_p): New predicate.
3425 (estimate_function_body_sizes): New function.
3426 (compute_inline_parameters): Use it.
3427 * except.c (must_not_throw_labels): New function.
3428 * except.h (must_not_throw_labels): Declare.
3429 * tree-inline.c (init_inline_once): Kill inlining_weigths
3430 * tree-ssa-structalias.c: Avoid uninitialized warning.
3431 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
3432 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
3433 (PARAM_INLINE_CALL_COST): Remove.
3434 (PARAM_EARLY_INLINING_INSNS): New.
3435
7ffa47ca
RG
34362009-05-15 Richard Guenther <rguenther@suse.de>
3437
3438 * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
3439 not TODO_update_ssa.
3440
828552ed
RG
34412009-05-15 Richard Guenther <rguenther@suse.de>
3442
3443 PR tree-optimization/39999
3444 * gimple.h (gimple_expr_type): Use the expression type looking
3445 through useless conversions.
3446 * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
3447 (vn_nary_op_insert_stmt): Likewise.
3448 (simplify_binary_expression): Likewise.
3449
248fc9f3
RG
34502009-05-15 Richard Guenther <rguenther@suse.de>
3451
3452 * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
3453 New options, enabled by default.
3454 * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
3455 Document.
3456 * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
3457 * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
3458 * tree-ssa-structalias.c (gate_tree_pta): New function.
3459 (pass_build_alias): Use it.
3460
16b29cc4
JM
34612009-05-15 Joseph Myers <joseph@codesourcery.com>
3462
3463 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
3464 recurse on an invariant address if a conversion from a pointer
3465 type to a wider integer type is involved.
3466
125cae84
JH
34672009-05-15 Jan Hubicka <jh@suse.cz>
3468
3469 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
3470 * cgraph.h (struct inline_summary): New filed self_wize,
3471 size_inlining_benefit, self_time and time_inlining_benefit.
3472 (struct cgraph_global_info): Replace insns by time ans size fields.
3473 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
3474 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
3475 (ipcp_update_callgraph): Do not touch function bodies.
3476 * ipa-inline.c: Include except.h
782dc37a 3477 (MAX_TIME): New constant.
125cae84
JH
3478 (overall_insns): Remove
3479 (overall_size, max_benefit): New static variables.
3480 (cgraph_estimate_time_after_inlining): New function.
3481 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
3482 (cgraph_clone_inlined_nodes): Update size.
3483 (cgraph_mark_inline_edge): Update size.
3484 (cgraph_estimate_growth): Use size info.
3485 (cgraph_check_inline_limits): Check size.
3486 (cgraph_default_inline_p): Likewise.
3487 (cgraph_edge_badness): Compute badness based on benefit and size cost.
3488 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
3489 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
3490 and times.
125cae84 3491 (cgraph_decide_inlining): Likewise.
00c5fa1b
EB
3492 (cgraph_decide_inlining_incrementally): Likewise; honor
3493 PARAM_EARLY_INLINING_INSNS.
125cae84
JH
3494 (likely_eliminated_by_inlining_p): New predicate.
3495 (estimate_function_body_sizes): New function.
3496 (compute_inline_parameters): Use it.
3497 * except.c (must_not_throw_labels): New function.
3498 * except.h (must_not_throw_labels): Declare.
3499 * tree-inline.c (init_inline_once): Kill inlining_weigths
3500 * tree-ssa-structalias.c: Avoid uninitialized warning.
3501 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
3502 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
3503 (PARAM_INLINE_CALL_COST): Remove.
3504 (PARAM_EARLY_INLINING_INSNS): New.
3505 doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
3506 (inline-call-cost): Remove.
3507 (early-inlining-insns): New.
3508
84fb43a1
EB
35092009-05-15 Eric Botcazou <ebotcazou@adacore.com>
3510
3511 * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters. Use them
3512 for bounds.
3513 (print_int_cst_bounds_in_octal_p): Likewise.
3514 (dbxout_type): Adjust calls to above functions. Be prepared to deal
3515 with subtypes.
3516 * dwarf2out.c (base_type_die): Likewise.
3517 (is_subrange_type): Delete.
3518 (subrange_type_die): Add LOW and HIGH parameters. Use them for bounds.
3519 (modified_type_die): Call subrange_type_for_debug_p on subtypes.
f3afc8a7
UB
3520 * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it
3521 if the destination type is boolean.
84fb43a1
EB
3522 (build_range_check): Do not special-case subtypes.
3523 (fold_sign_changed_comparison): Likewise.
3524 (fold_unary): Likewise.
3525 * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
3526 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
3527 * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
f3afc8a7
UB
3528 * tree.c (subrange_type_for_debug_p): New predicate based on the
3529 former is_subrange_type.
84fb43a1
EB
3530 * tree.h (subrange_type_for_debug_p): Declare.
3531 * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
3532 (convert_affine_scev): Remove call to above function.
3533 (chrec_convert_aggressive): Likewise.
3534 * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
3535 false for conversions involving subtypes.
3536 * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
3537 (vrp_val_min): Likewise.
3538 (needs_overflow_infinity): Likewise.
3539 (extract_range_from_unary_expr): Likewise.
3540
331d9186
PB
35412009-05-15 Paolo Bonzini <bonzini@gnu.org>
3542
e9351712
L
3543 * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
3544 * config/frv/frv.c: Likewise.
3545 * config/s390/s390.c: Likewise.
3546 * config/sparc/sparc.h: Likewise.
3547 * config/i386/i386.h: Likewise.
3548 * config/i386/i386.c: Likewise.
3549 * config/crx/crx.c: Likewise.
3550 * config/m68hc11/m68hc11.h: Likewise.
3551 * config/iq2000/iq2000.c: Likewise.
3552 * config/mn10300/mn10300.h: Likewise.
3553 * config/mn10300/mn10300.c: Likewise.
3554 * config/m68k/m68k.c: Likewise.
3555 * config/rs6000/rs6000.c: Likewise.
3556 * config/rs6000/xcoff.h: Likewise.
3557 * config/rs6000/linux64.h: Likewise.
3558 * config/rs6000/sysv4.h: Likewise.
3559 * config/score/score3.c: Likewise.
3560 * config/score/score7.c: Likewise.
3561 * config/score/score.c: Likewise.
3562 * config/arm/arm.md: Likewise.
3563 * config/mips/mips.c: Likewise.
3564 * config/mips/mips.md: Likewise.
3565 * config/bfin/bfin.h: Likewise.
3566 * config/pa/pa.c: Likewise.
3567 * config/pa/constraints.md: Likewise.
3568
3569 * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
3570 * config/pdp11/pdp11.c (legitimate_address_p): Delete.
3571 * config/pdp11/pdp11.h: Use memory_address_p instead.
331d9186 3572
09639a83
ILT
35732009-05-14 Ian Lance Taylor <iant@google.com>
3574
3575 * passes.c (finish_optimization_passes): Change i to int.
3576 * plugin.c (plugins_active_p): Change event to int.
3577 (dump_active_plugins): Likewise.
3578 * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
3579 Add cast.
3580 * tree.c (tree_range_check_failed): Change c to unsigned int.
3581 (omp_clause_range_check_failed): Likewise.
3582 (build_common_builtin_nodes): Change mode to int. Add cast.
3583 * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
3584 (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
3585
3586 * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
3587 ++ or -- with a variable of enum type.
3588
c04a56bf
SB
35892009-05-14 Steven Bosscher <steven@gcc.gnu.org>
3590
3591 PR driver/40144
3592 * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
3593
237ee620
SB
35942009-05-14 Steven Bosscher <steven@gcc.gnu.org>
3595
3596 * store-motion.c: Do not include params.h
3597 * Makefile.in: Fix dependencies for various files.
3598
1154c4fa
SB
35992009-05-14 Steven Bosscher <steven@gcc.gnu.org>
3600
3601 * auto-inc-dec.c: Fix pass description, remove apparent
3602 accidental duplication.
3603
61c27353
L
36042009-05-14 H.J. Lu <hongjiu.lu@intel.com>
3605
3606 PR middle-end/40147
3607 * ipa-utils.h (memory_identifier_string): Moved to ...
3608 * tree.h (memory_identifier_string): Here. Add GTY(()).
3609
c6c3dba9
PB
36102009-05-14 Paolo Bonzini <bonzini@gnu.org>
3611
3612 * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
3613 in the former documentation of...
3614 (GO_IF_LEGITIMATE_ADDRESS): ... this.
3615 * ira-conflicts.c (get_dup_num): Use address_operand.
3616 * targhooks.c (default_legitimate_address_p): New.
3617 * targhooks.h (default_legitimate_address_p): New.
3618 * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
3619 Call hook.
3620 * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
3621 * target.h (struct target): Add legitimate_address_p.
3622 * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
3623 (TARGET_INITIALIZER): Include it.
3624
3625 * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3626 * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
3627 * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
3628 (TARGET_LEGITIMATE_ADDRESS_P): New.
3629
3630 * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3631 (REG_OK_STRICT_P): Delete.
3632 * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
3633 (frv_legitimate_address_p_1): ... this.
3634 * config/frv/frv.c (frv_legitimate_address_p): Forward to...
3635 (frv_legitimate_address_p_1): ... the renamed old
3636 frv_legitimate_address_p.
3637 * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
3638 (TARGET_LEGITIMATE_ADDRESS_P): New.
3639
3640 * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3641 * config/s390/s390-protos.h (legitimate_address_p): Remove.
3642 * config/s390/s390.c (legitimate_address_p): Rename to...
3643 (s390_legitimate_address_p): ... this, make static.
3644 (legitimize_address): Adjust call.
3645 (TARGET_LEGITIMATE_ADDRESS_P): New.
3646 * config/s390/constraints.md ("e"): Call strict_memory_address_p.
3647
3648 * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3649 * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
3650 * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
3651 (TARGET_LEGITIMATE_ADDRESS_P): New.
3652
3653 * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3654 * config/spu/spu-protos.h (spu_legitimate_address): Remove.
3655 * config/spu/spu.c (spu_legitimate_address): Rename to...
3656 (spu_legitimate_address_p): ... this, make static.
3657 (TARGET_LEGITIMATE_ADDRESS_P): New.
3658
3659 * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3660 * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
3661 * config/sparc/sparc.c (legitimate_address_p): Rename to...
3662 (sparc_legitimate_address_p): ... this, make static and return bool.
3663 (legitimize_address): Adjust call.
3664 (TARGET_LEGITIMATE_ADDRESS_P): New.
3665
3666 * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3667 * config/i386/i386-protos.h (legitimate_address_p): Remove.
3668 * config/i386/i386.c (legitimate_address_p): Rename to...
3669 (ix86_legitimate_address_p): ... this, make static.
3670 (constant_address_p): Move after it, adjust call.
3671 (TARGET_LEGITIMATE_ADDRESS_P): New.
3672
3673 * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3674 * config/avr/avr-protos.h (legitimate_address_p): Remove.
3675 * config/avr/avr.c (legitimate_address_p): Rename to...
3676 (avr_legitimate_address_p): ... this, make static.
3677 (legitimize_address): Adjust call.
3678 (TARGET_LEGITIMATE_ADDRESS_P): New.
3679
3680 * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3681 * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
3682 * config/crx/crx.c (crx_legitimate_address_p): Make static.
3683 (TARGET_LEGITIMATE_ADDRESS_P): New.
3684
3685 * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3686 * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
3687 * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
3688 (TARGET_LEGITIMATE_ADDRESS_P): New.
3689
3690 * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3691 * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
3692 Remove.
3693 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
3694 Make static.
3695 (TARGET_LEGITIMATE_ADDRESS_P): New.
3696
3697 * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3698 * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
3699 Remove.
3700 * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
3701 Rename to...
3702 (m68hc11_legitimate_address_p): ... this, make static.
3703 (go_if_legitimate_address_internal): Rename to...
3704 (m68hc11_legitimate_address_p_1): ... this.
3705 (legitimize_address): Adjust call.
3706 (TARGET_LEGITIMATE_ADDRESS_P): New.
3707
3708 * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
782dc37a
UB
3709 * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
3710 * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
c6c3dba9
PB
3711 (TARGET_LEGITIMATE_ADDRESS_P): New.
3712
3713 * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3714 * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
3715 * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
3716 (mn10300_legitimate_address_p): ... this, make static.
3717 (TARGET_LEGITIMATE_ADDRESS_P): New.
3718
3719 * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3720 * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
3721 * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
3722 (TARGET_LEGITIMATE_ADDRESS_P): New.
3723
3724 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3725 (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
3726 (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
3727 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3728 * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
3729 * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
3730 (rs6000_legitimate_address_p): ... this, make static.
3731 (TARGET_LEGITIMATE_ADDRESS_P): New.
3732 (REG_MODE_OK_FOR_BASE_P): Delete.
3733 (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
3734
3735 * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3736 * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
3737 Delete.
3738 * config/picochip/picochip.c (picochip_legitimate_address_p): Make
3739 static, adjust types.
3740 (TARGET_LEGITIMATE_ADDRESS_P): New.
3741
3742 * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3743 * config/score/score.c (score_address_p): Rename to...
3744 (score_legitimate_address_p): ... this.
3745 (TARGET_LEGITIMATE_ADDRESS_P): New.
3746 * config/score/score3.c (score3_address_p): Rename to...
3747 (score3_legitimate_address_p): ... this.
3748 * config/score/score7.c (score7_address_p): Rename to...
3749 (score7_legitimate_address_p): ... this.
3750
3751 * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
3752 THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
3753 GO_IF_LEGITIMATE_ADDRESS): Delete.
3754 * config/arm/arm-protos.h (thumb1_legitimate_address_p,
3755 thumb2_legitimate_address_p): Delete.
3756 (arm_legitimate_address_p): Rename to...
3757 (arm_legitimate_address_outer_p): ... this.
3758 * config/arm/constraints.md ("Uq"): Adjust call.
3759 * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
f3afc8a7
UB
3760 * config/arm/arm.c (arm_legitimate_address_p): New, rename old one
3761 to...
c6c3dba9 3762 (arm_legitimate_address_outer_p): ... this.
f3afc8a7
UB
3763 (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make
3764 static.
c6c3dba9
PB
3765 (TARGET_LEGITIMATE_ADDRESS_P): New.
3766
3767 * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3768 * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
3769 * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
3770 (TARGET_LEGITIMATE_ADDRESS_P): New.
3771
3772 * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3773 * config/vax/vax-protos.h (legitimate_address_p): Remove.
3774 * config/vax/vax.c (legitimate_address_p): Rename to...
3775 (vax_legitimate_address_p): ... this, make static.
3776 (TARGET_LEGITIMATE_ADDRESS_P): New.
3777
3778 * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3779 * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
3780 * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
3781 (TARGET_LEGITIMATE_ADDRESS_P): New.
3782
3783 * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3784 * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
3785 * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
3786 (mmix_legitimate_address_p): ... this, make static.
3787 (TARGET_LEGITIMATE_ADDRESS_P): New.
3788
3789 * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3790 * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
3791 * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
3792 (TARGET_LEGITIMATE_ADDRESS_P): New.
3793
3bd0d9c8
PB
37942009-05-14 Paolo Bonzini <bonzini@gnu.org>
3795
3796 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
3797 of MODE_COMPLEX_INT.
3798
fe049033
RO
37992009-05-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3800
3801 * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
3802 LCT_NORMAL in function call.
3803 * mips-tdump.c (print_file_desc): Add cast to enum type.
3804 * mips-tfile.c (add_ext_symbol): Add casts to enum types.
3805 (mark_stabs): Add casts to enum types.
3806 (parse_stabs_common): Add casts to enum types.
16f7ad42 3807
b0907a6c
AN
38082009-05-13 Adam Nemet <anemet@caviumnetworks.com>
3809
3810 * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
3811 Check for invalid values of LETTER.
3812
d1c8e08a
TG
38132009-05-13 Taras Glek <tglek@mozilla.com>
3814
f3afc8a7
UB
3815 * attribs.c (register_attribute): moved out attribute registration
3816 into register_attribute.
3817 * doc/plugins.texi: Documented register_attribute and
3818 PLUGIN_ATTRIBUTES.
16f7ad42
TG
3819 * gcc-plugin.h: Added forward decl for register_attribute.
3820 * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
3821 * plugin.c (register_callback, invoke_plugin_callbacks): Added
3822 PLUGIN_ATTRIBUTES boilerplate.
d1c8e08a 3823
4ed7f970
DK
38242009-05-14 Dave Korn <dave.korn.cygwin@gmail.com>
3825
3826 * config/i386/msformat-c.c (ms_printf_length_specs): Use enumeration
3827 values even in sentinel and empty entries.
3828 (ms_printf_flag_specs): Likewise.
3829 (ms_scanf_flag_specs): Likewise.
3830 (ms_strftime_flag_specs): Likewise.
3831 (ms_print_char_table): Likewise.
3832 (ms_scan_char_table): Likewise.
3833 (ms_time_char_table): Likewise.
3834
3d8fa148
DK
38352009-05-13 Doug Kwan <dougkwan@google.com>
3836
3837 * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
3838
f06257d3
AN
38392009-05-13 Adam Nemet <anemet@caviumnetworks.com>
3840
3841 * config/mips/mips.md (store): Add attributes for QI and HI.
3842 Update comment.
3843 (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
3844 (truncdi<mode>2): ... this new pattern.
3845
fb201767
BH
38462009-05-13 Brad Hards <bradh@kde.org>
3847
3848 * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
3849
c7bda60e 38502009-05-14 Jakub Jelinek <jakub@redhat.com>
efc3527a
BE
3851 Ben Elliston <bje@au.ibm.com>
3852
3853 PR middle-end/40035
3854 * dse.c (check_mem_read_rtx): Guard against width == -1.
3855
ce985b43
MM
38562009-05-13 Michael Matz <matz@suse.de>
3857
3858 PR middle-end/39976
3859 * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
3860 (trivially_conflicts_p): New function.
3861 (insert_backedge_copies): Use it.
3862
7de1d221
JJ
38632009-05-13 Janis Johnson <janis187@us.ibm.com>
3864
3865 * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
3866 (handle_stdc_pragma): Use new enum constant names.
3867 (handle_pragma_float_const_decimal64): Ditto.
3868
bfefafc6
ILT
38692009-05-13 Ian Lance Taylor <iant@google.com>
3870
3871 * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
3872 tree.def.
3873
286c4fcb
NS
38742009-05-13 Nathan Sidwell <nathan@codesourcery.com>
3875
3876 * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
3877 * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
3878 multilibs.
3879 * config/m68k/m68k.h (FL_UCLINUX): Define.
3880
ebaa6ea7
JH
38812009-05-13 Jan Hubicka <jh@suse.cz>
3882
3883 * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
3884
2b703e1a
KK
38852009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
3886
3887 * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
3888 unless -fschedule-insns is specified.
3889
c3537723
KK
38902009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
3891
3892 PR target/39561
3893 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
3894 TARGET_EXPAND_CBRANCHDI4.
3895 * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
3896 * config/sh/sh.opt (mexpand-cbranchdi): Remove.
3897 (cmpeqdi): Fix comment.
3898
cdeed45a
KK
38992009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
3900
3901 * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
3902 (sh_legitimate_address_p): Likewise.
3903 * config/sh/sh.c (sh_legitimate_index_p): New.
3904 (sh_legitimate_address_p): Likewise.
3905 * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
3906 (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
3907 (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
3908 (MAYBE_BASE_REGISTER_RTX_P): New macro.
3909 (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
3910 (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
3911 (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
3912 (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
3913 (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
3914
02f0b13a
JH
39152009-05-12 Jan Hubicka <jh@suse.cz>
3916
3917 * tree-inline.c (estimate_operator_cost): Add operands;
3918 when division happens by constant, it is cheap.
3919 (estimate_num_insns): Loads and stores are not having cost of 0;
3920 EH magic stuff is cheap; when computing runtime cost of switch,
3921 use log2 base of amount of its cases; builtin_expect has cost of 0;
3922 compute cost for moving return value of call.
3923 (init_inline_once): Initialize time_based flags.
3924 * tree-inline.h (eni_weights_d): Add time_based flag.
3925
ecb7f6de
PB
39262009-05-12 Paolo Bonzini <bonzini@gnu.org>
3927
3928 * df-core.c: Update head documentation.
3929
c24151ce
MM
39302009-05-12 Michael Meissner <meissner@linux.vnet.ibm.com>
3931
3932 PR bootstrap/40118
3933 * rs6000.c (rs6000_generate_compare): Use op1b instead of
3934 shadowing exisiting variable op1.
3935
fbdf817d
UB
39362009-05-12 Uros Bizjak <ubizjak@gmail.com>
3937
704bf7c8 3938 PR target/37179
fbdf817d
UB
3939 * config/i386/driver-i386.c (processor_signatures): New enum.
3940 (SIG_GEODE): Move from vendor_signatures to processor_signatures.
3941 (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
3942 processor signature to detect geode processor.
3943
5e8d1826
PB
39442009-05-12 Paolo Bonzini <bonzini@gnu.org>
3945
3946 Revert:
3947
3948 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
3949
3950 * optabs.c (prepare_cmp_insn): Temporarily disable test that
3951 causes spurious differences between trunk and cond-optab branch.
3952
f90b7a5a
PB
39532009-05-12 Paolo Bonzini <bonzini@gnu.org>
3954
fbdf817d
UB
3955 * dojump.c (compare_from_rtx): Delete.
3956 * expmed.c (emit_store_flag): Only try cstore_optab. Canonicalize
3957 any MODE_CC mode to the cstorecc4 pattern. Use prepare_operand, fail
f90b7a5a
PB
3958 if the comparison does not satisfy the predicate; test predicates for
3959 operands 2 and 3 of a cstore pattern. Don't try cstore optab
3960 further if one existing pattern fails.
fbdf817d 3961 * expr.h (compare_from_rtx): Delete.
f90b7a5a 3962 (prepare_operand): Declare it.
fbdf817d 3963 * optabs.c: Change "lib call" to "libcall" throughout.
f90b7a5a 3964 (bcc_gen_fctn, setcc_gen_code, trap_rtx,
fbdf817d
UB
3965 HAVE_conditional_trap, emit_cmp_insn): Delete.
3966 (can_compare_p): Delete cmp_optab case.
f90b7a5a 3967 (prepare_float_lib_cmp): Return an rtx and a machine mode.
fbdf817d
UB
3968 Accept other parameters by value.
3969 (prepare_operand): Make non-static.
3970 (prepare_cmp_insn): Return an rtx and a machine mode. Accept
3971 other parameters by value. Try to widen operands here based on
3972 an optab_methods argument and looking at cbranch_optab.
3973 (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
3974 loop. Use cbranch_optab directly.
3975 (emit_cmp_and_jump_insns): Fix comment. Adjust call to
3976 prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
3977 assertion.
3978 (emit_conditional_move, emit_conditional_add): Inline what's needed
3979 of compare_from_rtx, using new prepare_cmp_insn for the rest.
3980 (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
3981 with COMPARE. Move cmov_optab and cstore_optab above
3982 with cbranch_optab, move cmp_optab down with ucmp_optab,
3983 remove tst_otpab. Do not initialize trap_rtx.
3984 (gen_cond_trap): Do it here. Use ctrap_optab. Test predicate
f90b7a5a
PB
3985 for trap code. Do not check HAVE_conditional_trap. Use
3986 prepare_cmp_insn. Accept no predicate for operand 3.
fbdf817d
UB
3987 * optabs.h (OTI_cmp): Mark as used only for libcalls.
3988 (OTI_ctrap, ctrap_optab): New.
3989 (tst_optab): Delete.
3990 (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
3991 * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
3992 with lookup of ctrap_optab.
f3afc8a7
UB
3993 * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn, setcc_gen_code):
3994 Delete.
fbdf817d
UB
3995 (ctrap_optab): New.
3996
3997 * combine.c (combine_simplify_rtx, simplify_set): Do not
3998 special case comparing against zero for cc0 machines.
f90b7a5a
PB
3999 * simplify-rtx.c (simplify_binary_operation_1): Never remove
4000 COMPARE on cc0 machines.
4001 (simplify_relational_operation): Return a new expression when
4002 a COMPARE could be removed.
fbdf817d
UB
4003 * final.c (final_scan_insn): Compare cc_status values
4004 against LHS of a (compare FOO (const_int 0)) cc0 source.
4005 Also check if cc_status.value is the full compare.
f90b7a5a 4006
fbdf817d
UB
4007 * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
4008 (cstoreMM4): Document.
f90b7a5a 4009 (conditional_trap): Document ctrapMM4 instead.
fbdf817d 4010 (sync_compare_and_swapMM): Refer to cbranchcc4.
f90b7a5a
PB
4011 (Dependent Patterns): Eliminate obsolete information referring to
4012 the old jump optimization phase.
fbdf817d 4013 (Canonicalization): Include cbranchcc4 case, omit canonicalization
f90b7a5a
PB
4014 of compares with 0 on cc0 machines.
4015 (Jump Patterns): Refer to MODE_CC jump patterns preferably,
4016 avoiding references to cc0. Remove text about storing operands
4017 in cmpMM.
4018 * doc/tm.texi (Condition Codes): Include blurb on different
4019 condition code representations, separate into subsections for
4020 CC0, MODE_CC and conditional execution.
4021
fbdf817d
UB
4022 * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
4023 alpha_emit_setcc): Accept operands and a machine mode.
4024 * config/alpha/alpha.c (alpha_emit_conditional_branch):
4025 Get code/op0/op1 from operands, use machine mode argument
4026 instead of alpha_compare.fp_p. Emit the branch here.
4027 (alpha_emit_setcc): Likewise, and return boolean.
4028 (alpha_emit_conditional_move): Likewise. Assert that
4029 cmp_op_mode == cmp_mode, and simplify accordingly.
4030 * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
4031 * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
4032 (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
4033 Delete.
4034 (stack probe test): Use cbranchdi4.
4035 * config/alpha/predicates.md (alpha_cbranch_operator): New.
4036
4037 * config/arc/arc.c (gen_compare_reg): Do not emit cmp.
4038 * config/arc/arc.h (movsicc, movsfcc): Use it.
4039 (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
4040 (cbranchsi4, cstoresi4): New.
4041 (cmpsi, bCC and sCC expanders): Remove.
4042
4043 * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
4044 * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
4045 * config/arm/predicates.md (arm_comparison_operator): Only include
4046 floating-point operators if there is a hardware floating-point unit.
4047 * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
4048 deferring to cbranch_cc and cstore_cc respectively.
4049 (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
4050 cbranch_cc, cstore_cc): New.
4051 (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
f90b7a5a 4052 arm_compare_op1.
fbdf817d
UB
4053 (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
4054
4055 * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
4056 * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
4057 as an argument.
4058 (adjust_insn_length): Adjust calls.
4059 (avr_reorg): Handle (compare (foo) (const_int 0)).
4060 * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
4061 (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
4062 (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
4063 (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
4064 (bCC): Remove.
4065 (cbranchqi4, cbranchhi4, cbranchsi4): New.
f90b7a5a
PB
4066 (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
4067
fbdf817d
UB
4068 * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
4069 (cbranchsi4, cstorebi4, cstoresi4): New.
f90b7a5a 4070 (movbisi): This insn is duplicate, split it to zero_extend.
fbdf817d
UB
4071 * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
4072 (bfin_gen_compare): Do not use them. Emit VOIDmode SET, not BImode.
4073 (bfin_optimize_loop): Use cbranch expander.
4074 * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
4075 * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
4076 (bfin_bimode_comparison_operator): ... this.
4077 (bfin_direct_comparison_operator): New.
f90b7a5a 4078
fbdf817d
UB
4079 * config/cris/cris.c (cris_normal_notice_update_cc): Look
4080 inside (compare FOO (const_int 0)).
4081 (cris_rtx_costs): Handle ZERO_EXTRACT.
4082 * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
4083 (*tstdi_non_v32): Fold in *cmpdi_non_v32.
4084 (*tstdi_v32): Delete.
4085 (*cmpdi_non_v32): Add M alternative for operand 1.
4086 (cmpsi, cmp<mode>): Make private.
4087 (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
4088 with COMPARE.
4089 (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
4090
4091 * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
4092 (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
4093 (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
f90b7a5a
PB
4094 (cc_reg_operand): New.
4095 (any_cond): Delete.
fbdf817d
UB
4096 * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
4097 crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
4098 * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
4099 * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
4100 crx_expand_scond): Delete.
4101
4102 * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
4103 (cbranchsi4): New.
4104 * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
4105 * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
4106
4107 * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
4108 cstoresi4, cstoresf4, cstoredf4): New.
4109 (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
4110 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
4111 Receive the entire operands array.
4112 * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
4113 * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
4114 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
4115 Get test/op0/op1 from the operands array.
4116 (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
4117
4118 * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
4119 (h8300_expand_store): New.
4120 * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
4121 (const_int 0)).
4122 (h8300_expand_branch): Emit compare here. Adjust for new arguments.
4123 (h8300_expand_store): New.
4124 * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
4125 or do not try to produce (set (cc0) REG).
4126 (peepholes): Wrap arguments with COMPARE. Add a peephole to
4127 change a compare into a move to a scratch register. Disable some
4128 peepholes when comparing with zero.
4129 (tstsi, tsthi, tstsi, cmpqi): Make private.
4130 (cmphi): Delete.
4131 (bCC, sCC): Delete.
4132 (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
4133 cstoresi4): New.
f90b7a5a
PB
4134
4135 * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
4136 ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
4137 (ix86_emit_i387_log1p): Use gen_cbranchxf4.
4138 (ix86_emit_i387_log1p): Use cbranchxf2.
4139 (ix86_expand_setcc): Return void.
4140 * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
4141 * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
4142 cmp<MODEF>, cmpcc): Remove.
fbdf817d
UB
4143 (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
4144 cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
4145 cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
f90b7a5a
PB
4146 (sCC and bCC expanders): Remove.
4147 (stack_protect_test): Use cbranchcc4.
4148
fbdf817d
UB
4149 * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
4150 Delete.
4151 (ia64_expand_compare): Accept three rtx by reference and return void.
4152 * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
4153 (ia64_expand_compare): Replace op0/op1 with *op0/*op1. Get code
4154 from *expr. Update *expr with the BImode comparison to do.
4155 * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
4156 cmptf, bCC, sCC, conditional_trap): Delete.
4157 (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4,
4158 cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
4159 cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
4160 ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
4161 * config/ia64/predicates.md (ia64_cbranch_operator): New.
4162
4163 * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
4164 type of last argument.
4165 * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
4166 (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
4167 use machine mode argument instead of branch_type. Remove dead
4168 code for floating-point comparisons.
4169 * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
4170 * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
4171 Remove.
4172 (cbranchsi4, cstoresi4): New.
4173 * config/iq2000/predicates.md (reg_or_const_operand): New.
4174
4175 * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
4176 * config/m32c/m32c.md (any_cond, gl_cond): Delete.
4177 (b<code>_op): Rewrite to...
4178 (bcc_op): ... this, using match_operator.
4179 (s<code>_op): Rewrite to...
4180 (scc_op): ... this, using match_operator.
4181 (s<code>_24_op): Rewrite to...
4182 (scc_op_24): ... this, using match_operator.
4183 (s<code>_<mode>): Rewrite to...
4184 (cstore<mode>4): ... this, using match_operator.
4185 (s<code>_<mode>_24): Rewrite to...
4186 (cstore<mode>4_24): ... this, using match_operator.
4187 * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
4188 m32c_unpend_compare, m32c_expand_scc): Delete.
4189 * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
4190 m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
4191 (m32c_expand_movcc): Change NE to EQ if necessary.
4192 (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
4193
4194 * config/m32r/m32r-protos.h (gen_cond_store): New.
4195 * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
4196 (gen_cond_store): New, from sCC patterns.
4197 (m32r_expand_block_move): Use cbranchsi4.
4198 * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
4199 * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
4200 (cbranchsi4, cstoresi4): New.
4201
4202 * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
4203 Delete.
4204 (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
f90b7a5a 4205 (m68hc11_notice_update_cc): Look into a compare with 0.
fbdf817d
UB
4206 * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
4207 Delete.
4208 * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
4209 cmphi, cmpqi, bCC): Delete.
4210 (cbranchsi4, cbranchhi4, cbranchqi4): New.
4211 (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
4212 bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
4213 sets with COMPARE.
4214
4215 * config/m68k/predicates.md (m68k_cstore_comparison_operator,
4216 const0_operand, const1_operand, m68k_subword_comparison_operand): New.
4217 * config/m68k/constraints.md (H): New.
4218 * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
4219 the define_insn below.
4220 (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
4221 (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
4222 *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
4223 patterns): Wrap RHS with COMPARE.
4224 (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
4225 (*cmpdi_internal): Name this pattern.
4226 (cmpdi): Change to define_insn.
4227 (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
4228 cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
4229 (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
4230 predicate.
4231 (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
4232 sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
4233 (conditional_trap): Change to...
4234 (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
4235 (*conditional_trap): Use the ordered_comparison_operator and
4236 const1_operand predicates.
4237 * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
4238 (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
4239 (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
4240 * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
4241
4242 * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
4243 mcore_modify_comparison, mcore_gen_compare_reg): Remove.
4244 (mcore_gen_compare): New.
4245 * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
4246 (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
4247 (mcore_gen_compare): ... this.
4248 * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
4249 (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
4250 (stack probe pattern): Use cbranchsi4.
4251
4252 * config/mips/predicates.md (mips_cstore_operator): New.
4253 * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
4254 * config/mips/mips.md (any_cond): Delete.
4255 (conditional_trap): Rename to ctrap<GPR:mode>4. Adjust predicates,
4256 always succeed.
4257 (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
4258 fixuns_truncsfdi2): Use cbranch patterns.
4259 (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete.
4260 (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
4261 Adjust call to mips_expand_conditional_branch.
4262 (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
4263 cstore<GPR:mode>4.
4264 * config/mips/mips-protos.h (mips_expand_conditional_branch,
4265 mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
4266 * config/mips/mips.c (cmp_operands): Delete.
4267 (mips_emit_compare): Get comparison operands from *op0/*op1.
4268 (mips_expand_scc): Get code/op0/op1/target from operands. Assert
4269 that it succeeds. Use op0/op1 instead of cmp_operands.
4270 (mips_expand_conditional_branch, mips_expand_conditional_move,
4271 mips_expand_conditional_trap): Likewise.
4272 (mips_block_move_loop): Use cbranch patterns.
4273 * config/mips/mips.h (cmp_operands): Delete.
4274
4275 * config/mmix/mmix.c (mmix_valid_comparison): Delete.
4276 (mmix_gen_compare_reg): Just return a register in the right CC mode.
4277 * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
4278 * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
4279 (*cmpcc_folded): Rename to...
4280 (*cmpdi_folded): this.
4281 (*cmpcc): Rename to...
4282 (*cmps): ... this.
4283 (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
4284 (bCC): Remove.
4285 (cbranchdi4): New.
4286 (cbranchdf4): New. Handle invalid comparisons here.
4287 * config/mmix/predicates.md (float_comparison_operator): New.
4288
4289 * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
4290 zero_extract to be cheap in (compare (zero_extract) (const_int 0).
4291 * config/mn10300/mn10300.md (tst): Delete.
4292 (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
4293 Name these patterns and wrap RHS in a compare.
4294 (*cmpsi): Make this pattern private. Include tst.
4295 (*cmpsf): Make this pattern private.
4296 (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
4297 (compare with zero peepholes): Likewise.
4298 (bCC): Remove.
4299 (cbranchsi4, cbranchsf4): New.
4300 (casesi): Use cbranchsi4.
4301
4302 * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
4303 hppa_branch_type): Delete.
4304 (return_addr_rtx): Use cbranchsi4.
4305 (emit_bcond_fp): Accept all operands. Replace CODE with NE.
4306 Emit CCFPmode comparison here.
4307 (gen_cmp_fp): Delete, now part of emit_bcond_fp.
4308 * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
4309 hppa_branch_type): Delete.
4310 * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
4311 (movsicc, movdicc): Remove references to hppa_compare_op0,
4312 hppa_compare_op1 and compare_from_rtx.
4313 (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
4314 (casesi): Use cbranchsi4.
4315
4316 * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
4317 * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
4318 * config/pdp11/pdp11.md (register_or_const0_operand): New.
4319 (cmpdf, cmphi, cmpqi): Make private. Add tst alternatives.
4320 (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
4321 (bCC): Delete.
4322 (cbranchdf4, cbranchhi4, cbranchqi4): New.
4323 (*branch, *branch_inverted): New.
4324
4325 * config/picochip/picochip.md (cbranchhi4): Use
4326 ordered_comparison_operator.
4327 (cmphi, bCC): Remove.
4328
4329 * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
4330 (trap_comparison_operator): Delete.
4331 * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
4332 rs6000_emit_cbranch): Accept mode and operands.
4333 * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
4334 rs6000_compare_fp_p): Delete.
4335 (rs6000_generate_compare): Accept mode and comparison. Extract code
4336 and op0/op1 from there. Replace references to rs6000_compare_op0
4337 and rs6000_compare_op1.
4338 (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
4339 extract result from passed operands.
4340 (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
4341 extract loc from passed operands.
4342 (rs6000_emit_cmove): Likewise.
4343 * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
4344 rs6000_compare_fp_p): Delete.
4345 * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
4346 (cbranch<GPR>4, cbranch<FP>4): New.
4347 (cstore<mode>4): New. Consolidate here all choices about when to use
4348 portable or specialized sCC sequences.
4349 (stack_protect_test): Use cbranchsi4.
4350 (conditional_trap): Replace with ctrap<GPR>4.
4351 (conditional trap insn): Replace trap_comparison_operator with
4352 ordered_comparison_operator.
4353
4354 * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
4355 (s390_emit_prologue): Use ctrap.
4356 * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
4357 * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
4358 New predicates replacing...
4359 * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
4360 (cmp<GPR>, cmp<FP>, cmpcc): Delete.
4361 (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
4362 (add<mode>cc): Do not use s390_compare_op0/op1.
4363 (s<code>): Change to...
4364 (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
4365 (seq): Change to...
4366 (cstorecc4): ... this. Handle EQ or NE equally.
4367 (*sne): Un-privatize for use in cstorecc4.
4368 (b<code>): Change to...
4369 (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
4370 (conditional_trap): Replace with...
4371 (ctrap<GPR>4, ctrap<FP>4): ... these.
4372 (stack_protect): Use cbranchcc4.
4373
4374 * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
4375 * config/score/score-protos.h (score_gen_cmp): Delete.
4376 * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
4377 (score_block_move-loop): Use cbranchsi4.
4378 * config/score/score.md (cbranchsi4): New.
4379 (cmpsi, bCC): Delete.
4380 * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
4381 (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
4382 * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
4383 (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
4384 * config/score/score3.h (score3_gen_cmp): Delete.
4385 * config/score/score7.h (score7_gen_cmp): Delete.
4386
4387 * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
4388 (sh_emit_scc_to_t): ... this. Return void.
4389 (from_compare): Rename to...
4390 (sh_emit_compare_and_branch): ... this.
4391 (sh_emit_compare_and_set): New.
4392 (sh_expand_t_scc): Accept operands.
4393 * config/sh/predicates.md (sh_float_comparison_operator): New.
4394 * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
4395 (prepare_scc_operands): Rename to...
4396 (sh_emit_scc_to_t): ... this. Return void. Get op0/op1 from
4397 arguments.
4398 (sh_emit_cheap_store_flag): New.
f90b7a5a 4399 (sh_emit_set_t_insn): New.
fbdf817d
UB
4400 (from_compare): Rename to...
4401 (sh_emit_compare_and_branch): ... this. Accept mode. Rewrite
4402 handling of TARGET_SH2E floating point to avoid recursive call.
4403 Generate branch here.
4404 (sh_emit_compare_and_set): New.
4405 (sh_expand_t_scc): Get op0/op1 from arguments.
4406 (sh_emit_cheap_store_flag): New.
4407 * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
4408 cases.
f90b7a5a 4409 (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
fbdf817d
UB
4410 (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
4411 (movsicc, movdicc): Do nothing when it recreated operands from
4412 sh_compare_*. Use sh_emit_cheap_store_flag. Adjust call to
4413 prepare_scc_operands (now sh_emit_scc_to_t).
4414 (udivdi3): Use cstoresi4.
4415 (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
4416 bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
4417 (cbranchint4_media, cbranchfp4_media): New.
4418 (casesi): Use cbranchdi4.
4419 (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
4420 Delete.
4421 (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
4422 (movnegt): Remove second operand.
4423 (cbranchsf4, cbranchdf4): New.
4424 (stack_protect): Use cbranchdi4/cbranchsi4.
4425
4426 * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
4427 (gen_compare_reg): Accept comparison, extract part of it to...
4428 (gen_compare_reg_1): ... this.
4429 (gen_compare_operator): Delete.
4430 (gen_v9_scc): Accept separate destination, comparison code and arms.
4431 Do not use sparc_compare_op0/sparc_compare_op1.
4432 (emit_scc_insn, emit_conditional_branch_insn): New.
4433 (emit_v9_brxx): Make static. Remove useless assertion.
4434 (sparc_emit_float_lib_cmp): Return RTL instead of calling
4435 emit_cmp_insn.
4436 (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
4437 * config/sparc/sparc-protos.h (gen_compare_reg,
f90b7a5a
PB
4438 sparc_emit_float_lib_cmp): Adjust prototype.
4439 (emit_scc_insn, emit_conditional_branch_insn): New.
4440 (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
fbdf817d
UB
4441 * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
4442 * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
4443 iterators to the top.
4444 (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
4445 snesi_special_extend, sCC, bCC, seqdi_special_trunc,
f90b7a5a 4446 snedi_special_trunc): Delete.
fbdf817d 4447 (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
f90b7a5a 4448 and snedi_special_trunc.
fbdf817d
UB
4449 (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
4450 cbranchdi4, cbranch<F:mode>4): New.
4451 (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
4452 here. Use gen_compare_reg instead of gen_compare_operator.
4453 (conditional_trap): Replace with...
4454 (ctrapsi4, ctrapdi4): ... this.
4455 (stack_protect_test): Use cbranchcc4.
4456
4457 * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
4458 argument to rtx.
4459 * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove.
4460 (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
4461 Change spu_compare_op0/op1 to op0/op1 throughout. Get target
4462 from operands[0] or operands[3] depending on is_set.
4463 * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
4464 * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
4465 cmpdf, bCC), sCC: Remove.
4466 (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4,
4467 cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
4468 cstoredf4): New.
4469 (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
4470 spu_emit_branch_or_set.
4471
4472 * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
4473 Add two arguments.
4474 * config/stormy16/stormy16.h (xstormy16_compare_op0,
4475 xstormy16_compare_op1): Delete.
4476 * config/stormy16/stormy16.c (xstormy16_compare_op0,
4477 xstormy16_compare_op1): Delete.
4478 (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
4479 Adjust calls.
4480 * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
4481 (cmphi, cmpsi, bCC): Remove.
4482
4483 * config/v850/v850.md (tstsi, cmpsi): Fold into...
4484 (*cmpsi): ... this one.
4485 (cbranchsi4, cstoresi4): New.
4486 (bCC expanders): Delete.
4487 (sCC insns): Fold into...
4488 (*setcc): ... this one.
4489 (casesi): Do not use gen_cmpsi and gen_bgtu.
f90b7a5a
PB
4490 (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
4491 (movsicc): Simplify.
4492 * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
4493
fbdf817d
UB
4494 * config/vax/vax-protos.h (cond_name): New.
4495 (vax_output_conditional_branch): Remove.
4496 * config/vax/vax.c (cond_name): New.
4497 (vax_output_conditional_branch): Remove.
4498 * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
4499 * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
4500 (cmp<VAXint>, cmp<VAXfp>): Privatize. Add constraints for tst.
4501 (bit<VAXint>): Wrap source with (compare).
4502 (b<code> and following unnamed pattern): Rename to *branch and
4503 *branch_reversed. Change macroization to match_operator.
4504 (cbranch<VAXint>4, cbranch<VAXfp>4): New.
4505
4506 * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
4507 * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
4508 Change last argument to machine_mode.
4509 (xtensa_expand_scc): Add machine_mode argument.
4510 * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
4511 (gen_conditional_move, xtensa_expand_conditional_branch,
4512 xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
4513 instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
4514 Adjust operand numbers.
4515 * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
4516 Delete.
4517 * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
4518 (cmpsi, cmpsf, b<code>, s<code>): Delete.
4519 (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
f90b7a5a 4520
16670495
PB
45212009-05-12 Paolo Bonzini <bonzini@gnu.org>
4522
4523 * optabs.c (prepare_cmp_insn): Temporarily disable test that
4524 causes spurious differences between trunk and cond-optab branch.
4525
4a4a4e99
AO
45262009-05-12 Alexandre Oliva <aoliva@redhat.com>
4527
4528 PR target/37137
4529 * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
4530
72b9acff
AO
45312009-05-12 Alexandre Oliva <aoliva@redhat.com>
4532
4533 * tree.c (iterative_hash_pointer): Delete.
4534 (iterative_hash_expr): Short-circuit handling of NULL pointer.
4535 Hash UIDs and versions of SSA names. Don't special-case built-in
4536 function declarations.
4537
b7dd69ac
ILT
45382009-05-11 Ian Lance Taylor <iant@google.com>
4539
4540 PR bootstrap/40103
4541 * graphite.c: Force -Wc++-compat to only be a warning before
4542 #including "cloog/cloog.h".
4543
ed102b70
MJ
45442009-05-11 Martin Jambor <mjambor@suse.cz>
4545
4546 * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
4547
08f1af2e
JH
45482009-05-11 Jan Hubicka <jh@suse.cz>
4549
4550 * tree-ssa-loop-ivcanon.c: Include target.h
4551 (struct loop_size): new structure.
4552 (constant_after_peeling): New predicate.
4553 (tree_estimate_loop_size): New function.
4554 (estimated_unrolled_size): Rewrite for new estimates.
4555 (try_unroll_loop_completely): Use new estimates.
4556 * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
4557
a7d39bd3
AP
45582009-05-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
4559
4560 * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
4561 libcpp interface change.
4562 (spu_macro_to_expand): Likewise.
4563
f5a1f0d0
PB
45642009-05-11 Paolo Bonzini <bonzini@gnu.org>
4565
4566 PR tree-optimization/40026
4567 * gimplify.c (gimplify_init_constructor): Change initial conditional
4568 to assertion. Rewrite TREE_OPERAND (*expr_p, 1) after
4569 optimize_compound_literals_in_ctor.
4570
c260f01f
NS
45712009-05-11 Nathan Sidwell <nathan@codesourcery.com>
4572
4573 * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
4574 New devices.
4575 * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
4576
df398a37
L
45772009-05-11 H.J. Lu <hongjiu.lu@intel.com>
4578
4579 * tree-vect-data-refs.c (vect_analyze_group_access): Use
4580 HOST_WIDE_INT for gap.
4581
4da39468
IR
45822009-05-11 Ira Rosen <irar@il.ibm.com>
4583
4584 PR tree-optimization/40074
4585 * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
4586 account in group size and step comparison.
4587
4effdf02
RG
45882009-05-11 Richard Guenther <rguenther@suse.de>
4589
4590 * passes.c (init_optimization_passes): Strip now incorrect comment.
4591 (execute_function_todo): Do not set PROP_alias.
4592 * tree-pass.h (PROP_alias): Remove.
4593 * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
4594 * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
4595 * tree-nrv.c (pass_return_slot): Likewise.
4596 * tree-object-size.c (pass_object_sizes): Likewise.
4597 * tree-ssa-dom.c (pass_dominator): Likewise.
4598 (pass_phi_only_cprop): Likewise.
4599 * tree-ssa-dse.c (pass_dse): Likewise.
4600 * tree-ssa-phiopt.c (pass_phiopt): Likewise.
4601 (pass_cselim): Likewise.
4602 * tree-ssa-pre.c (pass_pre): Likewise.
4603 (pass_fre): Likewise.
4604 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
4605 * tree-ssa-sink.c (pass_sink_code): Likewise.
4606 * tree-stdarg.c (pass_stdarg): Likewise.
4607 * tree-tailcall.c (pass_tail_calls): Likewise.
4608 * tree-vrp.c (pass_vrp): Likewise.
4609
24b97832
ILT
46102009-05-10 Ian Lance Taylor <iant@google.com>
4611
4612 * basic-block.h (enum profile_status): Break out of struct
4613 control_flow_graph.
4614 * cgraph.h (struct inline_summary): Break out of struct
4615 cgraph_local_info.
4616 * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
4617 of struct cgraph_order_sort.
fbdf817d 4618 * combine.c (enum undo_kind): New enum, broken out of struct undo.
24b97832
ILT
4619 * cse.c (struct branch_path): Break out of struct
4620 cse_basic_block_data.
4621 * except.h (enum eh_region_type): Break out of struct eh_region.
4622 * gcc.c (enum add_del): Break out of struct modify_target.
fbdf817d 4623 * genrecog.c (enum decision_type): Break out of struct decision_test.
24b97832
ILT
4624 * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
4625 ggc_pch_data.
fbdf817d
UB
4626 * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
4627 * regmove.c (enum match_use): New enum, broken out of struct match.
24b97832
ILT
4628 * sched-int.h (enum post_call_group): New enum, broken out of
4629 struct deps.
4630 (struct deps_reg): Break out of struct deps.
4631 * target.h (struct asm_int_op): Break out of struct gcc_target.
4632 * tree-eh.c (struct goto_queue_node): Break out of struct
4633 leh_tf_state.
4634 * tree-inline.h (enum copy_body_cge_which): Break out of
4635 copy_body_data.
4636 * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
4637
4638 * c-decl.c (in_struct, struct_types): New static variables.
4639 (pushtag): Add loc parameter. Change all callers.
4640 (lookup_tag): Add ploc parameter. Change all callers.
4641 (check_compound_literal_type): New function.
4642 (parser_xref_tag): Add loc parameter. Change all callers. If
4643 -Wc++-compat, warn about struct/union/enum types defined within a
4644 struct or union.
4645 (start_struct): Add enclosing_in_struct, enclosing_struct_types,
4646 and loc parameters. Change all callers. Change error calls to
4647 error_at, using loc. For a redefinition, if the location of the
4648 original definition is known, report it. Set in_struct and
fbdf817d 4649 struct_types. If -Wc++-compat warn if in sizeof, typeof, or alignof.
24b97832
ILT
4650 (finish_struct): Add new parameters enclosing_in_struct and
4651 enclosing_struct_types. Change all callers. Set
4652 C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
4653 in the struct. If in a struct, add this struct to struct_types.
4654 (start_enum): Add loc parameter. Change all callers. Use
4655 error_at for errors, using loc. For a redefinition, if the
4656 location of the original definition is known, report it. If in a
4657 struct, add this enum type to struct_types. If -Wc++-compat warn
4658 if in sizeof, typeof, or alignof.
fbdf817d
UB
4659 * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
4660 (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
24b97832
ILT
4661 (c_parser_enum_specifier): Get enum location for start_enum.
4662 (c_parser_struct_or_union_specifier): Get struct location for
4663 start_struct. Save in_struct and struct_types status between
4664 start_struct and finish_struct.
4665 (c_parser_cast_expression): Get location of cast.
4666 (c_parser_alignof_expression): Get location of type.
4667 (c_parser_postfix_expression): Likewise.
4668 (c_parser_postfix_expression_after_paren_type): Add type_loc
fbdf817d
UB
4669 parameter. Change all callers. Call check_compound_literal_type.
4670 Use type_loc for error about variable size type.
4671 * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
4672 of an enum constant from an enum type defined in a struct or union.
24b97832
ILT
4673 (c_cast_expr): Add loc parameter. Change all callers. If
4674 -Wc++-compat, warn about defining a type in a cast.
4675 * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
4676 (start_enum, start_struct, finish_struct): Update declarations.
4677 (parser_xref_tag, c_cast_expr): Update declarations.
4678 (check_compound_literal_type): Declare.
4679
7a2738fa
BE
46802009-05-11 Ben Elliston <bje@au.ibm.com>
4681
4682 * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
4683 for recent libcpp interface change.
4684 (rs6000_macro_to_expand): Likewise.
4685
af618949
MM
46862009-05-10 Michael Matz <matz@suse.de>
4687
4688 PR target/40031
4689 * config/arm/arm.c (require_pic_register): Emit on entry edge,
4690 not at entry of function.
4691
b7d7a473
RG
46922009-05-10 Richard Guenther <rguenther@suse.de>
4693
4694 PR tree-optimization/40081
4695 Revert
4696 * tree-sra.c (instantiate_element): Instantiate scalar replacements
4697 using the main variant of the element type. Do not fiddle with
4698 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
4699
4700 * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
4701 structs with volatile fields.
4702
078c3644
JH
47032009-05-10 Jan Hubicka <jh@suse.cz>
4704
4705 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
fbdf817d
UB
4706 (estimate_move_cost): Assert that it does not get called for
4707 VOID_TYPE_P.
078c3644
JH
4708 (estimate_num_insns): Skip VOID types in argument handling.
4709 (optimize_inline_calls): Delete unreachable blocks and verify that
4710 callgraph is valid.
4711
39ff5a96
JH
47122009-05-10 Jan Hubicka <jh@suse.cz>
4713
4714 * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
4715 * cgraph.c (cgraph_mark_address_taken_node): New function.
4716 (dump_cgraph_node): Dump new flag.
4717 * cgraph.h (struct cgraph_node): Add address_taken.
4718 (cgraph_mark_address_taken_node): New function.
39ff5a96
JH
4719 * ipa.c (cgraph_postorder): Prioritize functions with address taken
4720 since new direct calls can be born.
4721
9a0c6187
JM
47222009-05-10 Joseph Myers <joseph@codesourcery.com>
4723
4724 * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
4725 tok->val.node.node.
4726
4b685e14
JH
47272009-05-10 Jan Hubicka <jh@suse.cz>
4728
4729 PR middle-end/40084
fb0be169
EB
4730 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
4731 argument; rewrite.
4b685e14
JH
4732 (cgraph_update_edges_for_call_stmt): Take old_decl argument.
4733 * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
4734 * tree-inline.c (copy_bb): Set frequency correctly.
fb0be169
EB
4735 (fold_marked_statements): Update call to
4736 cgraph_update_edges_for_call_stmt.
4b685e14 4737
29d08eba
JM
47382009-05-10 Joseph Myers <joseph@codesourcery.com>
4739
4740 * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
4741 identifiers in diagnostics.
4742 * config/arm/arm.c (arm_handle_fndecl_attribute,
4743 arm_handle_isr_attribute): Likewise.
4744 * config/avr/avr.c (avr_handle_progmem_attribute,
782dc37a 4745 avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
29d08eba
JM
4746 * config/bfin/bfin.c (handle_int_attribute,
4747 bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
4748 bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
4749 bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
4750 Likewise.
4751 * config/darwin.c (darwin_handle_kext_attribute,
4752 darwin_handle_weak_import_attribute): Likewise.
4753 * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
4754 h8300_handle_eightbit_data_attribute,
4755 h8300_handle_tiny_data_attribute): Likewise.
4756 * config/i386/i386.c (ix86_handle_cconv_attribute,
782dc37a 4757 ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
29d08eba
JM
4758 * config/i386/winnt.c (ix86_handle_shared_attribute,
4759 ix86_handle_selectany_attribute): Likewise.
4760 * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
4761 * config/m32c/m32c.c (function_vector_handler): Likewise.
4762 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
4763 m68hc11_handle_fntype_attribute): Likewise.
4764 * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
4765 * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
4766 * config/mips/mips.c (mips_insert_attributes,
4767 mips_merge_decl_attributes, mips_expand_builtin): Likewise.
4768 * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
4769 rs6000_handle_struct_attribute): Likewise.
4770 * config/sh/sh.c (sh_insert_attributes,
4771 sh_handle_resbank_handler_attribute,
4772 sh_handle_interrupt_handler_attribute,
4773 sh2a_handle_function_vector_handler_attribute,
4774 sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
4775 Likewise.
4776 * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
4777 * config/spu/spu.c (spu_handle_fndecl_attribute,
4778 spu_handle_vector_attribute): Likewise.
4779 * config/stormy16/stormy16.c
4780 (xstormy16_handle_interrupt_attribute): Likewise.
4781 * config/v850/v850-c.c (ghs_pragma_section): Likewise.
4782 * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
4783
f41c4af3
JM
47842009-05-10 Joseph Myers <joseph@codesourcery.com>
4785
782dc37a 4786 * pretty-print.h (struct pretty_print_info): Add translate_identifiers.
f41c4af3
JM
4787 (pp_translate_identifiers): New.
4788 (pp_identifier): Only conditionally translate identifier to locale
4789 character set.
4790 * pretty-print.c (pp_construct): Set pp_translate_identifiers.
4791 (pp_base_tree_identifier): Only conditionally translate identifier
4792 to locale character set.
4793 * c-pretty-print.c (M_): Define.
4794 (pp_c_type_specifier, pp_c_primary_expression): Mark English
4795 fragments for conditional translation with M_.
4796 * tree-pretty-print.c (maybe_init_pretty_print): Disable
4797 identifier translation.
4798
896d7dbd
RG
47992009-05-10 Richard Guenther <rguenther@suse.de>
4800
4801 PR tree-optimization/40081
4802 * tree-sra.c (instantiate_element): Instantiate scalar replacements
4803 using the main variant of the element type. Do not fiddle with
4804 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
4805
9a23acef
JH
48062009-05-09 Jan Hubicka <jh@suse.cz>
4807
4808 PR middle-end/40080
4809 * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
4810 indirect calls; verify cgraph afterwards.
4811
d563610d
JH
48122009-05-09 Jan Hubicka <jh@suse.cz>
4813
4814 PR bootstrap/40082
4815 * ipa.c (update_inlined_to_pointer): New function.
4816 (cgraph_remove_unreachable_nodes): Use it.
4817
f08a18d0
JH
48182009-05-09 Jan Hubicka <jh@suse.cz>
4819
4820 * tree-eh.c (struct leh_state): Remove prev_try.
4821 (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
4822 not track prev_try.
4823 * except.c (gen_eh_region_cleanup, duplicate_eh_regions,
4824 copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
4825 remove_eh_handler_and_replace, foreach_reachable_handler,
4826 verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
4827 * except.h (struct eh_region): Remove eh_region_u_cleanup.
4828 (gen_eh_region_cleanup): Update prototype.
4829
0afd7219
JH
48302009-05-09 Jan Hubicka <jh@suse.cz>
4831
4832 PR middle-end/40043
4833 * except.c (copy_eh_region): Always set prev_try.
4834 (redirect_eh_edge_to_label): Find outer try.
4835 (foreach_reachable_handler): When looking for prev try
4836 handle case where previous try is not going to be taken.
4837
ad6c0864
MM
48382009-05-07 Michael Meissner <meissner@linux.vnet.ibm.com>
4839
4840 PR tree-optimization/40049
4841 * tree-vect-stmts.c (vectorizable_operation): If the machine has
4842 only vector/vector shifts, convert the type of the constant to the
4843 appropriate type to avoid building incorrect trees, which
4844 eventually have problems with garbage collection.
4845
c94f9067
JM
48462009-05-08 Joseph Myers <joseph@codesourcery.com>
4847
4848 * fold-const.c (fold_binary): Do not fold multiplication by 1 or
4849 -1 for complex floating-point types if honoring signed zeros.
4850
9187e02d
JH
48512009-05-08 Jan Hubicka <jh@suse.cz>
4852
20acb8a2
EB
4853 * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
4854 argument; handle correctly when profile is absent.
9187e02d
JH
4855 (build_cgraph_edges): Update.
4856 (rebuild_cgraph_edges): Update.
20acb8a2
EB
4857 * cgraph.c: Do not include varray.h.
4858 (cgraph_set_call_stmt_including_clones): New function.
4859 (cgraph_create_edge_including_clones): Likewise
4860 (cgraph_update_edges_for_call_stmt_node): New static cfunction.
9187e02d
JH
4861 (cgraph_update_edges_for_call_stmt): Handle clones.
4862 (cgraph_remove_node): Handle clone tree.
4863 (cgraph_remove_node_and_inline_clones): New function.
4864 (dump_cgraph_node): Dump clone tree.
4865 (cgraph_clone_node): Handle clone tree.
20acb8a2 4866 (clone_function_name): Bring here from tree-inline.c.
9187e02d 4867 (cgraph_create_virtual_clone): New function.
20acb8a2
EB
4868 * cgraph.h (ipa_replace_map): Move here from ipa.h.
4869 (cgraph_clone_info): New function.
9187e02d 4870 (strut cgraph_node): Add clone_info and new clone tree pointers.
20acb8a2
EB
4871 (cgraph_remove_node_and_inline_clones,
4872 cgraph_set_call_stmt_including_clones,
4873 cgraph_create_edge_including_clones,
4874 cgraph_create_virtual_clone): Declare.
9187e02d
JH
4875 (cgraph_function_versioning): Use VEC argument.
4876 (compute_call_stmt_bb_frequency): Update prototype.
4877 (cgraph_materialize_all_clones): New function.
4878 * ipa-cp.c (ipcp_update_cloned_node): Remove.
4879 (ipcp_create_replace_map): Update to VECtors.
4880 (ipcp_update_callgraph): Use virtual clones.
4881 (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
4882 (ipcp_update_profiling): Do not update local profiling.
4883 (ipcp_insert_stage): Use VECtors and virtual clones.
4884 * cgraphunit.c (verify_cgraph_node): Verify clone tree.
4885 (clone_of_p): New function.
4886 (cgraph_preserve_function_body_p): Use clone tree.
4887 (cgraph_optimize): Materialize clones.
4888 (cgraph_function_versioning): Update for VECtors.
4889 (save_inline_function_body): Use clone tree.
20acb8a2
EB
4890 (cgraph_materialize_clone): New function.
4891 (cgraph_materialize_all_clones): Likewise.
9187e02d
JH
4892 * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
4893 * ipa.c: Include gimple.h.
4894 (cgraph_remove_unreachable_nodes): Use clone tree.
20acb8a2
EB
4895 * ipa-prop.c (ipa_note_param_call): Update call to
4896 compute_call_stmt_bb_frequencycall.
9187e02d 4897 * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
20acb8a2 4898 * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
9187e02d
JH
4899 (copy_bb): Handle updating of clone tree; add new edge when new call
4900 appears.
4901 (expand_call_inline): Be strict about every call having edge.
4902 (clone_fn_id_num, clone_function_name): Move to cgraph.c.
4903 (delete_unreachable_blocks_update_callgraph): New function.
20acb8a2
EB
4904 (tree_function_versioning): Use VECtors; always remove unreachable
4905 blocks and fold conditionals.
4906 * tree-inline.h: Do not include varray.h.
9187e02d
JH
4907 (tree_function_versioning): Remove.
4908 * Makefile.in (GTFILES): Remove tree-inline.c
4909 * passes.c (do_per_function): Do only functions having body.
20acb8a2
EB
4910 * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
4911 tree.
9187e02d 4912
9b86d6bb
L
49132009-05-08 H.J. Lu <hongjiu.lu@intel.com>
4914 Andrew Morrow <acm@google.com>
4915
4916 PR c/36892
4917 * c-common.c (c_common_attribute_table): Permit deprecated
4918 attribute to take an optional argument.
4919 (handle_deprecated_attribute): If the optional argument to
4920 __attribute__((deprecated)) is not a string ignore the attribute
4921 and emit a warning.
4922
4923 * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
4924 * c-typeck.c (build_component_ref): Likewise.
4925 (build_external_ref): Likewise.
4926
4927 * toplev.c (warn_deprecated_use): Add an attribute argument.
4928 Emit the message associated with __attribute__((deprecated)).
4929
4930 * toplev.h (warn_deprecated_use): Updated.
4931
4932 * doc/extend.texi: Document new optional parameter to
4933 __attribute__((deprecated))
4934
82ad047f
ME
49352009-05-08 Michael Eager <eager@eagercon.com>
4936
4937 * config/rs6000/rs6000.md (*movdf_softfloat32): replace
4938 !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
4939
788d3075
RG
49402009-05-08 Richard Guenther <rguenther@suse.de>
4941
4942 PR tree-optimization/40062
4943 * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
4944 Avoid exponential behavior.
4945
00952e97
PB
49462009-05-08 Paolo Bonzini <bonzini@gnu.org>
4947
4948 PR rtl-optimization/33928
4949 PR 26854
4950 * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
4951 process_uses, build_single_def_use_links): New.
4952 (update_df): Update use_def_ref.
4953 (forward_propagate_into): Use get_def_for_use instead of use-def
4954 chains.
4955 (fwprop_init): Call build_single_def_use_links and let it initialize
4956 dataflow.
4957 (fwprop_done): Free use_def_ref.
4958 (fwprop_addr): Eliminate duplicate call to df_set_flags.
4959 * df-problems.c (df_rd_simulate_artificial_defs_at_top,
4960 df_rd_simulate_one_insn): New.
4961 (df_rd_bb_local_compute_process_def): Update head comment.
4962 (df_chain_create_bb): Use the new RD simulation functions.
4963 * df.h (df_rd_simulate_artificial_defs_at_top,
4964 df_rd_simulate_one_insn): New.
4965 * opts.c (decode_options): Enable fwprop at -O1.
4966 * doc/invoke.texi (-fforward-propagate): Document this.
4967
2ca862e9
JM
49682009-05-08 Joseph Myers <joseph@codesourcery.com>
4969
4970 PR c/24581
4971 * c-typeck.c (build_binary_op): Handle arithmetic between one real
4972 and one complex operand specially.
4973 * tree-complex.c (some_nonzerop): Do not identify a real value as
4974 zero if flag_signed_zeros.
4975
3e807ffc
PB
49762009-05-08 Paolo Bonzini <bonzini@gnu.org>
4977
4978 PR rtl-optimization/33928
7925c06c 4979 * loop-invariant.c (record_use): Fix && vs. || mishap.
3e807ffc 4980
1bfdbb29
PB
49812009-05-08 Paolo Bonzini <bonzini@gnu.org>
4982
4983 PR rtl-optimization/33928
e913423f
EB
4984 * loop-invariant.c (struct use): Add addr_use_p.
4985 (struct def): Add n_addr_uses.
4986 (struct invariant): Add cheap_address.
4987 (create_new_invariant): Set cheap_address.
4988 (record_use): Accept df_ref. Set addr_use_p and update n_addr_uses.
4989 (record_uses): Pass df_ref to record_use.
4990 (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
4991 used only as such.
1bfdbb29 4992
702cb2a0
KK
49932009-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
4994
4995 * config/sh/sh.c: Do not include c-pragma.h.
4996
5e8df753
AP
49972009-05-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
4998
4999 * config/spu/spu.c: Remove include of c-common.h.
5000
6ec637a4
JJ
50012009-05-07 Janis Johnson <janis187@us.ibm.com>
5002
5003 PR c/39037
5004 * c-common.h (mark_valid_location_for_stdc_pragma,
5005 valid_location_for_stdc_pragma_p, set_float_const_decimal64,
5006 clear_float_const_decimal64, float_const_decimal64_p): New.
5007 * c.opt (Wunsuffixed-float-constants): New.
5008 * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
5009 unsuffixed float constant, handle new warning.
5010 * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
5011 * c-decl.c (c_scope): New flag float_const_decimal64.
5012 (set_float_const_decimal64, clear_float_const_decimal64,
5013 float_const_decimal64_p): New.
5014 (push_scope): Set new flag.
5015 * c-parser.c (c_parser_translation_unit): Mark when it's valid
5016 to use STDC pragmas.
5017 (c_parser_external_declaration): Ditto.
5018 (c_parser_compound_statement_nostart): Ditto.
5019 * c-pragma.c (valid_location_for_stdc_pragma,
5020 mark_valid_location_for_stdc_pragma,
5021 valid_location_for_stdc_pragma_p, handle_stdc_pragma,
5022 handle_pragma_float_const_decimal64): New.
5023 (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
5024 * cp/semantics.c (valid_location_for_stdc_pragma_p,
5025 set_float_const_decimal64, clear_float_const_decimal64,
5026 float_const_decimal64_p): New dummy functions.
5027 * doc/extend.texi (Decimal Float): Remove statement that the
5028 pragma, and suffix for double constants, are not supported.
5029 * doc/invoke.texi (Warning Options): List new option.
5030 (-Wunsuffixed-float-constants): New.
5031
45b9b2e9
SB
50322009-05-08 Steven Bosscher <steven@gcc.gnu.org>
5033
5034 * config/i386/i386.c: Do not include c-common.h.
5035
e71da632
MH
50362009-05-07 Mark Heffernan <meheff@google.com>
5037
5038 * doc/invoke.texi (Debugging Options): Document change of debugging
5039 dump location.
e913423f 5040 * opts.c (decode_options): Make dump_base_name relative to
e71da632
MH
5041 aux_base_name directory.
5042
fe4c7bc6
HS
50432009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
5044
5045 * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
5046 * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
5047
3b3e44eb
RAE
50482009-05-07 Rafael Avila de Espindola <espindola@google.com>
5049
5050 * Makefile.in (install-plugin): Simplify a bit.
5051
fac41238
PB
50522009-05-07 Paolo Bonzini <bonzini@gnu.org>
5053
5054 * Makefile.in (OBJS-common): Add regcprop.o.
5055 (regcprop.o): New.
5056 * timevar.def (TV_CPROP_REGISTERS): New.
5057 * regrename.c (regrename_optimize): Return 0.
5058 (rest_of_handle_regrename): Delete.
5059 (pass_rename_registers): Point to regrename_optimize.
5060 (struct value_data_entry, struct value_data,
5061 kill_value_one_regno, kill_value_regno, kill_value,
5062 set_value_regno, init_value_data, kill_clobbered_value,
5063 kill_set_value, kill_autoinc_value, copy_value,
5064 mode_change_ok, maybe_mode_change, find_oldest_value_reg,
5065 replace_oldest_value_reg, replace_oldest_value_addr,
5066 replace_oldest_value_mem, copyprop_hardreg_forward_1,
5067 debug_value_data, validate_value_data): Move...
5068 * regcprop.c: ... here.
5069 (rest_of_handle_cprop): Delete.
5070 (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
5071
472e0df9
JJ
50722009-05-07 Jakub Jelinek <jakub@redhat.com>
5073
5074 PR middle-end/40057
5075 * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
5076 GEN_INT for 1 << bitnum.
5077 (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
5078 build_int_cst_type.
5079
0d50d55a
UB
50802009-05-07 Uros Bizjak <ubizjak@gmail.com>
5081
5082 * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
7925c06c 5083 Remove wrong description of "nand" operation.
0d50d55a 5084
22f597f1
RG
50852009-05-06 Richard Guenther <rguenther@suse.de>
5086 Adam Nemet <anemet@caviumnetworks.com>
5087
5088 * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
5089 comment. Add that if LHS is not a gimple register, then RHS1 has
5090 to be a single object (GIMPLE_SINGLE_RHS).
5091
641cac0b
AN
50922009-05-06 Adam Nemet <anemet@caviumnetworks.com>
5093
5094 * expr.c (get_def_for_expr): Move it up in the file.
5095 (store_field): When expanding a bit-field store, look at the
5096 defining gimple stmt for the masking conversion.
5097
5a5c6435
JJ
50982009-05-06 Janis Johnson <janis187@us.ibm.com>
5099
5100 PR middle-end/39986
5101 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
5102 decode_decimal64, encode_decimal128, decode_decimal128): Avoid
5103 32-bit memcpy into long.
5104
96474f36
JJ
51052009-05-06 Jakub Jelinek <jakub@redhat.com>
5106
5107 * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
5108 (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
5109 new_reg_loc_descr.
5110 (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
5111 instead of appending DW_OP_deref*.
5112
529ff441
MM
51132009-05-06 Michael Matz <matz@suse.de>
5114
5115 PR middle-end/40021
5116 * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
5117 (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
5118
9419a9fd
RAE
51192009-05-06 Rafael Avila de Espindola <espindola@google.com>
5120
5121 * Makefile.in (install-plugin): Fix srcdir handling.
5122
fff1894c
AB
51232009-05-06 Andrey Belevantsev <abel@ispras.ru>
5124
5125 * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
5126 when processing for not_regs_needed bitmap.
5127 * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
5128 handle TARGET_MEM_REF in lhs. Check TMR_BASE for NULL while
5129 handling it for rhs.
5130
700ae70c
L
51312009-05-06 H.J. Lu <hongjiu.lu@intel.com>
5132
ab3426a7 5133 * config/i386/i386.md (unnamed inc/dec peephole): Use
aa016ff7 5134 optimize_insn_for_size_p instead of optimize_size.
700ae70c
L
5135 * config/i386/predicates.md (incdec_operand): Likewise.
5136 (aligned_operand): Likewise.
5137 * config/i386/sse.md (divv8sf3): Likewise.
5138 (sqrtv8sf2): Likewise.
5139
67341fb5
L
51402009-05-06 H.J. Lu <hongjiu.lu@intel.com>
5141
5142 * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
5143
5144 * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
5145
87946f42
L
51462009-05-06 H.J. Lu <hongjiu.lu@intel.com>
5147
5148 * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
5149 ssemodesuffixf2c with avxmodesuffixf2c.
5150
1202aec1
JM
51512009-05-06 Joseph Myers <joseph@codesourcery.com>
5152
5153 PR c/40032
aa016ff7 5154 * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
1202aec1 5155
6e57a01d
JJ
51562009-05-05 Jakub Jelinek <jakub@redhat.com>
5157
5158 * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
5159 (struct tree_base): Adjust spacing for 8 bit boundaries.
5160 (struct tree_decl_common): Add decl_by_reference_flag bit.
5161 (DECL_BY_REFERENCE): Adjust.
5162 * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
5163 print DECL_BY_REFERENCE bit.
5164 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
5165 * dwarf2out.c (loc_by_reference, gen_decl_die): Check
5166 DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
5167 (gen_variable_die): Likewise. Check TREE_PRIVATE/TREE_PROTECTED
5168 unconditionally.
5169
32f579f6
JJ
5170 PR middle-end/39666
5171 * gimplify.c (gimplify_switch_expr): If case labels cover the whole
5172 range of the type, but default label is missing, add it with one
5173 of the existing labels instead of adding a new label for it.
5174
617ab743
JM
51752009-05-05 Joseph Myers <joseph@codesourcery.com>
5176
5177 * dwarf.h: Remove.
5178
bf016de8
RAE
51792009-05-05 Rafael Avila de Espindola <espindola@google.com>
5180
5181 * Makefile.in (enable_plugin, plugin_includedir): New.
5182 (install): Depend on install-plugin.
5183 (PLUGIN_HEADERS): New.
5184 (install-plugin): New.
5185 * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
5186
7f8fdb9f
RG
51872009-05-05 Richard Guenther <rguenther@suse.de>
5188
5189 PR tree-optimization/40022
5190 * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
5191 the only vuse.
5192 (phivn_valid_p): Fix tuplification error, simplify.
5193 (phiprop_insert_phi): Add dumps.
5194 (propagate_with_phi): Simplify.
5195
8d972839
RG
51962009-05-05 Richard Guenther <rguenther@suse.de>
5197
5198 PR middle-end/40023
aa016ff7 5199 * builtins.c (gimplify_va_arg_expr): Properly build the address.
8d972839 5200
66ba9b0b
SZ
52012009-05-05 Shujing Zhao <pearly.zhao@oracle.com>
5202
5203 * tree.h (strip_float_extensions): Remove duplicate declaration.
aa016ff7
UB
5204 (build_low_bits_mask, debug_fold_checksum, expand_function_end,
5205 expand_function_start, stack_protect_prologue, stack_protect_epilogue,
5206 block_ultimate_origin): Rearrange the declarations line to match the
5207 comment that indicates the .c file which the functions are defined.
5208 (dwarf2out_*, set_decl_rtl): Add comment.
5209 (get_base_address): Adjust comment.
5210 (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
5211 declarations line and add comment.
5212 (is_builtin_name): Add blank after function name, for clarity.
66ba9b0b 5213
4f1e4960
JM
52142009-05-04 Joseph Myers <joseph@codesourcery.com>
5215
5216 * attribs.c (decl_attributes): Use %qE for identifiers in
5217 diagnostics.
5218 * cgraphunit.c (verify_cgraph_node): Translate function names to
5219 locale character set in diagnostics.
5220 * coverage.c (get_coverage_counts): Use %qE for identifiers in
5221 diagnostics.
5222 * doc/invoke.texi (-finstrument-functions-exclude-function-list):
5223 Document that functions are named in UTF-8.
5224 * expr.c (expand_expr_real_1): Translate function names to locale
5225 character set in diagnostics.
5226 * gimplify.c (omp_notice_variable, omp_is_private,
5227 gimplify_scan_omp_clauses): Use %qE for identifiers in
5228 diagnostics.
5229 * langhooks.c (lhd_print_error_function): Translate function names
5230 to locale character set.
5231 * langhooks.h (decl_printable_name): Document that return value is
5232 in internal character set.
5233 * stmt.c: Include pretty-print.h
5234 (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
5235 diagnostics.
5236 (resolve_operand_name_1): Translate named operand name to locale
5237 character set.
5238 * stor-layout.c (finalize_record_size): Use %qE for identifiers in
5239 diagnostics.
5240 * toplev.c (announce_function): Translate function names to locale
5241 character set.
5242 (warn_deprecated_use): Use %qE for identifiers in diagnostics.
5243 (default_tree_printer): Use pp_identifier or translate identifiers
5244 to locale character set. Mark "<anonymous>" for translation.
5245 * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
5246 for identifiers in diagnostics.
5247 * tree.c (handle_dll_attribute): Use %qE for identifiers in
5248 diagnostics.
5249 * varasm.c (output_constructor): Use %qE for identifiers in
5250 diagnostics.
5251
40540e68
RAE
52522009-05-04 Rafael Avila de Espindola <espindola@google.com>
5253
5254 * configure.ac: use ` ` instead of $()
5255 * configure: Regenerate.
5256
33fc884c
BE
52572009-05-05 Ben Elliston <bje@au.ibm.com>
5258
5259 * config/pa/linux-atomic.c: Eliminate conditional include of
5260 errno.h on non-LP64 systems to simplify build requirements.
5261
88388a52
JM
52622009-05-04 Joseph Myers <joseph@codesourcery.com>
5263
5264 * c-common.c (handle_mode_attribute): Use %qE for identifiers in
5265 diagnostics.
5266 * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
5267 and pass value to identifier_to_locale.
5268 (warn_variable_length_array): Make name a tree.
5269 (grokdeclarator): Separate diagnostic texts for named and unnamed
5270 declarators. Use %qE for named declarators.
5271 * c-parser.c (c_lex_one_token): Use %qE for identifiers in
5272 diagnostics.
5273 * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
5274 identifiers in diagnostics.
5275 * c-typeck.c (push_member_name, start_init): Pass identifiers to
5276 identifier_to_locale. Mark "anonymous" strings for translation.
5277
960c5c79
ME
52782009-05-04 Michael Eager <eager@eagercon.com>
5279
5280 * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
aa016ff7 5281 address for DImode/DFmode only if double-precision FP regs.
960c5c79 5282
d083fbba
ME
52832009-05-04 Michael Eager <eager@eagercon.com>
5284
5285 * config/rs6000/rs6000.c (rs6000_libcall_value): Add
5286 TARGET_SINGLE_FLOAT check.
5287
c3ba8d32
ME
52882009-05-04 Michael Eager <eager@eagercon.com>
5289
5290 * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
5291
edce9f18
ME
52922009-05-04 Michael Eager <eager@eagercon.com>
5293
5294 * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
5295 * config/rs6000/t-xilinx: New
5296
506d7b68
PB
52972009-05-04 Paolo Bonzini <bonzini@gnu.org>
5298
e913423f 5299 * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
506d7b68
PB
5300 * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
5301 * gcc/explow.c (memory_address): Use target hook.
5302 * gcc/targhooks.c (default_legitimize_address): New.
5303 * gcc/targhooks.h (default_legitimize_address): New.
5304 * gcc/target.h (legitimize_address): New.
5305 * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
5306 (TARGET_INITIALIZER): Include it.
5307 * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
5308
5309 * config/bfin/bfin-protos.h (legitimize_address): Remove.
5310 * config/bfin/bfin.c (legitimize_address): Remove.
5311 * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
aa016ff7
UB
5312 * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
5313 Remove.
506d7b68
PB
5314 * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
5315 * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
5316
5317 * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
5318 THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
5319 * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
5320 * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
5321 * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
5322 * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
5323 * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
5324 * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
5325 * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
5326 * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
5327 * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
5328 * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
5329 * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
5330 * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
5331 * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
5332 * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
5333 * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
5334 * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
5335 * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
5336 * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
5337 * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
5338 * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
5339 * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
5340
5341 * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
5342 * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
5343 * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
5344 * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
5345 * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
5346 * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
5347 * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
5348 * gcc/config/arm/arm-protos.h (arm_legitimize_address,
5349 (thumb_legitimize_address): Delete.
5350 * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
5351 * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
5352 * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
5353 * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
5354 * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
aa016ff7
UB
5355 * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
5356 Delete.
5357 * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
5358 Delete.
506d7b68
PB
5359
5360 * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
5361 * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
5362 * config/m32r/m32r.c (m32r_legitimize_address): New.
5363 * config/m68k/m68k.c (m68k_legitimize_address): New.
5364 * config/score/score.c (score_legitimize_address): Standardize.
5365 * config/score/score3.c (score3_legitimize_address): Standardize.
5366 * config/score/score3.h (score3_legitimize_address): Adjust.
5367 * config/score/score7.c (score7_legitimize_address): Standardize.
5368 * config/score/score7.h (score7_legitimize_address): Adjust.
5369 * config/sh/sh.c (sh_legitimize_address): New.
5370 * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
5371
5372 * gcc/config/s390/s390.c (legitimize_address): Rename to...
5373 (s390_legitimize_address): ... this.
5374 * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
5375 (sparc_legitimize_address): ... this.
5376 * gcc/config/i386/i386.c (legitimize_address): Rename to...
5377 (ix86_legitimize_address): ... this.
5378 * gcc/config/avr/avr.c (legitimize_address): Rename to...
5379 (avr_legitimize_address): ... this.
5380 * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
5381 (mn10300_legitimize_address): ... this.
5382 * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
5383 (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
5384 (alpha_expand_mov): Adjust call.
5385
5386 * config/frv/frv.c (frv_legitimize_address): Return x on failure.
5387 * config/spu/spu.c (spu_legitimize_address): Likewise.
5388 * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
5389 * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
5390
a3af5087
JM
53912009-05-04 Joseph Myers <joseph@codesourcery.com>
5392
5393 * intl.c (locale_encoding, locale_utf8): New.
5394 (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
5395 * intl.h (locale_encoding, locale_utf8): Declare.
5396 * pretty-print.c: Include ggc.h. Include iconv.h if HAVE_ICONV.
5397 (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
5398 New.
5399 * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
5400 argument.
5401 (pp_tree_identifier): Define to call pp_base_tree_identifier.
5402 (pp_base_tree_identifier): Declare as function.
5403 (identifier_to_locale): Declare.
5404 * Makefile.in (pretty-print.o): Update dependencies.
aa016ff7 5405 * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
a3af5087 5406
ea5cd5f1
RG
54072009-05-04 Richard Guenther <rguenther@suse.de>
5408
5409 PR middle-end/40015
5410 * builtins.c (fold_builtin_memory_op): Do not decay to element
5411 type if the size matches the whole array.
5412
ddc2690a
KH
54132009-05-04 Kazu Hirata <kazu@codesourcery.com>
5414
5415 * expmed.c (synth_mult): When trying out a shift, pass the result
5416 of a signed shift.
5417
ef268d34
KH
54182009-05-04 Kazu Hirata <kazu@codesourcery.com>
5419
5420 * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
5421 (shiftsub1_cost): New.
5422 (init_expmed): Compute shiftsub1_cost.
5423 (synth_mult): Optimize multiplications by constants of the form
5424 -(2^^m-1) for some constant positive integer m.
5425
255d3827
RG
54262009-05-03 Richard Guenther <rguenther@suse.de>
5427
5428 PR c/39983
5429 * c-typeck.c (array_to_pointer_conversion): Do not built
5430 ADDR_EXPRs of arrays of pointer-to-element type.
5431 * c-gimplify.c (c_gimplify_expr): Revert change fixing
5432 up wrong ADDR_EXPRs after-the-fact.
5433 * c-common.c (strict_aliasing_warning): Strip pointer
5434 conversions for obtaining the original type.
5435 * builtins.c (fold_builtin_memset): Handle array types.
5436 (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
5437 and array types
5438
16c33770
RG
54392009-05-03 Richard Guenther <rguenther@suse.de>
5440
5441 PR middle-end/23329
5442 * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
5443 Do not lose casts from array types with unknown extent to array
5444 types with known extent.
5445 * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
5446 alias set compatibility.
5447
62a67c94
MLI
54482009-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
5449
5450 * flags.h (extra_warnings): Delete.
5451 * toplev.c (process_options): Handle Wuninitialized here.
5452 * opts.c (extra_warnings): Delete.
5453 (set_Wextra): Delete.
5454 (common_handle_option): -Wextra can be handled automatically.
5455 * c-opts.c (c_common_handle_option): Delete obsolete code.
5456 (c_common_post_options): Simplify comment.
5457 * common.opt (W): Add Var.
5458 (Wextra): Add Var.
5459 (Wuninitialized): Initialize to -1.
5460
8c7926c4
AN
54612009-05-03 Adam Nemet <anemet@caviumnetworks.com>
5462 Richard Guenther <rguenther@suse.de>
5463
5464 * expr.c (get_def_for_expr): New function.
5465 (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
5466 SSA rather than trees.
5467 <MULT_EXPR>: Likewise. Use subexp0 and subexp1 instead of
5468 TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
5469
fa5da7de
JM
54702009-05-03 Joseph Myers <joseph@codesourcery.com>
5471
5472 * c-common.c (reswords): Add _Imaginary.
5473 * c-common.c (enum rid): Add RID_IMAGINARY.
5474
2ddd5020
PB
54752009-05-03 Paolo Bonzini <bonzini@gnu.org>
5476
5477 * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
5478 Patch by Richard Guenther.
5479
aea88c05
AS
54802009-05-03 Anatoly Sokolov <aesok@post.ru>
5481
5482 * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
5483 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
5484 * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
5485 * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
5486 * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
5487 * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
5488 * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
5489 * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
5490 * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
5491 * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
5492 * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
5493 * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
5494 * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
5495 * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
5496 * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
5497 * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
5498 * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
5499 * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
5500
85e59f3a
RG
55012009-05-02 Richard Guenther <rguenther@suse.de>
5502
5503 PR tree-optimization/39940
5504 * tree-ssa-pre.c (eliminate): Make sure we may propagate before
5505 doing so.
5506
4636b850
RG
55072009-05-02 Richard Guenther <rguenther@suse.de>
5508
5509 PR middle-end/40001
5510 * tree-ssa.c (execute_update_addresses_taken): Properly check
5511 if we can mark a variable DECL_GIMPLE_REG_P.
5512 * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
5513 back to the end of the function.
5514 (is_gimple_reg_type): Remove complex type special casing.
5515 * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
5516 if not optimizing.
5517
5e10cb5a
BE
55182009-05-02 Ben Elliston <bje@au.ibm.com>
5519
5520 * doc/collect2.texi (Collect2): Document search path behaviour
5521 when configured with --with-ld.
5522
048bf48b
JH
55232009-05-02 Jan Hubicka <jh@suse.cz>
5524
5525 * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
5526 parameter; update callers.
aa016ff7
UB
5527 (coalesce_cost_edge): EH edges are costier because they needs
5528 splitting even if not critical and even more costier when there are
5529 multiple EH predecestors.
048bf48b 5530
d5c5f9ab
JH
55312009-05-02 Jan Hubicka <jh@suse.cz>
5532
5533 * except.c (remove_eh_handler_and_replace): Handle updating after
5534 removing TRY blocks.
5535
2ed1959a
EB
55362009-05-02 Eric Botcazou <ebotcazou@adacore.com>
5537
5538 * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
5539
d363a7e7
SB
55402009-05-02 Steven Bosscher <steven@gcc.gnu.org>
5541
5542 * varasm.c: Do not include c-pragma.h.
5543 * attribs.c: Do not incude c-common.h.
5544
9c3d55b4
MM
55452009-05-01 Michael Matz <matz@suse.de>
5546
5547 * calls.c (initialize_argument_information): Handle SSA names like
5548 decls with a non MEM_P DECL_RTL.
5549
ea264ca5
SB
55502009-05-01 Steven Bosscher <steven@gcc.gnu.org>
5551
5552 * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
5553 * ipa-utils.c: Likewise.
5554 * ipa-type-escape.c: Likewise.
5555 * cgraphunit.c Do not include c-common.h.
5556 * ipa-pure-const.c: Likewise.
5557 * tree-if-conv.c: Likewise.
5558 * matrix-reorg.c: Do not include c-common.h and c-tree.h.
5559 * ipa-struct-reorg.c: Likewise.
5560 * tree-nomudflap.c: Likewise.
5561 * tree-ssa-structalias.c: Likewise.
5562
6c5d4d1a
SB
55632009-05-01 Steven Bosscher <steven@gcc.gnu.org>
5564
5565 * store-motion.c: Many cleanups to make this pass a first-class
5566 citizen instead of an appendix to gcse load motion. Add TODO list
5567 to make this pass faster/cleaner/better.
5568
5569 (struct ls_expr): Post gcse.c-split cleanups.
5570 Rename to st_expr. Rename "loads" field to "antic_stores". Rename
5571 "stores" field to "avail_stores".
5572 (pre_ldst_mems): Rename to store_motion_mems.
5573 (pre_ldst_table): Rename to store_motion_mems_table.
5574 (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
5575 (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
5576 (ldst_entry): Rename to st_expr_entry, update users.
5577 (free_ldst_entry): Rename to free_st_expr_entry, update users.
5578 (free_ldst_mems): Rename to free_store_motion_mems, update users.
aa016ff7
UB
5579 (enumerate_ldsts): Rename to enumerate_store_motion_mems,
5580 update caller.
6c5d4d1a
SB
5581 (first_ls_expr): Rename to first_st_expr, update users.
5582 (next_ls_expr): Rename to next_st_expr, update users.
5583 (print_ldst_list): Rename to print_store_motion_mems. Print names of
5584 fields properly for store motion instead of names inherited from load
5585 motion in gcse.c.
5586 (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
5587 (LAST_AVAIL_CHECK_FAILURE): Explain what this is. Undefine when we
5588 are done with it.
5589
5590 (ae_kill): Rename to st_kill, update users.
5591 (ae_gen): Rename to st_avloc, update users.
5592 (transp): Rename to st_transp, update users.
5593 (pre_insert_map): Rename to st_insert_map, update users.
5594 (pre_delete_map): Rename to st_delete_map, update users.
5595 (insert_store, build_store_vectors, free_store_memory,
5596 one_store_motion_pass): Update for abovementioned changes.
5597
5598 (gcse_subst_count, gcse_create_count): Remove.
5599 (one_store_motion_pass): New statistics counters "n_stores_deleted"
5600 and "n_stores_created", local variables.
5601
5602 (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
5603 use for_each_rtx.
5604
5605 (regvec, compute_store_table_current_insn): Remove.
5606 (reg_set_info, reg_clear_last_set): Remove.
5607 (compute_store_table): Use DF caches instead of local dataflow
5608 solvers.
5609
b02cec6e
JM
56102009-05-01 Joseph Myers <joseph@codesourcery.com>
5611
5612 * c-objc-common.c (c_tree_printer): Print identifiers with
5613 pp_identifier, not pp_string. Mark "({anonymous})" for
5614 translation.
5615 * c-pretty-print.c (pp_c_ws_string): New.
5616 (pp_c_cv_qualifier, pp_c_type_specifier,
5617 pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
5618 pp_c_storage_class_specifier, pp_c_function_specifier,
5619 pp_c_attributes, pp_c_bool_constant, pp_c_constant,
5620 pp_c_primary_expression, pp_c_postfix_expression,
5621 pp_c_unary_expression, pp_c_shift_expression,
5622 pp_c_relational_expression, pp_c_equality_expression,
5623 pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
5624 use pp_string and pp_c_ws_string in place of pp_identifier and
5625 pp_c_identifier for non-identifiers. Mark English strings for
5626 translation.
5627 * c-pretty-print.h (pp_c_ws_string): Declare.
5628
cd533689
PP
56292009-04-30 Paul Pluzhnikov <ppluzhnikov@google.com>
5630 Roland McGrath <roland@redhat.com>
5631
aa016ff7 5632 * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
cd533689
PP
5633 (ENABLE_LD_BUILDID): New configuration option.
5634 * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
5635 (LINK_BUILDID_SPEC): New macro.
5636 (init_spec): If defined, prepend it between LINK_EH_SPEC and
5637 link_spec.
5638 * doc/install.texi: Document --enable-linker-build-id option.
5639 * configure: Rebuild.
5640 * config.in: Rebuild.
5641
ba6adec4
AN
56422009-04-30 Adam Nemet <anemet@caviumnetworks.com>
5643
5644 * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
5645 MIPS_GP_SAVE_AREA_SIZE): Define new macros.
5646 (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD. Use
5647 MIPS_GP_SAVE_AREA_SIZE.
5648 * config/mips/mips.c (struct mips_frame_info): Update comment
5649 before arg_pointer_offset and hard_frame_pointer_offset.
5650 (mips_compute_frame_info): Update diagram before function: to
5651 correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
5652 indicate the position of frame_pointer_rtx with -fstack-protector and
5653 to show args_size. Don't allocate cprestore area for leaf functions
5654 if FRAME_GROWS_DOWNWARD. Use MIPS_GP_SAVE_AREA_SIZE to set
5655 cprestore_size.
5656 (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
5657
48f5b722
MM
56582009-04-30 Michael Matz <matz@suse.de>
5659
ba6adec4
AN
5660 PR tree-optimization/39955
5661 * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
48f5b722 5662
b65d6744
DK
56632009-04-30 Dave Korn <dave.korn.cygwin@gmail.com>
5664
5665 * ira.c (setup_cover_and_important_classes): Use safe macro
5666 REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
5667 directly.
5668 * genpreds.c (write_tm_preds_h): Output suitable definition of
5669 REG_CLASS_FOR_CONSTRAINT.
5670
f136c8ae
RAE
56712009-04-30 Rafael Avila de Espindola <espindola@google.com>
5672
5673 * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
5674 instead of an int.
5675 * bitmap.c (bitmap_descriptor): Likewise.
5676 * ggc-common.c (loc_descriptor): Likewise.
5677 * varray.c (varray_descriptor): Likewise.
5678 * vec.c (vec_descriptor): Likewise.
5679
43fcece8 56802009-04-30 Eric Botcazou <ebotcazou@adacore.com>
35debead
EB
5681
5682 * Makefile.in (dce.o): Add $(EXCEPT_H).
5683 * dce.c: Include except.h and delete redundant vector definitions.
5684 (deletable_insn_p): Return false for non-call insns that can throw
5685 if DF is running.
5686
df35c271
SB
56872009-04-30 Steven Bosscher <steven@gcc.gnu.org>
5688
5689 * gcse.c (ae_gen): Remove.
5690 (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
5691 and make non-static function to make it available in store-motion.c.
5692 Update call sites with search-and-replace.
5693 (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
5694 extract_mentioned_regs, extract_mentioned_regs_helper,
5695 find_moveable_store, compute_store_table, load_kills_store, find_loads,
5696 store_killed_in_insn, store_killed_after, store_killed_before,
5697 build_store_vectors, insert_insn_start_basic_block, insert-store,
5698 remove_reachable_equiv_notes, replace_store_insn, delete_store,
5699 free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
5700 execute_rtl_store_motion, pass_rtl_store_motion): Move to...
5701 * store-motion.c: ...new file. Also copy data structures from gcse.c
5702 and clean up to remove parts not used by store motion.
5703 * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
5704 * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
5705
f711a87a
RR
57062009-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5707
5708 PR target/38571
5709 * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
5710 when optimizing for size.
5711
fa5ed76e
HPN
57122009-04-30 Hans-Peter Nilsson <hp@axis.com>
5713
5714 * gcse.c (gcse_constant_p): Fix typo in last change.
5715
0acbbdb0
RAE
57162009-04-30 Rafael Avila de Espindola <espindola@google.com>
5717
5718 * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
5719
82f5c05d
AK
57202009-04-30 Andreas Krebbel <krebbel1@de.ibm.com>
5721
5722 * gcse.c (gcse_constant_p): Make sure the constant is sharable.
5723
6d8f135b
JW
57242009-04-29 James E. Wilson <wilson@codesourcery.com>
5725
5726 * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
5727 CONST_HIGH_PART result.
5728
c21ca196
AS
57292009-04-29 Anatoly Sokolov <aesok@post.ru>
5730
5731 * config/avr/avr.c (initial_elimination_offset): Rename to
5732 avr_initial_elimination_offset.
5733 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
5734 change return type to bool.
5735 (avr_can_eliminate): New function.
5736 * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
5737 (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
5738 (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
0d50d55a 5739 * config/avr/avr-protos.h (initial_elimination_offset): Rename to
c21ca196
AS
5740 avr_initial_elimination_offset.
5741 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
5742 (avr_initial_elimination_offset): Define.
5743
2a34bece 57442009-04-29 Eric Botcazou <ebotcazou@adacore.com>
aa016ff7 5745 Steven Bosscher <steven@gcc.gnu.org>
2a34bece
EB
5746
5747 PR rtl-optimization/39938
5748 * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
5749 * cfgrtl.c: Include insn-attr.h.
5750 (rest_of_pass_free_cfg): New function.
5751 (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
5752 * resource.c (init_resource_info): Remove call to df_analyze.
5753
5dc7911e
RG
57542009-04-29 Richard Guenther <rguenther@suse.de>
5755
5756 PR target/39943
5757 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
5758 allow conversion to signed integers.
5759
1fe479fd
RG
57602009-04-29 Richard Guenther <rguenther@suse.de>
5761
5762 * tree-cfg.c (verify_gimple_assign_binary): Allow vector
5763 shifts of floating point vectors if the shift amount is
5764 a constant multiple of the element size.
5765
8e001680
AK
57662009-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
5767 Michael Matz <matz@suse.de>
5768
5769 PR middle-end/39927
5770 PR bootstrap/39929
5771 * tree-outof-ssa.c (emit_partition_copy): New function.
5772 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
5773 insert_part_to_rtx_on_edge): Perform the partition base var
5774 copy using emit_partition_copy.
5775 (insert_value_copy_on_edge): Convert constants to the right mode.
5776 (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
5777 (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
5778
e50e3081
BS
57792009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
5780
5781 * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
5782 scan backwards to try to find a constant to initialize it.
5783
4e5d521b
BS
5784 * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
5785 insn before the loop_end instruction, don't look past labels.
5786
7c90021d
RG
57872009-04-29 Richard Guenther <rguenther@suse.de>
5788
5789 PR middle-end/39937
5790 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
5791 loose type conversions.
5792 (forward_propagate_addr_expr): Fix tuplification bug. Remove
5793 stmts only if there are no uses of its definition.
5794
97a988bc
BS
57952009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
5796
5797 * config/bfin/bfin.h (splitting_loops): Declare.
5798 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
5799 Reorder bit definitions to be ascending.
5800 (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
5801 * config/bfin/bfin.c (splitting_loops): New variable.
5802 (bfin_cpus): Add WA_LOAD_LCREGS as needed.
5803 (struct loop_info): Remove members INIT and LOOP_INIT.
5804 (bfin_optimize_loop): Don't set them. Reorder the code that generates
aa016ff7
UB
5805 the LSETUP sequence. Allow LC to be loaded from any register, but
5806 also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
97a988bc
BS
5807 (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
5808 set to 1.
5809 * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
5810 of reload_completed.
aa016ff7 5811
97a988bc
BS
5812 From Jie Zhang:
5813 * config/bfin/bfin.md (movsi_insn): Refine constraints.
5814
0c463e16
RAE
58152009-04-29 Rafael Avila de Espindola <espindola@google.com>
5816
5817 * Makefile.in (PLUGIN_VERSION_H): New.
5818 (OBJS-common): Remove plugin-version.o.
5819 (plugin.o): Depend on (PLUGIN_VERSION_H).
5820 (plugin-version.o): Remove.
5821 * configure: Regenerate
5822 * configure.ac: Create plugin-version.h.
5823 * gcc-plugin.h (plugin_gcc_version): Remove.
5824 (plugin_default_version_check): Change signature.
5825 * plugin-version.c: Remove.
5826 * plugin.c: Include plugin-version.h.
5827 (str_plugin_gcc_version_name): Remove.
5828 (try_init_one_plugin): Pass gcc version to plugin_init.
5829 (plugin_default_version_check): Both gcc and plugin versions are now
5830 arguments.
5831
307e7eab
BS
58322009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
5833
5834 * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
5835 problematic last insns. Test for TYPE_CALL rather than CALL_P.
aa016ff7
UB
5836 Remove special case testing for last insn of inner loops. Don't fail
5837 if the loop ends with a jump, emit an extra nop instead.
307e7eab 5838
c5d96723
BS
5839 * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
5840 DREGS rather than comparing directly. Remove code that tries to
5841 account for latencies.
5842
de0b4ad5
RG
58432009-04-29 Richard Guenther <rguenther@suse.de>
5844
5845 PR tree-optimization/39941
5846 * tree-ssa-pre.c (eliminate): Schedule update-ssa after
5847 eliminating an indirect call.
5848
3a19701a
RG
58492009-04-29 Richard Guenther <rguenther@suse.de>
5850
5851 * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
5852 parameter. Allow invariants as base if !require_lvalue.
5853 (verify_gimple_assign_single): Adjust.
5854
a0a31d1e
BS
58552009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
5856
5857 * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
5858 (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
aa016ff7
UB
5859 ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
5860 ssubhi3, ssaddhi3_parts and sssubhi3_parts.
a0a31d1e
BS
5861 (flag_mulhi3_parts): Produce a HImode output rather than trying to set
5862 a VEC_SELECT.
aa016ff7
UB
5863 * config/bfin/bfin.c (bfin_expand_builtin,
5864 case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
a0a31d1e 5865
795bd26a
RG
58662009-04-28 Richard Guenther <rguenther@suse.de>
5867
5868 * tree-vect-loop.c (get_initial_def_for_induction): Use
5869 correct types for pointer increment.
5870
04be270f
KG
58712009-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5872
5873 * toplev.c (print_version): Update GMP version string calculation.
5874
e1a3b85c
EB
58752009-04-28 Eric Botcazou <ebotcazou@adacore.com>
5876
5877 PR rtl-optimization/39938
5878 * resource.c (init_resource_info): Add call to df_analyze.
5879
8224166e
UB
58802009-04-28 Uros Bizjak <ubizjak@gmail.com>
5881
5882 * config/alpha/alpha.md (usegp): Cast the result of
5883 alpha_find_lo_sum_using_gp to enum attr_usegp.
5884 * config/alpha/alpha.c (override_options): Remove end-of-structure
5885 marker element from cpu_table. Use array size of cpu_table to handle
5886 -mcpu and -mtune options.
5887 (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
5888
c5f0fe67
JM
58892009-04-28 Joseph Myers <joseph@codesourcery.com>
5890
5891 * config.gcc (powerpc*-*-* | rs6000-*-*): Add
5892 rs6000/option-defaults.h to tm_file. Support cpu_32, cpu_64,
5893 tune_32 and tune_64.
5894 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
5895 support on PowerPC.
5896 * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
5897 * config/rs6000/option-defaults.h: ... here. New file.
5898 (OPT_64, OPT_32): Define.
5899 (MASK_64BIT): Define to 0 if not already defined.
5900 (OPT_ARCH64, OPT_ARCH32): Define.
5901 (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
5902 and tune_64.
5903
0c48a567
RR
59042009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5905
5906 * config/arm/arm.c (arm_override_options): Emit error on using
5907 fpa with AAPCS.
5908
f1028b9d
UB
59092009-04-28 Uros Bizjak <ubizjak@gmail.com>
5910
5911 PR rtl-optimization/39914
5912 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
5913 registers for allocnos created from user-defined variables only
5914 when not optimizing.
5915
e0dd989a
RG
59162009-04-28 Richard Guenther <rguenther@suse.de>
5917
5918 PR middle-end/39937
5919 * fold-const.c (fold_binary): Use distribute_real_division only
5920 on float types.
5921
9a17c91d
SE
59222009-04-28 Steve Ellcey <sje@cup.hp.com>
5923
5924 * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
5925 add hpux-stdint.h to tm_file.
5926 (hppa[12]*-*-hpux11*): Ditto.
5927 (ia64*-*-hpux*): Ditto.
5928 * config/hpux-stdint.h: New.
60839f5d 5929 * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
9a17c91d 5930 __STDC_EXT__ for all compiles.
60839f5d
EB
5931 * config/pa/pa-hpux.h: Ditto.
5932 * config/pa/pa-hpux10.h: Ditto.
5933 * config/pa/pa-hpux11.h: Ditto.
9a17c91d 5934
af04e659
CM
59352009-04-28 Catherine Moore <clm@codesourcery.com>
5936
5937 * debug.h (set_name): Add comment.
5938
04ef80ce
AP
59392009-04-28 Andrew Pinski <pinskia@gmail.com>
5940
5941 PR target/39929
5942 * config/darwin.c (machopic_gen_offset): Check
5943 currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
5944 * config/arm/arm.c (require_pic_register): Likewise.
5945
65ad77af
PB
59462009-04-28 Paolo Bonzini <bonzini@gnu.org>
5947
8224166e
UB
5948 * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
5949 m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
5950 m32c_promote_prototypes): Delete.
65ad77af 5951
1b15a008
MM
59522009-04-28 Michael Matz <matz@suse.de>
5953
5954 PR middle-end/39922
5955 * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
5956 constants.
5957
7569a6cc
RG
59582009-04-28 Richard Guenther <rguenther@suse.de>
5959
f1028b9d 5960 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
7569a6cc 5961
ead204d9
RR
59622009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5963
5964 * config/arm/arm-cores.def: Add support for arm1156t2f-s.
5965 * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
5966 * config/arm/arm-tune.md: Regenerate.
5967
f2c45f08 59682009-04-28 Alexander Monakov <amonakov@ispras.ru>
60839f5d 5969
f2c45f08
AM
5970 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
5971 block if there are complex incoming edges.
5972 (sel_merge_blocks): Remove useless assert.
5973 (sel_redirect_edge_and_branch): Check that edge was redirected.
5974 * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
5975 (sel_find_rgns): Delete declaration.
5976 * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
5977 the region when it is not a preheader.
5978
7a00d767
UB
59792009-04-28 Uros Bizjak <ubizjak@gmail.com>
5980
5981 PR c/39323
5982 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
5983
448ee662
RG
59842009-04-28 Richard Guenther <rguenther@suse.de>
5985
5986 * tree.h (SSA_NAME_VALUE): Remove.
5987 (struct tree_ssa_name): Remove value_handle member.
5988 * tree-vrp.c (execute_vrp): Initialize/free the value-handle
5989 array for jump threading.
5990 * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
5991 SSA_NAME_VALUEs.
5992 * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
5993 * tree-flow.h (threadedge_initialize_values): Declare.
5994 (threadedge_finalize_values): Likewise.
5995 * tree-ssa-threadedge.c (ssa_name_values): New global variable.
5996 (SSA_NAME_VALUE): Define.
5997 (threadedge_initialize_values): New function.
5998 (threadedge_finalize_values): Likewise.
5999 * tree-ssa-dom.c (ssa_name_values): New global variable.
6000 (SSA_NAME_VALUE): Define.
f1028b9d 6001 (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
448ee662 6002
8644a673
IR
60032009-04-28 Ira Rosen <irar@il.ibm.com>
6004
6005 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
6006 Use REPORT_VECTORIZED_LOCATIONS instead
6007 REPORT_VECTORIZED_LOOPS.
6008 * tree-vectorizer.c (vect_verbosity_level): Make static.
6009 (vect_loop_location): Rename to vect_location.
6010 (vect_set_verbosity_level): Update comment.
6011 (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
6012 and vect_location.
6013 (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
6014 and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
6015 instead REPORT_UNVECTORIZED_LOOPS.
fbdf817d
UB
6016 * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
6017 and vect_loop_def to vect_external_def and vect_internal_def.
8644a673 6018 (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
7a00d767 6019 and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and
8644a673
IR
6020 REPORT_UNVECTORIZED_LOCATIONS.
6021 (enum vect_relevant): Update comment. Rename vect_unused_in_loop
6022 and vect_used_in_loop and to vect_unused_in_scope and
6023 vect_used_in_scope.
6024 (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
6025 (vect_verbosity_level): Remove declaration.
6026 (vect_analyze_operations): Likewise.
6027 (vect_analyze_stmt): Declare.
6028 * tree-vect-loop.c (vect_determine_vectorization_factor): Use
6029 REPORT_UNVECTORIZED_LOCATIONS.
6030 (vect_get_loop_niters): Fix indentation.
6031 (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
6032 (vect_analyze_loop_operations): New function.
6033 (vect_analyze_loop): Call vect_analyze_loop_operations instead of
6034 vect_analyze_operations.
6035 (vect_is_simple_reduction): Use new names.
6036 (vectorizable_live_operation, vect_transform_loop): Likewise.
fbdf817d
UB
6037 * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
6038 to specify whether the data references can be a part of interleaving
6039 chain.
8644a673
IR
6040 (vect_analyze_data_ref_dependence): Use new names.
6041 (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
6042 (vect_create_addr_base_for_vector_ref): Remove redundant code.
6043 * tree-vect-patterns.c (widened_name_p): Use new names.
6044 (vect_recog_dot_prod_pattern): Likewise.
6045 * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
6046 (process_use, vect_mark_stmts_to_be_vectorized,
6047 vect_model_simple_cost, vect_model_store_cost,
6048 vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
6049 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
6050 vectorizable_operation, vectorizable_type_demotion,
6051 vectorizable_type_promotion, vectorizable_store, vectorizable_load,
6052 vectorizable_condition): Likewise.
6053 (vect_analyze_operations): Split into vect_analyze_loop_operations
6054 and ...
6055 (vect_analyze_stmt): ... new function.
6056 (new_stmt_vec_info): Use new names.
6057 (vect_is_simple_use): Use new names and fix comment.
6058 * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
6059 (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
6060
b91322f2
UB
60612009-04-28 Uros Bizjak <ubizjak@gmail.com>
6062
6063 PR target/39911
6064 * config/i386/i386.c (print_operand) ['Z']: Handle floating point
6065 and integer modes for x87 operands. Do not ICE for unsupported size,
6066 generate error instead. Generate error for unsupported operand types.
6067 ['z']: Do not handle HImode memory operands specially. Warning
6068 for floating-point operands. Fallthru to 'Z' for unsupported operand
6069 types. Do not ICE for unsupported size, generate error instead.
6070 (output_387_binary_op): Use %Z to output operands.
6071 (output_fp_compare): Ditto.
6072 (output_387_reg_move): Ditto.
6073
b2ed71b6
BE
60742009-04-28 Ben Elliston <bje@au.ibm.com>
6075
6076 PR c++/35652
6077 Revert:
6078
6079 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6080
6081 * builtins.c (c_strlen): Do not warn here.
6082 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
6083 * c-common.c (pointer_int_sum): Take an explicit location.
6084 Warn about offsets out of bounds.
6085 * c-common.h (pointer_int_sum): Adjust declaration.
6086
81f40b79
ILT
60872009-04-27 Ian Lance Taylor <iant@google.com>
6088
6089 * collect2.c (is_ctor_dtor): Change type of ret field in struct
6090 names to symkind.
6091 * dce.c (run_fast_df_dce): Change type of old_flags to int.
6092 * df-core.c (df_set_flags): Change return type to int. Change
6093 type of old_flags to int.
6094 (df_clear_flags): Likewise.
6095 * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
6096 (df_get_conditional_uses): Likewise.
6097 * df.h (df_set_flags, df_clear_flags): Update declarations.
6098 * dwarf2out.c (struct indirect_string_node): Change type of form
6099 field to enum dwarf_form.
6100 (AT_string_form): Change return type to enum dwarf_form.
6101 * fixed-value.c (fixed_compare): Add cast to enum type.
6102 * fwprop.c (update_df): Change 0 to VOIDmode.
6103 * gensupport.c: Change 0 to UNKNOWN.
6104 * gimple.h (gimple_cond_code): Add cast to enum type.
6105 * haifa-sched.c (reemit_notes): Add cast to enum type.
6106 * hooks.c (hook_int_void_no_regs): Remove function.
6107 * hooks.h (hook_int_void_no_regs): Remove declaration.
6108 * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
7a00d767 6109 * predict.c (combine_predictions_for_insn): Add casts to enum type.
81f40b79
ILT
6110 * real.c (real_arithmetic): Add cast to enum type.
6111 (real_compare): Likewise.
6112 * target.h (struct gcc_target): Change return type of
6113 branch_target_register_class to enum reg_class.
6114 * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
6115 default_branch_target_register_class.
7a00d767 6116 * targhooks.c (default_branch_target_register_class): New function.
81f40b79 6117 * targhooks.h (default_branch_target_register_class): Declare.
7a00d767 6118 * tree-data-ref.c (print_direction_vector): Add cast to enum type.
81f40b79
ILT
6119 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
6120 cast to int.
6121 * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
6122 ERROR_MARK.
6123 * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
6124 vect_uninitialized_def. Change 0 to ERROR_MARK.
6125 * tree-vect-stmts.c (supportable_widening_operation): Don't
6126 initialize icode1 and icode2.
7a00d767 6127 * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
81f40b79
ILT
6128 * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
6129 and to STD_C89.
6130 (cmn_err_flag_specs): Change 0 to STD_C89.
6131 (cmn_err_char_table): Likewise.
6132 * config/arm/arm.c (get_arm_condition_code): Change type of code
6133 to enum arm_cond_code.
6134 (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
6135 (IWMMXT_BUILTIN2): Likewise.
6136 (neon_builtin_type_bits): Don't define typedef.
6137 (neon_builtin_datum): Change type of bits field to int.
6138 (arm_expand_neon_args): Add cast to enum type.
6139 * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
6140 TLS_MODEL_NONE.
6141 * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN. Add
6142 casts to enum type.
6143 * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
6144 MIPS_FP_COND_f.
6145 * config/mips/mips.md (jal_macro): Return enum constant.
6146 (single_insn): Likewise.
6147 * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
6148 CODE_FOR_nothing.
6149 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
6150 casts to enum type.
6151 * config/s390/s390.c (s390_tune_flags): Change type to int.
6152 (s390_arch_flags): Likewise.
7a00d767 6153 (s390_handle_arch_option): Change flags field of struct pta to int.
81f40b79
ILT
6154 * config/s390/s390.h (s390_tune_flags): Update declaration.
6155 (s390_arch_flags): Likewise.
6156 * config/sh/sh.c (prepare_move_operands): Compare
6157 tls_symbolic_operand result with enum constant.
6158 (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
6159 (sh_expand_prologue): Add cast to enum type.
6160 (sh_expand_epilogue): Likewise.
6161 (tls_symbolic_operand): Change return type to enum tls_model.
6162 (fpscr_set_from_mem): Add cast to enum type.
6163 (legitimize_pic_address): Compare tls_symbolic_operand result with
6164 enum constant.
6165 (sh_target_reg_class): Change return type to enum reg_class.
6166 * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
6167 PROCESSOR_xxx.
7a00d767
UB
6168 * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
6169 * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
81f40b79
ILT
6170 * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
6171 (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
6172 (delayed_branch, tls_call_delay): Likewise.
6173 (eligible_for_sibcall_delay): Likewise.
6174 (eligible_for_return_delay): Likewise.
6175 * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
6176 (spu_expand_builtin_1): Likewise.
6177
6178 * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
6179 for all types of conversions.
6180 (output_init_element): Issue -Wc++-compat warning if needed when
6181 initializing a bitfield with enum type.
6182 * c-parser.c (c_parser_expression): Set original_type to
6183 original_type of right hand operand of comman operator.
6184
e4ae5e77
RW
61852009-04-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6186
6187 * doc/c-tree.texi (Types, Functions, Expression trees): Fix
6188 grammar nits.
7a00d767 6189 * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
e4ae5e77
RW
6190 * doc/cpp.texi (Standard Predefined Macros)
6191 (Implementation-defined behavior): Likewise.
7a00d767 6192 * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
e4ae5e77
RW
6193 * doc/gimple.texi (GIMPLE Exception Handling)
6194 (@code{GIMPLE_ASSIGN}): Likewise.
7a00d767 6195 * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
e4ae5e77
RW
6196 * doc/invoke.texi (Warning Options, Optimize Options)
6197 (AVR Options, Darwin Options): Likewise.
6198 (Optimize Options): Reformulate -fwhole-program description.
6199 * doc/loop.texi (Lambda): Likewise.
6200 * doc/md.texi (Output Template, Define Constraints)
6201 (Standard Names, Insn Splitting): Likewise.
6202 * doc/options.texi (Option properties): Likewise.
6203 * doc/passes.texi (Tree-SSA passes): Likewise.
6204 * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
6205 * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
6206 (File Names and DBX): Likewise.
6207 * doc/trouble.texi (Incompatibilities): Likewise.
6208
1883802f 62092009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
6e37f6d4
TS
6210
6211 * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
6212 instruction is correct.
6213
1883802f 62142009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
5345cf68
TS
6215
6216 Allow non-constant arguments to conversion intrinsics.
6217 * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
6218 * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
6219 * spu.c (print_operand): Handle 'v' and 'w'.
6220 (exp2_immediate_p, spu_gen_exp2): Define.
6221 * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
6222 spu_convtf_1): Update parameter descriptions.
7a00d767 6223 * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
5345cf68
TS
6224 * constraints.md ('v', 'w'): New.
6225 * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
6226 Remove.
6227 (i2f, I2F): New define_mode_attr.
6228 (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
6229 floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
6230 fixuns_truncv4sfv4si2): Update to use mode attribute.
6231 (float<mode><i2f>2_mul, float<mode><i2f>2_div,
6232 fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
6233 floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
6234 patterns for combine.
6235
5f39ad47
SB
62362009-04-27 Steven Bosscher <steven@gcc.gnu.org>
6237
6238 * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
6239 (cprop, hoist, pre, store_motion): New debug counters.
6240 * tree-pass.h (pass_tracer): Move to list of gimple passes, it
6241 is not an RTL pass anymore.
6242 (pass_profiling): Remove extern decl for pass removed in 2005.
6243 (pass_gcse, pass_jump_bypass): Remove.
6244 * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
6245 to 0 for clean state.
6246 * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
6247 * cse.c (gate_handle_cse_after_global_opts,
6248 rest_of_handle_cse_after_global_opts): New functions.
6249 (pass_cse_after_global_opts): New pass, does local CSE.
6250 * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
6251 (TV_CPROP): New timevar.
6252 * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
6253 (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
6254 (gcse_main, recompute_all_luids): Remove.
6255 (compute_hash_table_work): Call max_reg_num instead of reading
6256 max_gcse_regno.
6257 (cprop_jump): Don't set run_jump_opt_after_gcse.
6258 (constprop_register): Always allow to alter jumps.
6259 (cprop_insn): Likewise.
6260 (do_local_cprop): Likewise.
6261 (local_cprop_pass): Likewise. Return non-zero if something changed.
6262 (cprop): Remove function, fold interesting bits into one_cprop_pass.
6263 (find_implicit_sets): Add note about missed optimization opportunity.
6264 (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
6265 pass_rtl_cprop execute function.
6266 Don't bother tracking the pass number, each pass gets its own dumpfile
6267 now anyway.
6268 Always allow to alter jumpsand bypass jumps.
6269 (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
6270 will just find no suitable set.
6271 (pre_edge_insert): Fix dumping, this function is for PRE only.
6272 (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
6273 pass_rtl_pre execute function.
6274 (hoist_code): Return non-zero if something changed. Keep track of
6275 substitutions and insertions for statistics gathering similar to PRE.
6276 (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
6277 called from the pass_rtl_hoist execute function. Show pass statistics.
6278 (compute_store_table): Use max_reg_num directly instead of using the
6279 formerly global max_gcse_regno.
6280 (build_store_vectors): Likewise.
6281 (replace_store_insn): Fix dumping.
6282 (store_motion): Rename to ...
6283 (one_store_motion_pass): ... this. Rewrite to be "the" STORE_MOTION
6284 pass, called from the pass_rtl_store_motion execute function. Keep
6285 track of substitutions and insertions for statistics gathering similar
6286 to PRE.
6287 (bypass_jumps): Remove, fold interesting bits into ...
6288 (one_cprop_pass): ... this. Rewrite to be "the" CPROP pass, called
6289 from the pass_rtl_cprop execute function.
6290 (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
6291 pass_jump_bypass): Remove.
6292 (gate_handle_gcse, rest_of_handle_gcse): Remove.
6293 (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
6294 (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
6295 (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
6296 (gate_rtl_store_motion, execute_rtl_store_motion,
6297 pass_rtl_store_motion): New.
6298 * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
6299 make it clear that -fcse-skip-blocks is a no-op for backward compat.
6300 * passes.c (init_optimization_passes): Remove pass_gcse and
6301 pass_jump_bypass. Schedule cprop, pre, hoist, cprop, store_motion,
6302 and cse_after_global_opts in place of pass_gcse. Schedule cprop
6303 instead of pass_jump_bypass.
6304
c685de4a
RG
63052009-04-27 Richard Guenther <rguenther@suse.de>
6306
6307 PR middle-end/39928
6308 * gimplify.c (gimplify_expr): If we are required to create
6309 a temporary make sure it ends up as register.
6310
72d41f29
L
63112009-04-27 H.J. Lu <hongjiu.lu@intel.com>
6312
6313 PR target/39903
6314 * config/i386/i386.c (construct_container): Don't call
6315 gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
6316 X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
6317
e97809c6
MM
63182009-04-27 Michael Matz <matz@suse.de>
6319
6320 * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
6321 (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
6322 * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
6323 (dump_replaceable_exprs): Take a bitmap.
6324 * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
6325 array.
6326 (expand_gimple_basic_block): Likewise.
6327 * tree-ssa-ter.c (struct temp_expr_table_d): Make
6328 replaceable_expressions member a bitmap.
6329 (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
6330 (mark_replaceable): Likewise.
6331 (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
6332 * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
6333
211ca15c
RG
63342009-04-27 Richard Guenther <rguenther@suse.de>
6335
6336 * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
6337 (verify_stmts): Dispatch to gimple/type verification code.
6338 * tree-inline.c (remap_gimple_op_r): Work around C++ FE
6339 issue with call argument types.
6340
fca5f3d1
MM
63412009-04-27 Michael Matz <matz@suse.de>
6342
6343 * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
6344 (init_update_ssa, delete_update_ssa, update_ssa): Remove references
6345 to above.
6346
a1fa3e79 63472009-04-27 Richard Sandiford <rdsandiford@googlemail.com>
8224166e 6348 Eric Botcazou <ebotcazou@adacore.com>
a1fa3e79
EB
6349
6350 * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
6351 a label's basic block.
6352 (mark_target_live_regs): Tidy and rework obsolete comments.
6353 Change back DF problem to LIVE. If a label starts a basic block,
6354 assume that all registers that used to be live then still are.
6355 (init_resource_info): If a label starts a basic block, set its
6356 BLOCK_FOR_INSN accordingly.
6357 (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
6358
33b223c0
RG
63592009-04-27 Richard Guenther <rguenther@suse.de>
6360
6361 * tree-flow-inline.h (function_ann): Remove.
6362 (get_function_ann): Likewise.
6363 * tree-dfa.c (create_function_ann): Remove.
6364 * tree-flow.h (struct static_var_ann_d): Remove.
6365 (struct function_ann_d): Likewise.
6366 (union tree_ann_d): Remove fdecl member.
6367 (function_ann_t): Remove.
6368 (function_ann, get_function_ann, create_function_ann): Remove
6369 declarations.
6370
e3136fa2
UB
63712009-04-27 Uros Bizjak <ubizjak@gmail.com>
6372
6373 * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
6374
f87c9042
JH
63752009-04-27 Jan Hubicka <jh@suse.cz>
6376
6377 * ipa-pure-const.c (struct funct_state_d): New fields
6378 state_previously_known, looping_previously_known; remove
6379 state_set_in_source.
6380 (analyze_function): Use new fields.
6381 (propagate): Avoid assumption that state_set_in_source imply
6382 nonlooping.
6383
6384 * tree-ssa-loop-niter.c (finite_loop_p): New function.
6385 * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
6386 * cfgloop.h (finite_loop_p): Declare.
6387
33abd718
MM
63882009-04-26 Michael Matz <matz@suse.de>
6389
e3136fa2 6390 * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
33abd718 6391
ddc34084
MM
63922009-04-26 Michael Matz <matz@suse.de>
6393
6394 * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
6395 pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
6396 * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
6397 pass_mark_used_blocks): Remove.
6398 * tree-optimize.c (pass_free_datastructures,
6399 execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
6400 * passes.c (init_optimization_passes): Don't call
6401 pass_mark_used_blocks, remove dead code.
6402
1fec7ed4
L
64032009-04-26 H.J. Lu <hongjiu.lu@intel.com>
6404
6405 * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
6406 * tree-ssa-live.h (register_ssa_partition): Likewise.
6407
4e3825db
MM
64082009-04-26 Michael Matz <matz@suse.de>
6409
6410 Expand from SSA.
6411 * builtins.c (fold_builtin_next_arg): Handle SSA names.
6412 * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
6413 * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
6414 SSA names.
6415 (compare_pairs): Swap cost comparison.
6416 (coalesce_ssa_name): Don't use change_partition_var.
6417 * tree-nrv.c (struct nrv_data): Add modified member.
6418 (finalize_nrv_r): Set it.
6419 (tree_nrv): Use it to update statements.
6420 (pass_nrv): Require PROP_ssa.
6421 * tree-mudflap.c (mf_decl_cache_locals,
6422 mf_build_check_statement_for): Use make_rename_temp.
6423 (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
6424 * alias.c (find_base_decl): Handle SSA names.
6425 * emit-rtl (set_reg_attrs_for_parm): Make non-static.
6426 (component_ref_for_mem_expr): Don't leak SSA names into RTL.
6427 * rtl.h (set_reg_attrs_for_parm): Declare.
6428 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
6429 to "optimized", remove unused locals at finish.
6430 (execute_free_datastructures): Make global, call
6431 delete_tree_cfg_annotations.
6432 (execute_free_cfg_annotations): Don't call
6433 delete_tree_cfg_annotations.
6434
6435 * ssaexpand.h: New file.
6436 * expr.c (toplevel): Include ssaexpand.h.
e3136fa2 6437 (expand_assignment): Handle SSA names the same as register variables.
4e3825db
MM
6438 (expand_expr_real_1): Expand SSA names.
6439 * cfgexpand.c (toplevel): Include ssaexpand.h.
6440 (SA): New global variable.
6441 (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
6442 (SSAVAR): New macro.
6443 (set_rtl): New helper function.
6444 (add_stack_var): Deal with SSA names, use set_rtl.
6445 (expand_one_stack_var_at): Likewise.
6446 (expand_one_stack_var): Deal with SSA names.
6447 (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
6448 before unique numbers.
6449 (expand_stack_vars): Use set_rtl.
6450 (expand_one_var): Accept SSA names, add asserts for them, feed them
6451 to above subroutines.
6452 (expand_used_vars): Expand all partitions (without default defs),
6453 then only the local decls (ignoring those expanded already).
6454 (expand_gimple_cond): Remove edges when jumpif() expands an
6455 unconditional jump.
6456 (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
6457 or remove abnormal edges. Ignore insns setting the LHS of a TERed
6458 SSA name.
6459 (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
6460 members of SA; deal with PARM_DECL partitions here; expand
6461 all PHI nodes, free tree datastructures and SA. Commit instructions
6462 on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
6463 (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
6464 info and statements at start, collect garbage at finish.
6465 * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
6466 (VAR_ANN_PARTITION) Remove.
6467 (change_partition_var): Don't declare.
6468 (partition_to_var): Always return SSA names.
6469 (var_to_partition): Only accept SSA names.
6470 (register_ssa_partition): Only check argument.
6471 * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
6472 member.
6473 (delete_var_map): Don't free it.
6474 (var_union): Only accept SSA names, simplify.
6475 (partition_view_init): Mark only useful SSA names as used.
6476 (partition_view_fini): Only deal with SSA names.
6477 (change_partition_var): Remove.
6478 (dump_var_map): Use ssa_name instead of partition_to_var member.
6479 * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
6480 basic blocks.
6481 * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
6482 (struct _elim_graph): New member const_dests; nodes member vector of
6483 ints.
6484 (set_location_for_edge): New static helper.
6485 (create_temp): Remove.
6486 (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
e3136fa2 6487 insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
4e3825db
MM
6488 (new_elim_graph): Allocate const_dests member.
6489 (clean_elim_graph): Truncate const_dests member.
6490 (delete_elim_graph): Free const_dests member.
6491 (elim_graph_size): Adapt to new type of nodes member.
6492 (elim_graph_add_node): Likewise.
6493 (eliminate_name): Likewise.
6494 (eliminate_build): Don't take basic block argument, deal only with
6495 partition numbers, not variables.
6496 (get_temp_reg): New static helper.
6497 (elim_create): Use it, deal with RTL temporaries instead of trees.
6498 (eliminate_phi): Adjust all calls to new signature.
6499 (assign_vars, replace_use_variable, replace_def_variable): Remove.
6500 (rewrite_trees): Only do checking.
6501 (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
6502 (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
6503 init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
6504 contains_tree_r, MAX_STMTS_IN_LATCH,
6505 process_single_block_loop_latch, analyze_edges_for_bb,
6506 perform_edge_inserts): Remove.
6507 (expand_phi_nodes): New global function.
6508 (remove_ssa_form): Take ssaexpand parameter. Don't call removed
6509 functions, initialize new parameter, remember partitions having a
6510 default def.
6511 (finish_out_of_ssa): New global function.
6512 (rewrite_out_of_ssa): Make global. Adjust call to remove_ssa_form,
6513 don't reset in_ssa_p here, don't disable TER when mudflap.
6514 (pass_del_ssa): Remove.
6515 * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
6516 partition members.
6517 (execute_free_datastructures): Declare.
6518 * Makefile.in (SSAEXPAND_H): New variable.
6519 (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
6520 * basic-block.h (commit_one_edge_insertion): Declare.
6521 * passes.c (init_optimization_passes): Move pass_nrv and
6522 pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
6523 pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
6524 * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
6525 (redirect_branch_edge): Deal with super block when expanding, split
6526 out jump patching itself into ...
6527 (patch_jump_insn): ... here, new static helper.
6528
17c665a9
MM
65292009-04-26 Michael Matz <matz@suse.de>
6530
6531 * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
6532 beyond num_ssa_names.
6533 * tree-ssa-ter.c (free_temp_expr_table): Likewise.
6534 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
6535
92061771
JJ
65362009-04-26 Jakub Jelinek <jakub@redhat.com>
6537
ce372372
JJ
6538 PR inline-asm/39543
6539 * fwprop.c (forward_propagate_asm): New function.
6540 (forward_propagate_and_simplify): Propagate also into __asm, if it
6541 doesn't increase the number of referenced registers.
6542
92061771
JJ
6543 PR c/39889
6544 * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
6545
65462009-04-26 Jakub Jelinek <jakub@redhat.com>
77f2a970
JJ
6547
6548 * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
6549 note_nonlocal_vla_type for nonlocal VLAs.
6550 (note_nonlocal_vla_type, note_nonlocal_block_vlas,
6551 contains_remapped_vars, remap_vla_decls): New functions.
6552 (convert_nonlocal_reference_stmt): If not optimizing, call
6553 note_nonlocal_block_vlas on GIMPLE_BIND block vars.
6554 (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
6555 if it wasn't found in var_map.
6556 (finalize_nesting_tree_1): Call remap_vla_decls. If outermost
6557 GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
6558 to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
6559 declare_vars.
6560 * gimplify.c (nonlocal_vlas): New variable.
6561 (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
6562 referenced VLAs.
6563 (gimplify_body): Create and destroy nonlocal_vlas.
a9548ddf 6564
4561e242
JJ
6565 * dwarf2out.c (loc_descr_plus_const): New function.
6566 (build_cfa_aligned_loc, tls_mem_loc_descriptor,
6567 mem_loc_descriptor, loc_descriptor_from_tree_1,
6568 descr_info_loc, gen_variable_die): Use it.
6569
a9548ddf
JJ
6570 * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
6571 !TREE_STATIC VAR_DECLs.
6572 * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
6573 DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
6574 (gen_variable_die): Likewise. Don't look at TREE_PRIVATE if
6575 DECL_BY_REFERENCE is valid.
6576 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
6577 for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
6578 * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
6579 Copy DECL_BY_REFERENCE.
6580 (struct nesting_copy_body_data): New type.
6581 (nesting_copy_decl): New function.
6582 (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
6583 if they have variable length.
6584
10555d08
MM
65852009-04-26 Michael Matz <matz@suse.de>
6586
6587 * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
6588 mark new temporaries for renaming.
6589
e11187cc
JM
65902009-04-26 Joseph Myers <joseph@codesourcery.com>
6591
6592 PR c/39581
6593 * c-decl.c (global_bindings_p): Return negative value.
6594 (c_variable_size): New. Based on variable_size from
6595 stor-layout.c.
6596 (grokdeclarator): Call c_variable_size not variable_size.
6597
f6a51d31
UB
65982009-04-26 Uros Bizjak <ubizjak@gmail.com>
6599
6600 * config/i386/i386.c (print_operand) ['z']: Fix typo.
6601
4b97723d
KT
66022009-04-26 Kai Tietz <kai.tietz@onevision.com>
6603
6604 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
6605 Redefine it to just use mingw/include.
6606 (ASM_SPEC): Rules for -m32 and -m64.
6607 (LINK_SPEC): Use Likewise.
6608 (SPEC_32): New define.
6609 (SPEC_64): Likewise.
6610 (SUB_LINK_SPEC): Likewise.
6611 (MULTILIB_DEFAULTS): New define.
6612 * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
6613 Add multilib options.
6614 (MULTILIB_DIRNAMES): Likewise.
6615 (MULTILIB_OSDIRNAMES): Likewise.
6616 (LIBGCC): Likewise.
6617 (INSTALL_LIBGCC): Likewise.
6618
991d6621
JM
66192009-04-26 Joseph Myers <joseph@codesourcery.com>
6620
6621 PR c/39556
6622 * c-tree.h (enum c_inline_static_type): New.
6623 (record_inline_static): Declare.
6624 * c-decl.c (struct c_inline_static, c_inline_statics,
6625 record_inline_static, check_inline_statics): New.
6626 (pop_file_scope): Call check_inline_statics.
6627 (start_decl): Call record_inline_static instead of pedwarning
6628 directly for static in inline function.
6629 * c-typeck.c (build_external_ref): Call record_inline_static
6630 instead of pedwarning directly for static referenced in inline
6631 function.
6632
4a81774c
SB
66332009-04-26 Steven Bosscher <steven@gcc.gnu.org>
6634
6635 * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
6636 not new but only being rescanned.
6637 * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
6638 reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
6639 alloc_reg_set_mem, free_reg_set_mem, record_one_set,
6640 record_set_info, compute_set, grealloc): Remove.
6641 (recompute_all_luids): New function.
6642 (gcse_main): Don't compute sets, and don't do related memory
6643 allocations/free-ing. If something changed before the end of the
6644 pass, update LUIDs using recompute_all_luids.
6645 (alloc_gcse_mem): Don't compute LUIDs. Don't allocate reg_set memory.
6646 (free_gcse_mem): Don't free it either.
6647 (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
6648 Use the df insn LUIDs.
6649 (load_killed_in_block): Likewise.
6650 (compute_hash_table_work): Don't compute reg_set_in_block.
6651 (compute_transp): Use DF_REG_DEF_CHAINs.
6652 (local_cprop_pass): Don't use compute_sets and related functions.
6653 (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
6654 Use get_max_uid() instead of max_cuid.
6655 (insert_insn_end_basic_block, pre_insert_copy_insn,
6656 update_ld_motion_stores): Don't try to
6657 keep reg_set tables up to date.
6658 (pre_insert_copies): Use df insn LUIDs.
6659 (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
6660 (reg_set_info): Don't use extra bitmap argument.
6661 (compute_store_table): Don't compute reg_set_in_block. Use DF scan
6662 information to compute regs_set_in_block.
6663 (free_store_memory, store_motion): Don't nullify reg_set_in_block.
6664 (bypass_jumps): Don't use compute_sets and friends.
6665
e8f99a9d
RW
66662009-04-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6667
6668 PR testsuite/39710
6669 * opts.c (undocumented_msg): Do not leave blank even with
6670 ENABLE_CHECKING.
6671
6895bac8
JM
66722009-04-25 Joseph Myers <joseph@codesourcery.com>
6673
6674 * c-decl.c (build_enumerator): Allow values folding to integer
6675 constants but not integer constant expressions with a pedwarn if
6676 pedantic.
6677
24070fcb
JM
66782009-04-25 Joseph Myers <joseph@codesourcery.com>
6679
6680 PR c/39582
6681 * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
6682 with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
6683 type is an integer constant.
6684
d6d89aa1
UB
66852009-04-25 Uros Bizjak <ubizjak@gmail.com>
6686
6687 PR target/39897
6688 * config/i386/i386.c (print_operand) ['z']: Revert handling of
6689 HImode operands.
6690
92f6fd0b
JM
66912009-04-25 Joseph Myers <joseph@codesourcery.com>
6692
6693 PR c/39564
6694 * c-decl.c (grokdeclarator): Diagnose declarations of functions
6695 with variably modified return type and no storage class
6696 specifiers, except for the case of nested functions. Distinguish
6697 extern declarations of functions with variably modified return
6698 types from those of objects with variably modified types.
6699
a3710436
JH
67002009-04-25 Jan Hubicka <jh@suse.cz>
6701
6702 * tree.c (list_equal_p): New function.
6703 * tree.h (list_equal_p): Declare.
6704 * coretypes.h (edge_def, edge, const_edge, basic_block_def
6705 basic_block_def, basic_block, const_basic_block): New.
6706 * tree-eh.c (make_eh_edge): EH edges are not abnormal.
6707 (redirect_eh_edge): New function.
6708 (make_eh_edge_update_phi): EH edges are not abnormal.
6709 * except.c: Include tree-flow.h.
6710 (list_match): New function.
6711 (eh_region_replaceable_by_p): New function.
6712 (replace_region): New function.
6713 (hash_type_list): New function.
6714 (hash_eh_region): New function.
6715 (eh_regions_equal_p): New function.
6716 (merge_peers): New function.
6717 (remove_unreachable_regions): Verify EH tree when checking;
6718 merge peers.
6719 (copy_eh_region_1): New function.
6720 (copy_eh_region): New function.
6721 (push_reachable_handler): New function.
6722 (build_post_landing_pads, dw2_build_landing_pads): Be ready for
6723 regions without label but with live RESX.
6724 * except.h (redirect_eh_edge_to_label): New.
6725 * tree-flow.h (redirect_eh_edge): New.
6726 * coretypes.h (edge_def, edge, const_edge, basic_block_def
6727 basic_block_def, basic_block, const_basic_block): Remove.
6728 * Makefile.in (except.o): Add dependency on tree-flow.h
6729 * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
6730 * basic-block.h (edge, const_edge, basic_block, const_basic_block):
6731 Remove.
6732
3764d512
EB
67332009-04-25 Eric Botcazou <ebotcazou@adacore.com>
6734
6735 PR bootstrap/39645
6736 * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
6737 on the destination of memcpy.
6738
1c62e8f2
PB
67392009-04-25 Paolo Bonzini <bonzini@gnu.org>
6740
6741 * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
6742 REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
6743 REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
6744
496a4ef5
JH
67452009-04-25 Jan Hubicka <jh@suse.cz>
6746
6747 * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
6748 (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
6749 to be reached by different label than left.
6750 (update_eh_edges): Update comment; remove edge_to_remove if possible
6751 and return true if suceeded.
6752 (cleanup_empty_eh): Accept sharing map; handle shared regions.
6753 (cleanup_eh): Compute sharing map.
6754 * except.c (remove_eh_handler_and_replace): Add argument if we should
6755 update regions.
6756 (remove_unreachable_regions): Update for label sharing.
6757 (label_to_region_map): Likewise.
6758 (get_next_region_sharing_label): New function.
6759 (remove_eh_handler_and_replace): Add update_catch_try parameter; update
6760 prev_try pointers.
6761 (remove_eh_handler): Update.
6762 (remove_eh_region_and_replace_by_outer_of): New function.
6763 * except.h (struct eh_region): Add next_region_sharing_label.
6764 (remove_eh_region_and_replace_by_outer_of,
6765 get_next_region_sharing_label): Declare.
6766 * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
6767
67682009-04-25 Jan Hubicka <jh@suse.cz>
6769
6770 * tree-cfg.c (split_critical_edges): Split also edges where we can't
6771 insert code even if they are not critical.
6772
67732009-04-25 Jan Hubicka <jh@suse.cz>
6774
6775 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
6776 (gimple_can_remove_branch_p): EH edges won't remove branch by
6777 redirection.
6778 * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
6779 updating of non-abnormal EH edges.
6780 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
6781 (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
6782 (split_critical_edges): Split also edges where emitting code on them
6783 will lead to splitting later.
6784
a3a5e3d1
UB
67852009-04-25 Uros Bizjak <ubizjak@gmail.com>
6786 H.J. Lu <hongjiu.lu@intel.com>
6787
6788 PR target/39590
6789 * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
6790 the configured assembler supports fildq and fistpq mnemonics.
6791 (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
6792 * configure: Regenerated.
6793 * config.in: Ditto.
6794
6795 * config/i386/i386.c (print_operand): Handle 'Z'.
6796 ['z']: Remove handling of special fild/fist suffixes.
6797 (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
6798 * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
6799 suffix of fild insn.
6800 (*floatsi<mode>2_vector_mixed): Ditto.
6801 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
6802 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
6803 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
6804 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
6805 * config/i386/gas.h (GAS_MNEMONICS): Remove.
6806
23750d7f
BE
68072009-04-25 Ben Elliston <bje@au.ibm.com>
6808
6809 * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
6810 the source of a set operation.
6811
e6ff3083
AS
68122009-04-25 Anatoly Sokolov <aesok@post.ru>
6813
6814 * target.h (struct gcc_target): Add case_values_threshold field.
6815 * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
6816 (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
6817 * targhooks.c (default_case_values_threshold): New function.
6818 * targhooks.h (default_case_values_threshold): Declare function.
6819 * stmt.c (expand_case): Use case_values_threshold target hook.
6820 * expr.h (case_values_threshold): Remove declartation.
6821 * expr.c (case_values_threshold): Remove function.
6822 * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
6823
6824 * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
6825 * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
6826 (avr_case_values_threshold): Declare as static.
6827 * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
6828
6829 * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
6830 * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
6831 (mn10300_case_values_threshold): New function.
6832
569c72fc
L
68332009-04-24 H.J. Lu <hongjiu.lu@intel.com>
6834
6835 * ira.c (setup_cover_and_important_classes): Add enum cast.
6836
ff3cb468
VM
68372009-04-24 Vladimir Makarov <vmakarov@redhat.com>
6838
6839 * genpreds.c (write_enum_constraint_num): Output definition of
6840 CONSTRAINT_NUM_DEFINED_P macro.
6841 * ira.c (setup_cover_and_important_classes): Use
6842 CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
6843
4f7be849
DD
68442009-04-24 DJ Delorie <dj@redhat.com>
6845
6846 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
6847 __SH2A_SINGLE_ONLY__ also.
6848
735b94a7
SE
68492009-04-24 Steve Ellcey <sje@cup.hp.com>
6850
6851 * config/ia64/ia64.md (movfs_internal): Allow flt constants.
6852 (movdf_internal): Ditto.
6853 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
6854 SFmode and DFmode constants.
6855 (ia64_print_operand): Add 'G' format for printing
6856 floating point constants.
6857
77a30264
RG
68582009-04-24 Richard Guenther <rguenther@suse.de>
6859
6860 * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
6861 from unsigned additions.
6862
2b6da65c
JM
68632009-04-24 Joseph Myers <joseph@codesourcery.com>
6864
6865 * c-typeck.c (set_init_index): Allow array designators that are
6866 not integer constant expressions with a pedwarn if pedantic.
6867
f5a17c43
BS
68682009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
6869
6870 * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
6871 zero if no overlap in nonzero bits between the operands.
6872
32e8bb8e
ILT
68732009-04-24 Ian Lance Taylor <iant@google.com>
6874
6875 * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
6876 (record_dead_and_set_regs): Likewise.
6877 * df.h (struct df_mw_hardreg): Change flags field to int.
6878 (struct df_base_ref): Likewise.
6879 (struct df): Change changeable_flags field to int.
6880 * df-scan.c (df_defs_record): Change clobber_flags to int.
6881 * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
6882 constants rather than #define macros.
6883 (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
6884 (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
6885 (enum dwarf_calling_convention): Likewise.
6886 (enum dwarf_line_number_x_ops): Likewise.
6887 (enum dwarf_call_frame_info): Likewise.
6888 (enum dwarf_source_language): Likewise.
6889 * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
6890 (add_calling_convention_attribute): Likewise.
a3a5e3d1
UB
6891 * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
6892 (combine_comparisons): Change compcode to int. Add cast to enum type.
32e8bb8e
ILT
6893 * genrecog.c (maybe_both_true_2): Change c to int.
6894 (write_switch): Likewise. Add cast to enum type.
6895 * gimplify.c (gimplify_omp_for): Handle return values from
6896 gimplify_expr using MIN rather than bitwise or.
6897 (gimplify_expr): Add cast to enum type.
6898 * ipa-prop.c (update_jump_functions_after_inlining): Change
6899 IPA_BOTTOM to IPA_JF_UNKNOWN.
a3a5e3d1
UB
6900 * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
6901 Add casts to enum type.
32e8bb8e
ILT
6902 (setup_cover_and_important_classes): Change cl to int. Add casts
6903 to enum type.
6904 (setup_class_translate): Change cl and mode to int.
6905 (ira_init_once): Change mode to int.
6906 (free_register_move_costs): Likewise.
6907 (setup_prohibited_mode_move_regs): Add casts to enum type.
6908 * langhooks.c (add_builtin_function_common): Rework assertion that
6909 value fits bitfield.
6910 * mcf.c (add_fixup_edge): Change type parameter to edge_type.
6911 * omega.c (omega_do_elimination): Avoid math on enum types.
6912 * optabs.c (expand_vec_shift_expr): Remove casts to int.
6913 * opts.c (set_debug_level): Change 2 to enum constant. Use new
6914 int local to handle integral_argment value.
6915 * regmove.c (try_auto_increment): Change PUT_MODE to
6916 PUT_REG_NOTE_KIND.
6917 * reload.c (push_secondary_reload): Add casts to enum type.
6918 (secondary_reload_class, find_valid_class): Likewise.
6919 * reload1.c (emit_input_reload_insns): Likewise.
6920 * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
6921 * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
6922 * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
6923 constant.
6924 * tree.c (build_common_builtin_nodes): Add casts to enum type.
6925 * tree-complex.c (complex_lattice_t): Typedef to int rather than
6926 enum type.
6927 (expand_complex_libcall): Add casts to enum type.
6928 * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
6929 * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
6930 with ERROR_MARK, not NUM_TREE_CODES.
6931 (vect_create_epilog_for_reduction): Likewise.
6932 (vectorizable_reduction): Don't initialize epiloc_reduc_code.
a3a5e3d1 6933 When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
32e8bb8e
ILT
6934 * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
6935 enum machine_mode.
6936 * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
6937 vect_unused_in_loop. Change 0 to loop_vect.
a3a5e3d1 6938 * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
32e8bb8e
ILT
6939 * var-tracking.c (get_init_value): Change return type to enum
6940 var_init_status.
6941 * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
6942 * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
6943 arm_fp_model.
6944 (arm_override_options): Add casts to enum type.
6945 (arm_emit_tls_decoration): Likewise.
6946 * config/i386/i386.c (ix86_function_specific_restore): Add casts
6947 to enum type.
6948 * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
6949 * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
6950 * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
6951 enum type.
6952 * config/s390/s390.c (code_for_builtin_64): Change to array of
6953 enum insn_code.
6954 (code_for_builtin_31): Likewise.
6955 (s390_expand_builtin): Change code_for_builtin to enum insn_code
6956 const *.
6957 * config/sparc/sparc.c (sparc_override_options): Change value
6958 field in struct code_model to enum cmodel. In initializer change
6959 0 to NULL and add cast to enum type.
6960
6961 * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
6962 Change all callers. Issue a -Wc++-compat warning using
6963 lhs_origtype if necessary.
6964 (convert_for_assignment): Issue -Wc++-compat warnings about
6965 invalid conversions to enum type on assignment.
6966 * c-common.h (build_modify_expr): Update declaration.
6967
ac4fc08a
NC
69682009-04-24 Nick Clifton <nickc@redhat.com>
6969
6970 * config/iq2000/iq2000.c (function_arg): Handle TImode values.
6971 (function_arg_advance): Likewise.
6972 * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
6973 5th alternative.
6974
f22e891a
AK
69752009-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
6976
6977 * config/s390/constraints.md ('I', 'J'): Fix condition.
6978
ad58aabe
DN
69792009-04-24 Diego Novillo <dnovillo@google.com>
6980
6981 * gengtype-parse.c (parse_error): Add newline after message.
6982
879a4a01
L
69832009-04-24 H.J. Lu <hongjiu.lu@intel.com>
6984
6985 * config/i386/sse.md (avxmodesuffixs): Removed.
6986 (*avx_pinsr<avxmodesuffixs>): Renamed to ...
6987 (*avx_pinsr<ssevecsize>): This.
6988
f63426af
BS
69892009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
6990
6991 * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
6992 follow chains of regs with a single definition, and allow expressions
6993 that are function_invariant_p.
ce72fe6c 6994 (simple_rhs_p): Allow expressions that are function_invariant_p.
f63426af 6995
30349c74
PB
69962009-04-24 Paolo Bonzini <bonzini@gnu.org>
6997
6998 PR middle-end/39867
6999 * fold-const.c (fold_cond_expr_with_comparison): When folding
7000 > and >= to MAX, make sure the MAX uses the same type as the
7001 comparison's operands.
7002
8d8256c1
NC
70032009-04-24 Nick Clifton <nickc@redhat.com>
7004
7005 * config/frv/frv.c (frv_frame_access): Do not use reg+reg
7006 addressing for DImode accesses.
7007 (frv_print_operand_address): Handle PLUS case.
a3a5e3d1 7008 * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
8d8256c1 7009
6216f94e
JJ
70102009-04-24 Jakub Jelinek <jakub@redhat.com>
7011
7012 PR rtl-optimization/39794
7013 * alias.c (canon_true_dependence): Add x_addr argument.
7014 * rtl.h (canon_true_dependence): Adjust prototype.
7015 * cse.c (check_dependence): Adjust canon_true_dependence callers.
7016 * cselib.c (cselib_invalidate_mem): Likewise.
7017 * gcse.c (compute_transp): Likewise.
7018 * dse.c (scan_reads_nospill): Likewise.
7019 (record_store, check_mem_read_rtx): Likewise. For non-const-or-frame
7020 addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
7021 canon_base_addr of the group, plus optional offset.
7022 (struct group_info): Rename canon_base_mem to
7023 canon_base_addr.
7024 (get_group_info): Set canon_base_addr to canon_rtx of base, not
7025 canon_rtx of base_mem.
7026
6de7a512
PB
70272009-04-23 Paolo Bonzini <bonzini@gnu.org>
7028
7029 * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
7030 Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
7031
4a3a2376
UW
70322009-04-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7033
7034 * config/spu/spu-builtins.h: Delete file.
7035
7036 * config/spu/spu.h (enum spu_builtin_type): Move here from
7037 spu-builtins.h.
7038 (struct spu_builtin_description): Likewise. Add GTY marker.
7039 Do not use enum spu_function_code or enum insn_code.
7040 (spu_builtins): Add extern declaration.
7041
7042 * config/spu/spu.c: Do not include "spu-builtins.h".
7043 (enum spu_function_code, enum spu_builtin_type_index,
7044 V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
7045 V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
7046 unsigned_V8HI_type_node, unsigned_V4SI_type_node,
7047 unsigned_V2DI_type_node): Move here from spu-builtins.h.
7048 (spu_builtin_types): Make static. Add GTY marker.
7049 (spu_builtins): Add extern declaration with GTY marker.
7050 Include "gt-spu.h".
7051
7052 * config/spu/spu-c.c: Do not include "spu-builtins.h".
7053 (spu_resolve_overloaded_builtin): Do not use spu_function_code.
7054 Check programmatically whether all parameters are scalar.
7055
7056 * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
7057
bbaba73f
EB
70582009-04-23 Eric Botcazou <ebotcazou@adacore.com>
7059
7060 * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
7061 assignment from the constructor either if the target is volatile.
7062
ee93c1c6
DJ
70632009-04-23 Daniel Jacobowitz <dan@codesourcery.com>
7064
7065 * config/arm/arm.md (insv): Do not share operands[0].
7066
b2f21330
NS
70672009-04-23 Nathan Sidwell <nathan@codesourcery.com>
7068
7069 * config/vxlib-tls.c (active_tls_threads): Delete.
7070 (delete_hook_installed): New.
7071 (tls_delete_hook): Don't delete the delete hook.
7072 (tls_destructor): Delete it here.
7073 (__gthread_set_specific): Adjust installing the delete hook.
7074 (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
7075 __gthread_leave_tsd_dtor_context.
7076
4782dfa7
RAE
70772009-04-23 Rafael Avila de Espindola <espindola@google.com>
7078
7079 * c-format.c (gcc_tdiag_char_table): Add support for %E.
7080
bf758008
UB
70812009-04-23 Uros Bizjak <ubizjak@gmail.com>
7082
7083 * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
7084 enum type.
7085 (alpha_rtx_costs): Ditto.
7086 (emit_unlikely_jump): Use add_reg_note.
7087 (emit_frame_store_1): Ditto.
7088 (alpha_expand_prologue): Ditto.
7089 (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
7090 * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
7091
7323a100
NC
70922009-04-23 Nick Clifton <nickc@redhat.com>
7093
7094 * config/v850/v850.md (epilogue): Remove suppressed code.
7095 (return): Rename to return_simple and remove test of frame size.
7096 * config/v850/v850.c (expand_epilogue): Rename call to gen_return
7097 to gen_return_simple.
7098
360032ba
JY
70992009-04-22 Jing Yu <jingyu@google.com>
7100
7101 PR testsuite/39781
7102 * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
7103
53650abe
AP
71042009-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
7105
7106 PR C/31499
7107 * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
7108 and RECORD_TYPE/UNION_TYPE. When outputing the actual element and the
7109 value is a VECTOR_CST, the element type is the element type of the
7110 vector.
7111
89043e8a
DD
71122009-04-22 DJ Delorie <dj@redhat.com>
7113
7114 * config/m32c/m32c.h: Update GTY annotations to new syntax.
7115
023f059b
JJ
71162009-04-22 Jakub Jelinek <jakub@redhat.com>
7117
7118 * alias.c (find_base_term): Move around LO_SUM case, so that
7119 CONST falls through into PLUS/MINUS handling.
7120
2c0eba5a
JJ
7121 PR c/39855
7122 * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
7123 into 0, use omit_one_operand.
7124
9a461028
BE
71252009-04-23 Ben Elliston <bje@au.ibm.com>
7126
7127 * config/rs6000/linux-unwind.h (get_regs): Remove type
7128 puns. Change the type of `pc' to an array of unsigned ints and
7129 update all users. Constify frame24.
7130
653e2568
DD
71312009-04-22 DJ Delorie <dj@redhat.com>
7132
7133 * config/m32c/m32c.c (m32c_special_page_vector_p): Move
7134 declarations before code.
7135 (current_function_special_page_vector): Likewise.
7136 (m32c_expand_insv): Silence a warning.
7137
60839f5d 71382009-04-21 Taras Glek <tglek@mozilla.com>
d1b38208
TG
7139
7140 * alias.c: Update GTY annotations to new syntax.
7141 * basic-block.h: Likewise.
7142 * bitmap.h: Likewise.
7143 * c-common.h: Likewise.
7144 * c-decl.c: Likewise.
7145 * c-parser.c: Likewise.
7146 * c-pragma.c: Likewise.
7147 * c-tree.h: Likewise.
7148 * cfgloop.h: Likewise.
7149 * cgraph.h: Likewise.
7150 * config/alpha/alpha.c: Likewise.
7151 * config/arm/arm.h: Likewise.
7152 * config/avr/avr.h: Likewise.
7153 * config/bfin/bfin.c: Likewise.
7154 * config/cris/cris.c: Likewise.
7155 * config/darwin.c: Likewise.
7156 * config/frv/frv.c: Likewise.
7157 * config/i386/i386.c: Likewise.
7158 * config/i386/i386.h: Likewise.
7159 * config/i386/winnt.c: Likewise.
7160 * config/ia64/ia64.h: Likewise.
7161 * config/iq2000/iq2000.c: Likewise.
7162 * config/mips/mips.c: Likewise.
7163 * config/mmix/mmix.h: Likewise.
7164 * config/pa/pa.c: Likewise.
7165 * config/pa/pa.h: Likewise.
7166 * config/rs6000/rs6000.c: Likewise.
7167 * config/s390/s390.c: Likewise.
7168 * config/sparc/sparc.c: Likewise.
7169 * config/xtensa/xtensa.c: Likewise.
7170 * cselib.h: Likewise.
7171 * dbxout.c: Likewise.
7172 * dwarf2out.c: Likewise.
7173 * except.c: Likewise.
7174 * except.h: Likewise.
7175 * fixed-value.h: Likewise.
7176 * function.c: Likewise.
7177 * function.h: Likewise.
7178 * gimple.h: Likewise.
7179 * integrate.c: Likewise.
7180 * optabs.c: Likewise.
7181 * output.h: Likewise.
7182 * real.h: Likewise.
7183 * rtl.h: Likewise.
7184 * stringpool.c: Likewise.
7185 * tree-data-ref.c: Likewise.
7186 * tree-flow.h: Likewise.
7187 * tree-scalar-evolution.c: Likewise.
7188 * tree-ssa-address.c: Likewise.
7189 * tree-ssa-alias.h: Likewise.
7190 * tree-ssa-operands.h: Likewise.
7191 * tree.c: Likewise.
7192 * tree.h: Likewise.
7193 * varasm.c: Likewise.
7194 * varray.h: Likewise.
7195 * vec.h: Likewise.
bf758008 7196 * coretypes.h: Do not define GTY macro if it is already defined.
d1b38208
TG
7197 * doc/gty.texi: Update GTY documentation to new syntax.
7198 * gengtype-lex.l: Enforce attribute-like syntax for GTY
7199 annotations on structs.
7200 * gengtype-parse.c: Likewise.
7201
a123d175
MH
72022009-04-22 Mark Heffernan <meheff@google.com>
7203
bf758008 7204 * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
a123d175 7205
4c7c486a
KH
72062009-04-22 Kazu Hirata <kazu@codesourcery.com>
7207
7208 * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
7209 where appropriate.
7210
6e782a29
KH
72112009-04-22 Kazu Hirata <kazu@codesourcery.com>
7212
7213 * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
7214 the same as a PLUS without a shift. Increase the cost of a
7215 CONST_INT in MULT.
7216
38d2336a
MLI
72172009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7218
7219 * Makefile.in: Update dependencies.
bf758008 7220 * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
38d2336a
MLI
7221 * errors.h: Remove bogus comment about compatibility.
7222 (warning): Update declaration.
7223 * genautomata.c: Update all calls to warning.
7224 * gimple.c: Do not include errors.h. Include toplev.h.
7225 * tree-ssa-structalias.c: Do not include errors.h.
7226 * omega.c: Likewise.
7227 * tree-ssa-reassoc.c: Likewise.
7228 * config/spu/spu-c.c: Likewise.
7229 * config/spu/t-spu-elf: Update dependencies.
7230
aea4deba
RG
72312009-04-22 Richard Guenther <rguenther@suse.de>
7232
7233 PR tree-optimization/39824
7234 * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
7235 make sure the types are compatible.
7236
cfc93532
MLI
72372009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7238
7239 PR c++/14875
7240 * c-common.c (c_parse_error): Take a token_flags parameter.
7241 Use token_type for the token type instead.
7242 Pass token_flags to cpp_type2name.
7243 * c-common.h (c_parse_error): Update declaration.
7244 * c-parser.c (c_parser_error): Pass 0 as token flags.
7245
8632d02a
AB
72462009-04-22 Andrey Belevantsev <abel@ispras.ru>
7247
7248 PR rtl-optimization/39580
7249 * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert.
7250
4c33221c
UW
72512009-04-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7252
7253 * function.c (expand_function_end): Do not emit a jump to the "naked"
7254 return label for fall-through returns.
7255 * except.c (sjlj_emit_function_exit): Always place the call to the
7256 unregister function at the location installed by expand_function_end.
7257
9925bce0
RG
72582009-04-22 Richard Guenther <rguenther@suse.de>
7259
7260 PR tree-optimization/39845
7261 * tree-switch-conversion.c (build_arrays): Add new referenced vars.
7262 (gen_inbound_check): Likewise.
7263
24a40b35
NS
72642009-04-22 Nathan Sidwell <nathan@codesourcery.com>
7265
7266 * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
7267 padding for PPC.
7268 (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
7269 * config/vxlib.c (__gthread_once): Add race guard for PPC.
7270
6c34a092
PB
72712009-04-22 Paolo Bonzini <bonzini@gnu.org>
7272
7273 * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
7274 sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
7275 shift counts to avoid out-of-bounds array accesses.
7276
baa48dfa
PB
72772009-04-22 Paolo Bonzini <bonzini@gnu.org>
7278
7279 * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
7280 (Pmode): Move above.
7281
7d83f4f5
UB
72822009-04-22 Uros Bizjak <ubizjak@gmail.com>
7283
7284 * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
7285 NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
7286 GET_CODE macro. Use IN_RANGE macro where appropriate.
7287 * config/alpha/alpha.h: Ditto.
7288 * config/alpha/alpha.md: Ditto.
7289 * config/alpha/constraints.md: Ditto.
7290 * config/alpha/predicates.md: Ditto.
7291
3ad606bc
PB
72922009-04-22 Paolo Bonzini <bonzini@gnu.org>
7293
7294 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
7295 * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7296 * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7297 * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7298 * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7299 * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7300 * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7301 * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7302 * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7303 * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7304 * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7305 * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7306 * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7307 * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7308 * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7309 * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7310 * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7311 * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7312 * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7313 * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7314 * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7315 * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7316 * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7317 * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7318 * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7319 * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7320 * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7321
3cabd6d1
LB
73222009-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
7323
7324 * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
7325 references from comments.
7326 * cfgbuild.c: (count_basic_blocks): Delete.
7327 (find_basic_blocks_1): Delete.
7328 (find_basic_blocks): Delete.
7329 * except.c (finish_eh_generation): Make static. Move comment from
7d83f4f5 7330 except.h here. Remove find_basic_blocks references from comments.
3cabd6d1
LB
7331 * except.h (finish_eh_generation): Delete.
7332 * basic-block.h (find_basic_blocks): Delete.
7333 * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
7334
270d1bcd
DK
73352009-04-22 Dave Korn <dave.korn.cygwin@gmail.com>
7336
7337 * sdbout.c (sdbout_symbol): Pass VOIDmode to eliminate_regs.
7338 (sdbout_parms): Likewise.
7339
b757d36f
KK
73402009-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
7341
7342 * config/sh/sh.c (prepare_cbranch_operands): Use
7343 LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
7344 (expand_cbranchdi4): Likewise.
7345 (from_compare): Add cast to enum type.
7346 (expand_cbranchsi4): Use add_reg_note.
7347 (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
7348 (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
7349 (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
7350 (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
7351 * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
7352 instead of CODE_FOR_nothing.
7353 (cbranchdi4): Likewise. Fix the order of arguments for
7354 gen_rtx_fmt_ee.
7355 (push_fpscr): Use add_reg_note.
7356 (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
7357 reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
7358
ad41bd84
JM
73592009-04-21 Joseph Myers <joseph@codesourcery.com>
7360
7361 * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
7362 ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
7363 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
7364 ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
7365 ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
7366 FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
7367 config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
7368 config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
7369 config/alpha/x-vms, config/arc/t-arc,
7370 config/arm/README-interworking, config/arm/arm-c.c,
7371 config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
7372 config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
7373 config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
7374 config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
7375 config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
7376 config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
7377 config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
7378 config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
7379 config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
7380 config/cris/t-elfmulti, config/crx/t-crx,
7381 config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
7382 config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
7383 config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
7384 config/h8300/t-h8300, config/i386/athlon.md,
7385 config/i386/darwin-libgcc.10.4.ver,
7386 config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
7387 config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
7388 config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
7389 config/i386/t-linux64, config/i386/t-nwld,
7390 config/i386/t-rtems-i386, config/i386/t-sol2-10,
7391 config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
7392 config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
7393 config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
7394 config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
7395 config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
7396 config/iq2000/t-iq2000, config/libgcc-glibc.ver,
7397 config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
7398 config/m32r/t-m32r, config/m68hc11/t-m68hc11,
7399 config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
7400 config/m68k/t-uclinux, config/mcore/t-mcore,
7401 config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
7402 config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
7403 config/mips/crtn.asm, config/mips/irix-crti.asm,
7404 config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
7405 config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
7406 config/mips/mips-fixed.md, config/mips/sb1.md,
7407 config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
7408 config/mips/t-iris6, config/mips/t-isa3264,
7409 config/mips/t-libgcc-mips16, config/mips/t-linux64,
7410 config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
7411 config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
7412 config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
7413 config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
7414 config/mn10300/t-linux, config/mn10300/t-mn10300,
7415 config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
7416 config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
7417 config/picochip/libgccExtras/clzsi2.asm,
7418 config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
7419 config/rs6000/darwin-libgcc.10.4.ver,
7420 config/rs6000/darwin-libgcc.10.5.ver,
7421 config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
7422 config/rs6000/t-aix43, config/rs6000/t-aix52,
7423 config/rs6000/t-darwin, config/rs6000/t-fprules,
7424 config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
7425 config/rs6000/t-lynx, config/rs6000/t-netbsd,
7426 config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
7427 config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
7428 config/rs6000/t-rtems, config/rs6000/t-spe,
7429 config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
7430 config/score/t-score-elf, config/sh/divcost-analysis,
7431 config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
7432 config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
7433 config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
7434 config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
7435 config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
7436 config/stormy16/stormy-abi, config/stormy16/t-stormy16,
7437 config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
7438 config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
7439 config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
7440 config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
7441 config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
7442 gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
7443 java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
7444 limitx.h, version.c, xcoff.h: Add copyright and license notices.
7445 * config/h8300/genmova.sh: Include copyright and license notices
7446 in generated output.
7447 * config/h8300/mova.md: Regenerate.
7448 * doc/install.texi2html: Include word "Copyright" in copyright
7449 notice and use name "Free Software Foundation, Inc.".
7450 * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
7451 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
7452 ChangeLog-2007, ChangeLog-2008: Correct dates.
7453
ca80e52b
EB
74542009-04-21 Eric Botcazou <ebotcazou@adacore.com>
7455
7456 * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
7457 NE_EXPR operations as well.
7458 * c-parser.c (c_parser_condition): Do not set location information on
7459 the condition.
7460 (c_parser_conditional_expression): Likewise.
7461 (c_parser_binary_expression): Set location information on operators.
7462 * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
7463 TRUTH_NOT_EXPR has been folded.
7464 * fold-const.c (fold_truth_not_expr): Copy location information from
7465 the incoming expression to the outgoing one.
7466 * gimplify.c (shortcut_cond_r): Add locus parameter. Pass it to
7467 recursive calls on the LHS of the operator but pass that of the
7468 operator to recursive calls on the RHS of the operator. Set it
7469 on the COND_EXPR.
7470 (shortcut_cond_expr): Set the locus of the operator on the second
7471 COND_EXPR and that of the expression on the first in degenerate cases.
7472 Pass the locus of the expression to calls to shortcut_cond_r.
7473 Set the locus of the 'then' block on the associated jump, if any.
7474 (gimplify_boolean_expr): Add locus parameter. Set it on the COND_EXPR.
7475 (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
7476 expression to call to gimplify_boolean_expr.
7477
35091630
KT
74782009-04-21 Kai Tietz <kai.tietz@onevision.com>
7479
7480 * config.gcc: Add additional configuration for
7481 i686-w64-mingw* and x86_64-w64-mingw* triplet.
7482 * config/i386/mingw-w64.h: New mingw-w64 specific header.
7483 (CPP_SPEC): Redefine for allowing -municode option.
7484 (STARTFILE_SPEC): Likewise.
7485 * config/i386/t-mingw-w64: New.
7486 * config/i386/mingw-w64.opt: New.
7487 (municode): Add new target option.
7488 * doc/invoke.texi (municode): Add documentation for new option.
7489
0267afc4
ILT
74902009-04-21 Ian Lance Taylor <iant@google.com>
7491
7492 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
7493 Correct test for number of arguments.
7494 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
7495
2ba9daa7
AS
74962009-04-21 Andreas Schwab <schwab@linux-m68k.org>
7497
7498 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
7499 argument of emit_library_call.
7500
ad8a1ac0
RG
75012009-04-21 Richard Guenther <rguenther@suse.de>
7502
7503 PR middle-end/39829
7504 * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
7505 inside VIEW_CONVERT_EXPRs.
7506
7156c8ab
MJ
75072009-04-21 Martin Jambor <mjambor@suse.cz>
7508
7509 * tree-switch-conversion.c (build_constructors): Split a long line.
7510 (constructor_contains_same_values_p): New function.
7d83f4f5
UB
7511 (build_one_array): Create assigns of constants if possible, do not
7512 call mark_sym_for_renaming, call update_stmt.
7156c8ab
MJ
7513 (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
7514 make_rename_temp. Do not call mark_symbols_for_renaming, call
7515 update_stmt.
7516 (gen_def_assigns): Do not call mark_symbols_for_renaming or
7517 find_new_referenced_vars, call update_stmt.
7518 (gen_inbound_check): Use create_tmp_var and create ssa names manually
7519 instead of calling make_rename_temp. Do not call
7520 find_new_referenced_vars or mark_symbols_for_renaming, call
7521 update_stmt.
7522
2970ccb3
RG
75232009-04-21 Richard Guenther <rguenther@suse.de>
7524
7525 PR tree-optimization/39827
7d83f4f5 7526 * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
2970ccb3
RG
7527 (tree_ssa_phiprop): Pass the correct array size.
7528
47f402d1
UB
75292009-04-21 Uros Bizjak <ubizjak@gmail.com>
7530
7531 * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
7532
1e4ae551
MLI
75332009-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
7534
7535 PR 16202
7536 * c-typeck.c (lvalue_p): Move declaration ...
7537 * c-common.h (lvalue_p): ... to here.
7538 * c-common.c (candidate_equal_p): New.
7539 (add_tlist): Use it.
7540 (merge_tlist): Use it.
7541 (warn_for_collisions_1): Likewise.
7542 (warning_candidate_p): Accept more candidates.
7543 (verify_tree): A warning candidate can be an expression. Use
7544 candidate_equal_p.
7545
244609a6
BE
75462009-04-21 Ben Elliston <bje@au.ibm.com>
7547
7548 PR target/5267
7549 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
7550 for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
7551 options. Remove -mcall-solaris documentation.
7552
9c650d90
MLI
75532009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7554
7555 PR c++/13358
7556 * doc/invoke.texi (-Wlong-long): Update description.
7557 * c-lex (interpret_integer): Only warn if there was no previous
7558 overflow and -Wlong-long is enabled.
7559 * c-decl.c (declspecs_add_type): Drop redundant flags.
7560 * c.opt (Wlong-long): Init to -1.
7561 * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
7562 and front-end warn_long_long. Wlong-long only depends on other
7563 flags if it is uninitialized.
7564 * c-parser.c (disable_extension_diagnostics): warn_long_long is
7565 the same for CPP and FE.
7566 (restore_extension_diagnostics): Likewise.
7567
bbbbb16a
ILT
75682009-04-20 Ian Lance Taylor <iant@google.com>
7569
7570 Fix enum conversions which are invalid in C++:
47f402d1
UB
7571 * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
7572 * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
7573 * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
7574 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
47f402d1 7575 * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
bbbbb16a 7576 (dbxout_parms): Likewise.
47f402d1 7577 * df-core.c (df_set_flags): Change changeable_flags parameter to int.
bbbbb16a
ILT
7578 (df_clear_flags): Likewise.
7579 * df-problems.c (df_rd_bb_local_compute_process_def): Change
7580 top_flag parameter to int.
7581 (df_chain_create_bb_process_use): Likewise.
47f402d1
UB
7582 (df_chain_add_problem): Change chain_flags parameter to unsigned int.
7583 Remove cast.
bbbbb16a
ILT
7584 * df-scan.c (df_ref_create): Change ref_flags parameter to int.
7585 (df_ref_create_structure, df_def_record_1): Likewise.
7586 (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
7587 (df_notes_rescan): Change 0 to VOIDmode in function call.
7588 (df_get_call_refs, df_insn_refs_collect): Likewise.
7589 (df_bb_regs_collect): Likewise.
7590 (df_entry_block_defs_collect): Likewise.
7591 (df_exit_block_uses_collect): Likewise.
7592 * df.h: Update declarations.
7593 * double-int.c (double_int_divmod): Add cast to enum type.
7594 * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
7595 * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
7596 (based_loc_descr): Likewise.
7597 (loc_descriptor_from_tree_1): Change first_op and second_op to
7598 enum dwarf_location_atom. Add cast to enum type.
7599 * expmed.c (init_expmed): Change 0 to SET in function call.
47f402d1 7600 * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
7601 (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
7602 (do_store_flag): Likewise.
7603 * fixed-value.h (struct fixed_value): Change mode to enum
7604 machine_mode.
47f402d1 7605 * function.c (assign_parms): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
7606 * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
7607 function call.
7608 (insert_insn_decl, insert_decl, insert_state): Likewise.
7609 (automata_list_finish): Likewise.
7610 * genrecog.c (process_define_predicate): Add cast to enum type.
7611 * gensupport.c (init_predicate_table): Add cast to enum type.
7612 * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
7613 function call.
7614 (gimple_build_call_1, gimple_build_label): Likewise.
7615 (gimple_build_goto, gimple_build_asm_1): Likewise.
7616 (gimple_build_switch_1, gimple_build_cdt): Likewise.
47f402d1 7617 * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
bbbbb16a
ILT
7618 (enum fallback): Rename from enum fallback_t.
7619 (fallback_t): Typedef as int.
7620 * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
7621 GSI_SAME_STMT in function call.
7622 * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
7623 enum type.
7624 (setup_reg_class_relations): Likewise.
47f402d1 7625 (setup_reg_class_nregs): Change cl to int. Add casts to enum type.
bbbbb16a
ILT
7626 (setup_prohibited_class_mode_regs): Add cast to enum type.
7627 (setup_prohibited_mode_move_regs): Likewise.
47f402d1 7628 * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
bbbbb16a
ILT
7629 (record_address_regs): Change i to enum reg_class.
7630 * lists.c (alloc_EXPR_LIST): Add cast to enum type.
7631 * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
7632 (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
7633 (GET_MODE_2XWIDER_MODE): Likewise.
7634 (GET_CLASS_NARROWEST_MODE): Likewise.
7635 * omp-low.c (expand_omp_for): Add cast to enum type.
7636 * optabs.c (debug_optab_libfuncs): Add casts to enum type.
7637 * opts.c (enable_warning_as_error): Change kind to diagostic_t.
7638 * postreload.c (reload_cse_simplify_operands): Change rclass local
7639 to enum reg_class.
7640 * predict.c (combine_predictions_for_insn): Change best_predictor
7641 and predictor to enum br_predictor.
7642 (combine_predictions_for_bb): Likewise.
7643 (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
7644 use SET_PREDICT_EXPR_OUTCOME.
47f402d1 7645 * real.c (real_arithmetic): Change icode to code in function call.
bbbbb16a
ILT
7646 * reginfo.c (init_move_cost): Add casts to enum type.
7647 (init_reg_sets_1, init_fake_stack_mems): Likewise.
7648 * regmove.c (regclass_compatible_p): Change class0 and class1 to
7649 enum reg_class.
7650 * reload.c (find_valid_class): Add casts to enum type.
7651 (push_reload): Change 0 to NO_REGS in function call.
7652 (find_reloads): Change this_alternative to array of enum
7653 reg_class. Remove some now-unnecessary casts.
7654 (make_memloc): Change 0 to VOIDmode in function call.
7655 * reload1.c (reload): Change 0 to VOIDmode in function call.
7656 (eliminate_regs_1, elimination_effects): Likewise.
7657 (eliminate_regs_in_insn): Likewise.
7658 (emit_input_reload_insns): Add cast to enum type.
7659 (delete_output_reload): Change 0 to VOIDmode in function call.
7660 * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
7661 to enum type in function call.
7662 * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
7663 (SET_PREDICT_EXPR_OUTCOME): Define.
47f402d1 7664 * tree-dump.c (get_dump_file_info): Change phase parameter to int.
bbbbb16a
ILT
7665 (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
7666 (dump_initialized_p, dump_flag_name, dump_end): Likewise.
7667 (dump_function): Likewise.
7668 * tree-dump.h: Update declarations.
7669 * tree-pass.h: Update declarations.
7670 * varasm.c (assemble_integer): Change mclass to enum mode_class.
7671 * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
7672 enum type.
7673 (arm_rtx_costs_1): Correct parenthesization.
7674 (arm_rtx_costs): Add casts to enum type.
7675 (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
7676 (vfp_emit_fstmd): Use add_rg_note.
7677 (emit_multi_reg_push, emit_sfm): Likewise.
7678 (thumb_set_frame_pointer): Likewise.
7679 (arm_expand_prologue): Likewise.
7680 (arm_regno_class): Change return type to enum reg_class.
7681 (thumb1_expand_prologue): Use add_reg_note.
7682 * config/arm/arm-protos.h (arm_regno_class): Update declaration.
7683 * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
7684 in function call.
7685 * config/arm/gentune.sh: Add cast to enum type.
7686 * config/arm/arm-tune.md: Rebuild.
7687 * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
7688 (ix86_split_fp_branch, predict_jump): Likewise.
7689 (ix86_expand_multi_arg_builtin): Change sub_code from enum
7690 insn_code to enum rtx_code.
7691 (ix86_builtin_vectorized_function): Add cast to enum type.
7692 * config/i386/i386.md (truncdfsf2): Change slot to enum
7693 ix86_stack_slot.
7694 (truncxf<mode>2, isinf<mode>2): Likewise.
7695 * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
7696 enum type.
7697 * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
7698 (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
7699 (insert_bundle_state): Change 1 to INSERT in function call.
7700 (ia64_add_bundle_selector_before): Likewise.
7701 * config/ia64/ia64.md (cpu attr): Add cast to enum type.
7702 (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
7703 (restore_stack_nonlocal): Likewise.
7704 * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
7705 function call.
7706 * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
7707 function call.
7708 (mips_rtx_costs): Likewise.
7709 (mips_override_options): Add casts to enum type.
7710 * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
7711 in function call.
7712 * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
7713 (store_reg, set_reg_plus_d): Likewise.
7714 (hppa_expand_prologue, hppa_profile_hook): Likewise.
7715 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
7716 cast to enum type.
7717 (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
7718 function call.
7719 (emit_unlikely_jump): Use add_reg_note.
7720 (rs6000_emit_allocate_stack): Likewise.
7721 (rs6000_frame_related, rs6000_emit_prologue): Likewise.
7722 (output_toc): Change 1 to INSERT in function call.
7723 (output_profile_hook): Change 0 to LCT_NORMAL in function call.
7724 (rs6000_initialize_trampoline): Likewise.
7725 (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
7726 function call.
7727 * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
7728 (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
7729 (s390_expand_setmem, s390_expand_cmpmem): Likewise.
7730 (save_gprs): Use add_reg_note.
7731 (s390_emit_prologue): Likewise.
47f402d1 7732 (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
7733 * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
7734 (sparc_fold_builtin): Add cast to enum type.
7735 * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
7736 enum insn_code.
7737 (spu_expand_prologue): Use add_reg_note.
47f402d1 7738 (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
7739
77402009-04-20 Ian Lance Taylor <iant@google.com>
7741
7742 * c-parser.c (c_parser_attributes): Change VEC back to tree list.
7743 (c_parser_postfix_expression_after_primary): Get VEC for list of
7744 arguments. Get original types of arguments. Call
7745 build_function_call_vec.
7746 (cached_expr_list_1, cached_expr_list_2): New static variables.
7747 (c_parser_expr_list): Change return type to VEC *. Add
7748 p_orig_types parameter. Change all callers.
7749 (c_parser_release_expr): New static function.
7750 (c_parser_vec_to_tree_list): New static function.
7751 * c-typeck.c (build_function_call): Rewrite to build a VEC and
7752 call build_function_call_vec.
7753 (build_function_call_vec): New function, based on old
7754 build_function_call.
7755 (convert_arguments): Remove nargs and argarray parameters. Change
7756 values to a VEC. Add origtypes parameter.
47f402d1 7757 (build_modify_expr): Add rhs_origtype parameter. Change all callers.
bbbbb16a
ILT
7758 (convert_for_assignment): Add origtype parameter. Change all
7759 callers. If warn_cxx_compat, check for conversion to an enum
7760 type when calling a function.
7761 (store_init_value): Add origtype parameter. Change all callers.
7762 (digest_init): Likewise.
7763 (struct init_node): Add origtype field.
7764 (add_pending_init): Add origtype parameter. Change all callers.
7765 (output_init_element): Likewise.
7766 (output_pending_init_elements): Pass origtype from init_node to
7767 output_init_element.
f28a61ab 7768 (process_init_element): Pass origtype from c_expr to
bbbbb16a
ILT
7769 output_init_element.
7770 (c_finish_return): Add origtype parameter. Change all callers.
7771 * c-common.c (sync_resolve_size): Change params to VEC *. Change
7772 caller.
7773 (sync_resolve_params): Likewise.
47f402d1 7774 (sync_resolve_return): Change params to first_param. Change caller.
bbbbb16a 7775 (resolve_overloaded_builtins): Change params to VEC *. Change
47f402d1 7776 callers. Save first parameter around call to build_function_call_vec.
bbbbb16a
ILT
7777 * c-decl.c (finish_decl): Add origtype parameter. Change all
7778 callers. Call build_function_call_vec rather than
7779 build_function_call for cleanup.
7780 * c-tree.h: Update declarations.
7781 * c-common.h: Update declarations.
7782 * stub-objc.c (objc_rewrite_function_call): Change parameter from
7783 params to first_param.
7784 * target.h (struct gcc_target): Change resolve_overloaded_builtin
7785 params parameter from tree to void *.
7786 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
7787 Change arglist parameter to have type void *, and to be a pointer
7788 to a VEC.
7789 * config/rs6000/rs6000-protos.h
7790 (altivec_resolve_overloaded_builtin): Update declaration.
7791 * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
7792 fnargs parameter to have type void *, and to be a pointer to a
7793 VEC. Call build_function_call_vec instead of
7794 build_function_call.
47f402d1 7795 * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
bbbbb16a 7796
6ff078d4 77972009-04-20 Joey Ye <joey.ye@intel.com>
60839f5d 7798 Xuepeng Guo <xuepeng.guo@intel.com>
6ff078d4
JY
7799 H.J. Lu <hongjiu.lu@intel.com>
7800
7801 * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
7802
7803 * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
7804 (IX86_LEA_PRIORITY): Likewise.
7805 (distance_non_agu_define): New function.
7806 (distance_agu_use): Likewise.
7807 (ix86_lea_for_add_ok): Likewise.
7808 (ix86_dep_by_shift_count): Likewise.
7809
7810 * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
7811 should split for LEA.
7812
7813 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
7814 function.
7815 (ix86_dep_by_shift_count): Likewise.
7816
87a5b4cc
RG
78172009-04-20 Richard Guenther <rguenther@suse.de>
7818
7819 * expr.c (handled_component_p): Move ...
7820 * tree.h (handled_component_p): ... here.
7821 * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
7822 ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
7823 and REALPART_EXPR to be in one group.
7824
438c239d
RG
78252009-04-20 Richard Guenther <rguenther@suse.de>
7826
7827 * basic-block.h (get_all_dominated_blocks): Declare.
7828 * dominance.c (get_all_dominated_blocks): New function.
7829 * tree-cfg.c (get_all_dominated_blocks): Remove.
7830 (remove_edge_and_dominated_blocks): Adjust.
7831 * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
7832 (tree_ssa_phiprop): ... here. Use get_all_dominated_blocks
7833 instead of recursing.
7834
fed5ae11
DK
78352009-04-20 Doug Kwan <dougkwan@google.com>
7836
7837 * cgraph.h (cgraph_node_ptr): New type for vector functions.
7838 (struct cgraph_node_set_def): New type.
7839 (cgraph_node_set) New type. Also declare vector functions.
7840 (struct cgraph_node_set_element_def): New type.
7841 (cgraph_node_set_element): Ditto.
7842 (cgraph_node_set_iterator): New iterator type.
7843 (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
7844 cgraph_node_set_remove, dump_cgraph_node_set,
7845 debug_cgraph_node_set): New prototypes.
7846 (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
7847 cgraph_node_set_size): New inlines.
7848 * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
7849 including cgraph.h.
7850 (struct ipa_opt_pass): Add struct cgraph_node_set_def
7851 argument to function 'write_summary'.
7852 * ipa.c: Include ggc.h.
7853 (hash_cgraph_node_set_element,
7854 eq_cgraph_node_set_element, cgraph_node_set_new,
7855 cgraph_node_set_add, cgraph_node_set_remove,
7856 cgraph_node_set_find, dump_cgraph_node_set,
7857 debug_cgraph_node_set): New functions.
7858 * Makefile.in (ipa.o): Add dependency on GGC_H.
7859
c4551b28
IR
78602009-04-20 Ira Rosen <irar@il.ibm.com>
7861
7862 PR tree-optimization/39675
2ba9daa7 7863 * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
47f402d1
UB
7864 check of the return code of vect_schedule_slp. Check that
7865 stmt_vec_info still exists for the statement, before checking its
7866 vectorization type.
c4551b28 7867
21a495fb
MM
78682009-04-20 Michael Matz <matz@suse.de>
7869
7870 * Makefile.in (generated_files): Take out $(simple_generated_c).
7871
8e208874
DK
78722009-04-19 Dave Korn <dave.korn.cygwin@gmail.com>
7873
7874 * config/i386/cygwin-stdint.h (INTPTR_TYPE): Remove "long".
7875 (UINTPTR_TYPE): Likewise.
7876
a45e580b
JM
78772009-04-19 Joseph Myers <joseph@codesourcery.com>
7878
7879 PR c/37481
7880 * c-typeck.c (digest_init): Check for initializing an array with a
7881 string literal.
7882
20845d35
JM
78832009-04-19 Joseph Myers <joseph@codesourcery.com>
7884
7885 PR c/19771
7886 * c-semantics.c (pop_stmt_list): Propagate
7887 STATEMENT_LIST_HAS_LABEL to parent statement list.
7888
28143fdd
AN
78892009-04-19 Adam Nemet <anemet@caviumnetworks.com>
7890
7891 * config/mips/mips.h (mips_tune_attr): New macro.
7892 * config/mips/mips.md (cpu): Use it.
7893
da377db9
JM
78942009-04-19 Joseph Myers <joseph@codesourcery.com>
7895
7896 PR c/38243
7897 * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
7898 declaring a tag.
7899
3baf459d
DN
79002009-04-19 Diego Novillo <dnovillo@google.com>
7901
7902 * toplev.c (compile_file): Move call to coverage_finish ...
7903 * cgraphunit.c (ipa_passes): ... here.
7904 Call cgraph_process_new_functions.
7905 * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
7906 * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
7907
b6fa5b01
JH
79082009-04-19 Jan Hubicka <jh@suse.cz>
7909
47f402d1
UB
7910 * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
7911 cfun.
b6fa5b01
JH
7912 (dump_cgraph_node): Dump can throw external flag.
7913 * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
7914
ca409efd
MLI
79152009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
7916
7917 PR c/32061
7918 PR c++/36954
7919 * doc/invoke.texi: Add -Wlogical-op to -Wextra.
7920 * common.opt (Wlogical-op): Move from here...
7921 * c.opt (Wlogical-op): ... to here.
7922 * c-typeck.c (parser_build_binary_op): Update call to
7923 warn_logical_operator.
7924 * c-opts.c (c_common_post_options): Enable warn_logical_op with
7925 extra_warnings.
7926 * c-common.c (warn_logical_op): Update.
7927 * c-common.h (warn_logical_op): Update declaration.
7928
9db4cdd3
EB
79292009-04-19 Eric Botcazou <ebotcazou@adacore.com>
7930
7931 * tree.c (protected_set_expr_location): Fix formatting.
7932
f37acdf9
JM
79332009-04-18 Joseph Myers <joseph@codesourcery.com>
7934
7935 PR c/27676
7936 * c-typeck.c (readonly_warning): new.
7937 (build_unary_op, build_modify_expr): Use readonly_warning for
7938 storing into something readonly but not const-qualified.
7939
2b4b7036
JM
79402009-04-18 Joseph Myers <joseph@codesourcery.com>
7941
7942 PR c/22367
7943 * c-typeck.c (build_unary_op): Check for taking address of
7944 expression of type void.
7945
3ce62965
JM
79462009-04-18 Joseph Myers <joseph@codesourcery.com>
7947
7948 PR c/35210
7949 * c-typeck.c (build_function_call): Check for calling a function
7950 with qualified void return types. Call require_complete_type when
7951 generating a trap.
7952
2505c5ed
JH
79532009-04-18 Jan Hubicka <jh@suse.cz>
7954
7955 * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
7956 Set nothrow flag.
7957 * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
7958 can_throw_external flag.
7959 * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
7960 * ipa-pure-const.c (ignore_edge): New function.
7961 (propagate): Compute order for NOTHROW computation; set NOTHROWs
7962 only over can_throw_external edges.
7963 (local_pure_const): Add nothrow flag.
7964 * ipa-utils.c (searchc): Add ignore_edge callback.
7965 (ipa_utils_reduced_inorder): Add ignore_edge callback.
7966 * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
7967 (set_nothrow_function_flags): Update cgraph.
7968 * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
7969
2586ba4b
RG
79702009-04-18 Richard Guenther <rguenther@suse.de>
7971
7972 PR middle-end/39804
7973 * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
7974 (fold_stmt): ... this and ...
7975 (fold_stmt_inplace): ... this.
7976 (fold_stmt_1): Fold references in calls and asms.
7977 * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
7978
1eefab17
KH
79792009-04-18 Kazu Hirata <kazu@codesourcery.com>
7980
7981 * tree-vrp.c (ssa_name_nonzero_p): Remove.
7982 * tree.h: Remove the prototype for ssa_name_nonzero_p.
7983
aa424b01
KH
79842009-04-18 Kazu Hirata <kazu@codesourcery.com>
7985
7986 * tree.c (function_args_count): Remove.
7987 * tree.h: Remove the prototype for function_args_count.
7988
613a896b
KH
79892009-04-18 Kazu Hirata <kazu@codesourcery.com>
7990
7991 * tree-iterator.c (expr_only): Remove.
7992 * tree.h: Remove the prototype for expr_only.
7993
579e694c
KH
79942009-04-18 Kazu Hirata <kazu@codesourcery.com>
7995
7996 * reginfo.c (cannot_change_mode_set_regs): Remove.
7997 * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
7998
ee7e3ad3
AS
79992009-04-08 Anatoly Sokolov <aesok@post.ru>
8000
8001 * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
8002 whether operands 0 and 1 overlaps.
8003
92ef7fb1
MLI
80042009-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
8005
8006 PR middle-end/36902
8007 * tree-vrp.c (check_array_ref): Pass a location_t instead of a
8008 pointer. Use warning_at instead of warning.
8009 (search_for_addr_array): Likewise.
8010 (check_array_bounds): Likewise.
8011 (check_all_array_refs): Check that the incoming edge is not in the
8012 list of edges to be removed.
8013 (check_all_array_refs): Avoid the temporal pointer.
8014 (vrp_visit_cond_stmt): Fix typo.
8015 (simplify_switch_using_ranges): Handle the case where the switch
8016 index is an integer constant.
8017
0e097268
AN
80182009-04-18 Adam Nemet <anemet@caviumnetworks.com>
8019
8020 * config/mips/mips.c (mips_final_postscan_insn): Make it static.
8021
c782f1dd
KH
80222009-04-18 Kazu Hirata <kazu@codesourcery.com>
8023
8024 * doc/extend.texi, doc/invoke.texi: Fix typos.
8025
668fb0e8
CC
80262009-04-17 Cary Coutant <ccoutant@google.com>
8027
8028 * tree-flow-inline.h (get_lineno): Fix inverted test.
8029
4d4014c1
DN
80302009-04-17 Diego Novillo <dnovillo@google.com>
8031
8032 * tree-ssa-pre.c (create_expression_by_pieces): Remove
8033 assertion for AVAIL_OUT.
8034
2984e1b6
MF
80352009-04-17 Mike Frysinger <vapier@gentoo.org>
8036
8037 PR target/38627
8038 * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
8039 * config/sh/linux-atomic.asm: Likewise.
8040
9994a182
DN
80412009-04-17 Diego Novillo <dnovillo@google.com>
8042
8043 * except.c (debug_eh_tree): New.
8044 (struct eh_region, struct eh_status): Move ...
8045 * except.h: ... here.
8046 (add_type_for_runtime): Declare extern.
8047 (lookup_type_for_runtime): Likewise.
8048 (debug_eh_tree): Declare.
8049 * Makefile.in (GTFILES): List except.h before except.c
8050
07485407
DN
80512009-04-17 Diego Novillo <dnovillo@google.com>
8052
47f402d1 8053 * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
07485407
DN
8054 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
8055 * tree-dfa.c (find_referenced_vars_in): Factor out of ...
8056 (find_vars_r): ... here.
8057 * tree-flow.h (find_referenced_vars_in): Declare.
8058 * tree-ssa-pre.c (create_expression_by_pieces): Assert
8059 that AVAIL_OUT exists for BLOCK.
8060 * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
8061 (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
8062 (tree-parloops.o): Likewise.
8063
4e53d196
SB
80642009-04-17 Simon Baldwin <simonb@google.com>
8065
8066 * toplev.c (default_tree_printer): Add handling for %E format.
8067
413d3aa8
DN
80682009-04-17 Diego Novillo <dnovillo@google.com>
8069
47f402d1
UB
8070 * tree-pretty-print.c (dump_generic_node): Add break after
8071 TREE_BINFO handler. Handle COMPLEX_TYPE, REAL_TYPE and
8072 FIXED_POINT_TYPE. Handle NULL TREE_TYPEs. Handle METHOD_TYPE and
8073 FUNCTION_TYPE together. Call print_struct_decl when printing
8074 structures and TDF_SLIM is not given.
413d3aa8
DN
8075 (print_struct_decl): Fix logic for detecting recursion.
8076
5a691e98
RAE
80772009-04-17 Rafael Avila de Espindola <espindola@google.com>
8078
8079 PR 31567
8080 * gcc.c (create_at_file): New.
8081 (compile_input_file_p): New.
8082 (do_spec_1): Use @args files for %i. Use create_at_file for %o.
8083 * main.c (main): Update call to toplev_main.
8084 * toplev.c (toplev_main): Change signature. Call expandargv.
8085 * toplev.h (toplev_main): Change signature.
8086
9eacf7a6
EB
80872009-04-17 Eric Botcazou <ebotcazou@adacore.com>
8088
8089 * dwarf2out.c (field_byte_offset): Use the type size as the field size
8090 if the latter is not constant.
8091
58298177
DE
80922009-04-17 David Edelsohn <edelsohn@gnu.org>
8093
8094 * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
8095
5b4c43d7
EB
80962009-04-17 Eric Botcazou <ebotcazou@adacore.com>
8097
8098 * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
8099 * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
8100
b51605c4
RG
81012009-04-17 Richard Guenther <rguenther@suse.de>
8102
8103 * tree-ssa-structalias.c (get_constraint_for_component_ref):
8104 Handle component references view-converting an invariant address.
8105
9e3be889
AN
81062009-04-17 Adam Nemet <anemet@caviumnetworks.com>
8107
8108 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
8109 TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
8110 TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
8111 TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
8112 Use @deftypevr rather than @deftypevar.
8113
7c3e9dc3
RG
81142009-04-17 Richard Guenther <rguenther@suse.de>
8115
47f402d1 8116 * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
7c3e9dc3
RG
8117 (get_prop_source_stmt): Likewise.
8118 (can_propagate_from): Likewise.
8119
aca600aa
AS
81202009-04-17 Andrew Stubbs <ams@codesourcery.com>
8121
8122 * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
8123 TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
8124 (--with-multilib-list): Add default value.
8125 * configure: Regenerate.
8126 * Makefile.in (TM_ENDIAN_CONFIG): Define.
8127 (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
8128 * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
8129 TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
8130 Don't add default cpu to multilib list unnecessarily, but do enable
8131 the relevant compiler option..
8132 Add support for --with-multilib-list=<blank> and
8133 --with-multilib-list=!<somelib> to supress unwanted multilibs.
8134 * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
8135 (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
8136 (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
8137 TM_MULTILIB_CONFIG.
8138 (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
8139 (MULTILIB_OSDIRNAMES): New variable.
8140 * config/sh/t-1e: Delete file.
8141 * config/sh/t-mlib-sh1: Delete file.
8142 * config/sh/t-mlib-sh2: Delete file.
8143 * config/sh/t-mlib-sh2a: Delete file.
8144 * config/sh/t-mlib-sh2a-nofpu: Delete file.
8145 * config/sh/t-mlib-sh2a-single: Delete file.
8146 * config/sh/t-mlib-sh2a-single-only: Delete file.
8147 * config/sh/t-mlib-sh2e: Delete file.
8148 * config/sh/t-mlib-sh3e: Delete file.
8149 * config/sh/t-mlib-sh4: Delete file.
8150 * config/sh/t-mlib-sh4-nofpu: Delete file.
8151 * config/sh/t-mlib-sh4-single: Delete file.
8152 * config/sh/t-mlib-sh4-single-only: Delete file.
8153 * config/sh/t-mlib-sh4a: Delete file.
8154 * config/sh/t-mlib-sh4a-nofpu: Delete file.
8155 * config/sh/t-mlib-sh4a-single: Delete file.
8156 * config/sh/t-mlib-sh4a-single-only: Delete file.
8157 * config/sh/t-mlib-sh4al: Delete file.
8158 * config/sh/t-mlib-sh5-32media: Delete file.
8159 * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
8160 * config/sh/t-mlib-sh5-64media: Delete file.
8161 * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
8162 * config/sh/t-mlib-sh5-compact: Delete file.
8163 * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
8164 * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
8165 * doc/install.texi (Options specification): Add
8166 --with-multilib-list and --with-endian.
8167
cf8aba7f
RAE
81682009-04-17 Rafael Avila de Espindola <espindola@google.com>
8169
8170 * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
8171 REVISION_c.
8172 (OBJS-common): Add plugin-version.o.
8173 (plugin-version.o): New.
8174 * gcc-plugin.h (plugin_gcc_version): New.
8175 (plugin_default_version_check): New.
8176 (plugin_init_func, plugin_init): Add version argument.
8177 * plugin-version.c: New.
8178 * plugin.c (str_plugin_gcc_version_name): New.
8179 (try_init_one_plugin): Read plugin_gcc_version from the plugin and
8180 pass it to the init function.
8181 (plugin_default_version_check): New.
8182
61e20b90
RG
81832009-04-17 Richard Guenther <rguenther@suse.de>
8184
8185 * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
8186 for decl-vs-decl disambiguation.
8187
90c6fd8a
AK
81882009-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
8189
8190 * config/s390/s390.h (s390_tune_attr): New macro definition.
8191 * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
8192
9fe9fe04
RG
81932009-04-17 Richard Guenther <rguenther@suse.de>
8194
8195 * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
8196 (fold_stmt_r): Likewise.
8197 (maybe_fold_reference): New function.
8198 (fold_gimple_assign): Handle cases fold_stmt_r did.
8199 (fold_stmt): Do not use fold_stmt_r.
8200 (fold_stmt_inplace): Likewise.
8201
7e673273
RG
82022009-04-17 Richard Guenther <rguenther@suse.de>
8203
8204 * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
8205 (record_equivalences_from_stmt): Remove useless checks and
8206 simplifications.
8207 * tree-ssa-pre.c (eliminate): Avoid converting a constant if
8208 the type is already suitable.
8209
fabf2749
PB
82102009-04-17 Paolo Bonzini <bonzini@gnu.org>
8211
8212 * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
8213
68f7b061
UB
82142009-04-17 Uros Bizjak <ubizjak@gmail.com>
8215
8216 * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
8217 (CMPtype): Define as __gcc_CMPtype.
8218
532bfb0a
AJ
82192009-04-17 Aurelien Jarno <aurelien@aurel32.net>
8220
8221 * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
8222 for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
8223
e3ac77ff
RG
82242009-04-17 Richard Guenther <rguenther@suse.de>
8225
8226 PR tree-optimization/39746
8227 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
8228 special-casing for builtins and static variable use/def.
8229 (call_may_clobber_ref_p_1): Likewise.
8230
7072a650
ILT
82312009-04-16 Ian Lance Taylor <iant@google.com>
8232
8233 * df.h: Include "timevar.h".
8234 (struct df_problem): Change tv_id field to timevar_id_t.
8235 * tree-pass.h: Include "timevar.h".
8236 (struct opt_pass): Change tv_id field to timevar_id_t.
8237 * timevar.h (timevar_id_t): Define TV_NONE.
8238 * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
8239 TV_NONE rather than tv_id != 0.
8240 (execute_one_pass): Likewise.
8241 * Makefile.in (DF_H): Add $(TIMEVAR_H).
8242 (TREE_PASS_H): Define. Change all instances of tree-pass.h in
8243 dependencies to $(TREE_PASS_H).
8244 * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
8245 to TV_NONE.
8246 (pass_branch_target_load_optimize2): Likewise.
8247 * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
8248 (pass_outof_cfg_layout_mode): Likewise.
8249 * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
8250 (pass_rebuild_cgraph_edges): Likewise.
8251 (pass_remove_cgraph_callee_edges): Likewise.
8252 * df-core.c (pass_df_initialize_opt): Likewise.
8253 (pass_df_initialize_no_opt): Likewise.
8254 (pass_df_finish): Likewise.
8255 * emit-rtl.c (pass_unshare_all_rtl): Likewise.
8256 * except.c (pass_set_nothrow_function_flags): Likewise.
8257 (pass_convert_to_eh_region_ranges): Likewise.
8258 * final.c (pass_compute_alignments): Likewise.
8259 * function.c (pass_instantiate_virtual_regs): Likewise.
8260 (pass_init_function): Likewise.
8261 (pass_leaf_regs): Likewise.
8262 (pass_match_asm_constraints): Likewise.
8263 * gimple-low.c (pass_lower_cf): Likewise.
8264 (pass_mark_used_blocks): Likewise.
8265 * init-regs.c (pass_initialize_regs): Likewise.
8266 * integrate.c (pass_initial_value_sets): Likewise.
8267 * ira.c (pass_ira): Likewise.
8268 * jump.c (pass_cleanup_barriers): Likewise.
8269 * omp-low.c (pass_expand_omp): Likewise.
8270 (pass_lower_omp): Likewise.
8271 * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
8272 * recog.c (pass_split_all_insns): Likewise.
8273 (pass_split_after_reload): Likewise.
8274 (pass_split_before_regstack): Likewise.
8275 (pass_split_before_sched2): Likewise.
8276 (pass_split_for_shorten_branches): Likewise.
8277 * reginfo.c (pass_reginfo_init): Likewise.
8278 (pass_subregs_of_mode_init): Likewise.
8279 (pass_subregs_of_mode_finish): Likewise.
8280 * passes.c (pass_postreload): Likewise.
8281 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
8282 * tree-cfg.c (pass_remove_useless_stmts): Likewise.
8283 (pass_warn_function_return): Likewise.
8284 (pass_warn_function_noreturn): Likewise.
8285 * tree-complex.c (pass_lower_complex): Likewise.
8286 (pass_lower_complex_O0): Likewise.
8287 * tree-if-conv.c (pass_if_conversion): Likewise.
8288 * tree-into-ssa.c (pass_build_ssa): Likewise.
8289 * tree-mudflap.c (pass_mudflap_1): Likewise.
8290 (pass_mudflap_2): Likewise.
8291 * tree-nomudflap.c (pass_mudflap_1): Likewise.
8292 (pass_mudflap_2): Likewise.
8293 * tree-nrv.c (pass_return_slot): Likewise.
8294 * tree-object-size.c (pass_object_sizes): Likewise.
8295 * tree-optimize.c (pass_all_optimizations): Likewise.
8296 (pass_early_local_passes): Likewise.
8297 (pass_all_early_optimizations): Likewise.
8298 (pass_cleanup_cfg): Likewise.
8299 (pass_cleanup_cfg_post_optimizing): Likewise.
8300 (pass_free_datastructures): Likewise.
8301 (pass_free_cfg_annotations): Likewise.
8302 (pass_fixup_cfg): Likewise.
8303 (pass_init_datastructures): Likewise.
8304 * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
8305 (pass_late_warn_uninitialized): Likewise.
8306 (pass_update_address_taken): Likewise.
8307 * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
8308 * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
8309 (pass_cse_sincos): Likewise.
8310 (pass_convert_to_rsqrt): Likewise.
8311 * tree-ssa-structalias.c (pass_build_alias): Likewise.
8312 * tree-stdarg.c (pass_stdarg): Likewise.
8313 * tree-tailcall.c (pass_tail_recursion): Likewise.
8314 (pass_tail_calls): Likewise.
8315 * tree-vect-generic.c (pass_lower_vector): Likewise.
8316 (pass_lower_vector_ssa): Likewise.
8317 * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
8318
0051ef59
JM
83192009-04-16 Joseph Myers <joseph@codesourcery.com>
8320
8321 * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
8322 XLR entry.
8323 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
8324 Handle -march=xlr.
8325 * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
8326 logical and signext.
8327
b3f8558a
KK
83282009-04-16 Kaz Kojima <kkojima@gcc.gnu.org>
8329
8330 PR target/39767
8331 * config/sh/predicates.md (arith_operand): Check if the operand
8332 of TRUNCATE is a REG.
8333
f57597d9
KH
83342009-04-16 Kazu Hirata <kazu@codesourcery.com>
8335
8336 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
8337 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
8338
b172d063
KH
83392009-04-16 Kazu Hirata <kazu@codesourcery.com>
8340
8341 * tree-iterator.c (tsi_split_statement_list_after,
8342 tsi_split_statement_list_before): Remove.
8343 * tree-iterator.h: Remove the prototypes for
532bfb0a 8344 tsi_split_statement_list_after and tsi_split_statement_list_before.
b172d063 8345
78fe4f1f
KH
83462009-04-16 Kazu Hirata <kazu@codesourcery.com>
8347
8348 * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
8349 * tree-ssa-propagate.h: Remove the prototype for
8350 stmt_makes_single_load.
8351
43dd3201
KH
83522009-04-16 Kazu Hirata <kazu@codesourcery.com>
8353
8354 * emit-rtl.c (set_mem_attrs_from_reg): Remove.
8355 * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
8356
4252a4aa
KH
83572009-04-16 Kazu Hirata <kazu@codesourcery.com>
8358
8359 * tree-iterator.c (EXPR_LAST_BODY): Remove.
8360
bfb69968
KH
83612009-04-16 Kazu Hirata <kazu@codesourcery.com>
8362
8363 * except.c (eh_region_outer_p): Remove.
8364 * except.h: Remove the prototype for eh_region_outer_p.
8365
c7db7fa5
KH
83662009-04-16 Kazu Hirata <kazu@codesourcery.com>
8367
8368 * function.c (current_function_assembler_name): Remove.
8369 * function.h: Remove the prototype for
8370 current_function_assembler_name.
8371
efc0b2bd
ILT
83722009-04-16 Ian Lance Taylor <iant@google.com>
8373
532bfb0a 8374 * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
efc0b2bd
ILT
8375 (add_reg_note): Call alloc_reg_note.
8376 * rtl.h (alloc_reg_note): Declare.
8377 * combine.c (try_combine): Use alloc_reg_note.
8378 (recog_for_combine, move_deaths): Likewise.
8379 (distribute_notes): Use alloc_reg_note and add_reg_note.
8380 * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
8381 * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
8382 * reload1.c (eliminate_regs_1): Use alloc_reg_note.
8383
6080348f
VM
83842009-04-16 Vladimir Makarov <vmakarov@redhat.com>
8385
8386 PR rtl-optimization/39762
8387 * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
8388 ira_may_move_out_cost): Add comments about way of their usage.
532bfb0a 8389 (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
2ba9daa7 8390
6080348f
VM
8391 * ira-conflicts.c (process_regs_for_copy): Use function
8392 ira_get_register_move_cost instead of global
8393 ira_register_move_cost.
8394
8395 * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
8396 color_pass, move_spill_restore, update_curr_costs): Ditto.
8397
8398 * ira-lives.c (process_single_reg_class_operands): Ditto.
8399
8400 * ira-emit.c (emit_move_list): Ditto.
8401
8402 * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
8403 (record_reg_classes): Ditto. Use functions
8404 ira_get_register_move_cost and ira_get_may_move_cost instead of
8405 global vars ira_register_move_cost, ira_may_move_out_cost and
8406 ira_may_move_in_cost.
8407 (record_address_regs): Don't call ira_init_register_move_cost.
8408 Use function ira_get_may_move_cost instead of global
8409 ira_may_move_in_cost.
8410 (process_bb_node_for_hard_reg_moves): Use function
532bfb0a 8411 ira_get_register_move_cost instead of global ira_register_move_cost.
6080348f 8412 (ira_costs): Don't call ira_init_register_move_cost.
2ba9daa7 8413
646bea10
RG
84142009-04-16 Richard Guenther <rguenther@suse.de>
8415
8416 * tree-cfg.c (verify_gimple_assign_binary):
8417 Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
8418 * ipa-struct-reorg.c (gen_size): Fold the built expressions.
8419 (create_general_new_stmt): Note that this function is broken.
8420
02e819ff
RAE
84212009-04-16 Rafael Avila de Espindola <espindola@google.com>
8422
8423 * common.opt (fhelp): Add Var(help_flag).
8424 * gcc-plugin.h (plugin_info): Add help.
8425 * plugin.c (plugin_name_args): Add help.
8426 (register_plugin_info): Set plugin->help.
8427 (print_help_one_plugin): New.
8428 (print_plugins_help): New.
8429 * plugin.h (print_plugins_help): New.
8430 * toplev.c (toplev_main): Call print_plugins_help if needed.
8431
ccacdf06
RG
84322009-04-16 Richard Guenther <rguenther@suse.de>
8433
8434 * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
8435 (gimple_ior_addresses_taken_1): New function.
8436 (gimple_ior_addresses_taken): Likewise.
8437 * gimple.h (struct gimple_statement_with_ops_base): Remove
8438 addresses_taken member.
8439 (gimple_ior_addresses_taken): Declare.
8440 (gimple_addresses_taken, gimple_addresses_taken_ptr,
8441 gimple_set_addresses_taken): Remove.
8442 * ipa-reference.c (mark_address): New function.
8443 (scan_stmt_for_static_refs): Use it for marking addresses taken.
8444 * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
8445 (mark_address_taken): ... this. Just set TREE_ADDRESSABLE.
8446 (gimple_add_to_addresses_taken): Remove.
8447 (get_tmr_operands): Call mark_address_taken.
8448 (get_asm_expr_operands): Likewise.
8449 (get_expr_operands): Likewise.
8450 (build_ssa_operands): Do not clear the addresses_taken bitmap.
8451 (free_stmt_operands): Do not free it.
8452 * tree-ssa.c (delete_tree_ssa): Likewise.
8453 (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
8454
346ef3fa
RG
84552009-04-16 Richard Guenther <rguenther@suse.de>
8456
8457 * gimple.h (walk_stmt_load_store_addr_ops): Declare.
8458 (walk_stmt_load_store_ops): Likewise.
8459 * gimple.c (get_base_loadstore): New function.
8460 (walk_stmt_load_store_addr_ops): Likewise.
8461 (walk_stmt_load_store_ops): Likewise.
8462 * ipa-pure-const.c (check_op): Simplify.
8463 (check_load, check_store): New functions.
8464 (check_stmt): Use walk_stmt_load_store_ops.
8465 * ipa-reference.c (mark_load): Adjust signature.
8466 (mark_store): Likewise.
8467 (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
8468
44e9f006
RAE
84692009-04-16 Rafael Avila de Espindola <espindola@google.com>
8470
8471 * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
8472 (plugin_info): New.
8473 * opts.c (common_handle_option): Don't call print_version.
8474 * plugin.c (plugin_name_args): Add version.
8475 (register_plugin_info): New.
8476 (register_callback): Handle PLUGIN_INFO.
8477 (try_init_one_plugin): New.
8478 (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
8479 if failed to init.
8480 (finalize_one_plugin): New.
8481 (finalize_plugins): New.
8482 (print_one_plugin): New.
8483 (print_plugins_versions): New.
8484 * plugin.h (print_plugins_versions): New.
8485 (finalize_plugins): New.
8486 * toplev.c (compile_file): Don't call initialize_plugins.
8487 (print_version): Call print_plugins_versions.
8488 (toplev_main): Call initialize_plugins. Print version if needed.
8489 Call finalize_plugins.
8490
41fd0f9b
RAE
84912009-04-16 Rafael Avila de Espindola <espindola@google.com>
8492
8493 * common.opt (fversion): New.
8494 * gcc.c (print_version): New.
8495 (process_command): Don't print the version. Just set print_version.
8496 (main): Print version. Call subprocesses if print_version and
8497 verbose_flag are set.
8498 * opts.c (common_handle_option): Handle OPT_fversion.
8499
550918ca 85002009-04-16 Richard Guenther <rguenther@suse.de>
532bfb0a 8501 Ira Rosen <irar@il.ibm.com>
550918ca
RG
8502
8503 PR tree-optimization/39698
8504 * tree-vect-loop.c (get_initial_def_for_reduction): Use the
8505 type of the reduction variable. Only generate the def if
8506 it is needed.
8507
8508 * omp-low.c (expand_omp_for_generic): When converting to a pointer
8509 make sure to first convert to an integer of the same precision.
8510 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
8511 the type of the evolution correctly in computing the new
8512 induction variable base.
8513
54634841
RG
85142009-04-16 Richard Guenther <rguenther@suse.de>
8515
8516 PR middle-end/39625
8517 * tree-cfg.c (make_blocks): Split statements with to-be
8518 abnormal SSA names on the lhs.
8519
b6fc2cdb
PB
85202009-04-16 Paolo Bonzini <bonzini@gnu.org>
8521
8522 * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
8523 Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
8524 * c-typeck.c (really_start_incremental_init): Likewise.
8525 * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
8526 (TARGET_INITIALIZER): Remove it.
8527 * target.h (struct target): Remove vector_opaque_p.
8528 * tree.c (build_opaque_vector_type): New.
8529 * tree.h (TYPE_VECTOR_OPAQUE): New.
8530 (build_opaque_vector_type): Declare.
8531 * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
8532 * config/rs6000/rs6000.c (build_opaque_vector_type,
8533 rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
8534 (rs6000_init_builtins): Use build_opaque_vector_type for
8535 opaque_V4SI_type_node.
8536
a417cdd9
CM
85372009-04-15 Catherine Moore <clm@codesourcery.com>
8538
532bfb0a
AJ
8539 * debug.h (set_name): Declare.
8540 * dwarf2out.c (dwarf2out_set_name): Declare.
8541 (dwarf2_debug_hooks): Add set_name.
8542 (find_AT_string): New.
8543 (add_AT_string): Call find_AT_string.
8544 (dwarf2out_set_name): New.
8545 * cp/decl.c (grokdeclarator): Call set_name.
8546 * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
8547 * debug.c (do_nothing_debug_hooks): Likewise.
8548 * dbxout.c (dbx_debug_hooks): Likewise.
8549 * sdbout.c (sdb_debug_hooks): Likewise.
a417cdd9 8550
60839f5d 85512009-04-15 Michael Eager <eager@eagercon.com>
2c5cac98 8552
532bfb0a
AJ
8553 * config/rs6000/rs6000.c (rs6000_function_value): Set function return
8554 reg for single-precision FPU.
8555 * config/rs6000/rs6000.md (movsi_internal1): Only for
8556 !TARGET_SINGLE_FPU.
8557 (movsi_internal1_single): New. Add pattern to move SI values to/from
2c5cac98
ME
8558 single-precision FP regs.
8559
ada39f0b
RG
85602009-04-15 Richard Guenther <rguenther@suse.de>
8561
8562 * omp-low.c (lower_rec_input_clauses): Build correct address
8563 expressions.
8564 (expand_omp_for_generic): Fix multiplication type.
532bfb0a 8565 * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
ada39f0b
RG
8566 (generate_memset_zero): Fix types.
8567 * tree-profile.c (prepare_instrumented_value): Correctly
8568 widen a pointer.
8569
6866c6e8
ILT
85702009-04-15 Ian Lance Taylor <iant@google.com>
8571
8572 * c.opt (Wenum-compare): Enable for C and Objc. Initialize to -1.
8573 * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
8574 for -Wall and for -Wc++-compat.
8575 (c_common_post_options): For C++, set warn_enum_compare if not
8576 already set.
8577 * c-tree.h (struct c_expr): Add field original_type.
8578 (build_external_ref): Update declaration.
8579 * c-parser.c (c_parser_braced_init): Set original_type.
8580 (c_parser_initelt): Likewise.
8581 (c_parser_expr_no_commas): Likewise.
8582 (c_parser_conditional_expression): Likewise.
8583 (c_parser_cast_expression): Likewise.
8584 (c_parser_unary_expression): Likewise. Pull setting of
8585 original_code to top of function.
8586 (c_parser_sizeof_expression): Set original_type.
8587 (c_parser_alignof_expression): Likewise.
8588 (c_parser_postfix_expression): Likewise. Pull setting of
8589 original_code to top of function.
532bfb0a 8590 (c_parser_postfix_expression_after_paren_type): Set original_type.
6866c6e8
ILT
8591 (c_parser_postfix_expression_after_primary): Likewise.
8592 (c_parser_expression): Likewise.
8593 * c-typeck.c (build_external_ref): Add type parameter. Change all
8594 callers.
8595 (c_expr_sizeof_expr): Set original_type field.
8596 (parser_build_unary_op): Likewise.
8597 (parser_build_binary_op): Likewise. Optionally warn about
8598 comparisons of enums of different types.
8599 (digest_init): Set original_type field.
8600 (really_start_incremental_init): Likewise.
8601 (push_init_level, pop_init_level): Likewise.
8602 * doc/invoke.texi (Warning Options): -Wenum-compare now
8603 supported in C.
8604
f116fecf
RG
86052009-04-15 Richard Guenther <rguenther@suse.de>
8606
8607 * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
8608 out a necessary conversion.
8609 * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
8610 names we didn't value number.
8611 * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
8612
25e20805
RG
86132009-04-15 Richard Guenther <rguenther@suse.de>
8614
8615 PR tree-optimization/39764
8616 * tree-ssa-ccp.c (get_value): Canonicalize value with
8617 canonicalize_float_value.
8618
90cc3676
JH
86192009-04-15 Jan Hubicka <jh@suse.cz>
8620
8621 * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
8622 Wrong version of patch.
8623
6d14c006
JH
86242009-04-15 Jan Hubicka <jh@suse.cz>
8625
8626 * builtins.def (va_start, va_end, va_copy): Mark nothrow.
8627
5afaa917
NS
86282009-04-15 Nathan Sidwell <nathan@codesourcery.com>
8629
8630 * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
8631 our distinct integral and vector types.
8632
3b482fca
RAE
86332009-04-15 Rafael Avila de Espindola <espindola@google.com>
8634
8635 * class.c (build_vtbl_ref_1): Remove call to assemble_external.
8636 * init.c (build_vtbl_address): Remove call to assemble_external.
8637
6cd1d2e2
DJ
86382009-04-14 Daniel Jacobowitz <dan@codesourcery.com>
8639
8640 * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
8641 output for other floating point modes.
8642
dab71827
DN
86432009-04-14 Diego Novillo <dnovillo@google.com>
8644
8645 * diagnostic.c (diagnostic_report_diagnostic): Do not
8646 warn about loaded plugins for DK_ERROR and DK_WARNING.
8647 * c-decl.c (declspecs_add_type): Move call to
8648 invoke_plugin_callbacks ...
8649 * c-parser.c (c_parser_declspecs): ... here.
8650 * plugin.c (dump_active_plugins): Tidy output.
8651
68a607d8
DN
86522009-04-14 Diego Novillo <dnovillo@google.com>
8653 Le-Chun Wu <lcwu@google.com>
8654
8655 * configure.ac: Add --enable-plugin support.
8656 Define ENABLE_PLUGIN and PLUGINLIBS when specified.
8657 * Makefile.in (PLUGIN_H): Define.
8658 Export ENABLE_PLUGIN and GMPINC to site.exp.
8659 Add PLUGINLIBS to link command.
8660 Add/modify dependencies for plugin.o and files including plugin.h.
8661 (plugin.o): New.
8662 * config.in: Regenerate.
2ba9daa7 8663
68a607d8
DN
8664 * opts.c (common_handle_option): Handle OPT_fplugin_ and
8665 OPT_fplugin_arg_.
8666
86672009-04-14 Le-Chun Wu <lcwu@google.com>
8668
8669 * tree-pass.h (register_one_dump_file): Add a prototype for
8670 register_one_dump_file.
8671 * toplev.c (compile_file): Call initialize_plugins.
8672 (do_compile): Call invoke_plugin_callbacks.
8673 (toplev_main): Call invoke_plugin_callbacks.
8674 * common.opt: Add -fplugin= and -fplugin-arg-.
8675 * gcc-plugin.h: New public header file for plugins to include.
8676 * plugin.c: New source file.
8677 * plugin.h: New internal header file.
8678 * passes.c (register_one_dump_file): Make it external.
2ba9daa7 8679
68a607d8
DN
8680 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
8681
86822009-04-14 Diego Novillo <dnovillo@google.com>
8683
8684 * doc/plugins.texi: New.
8685 * doc/gccint.texi: Add reference to Plugins chapter.
8686 * doc/invoke.texi: Document -fplugin and -fplugin-arg
8687 * diagnostic.c (diagnostic_report_diagnostic): Warn about
8688 loaded plugins, if any.
8689 * timevar.def (TV_PLUGIN_INIT): Define.
8690 (TV_PLUGIN_RUN): Define.
8691 * plugin.c: Include timevar.h
8692 (plugins_active_p): New.
8693 (dump_active_plugins): New.
8694 (debug_active_plugins): New.
8695
50617257
JM
86962009-04-14 Joseph Myers <joseph@codesourcery.com>
8697
8698 * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
8699 library paths.
8700 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
8701
b32f6fff
KH
87022009-04-14 Kazu Hirata <kazu@codesourcery.com>
8703
8704 * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
8705 the same as a minus without a shift.
8706
85d04fa2
NC
87072009-04-14 Nick Clifton <nickc@redhat.com>
8708
8709 * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
8710 comparisons with small integers will always produce a short
8711 branch.
8712
e495a0c8
RAE
87132009-04-14 Rafael Avila de Espindola <espindola@google.com>
8714
8715 Merge:
e495a0c8
RAE
8716 2008-12-19 Diego Novillo <dnovillo@google.com>
8717
532bfb0a 8718 * cgraph.c (dump_cgraph_node): Show memory address of NODE.
e495a0c8 8719
ad41bd84 87202009-04-14 Richard Guenther <rguenther@suse.de>
587aa063
RG
8721
8722 * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
8723 verification.
8724 (verify_gimple_assign_binary): Likewise. Handle shifts and
8725 rotates correctly.
8726 (verify_gimple_phi): Print the mismatched argument position.
8727 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
8728 Fix types.
8729 (vect_update_init_of_dr): Likewise.
8730 * matrix-reorg.c (transform_access_sites): Do what the
8731 comment suggests.
8732 * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
8733
60839f5d 87342009-04-13 Michael Eager <eager@eagercon.com>
9eca1774
ME
8735
8736 * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
8737 _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
8738 * config/rs6000/xilinx.h: New. Spec for powerpc-xilinx-eabi
2ba9daa7 8739 * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
9eca1774
ME
8740 remove duplicate config
8741
b0e2d008
DR
87422009-04-13 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
8743
8744 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
8745 file_name:line_number type locator of the call site.
2ba9daa7 8746
1244a8b7
VM
87472009-04-13 Vladimir Makarov <vmakarov@redhat.com>
8748
8749 * genautomata.c: Put blank after comma.
8750 (automaton_decls): New.
8751 (struct unit_usage): Add comments to member next.
8752 (store_alt_unit_usage): Keep the list ordered.
8753 (unit_present_on_list_p, equal_alternatives_p): New.
8754 (check_regexp_units_distribution): Check units distribution
8755 correctness correctly.
8756 (main): Don't write automata if error is found. Return correct
8757 exit code.
2ba9daa7 8758
1244a8b7
VM
8759 * config/m68k/cf.md (cfv4_ds): Remove.
8760 (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
8761 cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
8762
8763 * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
8764 power4-load-ext, power4-store, power4-store-update,
8765 power4-fpstore, power4-fpstore-update, power4-two, power4-three,
8766 power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
8767 power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
8768 power4-sqrt, power4-isync): Modify reservation to make correct
8769 unit distribution to automata.
8770
8771 * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
8772 power5-store-update, power5-two, power5-three, power5-lmul,
8773 power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
2ba9daa7 8774
f7dd1864
AN
87752009-04-13 Adam Nemet <anemet@caviumnetworks.com>
8776
8777 * except.c (pass_set_nothrow_function_flags): Set name and add
8778 TODO_dump_func.
8779 (set_nothrow_function_flags): Mention in the dump file when
8780 changing a function to nothrow.
8781
59a1171f
OS
87822009-04-13 Ozkan Sezer <sezeroz@gmail.com>
8783
8784 PR/39066
8785 * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
8786 instead of unsigned long.
8787
934c2060
RR
87882009-04-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8789
f7dd1864
AN
8790 * config/arm/arm.c (return_used_this_function): Remove.
8791 (arm_output_function_prologue): Remove use of
934c2060 8792 return_used_this_function.
f7dd1864 8793 (output_return_instruction): Replace use of
934c2060
RR
8794 return_used_this_function
8795 by cfun->machine->return_used_this_function.
f7dd1864
AN
8796 (arm_output_epilogue): Likewise.
8797 (arm_output_function_epilogue): Likewise.
8798 (thumb_unexpanded_epilogue): Likewise.
8799 * config/arm/arm.h (struct machine_function):
934c2060 8800 New member return_used_this_function.
f7dd1864 8801
ae5cc016
MM
88022009-04-12 Mark Mitchell <mark@codesourcery.com>
8803
8804 * doc/install.texi: Correct description of default directory for
8805 --with-gxx-include-dir.
8806
a0ce68df 88072009-04-12 Eric Botcazou <ebotcazou@adacore.com>
849d624b
EB
8808
8809 * fold-const.c (build_range_check): Properly deal with enumeral and
8810 boolean base types.
8811
3906a4a1
SB
88122009-04-12 Steven Bosscher <steven@gcc.gnu.org>
8813
8814 * doc/invoke.texi (max_gcse_passes): Remove documentation.
8815 * params.def (PARAM_MAX_GCSE_PASSES): Remove.
8816 * params.h (MAX_GCSE_PASSES): Remove.
8817 * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
8818 in sequence. Remove ability to run multiple passes.
8819 (bypass_jumps): Report run as third CPROP pass.
8820
efaadb93
AN
88212009-04-12 Adam Nemet <anemet@caviumnetworks.com>
8822
8823 PR middle-end/39651
8824 * except.c (can_throw_external): Look at each insn in a SEQUENCE
8825 when deciding whether the whole SEQUENCE can throw.
8826
4c48007b
UB
88272009-04-12 Uros Bizjak <ubizjak@gmail.com>
8828
8829 PR target/39740
8830 * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
8831 offseted label references.
8832
b4104018
JH
88332009-04-11 Jan Hubicka <jh@suse.cz>
8834
8835 * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
8836
32848948
RG
88372009-04-11 Richard Guenther <rguenther@suse.de>
8838
8839 PR middle-end/39732
8840 * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
8841 return variables as TREE_ADDRESSABLE.
8842
8810712e
RG
88432009-04-11 Richard Guenther <rguenther@suse.de>
8844
8845 PR tree-optimization/39713
8846 * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
8847 reference trees have SSA_NAME operands.
8848
fa78c0c1
RG
88492009-04-11 Richard Guenther <rguenther@suse.de>
8850
8851 PR c/39712
8852 * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
8853 address expressions.
8854
4d722130
DK
88552009-04-11 Dave Korn <dave.korn.cygwin@gmail.com>
8856
8857 * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE): Update to
8858 match changes in Cygwin 1.7
8859 (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
8860 UINT_FAST16_TYPE, UINT_FAST32_TYPE): Likewise.
8861
567a90f5
PB
88622009-04-10 Paolo Bonzini <bonzini@gnu.org>
8863
8864 PR tree-optimization/39701
8865 * doc/invoke.texi (Optimization Options): Document change in
8866 meaning and initialization of -fdelete-null-pointer-checks.
8867
1ad2f450
L
88682009-04-10 H.J. Lu <hongjiu.lu@intel.com>
8869
8870 PR middle-end/39701
8871 * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
8872
8873 * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
8874 here.
8875
8876 * doc/invoke.texi: Update -fdelete-null-pointer-checks.
8877
1afc5373
CF
88782009-04-10 Chao-ying Fu <fu@mips.com>
8879
8880 * doc/tm.texi (Instruction Output): Document
8881 TARGET_ASM_FINAL_POSTSCAN_INSN.
8882 * target.h (final_postscan_insn): New field in asm_out.
8883 * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
8884 (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
8885 * final.c (final_scan_insn): Call
8886 targetm.asm_out.final_postscan_insn after outputting
8887 an asm macro and a normal instruction.
8888
8889 * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
8890 * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
8891 * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
8892 (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
8893 (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
8894
4d35e75c
PB
88952009-04-10 Paolo Bonzini <bonzini@gnu.org>
8896
8897 PR middle-end/39701
1ad2f450
L
8898 * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
8899 variables as non-NULL even with -fdelete-null-pointer-checks.
4d35e75c 8900
62c49b83
L
89012009-04-10 H.J. Lu <hongjiu.lu@intel.com>
8902
8903 * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
8904
80558628
L
89052009-04-09 H.J. Lu <hongjiu.lu@intel.com>
8906
8907 PR target/39678
8908 * config/i386/i386.c (classify_argument): Handle SCmode with
8909 (bit_offset % 64) != 0.
8910
8c70d28b
SL
89112009-04-09 Sandra Loosemore <sandra@codesourcery.com>
8912
8913 * doc/invoke.texi (Optimize Options): Add cross-reference to
8914 -Q --help=optimizers examples.
8915
e1ff19bf
BE
89162009-04-10 Ben Elliston <bje@au.ibm.com>
8917
8918 PR target/36800
8919 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
8920 regalign for the reg == fpr and TDmode case.
8921
52daca75
DA
89222009-04-09 David Ayers <ayers@fsfe.org>
8923
8924 PR objc/29200
8925 * objc/objc-act.c (warn_with_method): Remove helper function.
8926 (check_duplicates): Call warning and inform directly.
8927 (really_start_method): Likewise.
8928
b45f0e58
PB
89292009-04-09 Paolo Bonzini <bonzini@gnu.org>
8930
8931 * expmed.c (expand_divmod): Always use a comparison for a division
8932 by a large unsigned integer.
8933
1ad2f450
L
8934 * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
8935 for things others than variables or functions as nonzero.
b45f0e58 8936
748086b7
JJ
89372009-04-09 Nick Clifton <nickc@redhat.com>
8938
8939 * unwind-compat.c: Change copyright header to refer to version
8940 3 of the GNU General Public License with version 3.1 of the
8941 GCC Runtime Library Exception and to point readers at the
7a715bba 8942 COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
748086b7
JJ
8943 * config/alpha/crtfastmath.c: Likewise.
8944 * config/alpha/linux-unwind.h: Likewise.
8945 * config/alpha/qrnnd.asm: Likewise.
8946 * config/alpha/vms-crt0-64.c: Likewise.
8947 * config/alpha/vms-crt0.c: Likewise.
8948 * config/alpha/vms-dwarf2.asm: Likewise.
8949 * config/alpha/vms-dwarf2eh.asm: Likewise.
8950 * config/alpha/vms-psxcrt0-64.c: Likewise.
8951 * config/alpha/vms-psxcrt0.c: Likewise.
8952 * config/alpha/vms_tramp.asm: Likewise.
8953 * config/arc/initfini.c: Likewise.
8954 * config/arc/lib1funcs.asm: Likewise.
8955 * config/arm/bpabi-v6m.S: Likewise.
8956 * config/arm/bpabi.S: Likewise.
8957 * config/arm/bpabi.c: Likewise.
8958 * config/arm/crti.asm: Likewise.
8959 * config/arm/crtn.asm: Likewise.
8960 * config/arm/ieee754-df.S: Likewise.
8961 * config/arm/ieee754-sf.S: Likewise.
8962 * config/arm/lib1funcs.asm: Likewise.
8963 * config/arm/libunwind.S: Likewise.
8964 * config/arm/linux-atomic.c: Likewise.
8965 * config/arm/mmintrin.h: Likewise.
8966 * config/arm/pr-support.c: Likewise.
8967 * config/arm/unaligned-funcs.c: Likewise.
8968 * config/arm/unwind-arm.c: Likewise.
8969 * config/arm/unwind-arm.h: Likewise.
8970 * config/avr/libgcc.S: Likewise.
8971 * config/bfin/crti.s: Likewise.
8972 * config/bfin/crtlibid.s: Likewise.
8973 * config/bfin/crtn.s: Likewise.
8974 * config/bfin/lib1funcs.asm: Likewise.
8975 * config/bfin/linux-unwind.h: Likewise.
8976 * config/cris/arit.c: Likewise.
8977 * config/cris/cris_abi_symbol.c: Likewise.
8978 * config/darwin-64.c: Likewise.
8979 * config/darwin-crt2.c: Likewise.
8980 * config/darwin-crt3.c: Likewise.
8981 * config/darwin.h: Likewise.
8982 * config/dbxelf.h: Likewise.
8983 * config/dfp-bit.c: Likewise.
8984 * config/dfp-bit.h: Likewise.
8985 * config/elfos.h: Likewise.
8986 * config/fixed-bit.c: Likewise.
8987 * config/fixed-bit.h: Likewise.
8988 * config/fp-bit.c: Likewise.
8989 * config/fp-bit.h: Likewise.
8990 * config/fr30/crti.asm: Likewise.
8991 * config/fr30/crtn.asm: Likewise.
8992 * config/fr30/lib1funcs.asm: Likewise.
8993 * config/freebsd-spec.h: Likewise.
8994 * config/frv/cmovd.c: Likewise.
8995 * config/frv/cmovh.c: Likewise.
8996 * config/frv/cmovw.c: Likewise.
8997 * config/frv/frvbegin.c: Likewise.
8998 * config/frv/frvend.c: Likewise.
8999 * config/frv/lib1funcs.asm: Likewise.
9000 * config/glibc-stdint.h: Likewise.
9001 * config/h8300/clzhi2.c: Likewise.
9002 * config/h8300/crti.asm: Likewise.
9003 * config/h8300/crtn.asm: Likewise.
9004 * config/h8300/ctzhi2.c: Likewise.
9005 * config/h8300/fixunssfsi.c: Likewise.
9006 * config/h8300/lib1funcs.asm: Likewise.
9007 * config/h8300/parityhi2.c: Likewise.
9008 * config/h8300/popcounthi2.c: Likewise.
9009 * config/i386/ammintrin.h: Likewise.
9010 * config/i386/att.h: Likewise.
9011 * config/i386/avxintrin.h: Likewise.
9012 * config/i386/biarch64.h: Likewise.
9013 * config/i386/bmmintrin.h: Likewise.
9014 * config/i386/cpuid.h: Likewise.
9015 * config/i386/cross-stdarg.h: Likewise.
9016 * config/i386/crtfastmath.c: Likewise.
9017 * config/i386/crtprec.c: Likewise.
9018 * config/i386/cygming-crtbegin.c: Likewise.
9019 * config/i386/cygming-crtend.c: Likewise.
9020 * config/i386/cygwin.asm: Likewise.
9021 * config/i386/emmintrin.h: Likewise.
9022 * config/i386/gmm_malloc.h: Likewise.
9023 * config/i386/gthr-win32.c: Likewise.
9024 * config/i386/i386.h: Likewise.
9025 * config/i386/immintrin.h: Likewise.
9026 * config/i386/linux-unwind.h: Likewise.
9027 * config/i386/linux64.h: Likewise.
9028 * config/i386/mm3dnow.h: Likewise.
9029 * config/i386/mmintrin-common.h: Likewise.
9030 * config/i386/mmintrin.h: Likewise.
9031 * config/i386/nmmintrin.h: Likewise.
9032 * config/i386/pmm_malloc.h: Likewise.
9033 * config/i386/pmmintrin.h: Likewise.
9034 * config/i386/smmintrin.h: Likewise.
9035 * config/i386/sol2-c1.asm: Likewise.
9036 * config/i386/sol2-ci.asm: Likewise.
9037 * config/i386/sol2-cn.asm: Likewise.
9038 * config/i386/sol2-gc1.asm: Likewise.
9039 * config/i386/tmmintrin.h: Likewise.
9040 * config/i386/unix.h: Likewise.
9041 * config/i386/w32-unwind.h: Likewise.
9042 * config/i386/wmmintrin.h: Likewise.
9043 * config/i386/x86-64.h: Likewise.
9044 * config/i386/x86intrin.h: Likewise.
9045 * config/i386/xmmintrin.h: Likewise.
9046 * config/ia64/crtbegin.asm: Likewise.
9047 * config/ia64/crtend.asm: Likewise.
9048 * config/ia64/crtfastmath.c: Likewise.
9049 * config/ia64/crti.asm: Likewise.
9050 * config/ia64/crtn.asm: Likewise.
9051 * config/ia64/fde-glibc.c: Likewise.
9052 * config/ia64/lib1funcs.asm: Likewise.
9053 * config/ia64/linux-unwind.h: Likewise.
9054 * config/ia64/quadlib.c: Likewise.
9055 * config/ia64/unwind-ia64.c: Likewise.
9056 * config/linux.h: Likewise.
9057 * config/m32c/m32c-lib1.S: Likewise.
9058 * config/m32c/m32c-lib2-trapv.c: Likewise.
9059 * config/m32c/m32c-lib2.c: Likewise.
9060 * config/m32r/initfini.c: Likewise.
9061 * config/m68hc11/larith.asm: Likewise.
9062 * config/m68hc11/m68hc11-crt0.S: Likewise.
9063 * config/m68k/cf.md: Likewise.
9064 * config/m68k/crti.s: Likewise.
9065 * config/m68k/crtn.s: Likewise.
9066 * config/m68k/lb1sf68.asm: Likewise.
9067 * config/m68k/linux-unwind.h: Likewise.
9068 * config/mcore/crti.asm: Likewise.
9069 * config/mcore/crtn.asm: Likewise.
9070 * config/mcore/lib1.asm: Likewise.
9071 * config/mips/linux-unwind.h: Likewise.
9072 * config/mips/loongson.h: Likewise.
9073 * config/mips/mips16.S: Likewise.
9074 * config/mmix/crti.asm: Likewise.
9075 * config/mmix/crtn.asm: Likewise.
9076 * config/pa/fptr.c: Likewise.
9077 * config/pa/hpux-unwind.h: Likewise.
9078 * config/pa/lib2funcs.asm: Likewise.
9079 * config/pa/linux-atomic.c: Likewise.
9080 * config/pa/linux-unwind.h: Likewise.
9081 * config/pa/milli64.S: Likewise.
9082 * config/pa/quadlib.c: Likewise.
9083 * config/pa/stublib.c: Likewise.
9084 * config/picochip/libgccExtras/adddi3.asm: Likewise.
9085 * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
9086 * config/picochip/libgccExtras/ashlsi3.c: Likewise.
9087 * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
9088 * config/picochip/libgccExtras/ashrsi3.c: Likewise.
9089 * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
9090 * config/picochip/libgccExtras/divmod15.asm: Likewise.
9091 * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
9092 * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
9093 * config/picochip/libgccExtras/longjmp.asm: Likewise.
9094 * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
9095 * config/picochip/libgccExtras/lshrsi3.c: Likewise.
9096 * config/picochip/libgccExtras/parityhi2.asm: Likewise.
9097 * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
9098 * config/picochip/libgccExtras/setjmp.asm: Likewise.
9099 * config/picochip/libgccExtras/subdi3.asm: Likewise.
9100 * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
9101 * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
9102 * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
9103 * config/rs6000/750cl.h: Likewise.
9104 * config/rs6000/altivec.h: Likewise.
9105 * config/rs6000/biarch64.h: Likewise.
9106 * config/rs6000/crtresfpr.asm: Likewise.
9107 * config/rs6000/crtresgpr.asm: Likewise.
9108 * config/rs6000/crtresxfpr.asm: Likewise.
9109 * config/rs6000/crtresxgpr.asm: Likewise.
9110 * config/rs6000/crtsavfpr.asm: Likewise.
9111 * config/rs6000/crtsavgpr.asm: Likewise.
9112 * config/rs6000/darwin-asm.h: Likewise.
9113 * config/rs6000/darwin-fallback.c: Likewise.
9114 * config/rs6000/darwin-fpsave.asm: Likewise.
9115 * config/rs6000/darwin-ldouble.c: Likewise.
9116 * config/rs6000/darwin-tramp.asm: Likewise.
9117 * config/rs6000/darwin-unwind.h: Likewise.
9118 * config/rs6000/darwin-vecsave.asm: Likewise.
9119 * config/rs6000/darwin-world.asm: Likewise.
9120 * config/rs6000/e500crtres32gpr.asm: Likewise.
9121 * config/rs6000/e500crtres64gpr.asm: Likewise.
9122 * config/rs6000/e500crtres64gprctr.asm: Likewise.
9123 * config/rs6000/e500crtrest32gpr.asm: Likewise.
9124 * config/rs6000/e500crtrest64gpr.asm: Likewise.
9125 * config/rs6000/e500crtresx32gpr.asm: Likewise.
9126 * config/rs6000/e500crtresx64gpr.asm: Likewise.
9127 * config/rs6000/e500crtsav32gpr.asm: Likewise.
9128 * config/rs6000/e500crtsav64gpr.asm: Likewise.
9129 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
9130 * config/rs6000/e500crtsavg32gpr.asm: Likewise.
9131 * config/rs6000/e500crtsavg64gpr.asm: Likewise.
9132 * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
9133 * config/rs6000/eabi-ci.asm: Likewise.
9134 * config/rs6000/eabi-cn.asm: Likewise.
9135 * config/rs6000/eabi.asm: Likewise.
9136 * config/rs6000/linux-unwind.h: Likewise.
9137 * config/rs6000/linux64.h: Likewise.
9138 * config/rs6000/paired.h: Likewise.
9139 * config/rs6000/paired.md: Likewise.
9140 * config/rs6000/ppc64-fp.c: Likewise.
9141 * config/rs6000/ppu_intrinsics.h: Likewise.
9142 * config/rs6000/rs6000.h: Likewise.
9143 * config/rs6000/si2vmx.h: Likewise.
9144 * config/rs6000/sol-ci.asm: Likewise.
9145 * config/rs6000/sol-cn.asm: Likewise.
9146 * config/rs6000/spe.h: Likewise.
9147 * config/rs6000/spu2vmx.h: Likewise.
9148 * config/rs6000/sysv4.h: Likewise.
9149 * config/rs6000/tramp.asm: Likewise.
9150 * config/rs6000/vec_types.h: Likewise.
9151 * config/s390/linux-unwind.h: Likewise.
9152 * config/s390/tpf-unwind.h: Likewise.
9153 * config/score/crti.asm: Likewise.
9154 * config/score/crtn.asm: Likewise.
9155 * config/sh/crt1.asm: Likewise.
9156 * config/sh/crti.asm: Likewise.
9157 * config/sh/crtn.asm: Likewise.
9158 * config/sh/divtab-sh4-300.c: Likewise.
9159 * config/sh/divtab-sh4.c: Likewise.
9160 * config/sh/divtab.c: Likewise.
9161 * config/sh/lib1funcs-4-300.asm: Likewise.
9162 * config/sh/lib1funcs-Os-4-200.asm: Likewise.
9163 * config/sh/lib1funcs.asm: Likewise.
9164 * config/sh/lib1funcs.h: Likewise.
9165 * config/sh/linux-atomic.asm: Likewise.
9166 * config/sh/linux-unwind.h: Likewise.
9167 * config/sh/shmedia.h: Likewise.
9168 * config/sh/sshmedia.h: Likewise.
9169 * config/sh/ushmedia.h: Likewise.
9170 * config/sparc/crtfastmath.c: Likewise.
9171 * config/sparc/linux-unwind.h: Likewise.
9172 * config/sparc/sol2-c1.asm: Likewise.
9173 * config/sparc/sol2-ci.asm: Likewise.
9174 * config/sparc/sol2-cn.asm: Likewise.
9175 * config/spu/divmodti4.c: Likewise.
9176 * config/spu/divv2df3.c: Likewise.
9177 * config/spu/float_disf.c: Likewise.
9178 * config/spu/float_unsdidf.c: Likewise.
9179 * config/spu/float_unsdisf.c: Likewise.
9180 * config/spu/float_unssidf.c: Likewise.
9181 * config/spu/mfc_multi_tag_release.c: Likewise.
9182 * config/spu/mfc_multi_tag_reserve.c: Likewise.
9183 * config/spu/mfc_tag_release.c: Likewise.
9184 * config/spu/mfc_tag_reserve.c: Likewise.
9185 * config/spu/mfc_tag_table.c: Likewise.
9186 * config/spu/multi3.c: Likewise.
9187 * config/spu/spu_internals.h: Likewise.
9188 * config/spu/spu_intrinsics.h: Likewise.
9189 * config/spu/spu_mfcio.h: Likewise.
9190 * config/spu/vec_types.h: Likewise.
9191 * config/spu/vmx2spu.h: Likewise.
9192 * config/stormy16/stormy16-lib2.c: Likewise.
9193 * config/svr4.h: Likewise.
9194 * config/sync.c: Likewise.
9195 * config/v850/lib1funcs.asm: Likewise.
9196 * config/vxlib-tls.c: Likewise.
9197 * config/vxlib.c: Likewise.
9198 * config/vxworks-dummy.h: Likewise.
9199 * config/xtensa/crti.asm: Likewise.
9200 * config/xtensa/crtn.asm: Likewise.
9201 * config/xtensa/ieee754-df.S: Likewise.
9202 * config/xtensa/ieee754-sf.S: Likewise.
9203 * config/xtensa/lib1funcs.asm: Likewise.
9204 * config/xtensa/lib2funcs.S: Likewise.
9205 * config/xtensa/linux-unwind.h: Likewise.
9206 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
9207 * config/xtensa/unwind-dw2-xtensa.h: Likewise.
9208 * coretypes.h: Likewise.
9209 * crtstuff.c: Likewise.
9210 * defaults.h: Likewise.
9211 * dwarf2.h: Likewise.
9212 * emutls.c: Likewise.
9213 * gbl-ctors.h: Likewise.
9214 * gcov-io.h: Likewise.
9215 * ginclude/float.h: Likewise.
9216 * ginclude/iso646.h: Likewise.
9217 * ginclude/stdarg.h: Likewise.
9218 * ginclude/stdbool.h: Likewise.
9219 * ginclude/stddef.h: Likewise.
9220 * ginclude/stdfix.h: Likewise.
9221 * ginclude/stdint-gcc.h: Likewise.
9222 * ginclude/tgmath.h: Likewise.
9223 * gthr-aix.h: Likewise.
9224 * gthr-dce.h: Likewise.
9225 * gthr-gnat.c: Likewise.
9226 * gthr-gnat.h: Likewise.
9227 * gthr-lynx.h: Likewise.
9228 * gthr-mipssde.h: Likewise.
9229 * gthr-nks.h: Likewise.
9230 * gthr-posix.c: Likewise.
9231 * gthr-posix.h: Likewise.
9232 * gthr-posix95.h: Likewise.
9233 * gthr-rtems.h: Likewise.
9234 * gthr-single.h: Likewise.
9235 * gthr-solaris.h: Likewise.
9236 * gthr-tpf.h: Likewise.
9237 * gthr-vxworks.h: Likewise.
9238 * gthr-win32.h: Likewise.
9239 * gthr.h: Likewise.
9240 * libgcc2.c: Likewise.
9241 * libgcc2.h: Likewise.
9242 * libgcov.c: Likewise.
9243 * tsystem.h: Likewise.
9244 * typeclass.h: Likewise.
9245 * unwind-c.c: Likewise.
9246 * unwind-compat.h: Likewise.
9247 * unwind-dw2-fde-compat.c: Likewise.
9248 * unwind-dw2-fde-darwin.c: Likewise.
9249 * unwind-dw2-fde-glibc.c: Likewise.
9250 * unwind-dw2-fde.c: Likewise.
9251 * unwind-dw2-fde.h: Likewise.
9252 * unwind-dw2.c: Likewise.
9253 * unwind-dw2.h: Likewise.
9254 * unwind-generic.h: Likewise.
9255 * unwind-pe.h: Likewise.
9256 * unwind-sjlj.c: Likewise.
9257 * unwind.inc: Likewise.
9258 * config/arm/neon-gen.ml: Change generated copyright header to
9259 refer to version 3 of the GNU General Public License with
9260 version 3.1 of the GCC Runtime Library Exception and to point
9261 readers at the COPYING3 and COPYING3.RUNTIME files and the
9262 FSF's license web page.
9263 * config/arm/arm_neon.h: Regenerate.
9264
92652009-04-09 Jakub Jelinek <jakub@redhat.com>
9266
9267 * config/cris/cris.md: Change copyright header to refer to version
9268 3 of the GNU General Public License.
9269 * doc/install.texi2html: Change copyright header to refer to version
9270 3 of the GNU General Public License and to point readers at the
9271 COPYING3 file and the FSF's license web page.
9272 * config/vax/linux.h: Likewise.
9273
4a77c72b
PB
92742009-04-09 Paolo Bonzini <bonzini@gnu.org>
9275
1ad2f450
L
9276 * config/i386/i386.md (cmpcc): New.
9277 * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
9278 (sync_compare_and_swap_cc*): Delete.
9279
9280 * config/s390/s390.c (s390_compare_emitted): Remove.
9281 (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
9282 s390_compare_emitted used to be handled. Assert that modes match.
9283 (s390_emit_compare_and_swap): Use s390_emit_compare, do not
9284 refer to sync_compare_and_swap_ccsi.
9285 * config/s390/s390.h (s390_compare_emitted): Remove.
9286 * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
9287 instead of s390_compare_emitted.
9288 (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
9289 instead of s390_compare_emitted.
9290 * config/s390/s390.md (cmpcc): New.
9291 (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
9292 CC_REGNUM, do not pretend it's set.
9293 (sync_compare_and_swap_cc*): Delete.
9294 * config/s390/predicates.md (cc_reg_operand): New.
9295
9296 * expr.c (sync_compare_and_swap_cc): Delete.
9297 * optabs.h (sync_compare_and_swap_cc): Delete.
9298 * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
9299 is being used with can_compare_p.
9300 (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
9301 (find_cc_set): New.
9302 (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
9303 look for a MODE_CC set instead. Use emit_store_flag.
9304 (expand_compare_and_swap_loop): Likewise, with some additional
9305 complication to avoid a force_reg when useless. Use
9306 emit_cmp_and_jump_insns.
9307 * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
9308 * doc/md.texi (sync_compare_and_swap_cc): Merge with
9309 sync_compare_and_swap documentation.
4a77c72b 9310
0c0efb33
JH
93112009-04-09 Jan Hubicka <jh@suse.cz>
9312
9313 * except.c (find_prev_try): Break out from ....
9314 (duplicate_eh_regions): ... here; properly update prev_try pointers
9315 when duplication part of tree.
9316 (dump_eh_tree): Improve dumping.
9317 (verify_eh_region): New.
9318 (verify_eh_tree): Use it.
9319
22a65a54
RG
93202009-04-06 Richard Guenther <rguenther@suse.de>
9321
9322 * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
9323 &ARRAY addresses by adjusting their types and prepending
9324 a conversion.
9325 * tree-cfg.c (verify_gimple_assign_single): Verify that
9326 addresses are correct.
9327
f76968e6
RG
93282009-04-09 Richard Guenther <rguenther@suse.de>
9329
9330 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
9331 indices into an array reference if possible.
9332 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
9333 Fold POINTER_PLUS_EXPR statements with invariant address.
9334
c90c5fb5
AM
93352009-04-09 Alan Modra <amodra@bigpond.net.au>
9336
9337 PR target/39634
9338 * config.gcc (powerpc64-*-linux*): Always build biarch.
9339
17cede2e
JM
93402009-04-09 Joseph Myers <joseph@codesourcery.com>
9341
9342 PR c/39613
9343 * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
9344 it and pedwarn if this results in an INTEGER_CST.
9345
a3337ea2
KG
93462009-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9347
9348 * doc/install.texi: Update minimum GMP version. Remove obsolete
9349 text in MPFR section.
9350
ce9ba79b
JJ
93512009-04-08 Jakub Jelinek <jakub@redhat.com>
9352
9353 * dwarf2out.c (class_scope_p): New static inline.
9354 (class_or_namespace_scope_p): Use it.
9355 (gen_variable_die): Use DW_TAG_member tag for static data member
9356 declarations instead of DW_TAG_variable.
9357
4f0ae266
JJ
9358 PR middle-end/39573
9359 * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
9360 variables.
9361
d27f0ddc
RG
93622009-04-08 Richard Guenther <rguenther@suse.de>
9363
9364 * tree-ssa-sccvn.c (valueize_refs): Do not continue to
9365 valueize random data.
9366
557cc596
DE
93672009-04-08 David Edelsohn <edelsohn@gnu.org>
9368
9369 * config.gcc (aix tm_file): Add aix-stdint.h.
9370 (aix tm clause use_gcc_stdint): Set to wrap.
9371 * config/rs6000/aix-stdint.h: New file.
2ba9daa7 9372
75ccc1e7
RG
93732009-04-08 Richard Guenther <rguenther@suse.de>
9374
9375 PR middle-end/36291
9376 * tree-dfa.c (add_referenced_var): Do not recurse into
9377 global initializers.
9378 * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
9379 exposed variables.
9380 (fold_const_aggregate_ref): Likewise.
9381
c6963675
PB
93822009-04-08 Paolo Bonzini <bonzini@gnu.org>
9383
6c44cf79
L
9384 * recog.c (ordered_comparison_operator): New.
9385 * gensupport.c (std_preds): Add it.
c6963675
PB
9386 * doc/md.texi (Machine-Independent Predicates): Document it.
9387
6d07ad98
JH
93882009-04-08 Jan Hubicka <jh@suse.cz>
9389
9390 * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
9391 * function.h (rtl_eh): Remove exception_handler_label_map.
9392 * except.c (ehl_hash, ehl_eq, add_ehl_entry,
9393 remove_exception_handler_label, for_each_eh_label_1): Remove.
9394 (rtl_remove_unreachable_regions): Remove.
9395 (convert_from_eh_region_ranges): Do not remove unreachable regions.
9396 (find_exception_handler_labels): Don't build the hashtable.
9397 (maybe_remove_eh_handler): Remove.
9398 (for_each_eh_label): Rewrite to walk the tree.
9399 (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
9400 * except.h (maybe_remove_eh_handler): Remove.
9401 * passes.c (init_optimization_passes): Schedule second EH cleanup
9402 before out-of-ssa.
9403 * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
9404 cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
9405
7ddf71e3
PB
94062009-04-08 Paolo Bonzini <bonzini@gnu.org>
9407
9408 * genoutput.c (validate_optab_operands): New.
9409 (gen_insn, gen_expand): Call it.
9410
9411 * genflags.c (gen_insn): Detect misused iterators.
9412 (main): Pass line_no to gen_insn, exit with status 1 on error.
9413
9414 * genextract.c (line_no): Make global.
9415 (VEC_safe_set_locstr): Change assertion to error message.
9416 (main): Exit with status 1 on error.
9417
4d84fe7c
JM
94182009-04-08 Joseph Myers <joseph@codesourcery.com>
9419
9420 PR c/39614
9421 PR c/39673
9422 * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
9423 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
9424 EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
9425 * c-convert.c (convert): Do not call fold on results of conversion
9426 functions when the result is a C_MAYBE_CONST_EXPR.
9427 * c-parser.c (c_parser_postfix_expression): Do not fold condition
9428 of __builtin_choose_expr.
9429 * c-typeck.c (remove_c_maybe_const_expr): New.
9430 (build_unary_op, build_conditional_expr, build_compound_expr,
9431 build_binary_op, c_objc_common_truthvalue_conversion): Call
9432 remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
9433 integer operands.
9434
60839f5d 94352009-04-08 Bingfeng Mei <bmei@broadcom.com>
d1d1c602 9436
2ba9daa7 9437 * fold-const.c (const_binop): Combine two VECTOR_CST under operation
6c44cf79 9438 CODE to produce a new one. Add a prototype to use fold_convert_const
d1d1c602 9439
8e481a2c
DS
94402009-04-08 Danny Smith <dannysmith@users.sourceforge.net>
9441
9442 PR bootstrap/39660
9443 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
9444 mix declarations and code.
9445
ee618c17
BE
94462009-04-08 Ben Elliston <bje@au.ibm.com>
9447
9448 * gcc.c: Replace `CC' with `GCC' throughout.
9449
f2a758a2
L
94502009-04-07 H.J. Lu <hongjiu.lu@intel.com>
9451
9452 * doc/invoke.texi: Document Atom support.
9453
6ea2bd47
JM
94542009-04-07 Jason Merrill <jason@redhat.com>
9455
9456 PR c++/25185
9457 * c-common.h, c-common.c: Add flag_pretty_templates.
9458 * c-opts.c (c_common_handle_option): Set it.
9459 * c.opt: Add -fno-pretty-templates.
9460 * doc/invoke.texi (C++ Dialect Options): Likewise.
9461
fcb82ab0
UB
94622009-04-07 Uros Bizjak <ubizjak@gmail.com>
9463
9464 * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
9465 (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
9466 (ia64_expand_builtin): Likewise.
9467
dc5e7298
MJ
94682009-04-07 Martin Jambor <mjambor@suse.cz>
9469
9470 * tree-ssa-alias.c (refs_may_alias_p_1): Check for
9471 is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
9472 ADDR_EXPRS are include too.
9473
0609b355
RG
94742009-04-07 Richard Guenther <rguenther@suse.de>
9475
9476 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
9477 decls are only used if passes as parameters or if they are
9478 local statics and the call is not to a builtin.
9479 (call_may_clobber_ref_p_1): Likewise.
9480
d8e535fa
PB
94812009-04-07 Paolo Bonzini <bonzini@gnu.org>
9482
9483 * expr.c (do_store_flag): Remove last argument. Simplify code
9484 to avoid duplication of tests already done by can_compare_p.
9485 (expand_expr_real_1): Adjust caller.
9486
c3c64f50
PB
94872009-04-07 Paolo Bonzini <bonzini@gnu.org>
9488
fcb82ab0
UB
9489 * optabs.c (can_compare_p): Test the predicate of a
9490 cbranch and cstore pattern.
c3c64f50 9491
9a53bc17
PB
94922009-04-07 Paolo Bonzini <bonzini@gnu.org>
9493
fcb82ab0
UB
9494 * expr.c (convert_move): Use emit_store_flag instead of
9495 "emulating" it.
9a53bc17 9496
67b8f1c1
PB
94972009-04-07 Paolo Bonzini <bonzini@gnu.org>
9498
fcb82ab0
UB
9499 * config/i386/i386.c (ix86_compare_emitted): Remove.
9500 (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
9501 ix86_compare_op0 like ix86_compare_emitted used to be handled.
9502 * config/i386/i386.h (ix86_compare_emitted): Remove.
9503 * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
9504 instead of ix86_compare_emitted.
9505 * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
67b8f1c1 9506
44509946
AS
95072009-04-07 Andrew Stubbs <ams@codesourcery.com>
9508
9509 * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
9510 Add t-sysroot-suffix to tmake_file.
9511 * config/print-sysroot-suffix.sh: New file.
9512 * config/t-sysroot-suffix: New file.
9513
ca22d882
BE
95142009-04-07 Ben Elliston <bje@au.ibm.com>
9515
9516 * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
9517 as the latter produces a warning when the target does not support
9518 infinity.
9519
95aac11b
BE
95202009-04-07 Ben Elliston <bje@au.ibm.com>
9521
9522 * dfp.c: Replace type punning assignments with memcpy throughout.
9523 * Makefile.in (dfp.o-warn): Remove.
2ba9daa7 9524
633dd061
AM
95252009-04-07 Alan Modra <amodra@bigpond.net.au>
9526
9527 PR target/39634
9528 * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
9529 Include soft-fp/t-softfp after rs6000/t-linux64.
9530
fe0a25ec
EB
95312009-04-06 Eric Botcazou <ebotcazou@adacore.com>
9532
9533 * stor-layout.c (set_sizetype): Use the full precision of their
9534 machine mode for bitsize types.
9535
0c011bc3
L
95362009-04-06 H.J. Lu <hongjiu.lu@intel.com>
9537
9538 * config/i386/i386.md: Revert 2 accidental checkins.
9539
b6837b94 95402009-04-06 Joey Ye <joey.ye@intel.com>
60839f5d 9541 Xuepeng Guo <xuepeng.guo@intel.com>
b6837b94
JY
9542 H.J. Lu <hongjiu.lu@intel.com>
9543
9544 Atom pipeline model, tuning and insn selection.
9545 * config.gcc (atom): Add atom config options and target.
9546
9547 * config/i386/atom.md: New.
9548
9549 * config/i386/i386.c (atom_cost): New cost.
9550 (m_ATOM): New macro flag.
9551 (initial_ix86_tune_features): Set m_ATOM.
9552 (x86_accumulate_outgoing_args): Likewise.
9553 (x86_arch_always_fancy_math_387): Likewise.
9554 (processor_target): Add Atom cost.
9555 (cpu_names): Add Atom cpu name.
9556 (override_options): Set Atom ISA.
9557 (ix86_issue_rate): New case PROCESSOR_ATOM.
9558 (ix86_adjust_cost): Likewise.
9559
9560 * config/i386/i386.h (TARGET_ATOM): New target macro.
9561 (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
9562 (TARGET_OPT_AGU): New target option.
9563 (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
9564 (processor_type): Add PROCESSOR_ATOM.
9565
9566 * config/i386/i386.md (cpu): Add new value "atom".
9567 (use_carry, movu): New attr.
9568 (atom.md): Include atom.md.
9569 (adddi3_carry_rex64): Set attr "use_carry".
9570 (addqi3_carry): Likewise.
9571 (addhi3_carry): Likewise.
9572 (addsi3_carry): Likewise.
9573 (*addsi3_carry_zext): Likewise.
9574 (subdi3_carry_rex64): Likewise.
9575 (subqi3_carry): Likewise.
9576 (subhi3_carry): Likewise.
9577 (subsi3_carry): Likewise.
9578 (x86_movdicc_0_m1_rex64): Likewise.
9579 (*x86_movdicc_0_m1_se): Likewise.
9580 (x86_movsicc_0_m1): Likewise.
9581 (*x86_movsicc_0_m1_se): Likewise.
9582 (*adddi_1_rex64): Emit add insn as much as possible.
9583 (*addsi_1): Likewise.
9584 (return_internal): Set atom_unit.
9585 (return_internal_long): Likewise.
9586 (return_pop_internal): Likewise.
9587 (*rcpsf2_sse): Set atom_sse_attr attr.
9588 (*qrt<mode>2_sse): Likewise.
9589 (*prefetch_sse): Likewise.
9590
9591 * config/i386/i386-c.c (ix86_target_macros_internal): New case
9592 PROCESSOR_ATOM.
9593 (ix86_target_macros_internal): Likewise.
9594
9595 * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
9596 (*prefetch_sse_rex): Likewise.
9597 (sse_rcpv4sf2): Likewise.
9598 (sse_vmrcpv4sf2): Likewise.
9599 (sse_sqrtv4sf2): Likewise.
9600 (<sse>_vmsqrt<mode>2): Likewise.
9601 (sse_ldmxcsr): Likewise.
9602 (sse_stmxcsr): Likewise.
9603 (*sse_sfence): Likewise.
9604 (sse2_clflush): Likewise.
9605 (*sse2_mfence): Likewise.
9606 (*sse2_lfence): Likewise.
9607 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
9608 (<sse>_movup<ssemodesuffixf2c>): Likewise.
9609 (avx_movdqu<avxmodesuffix>): Likewise.
9610 (avx_lddqu<avxmodesuffix>): Likewise.
9611 (sse2_movntv2di): Change attr "type" to "ssemov".
9612 (sse2_movntsi): Likewise.
9613 (rsqrtv8sf2): Change attr "type" to "sseadd".
9614 (sse3_addsubv2df3): Set attr "atom_unit".
9615 (sse3_h<plusminus_insn>v4sf3): Likewise.
9616 (*sse2_pmaddwd): Likewise.
9617 (*vec_extractv2di_1_rex64): Likewise.
9618 (*vec_extractv2di_1_avx): Likewise.
9619 (sse2_psadbw): Likewise.
9620 (ssse3_phaddwv8hi3): Likewise.
9621 (ssse3_phaddwv4hi3): Likewise.
9622 (ssse3_phadddv4si3): Likewise.
9623 (ssse3_phadddv2si3): Likewise.
9624 (ssse3_phaddswv8hi3): Likewise.
9625 (ssse3_phaddswv4hi3): Likewise.
9626 (ssse3_phsubwv8hi3): Likewise.
9627 (ssse3_phsubwv4hi3): Likewise.
9628 (ssse3_phsubdv4si3): Likewise.
9629 (ssse3_phsubdv2si3): Likewise.
9630 (ssse3_phsubswv8hi3): Likewise.
9631 (ssse3_phsubswv4hi3): Likewise.
9632 (ssse3_pmaddubsw128): Likewise.
9633 (sse3_pmaddubsw: Likewise.
9634 (ssse3_palignrti): Likewise.
9635 (ssse3_palignrdi): Likewise.
9636
53e350d3
GP
96372009-04-06 Gerald Pfeifer <gerald@pfeifer.com>
9638
9639 * doc/install.texi (Specific): Fix two cross-references to MinGW.
9640
439ef907
RG
96412009-04-06 Richard Guenther <rguenther@suse.de>
9642
9643 PR tree-optimization/28868
9644 * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
9645 of which PHI results we inserted.
9646 (insert_into_preds_of_block): Record inserted PHIs.
9647 (eliminate): Eliminate redundant PHI nodes.
9648 (init_pre): Init inserted_phi_names.
9649
4bad83f5
RG
96502009-04-06 Richard Guenther <rguenther@suse.de>
9651
9652 PR tree-optimization/39643
9653 * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
9654 IMAGPART_EXPRs of complex constants.
9655 (execute_fold_all_builtins): If we folded a call queue
9656 TODO_update_address_taken.
9657
570c4247
JH
96582009-04-06 Jan Hubicka <jh@suse.cz>
9659
9660 PR middle-end/39659
9661 * except.c (remove_unreachable_regions): Propagate may_contain_throw
9662 flag.
9663
a460d7a1
AS
96642009-04-06 Andrew Stubbs <ams@codesourcery.com>
9665
9666 * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
9667 delay slot.
9668 (ic_invalidate_array): Likewise.
9669
60839f5d 96702009-04-06 Hariharan Sandanagobalane <hariharan@picochip.com>
6bdf8c2e
HS
9671
9672 * calls.c (emit_library_call_value_1): Fix a problem with parameter
9673 alignment for library calls.
9674
7d253f6e
DS
96752009-04-06 Danny Smith <dannysmith@users.sourceforge.net>
9676
9677 * config.gcc (mingw32 tm_file): Add mingw-stdint.h.
9678 (mingw32 tm clause use_gcc_stdint): Set to wrap.
9679 * config/i386/mingw-stdint.h: New file.
9680
941c3614
RB
96812009-04-05 Richard Guenther <rguenther@suse.de>
9682
9683 PR tree-optimization/39648
9684 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
9685 our &A vs. &A[0] IL deficiencies.
9686
12633413
JH
96872009-04-04 Jan Hubicka <jh@suse.cz>
9688
941c3614
RB
9689 * except.c (sjlj_find_directly_reachable_regions): Be ready for
9690 removed toplevel regions.
12633413
JH
9691 (sjlj_mark_call_sites): Likewise.
9692
bb2aaded
DK
96932009-04-04 Dave Korn <dave.korn.cygwin@gmail.com>
9694
9695 * config.gcc (cygwin tm_file): Add cygwin-stdint.h.
9696 (cygwin tm clause use_gcc_stdint): Set to wrap.
9697 * config/i386/cygwin-stdint.h: New file.
9698
86290011
RG
96992009-04-04 Richard Guenther <rguenther@suse.de>
9700
9701 * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
9702 * tree-ssa-copy.c (init_copy_prop): Do not propagate through
9703 single-argument PHIs if we are in loop-closed SSA form.
9704 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
9705 for the pre-condition.
9706 (slpeel_tree_peel_loop_to_edge): Likewise.
9707 (vect_build_loop_niters): Take an optional sequence to append stmts.
9708 (vect_generate_tmps_on_preheader): Likewise.
9709 (vect_do_peeling_for_loop_bound): Take extra guards for the
9710 pre-condition.
9711 (vect_do_peeling_for_alignment): Adjust. Unconditionally apply
9712 the cost model check.
9713 (vect_loop_versioning): Take stmt and stmt list to put pre-condition
7a715bba 9714 guards if we are going to peel. Do not apply versioning in that case.
86290011
RG
9715 * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
9716 (vect_do_peeling_for_loop_bound): Likewise.
9717 * tree-vect-loop.c (vect_transform_loop): If we are peeling for
9718 loop bound only record extra pre-conditions, do not apply loop
9719 versioning.
9720
5eeeac64
RG
97212009-04-04 Richard Guenther <rguenther@suse.de>
9722
9723 * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
9724 renaming code.
9725
1ff7d06b
JH
97262009-04-04 Jan Hubicka <jh@suse.cz>
9727
9728 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
9729 last_basic_block for size of bb->index indexed array.
9730 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
9731 compute_out, link_btr_uses, build_btr_def_use_webs,
9732 build_btr_def_use_webs, migrate_btr_defs): Likewise.
9733
14925fcd
JH
97342009-04-04 Jan Hubicka <jh@suse.cz>
9735
9736 * except.c (remove_eh_handler_and_replace): Break out from ...
9737 (remove_eh_handler): ... here.
9738 (bring_to_root): New function.
9739 (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
9740 handled ones, bring others to root of tree.
9741
4e6d1743
JH
97422009-04-04 Jan Hubicka <jh@suse.cz>
9743
4cb735f7
JH
9744 * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
9745 (all_phis_safe_to_merge): New function.
9746 (update_info): New structure.
9747 (make_eh_edge_and_update_phi, update_eh_edges): New functions.
9748 (cleanup_empty_eh): Update SSA if possible.
4e6d1743 9749
c6803d43
RG
97502009-04-04 Richard Guenther <rguenther@suse.de>
9751
9752 * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
9753 * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
9754 (append_vuse): Likewise.
9755
54f5943c
JJ
97562009-04-04 Jakub Jelinek <jakub@redhat.com>
9757
9758 * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
9759 * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
9760 instead of REG_UNSAVED for DW_CFA_undefined.
9761 (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
9762 (uw_update_context): If RA column is REG_UNDEFINED, mark it as
9763 outermost frame.
9764
aad2bccb
RE
97652009-04-04 Richard Earnshaw <rearnsha@arm.com>
9766
9767 PR target/39501
9768 * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
9769 * testsuite/gcc.c-torture/execute/pr39501.c: New file.
9770 * testsuite/gcc.c-torture/execute/pr39501.x: New file.
9771
aa7069aa
RG
97722009-04-04 Richard Guenther <rguenther@suse.de>
9773
9774 PR tree-optimization/8781
9775 PR tree-optimization/37892
9776 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
9777 * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
9778 (valueize_refs): Call it for *& valueizations.
9779 (shared_reference_ops_from_ref): Rename to ...
9780 (valueize_shared_reference_ops_from_ref): ... this and valueize.
9781 (shared_reference_ops_from_call): Rename to ...
9782 (valueize_shared_reference_ops_from_call): ... this and valueize.
9783 (vn_reference_lookup): Update.
9784 (visit_reference_op_call): Likewise.
9785 * tree-ssa-pre.c (phi_translate_1): Fold *&.
9786 (eliminate): Value-replace the call address in call statements.
9787
cd15ad3e
RG
97882009-04-04 Richard Guenther <rguenther@suse.de>
9789
9790 PR tree-optimization/39636
9791 * tree-ssa-forwprop.c
9792 (forward_propagate_addr_into_variable_array_index): Check for
9793 GIMPLE_ASSIGN before accessing the rhs code.
9794
462f3262
JM
97952009-04-03 Jason Merrill <jason@redhat.com>
9796
9797 * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
9798
6adb807e
SE
97992009-04-03 Steve Ellcey <sje@cup.hp.com>
9800
9801 * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
9802 truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
9803 fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
9804 floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
9805 fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
9806 smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
9807 divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
9808 umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
9809 *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
9810 *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
9811 adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
9812 smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
9813 *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
9814 *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
9815 sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
9816 Use fr_reg_or_fp01_operand instead of fr_register_operand
9817
9818 * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
9819 recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
9820 divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
9821
174b3107
VM
98222009-04-03 Vladimir Makarov <vmakarov@redhat.com>
9823
b844e5d8
L
9824 PR rtl-optimization/39607
9825 PR rtl-optimization/39631
7a715bba
UB
9826
9827 Revert:
2ba9daa7 9828
174b3107
VM
9829 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
9830 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
9831 instead of DF_LR_OUT.
9832 * ira-lives.c (process_bb_node_lives): Ditto.
9833 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
9834 instead of DF_LR_{OUT,IN}.
9835 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
9836 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
9837
535b544a
SB
98382009-04-03 Steven Bosscher <steven@gcc.gnu.org>
9839
9840 * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
9841 (execute_lower_omp): Always run but take the short way out if -fopenmp
9842 is not given.
9843 (gate_lower_omp): Remove, forcing the pass manager to always run the
9844 pass and always set PROP_gimple_lomp.
9845 (pass_lower_omp): Remove gate function.
9846 * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
9847 PROP_trees. Instead, require it.
9848 * ipa-cp.c (pass_ipa_cp): Likewise.
9849 * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
9850 (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
9851 * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
9852 and PROP_gimple_leh.
9853
5006671f
RG
98542009-04-03 Richard Guenther <rguenther@suse.de>
9855
9856 PR middle-end/13146
9857 PR tree-optimization/23940
9858 PR tree-optimization/33237
9859 PR middle-end/33974
9860 PR middle-end/34093
9861 PR tree-optimization/36201
9862 PR tree-optimization/36230
9863 PR tree-optimization/38049
9864 PR tree-optimization/38207
9865 PR tree-optimization/38230
9866 PR tree-optimization/38301
9867 PR tree-optimization/38585
9868 PR middle-end/38895
9869 PR tree-optimization/38985
9870 PR tree-optimization/39299
9871 * tree-ssa-structalias.h: Remove.
9872 * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
9873 (NULL_DEF_OPERAND_P): Make of type def_operand_p.
9874 (struct vuse_element_d): Remove.
9875 (struct vuse_vec_d): Likewise.
9876 (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
9877 VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
9878 SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
9879 VUSE_ELEMENT_VAR): Likewise.
9880 (struct voptype_d): Likewise.
9881 (NUM_VOP_FREE_BUCKETS): Likewise.
9882 (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
9883 (struct stmt_operands_d): Remove.
9884 (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
9885 VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
9886 VDEF_NUM, VDEF_VECT): Likewise.
9887 (copy_virtual_operands): Remove.
9888 (operand_build_cmp): Likewise.
9889 (create_ssa_artificial_load_stmt): Likewise.
9890 (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
9891 (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
9892 vuse_index and mayuse_index members. Pack and move done and iter_type
9893 members to the front.
9894 (SSA_OP_VMAYUSE): Remove.
9895 (SSA_OP_VIRTUAL_USES): Adjust.
9896 (FOR_EACH_SSA_VDEF_OPERAND): Remove.
9897 (unlink_stmt_vdef): Declare.
9898 (add_to_addressable_set): Remove.
9899 * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
9900 (vrp_visit_stmt): Likewise.
9901 * doc/tree-ssa.texi (Alias analysis): Update.
9902 * doc/invoke.texi (max-aliased-vops): Remove docs.
9903 (avg-aliased-vops): Likewise.
9904 * tree-into-ssa.c (syms_to_rename): Remove.
9905 (need_to_update_vops_p): Likewise.
9906 (need_to_initialize_update_ssa_p): Rename to ...
9907 (update_ssa_initialized_fn): ... this. Track function we are
9908 initialized for.
9909 (symbol_marked_for_renaming): Simplify.
9910 (add_new_name_mapping): Do not set need_to_update_vops_p.
9911 (dump_currdefs): Use SYMS_TO_RENAME.
9912 (rewrite_update_stmt): Always walk all uses/defs.
9913 (dump_update_ssa): Adjust.
9914 (init_update_ssa): Take function argument. Track what we are
9915 initialized for.
9916 (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
9917 (create_new_def_for): Initialize for cfun, assert we are initialized
9918 for cfun.
9919 (mark_sym_for_renaming): Simplify.
9920 (mark_set_for_renaming): Do not initialize update-ssa.
9921 (need_ssa_update_p): Simplify. Take function argument.
9922 (name_mappings_registered_p): Assert we ask for the correct function.
9923 (name_registered_for_update_p): Likewise.
9924 (ssa_names_to_replace): Likewise.
9925 (release_ssa_name_after_update_ssa): Likewise.
9926 (update_ssa): Likewise. Use SYMS_TO_RENAME.
9927 (dump_decl_set): Do not print a newline.
9928 (debug_decl_set): Do it here.
9929 (dump_update_ssa): And here.
9930 * tree-ssa-loop-im.c (move_computations): Adjust.
9931 (movement_possibility): Likewise.
9932 (determine_max_movement): Likewise.
9933 (gather_mem_refs_stmt): Likewise.
9934 * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
9935 or NAME_MEMORY_TAG.
9936 * tree-complex.c (update_all_vops): Remove.
9937 (expand_complex_move): Adjust.
9938 * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
9939 Simplify test for memory referencing statement. Exclude
9940 non-invariant ADDR_EXPRs.
9941 * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
9942 * tree-loop-distribution.c (generate_memset_zero): Adjust.
9943 (rdg_flag_uses): Likewise.
9944 * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
9945 related code.
9946 (tree_optimize_tail_calls_1): Also split the
9947 edge from the entry block if we have degenerate PHI nodes in
9948 the first basic block.
9949 * tree.c (init_ttree): Remove memory-tag related code.
9950 (tree_code_size): Likewise.
9951 (tree_node_structure): Likewise.
9952 (build7_stat): Re-write to be build6_stat.
9953 * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
9954 (SSA_VAR_P): Adjust.
9955 (struct tree_memory_tag): Remove.
9956 (struct tree_memory_partition_tag): Likewise.
9957 (union tree_node): Adjust.
9958 (build7): Re-write to be build6.
9959 * tree-pass.h (pass_reset_cc_flags): Remove.
9960 (TODO_update_address_taken): New flag.
9961 (pass_simple_dse): Remove.
9962 * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
9963 * params.h (MAX_ALIASED_VOPS): Remove.
9964 (AVG_ALIASED_VOPS): Likewise.
9965 * omp-low.c (expand_omp_taskreg): Update SSA form.
9966 * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
9967 aliases the lhs in a copy stmt.
9968 * tree-ssa-dse.c (struct address_walk_data): Remove.
9969 (memory_ssa_name_same): Likewise.
9970 (memory_address_same): Likewise.
9971 (get_kill_of_stmt_lhs): Likewise.
9972 (dse_possible_dead_store_p): Simplify, use the oracle. Handle
9973 unused stores. Look through PHI nodes into post-dominated regions.
9974 (dse_optimize_stmt): Simplify. Properly remove stores.
9975 (tree_ssa_dse): Compute dominators.
9976 (execute_simple_dse): Remove.
9977 (pass_simple_dse): Likewise.
9978 * ipa-reference.c (scan_stmt_for_static_refs): Open-code
9979 gimple_loaded_syms and gimple_stored_syms computation.
9980 * toplev.c (dump_memory_report): Dump alias and pta stats.
9981 * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
9982 (vn_reference_eq): Likewise.
9983 (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
9984 copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
9985 valueize_vuses): Remove.
9986 (get_def_ref_stmt_vuses): Simplify. Rename to ...
9987 (get_def_ref_stmt_vuse): ... this.
9988 (vn_reference_lookup_2): New function.
9989 (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
9990 walking equivalent vuses. Simplify.
9991 (vn_reference_lookup): Likewise.
9992 (vn_reference_insert): Likewise.
9993 (vn_reference_insert_pieces): Likewise.
9994 (visit_reference_op_call): Simplify.
9995 (visit_reference_op_load): Likewise.
9996 (visit_reference_op_store): Likewise.
9997 (init_scc_vn): Remove shared_lookup_vuses initialization.
9998 (free_scc_vn): Remove shared_lookup_vuses freeing.
9999 (sort_vuses, sort_vuses_heap): Remove.
10000 (get_ref_from_reference_ops): Export.
10001 * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
10002 vector with single vuse pointer.
10003 (vn_reference_lookup_pieces, vn_reference_lookup,
10004 vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
10005 (shared_vuses_from_stmt): Remove.
10006 (get_ref_from_reference_ops): Declare.
10007 * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
10008 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
10009 memory-tag related code.
10010 * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
10011 (likely_value): Add comment, skip static-chain of call statements.
10012 (surely_varying_stmt_p): Adjust.
10013 (gimplify_and_update_call_from_tree): Likewise.
10014 (execute_fold_all_builtins): Do not rebuild alias info.
10015 (gimplify_and_update_call_from_tree): Properly update VOPs.
10016 * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
10017 (copy_ref_info): Remove memory-tag related code.
10018 * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
10019 * ipa-pure-const.c (check_decl): Remove memory-tag related code.
10020 (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
10021 computation.
10022 * tree-ssa-dom.c (gimple_p): Remove typedef.
10023 (eliminate_redundant_computations): Adjust.
10024 (record_equivalences_from_stmt): Likewise.
10025 (avail_expr_hash): Likewise.
10026 (avail_expr_eq): Likewise.
7a715bba 10027 * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
5006671f
RG
10028 (stmt_makes_single_load): Likewise.
10029 (stmt_makes_single_store): Likewise.
10030 * tree-ssa-alias.c: Rewrite completely.
10031 (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
10032 debug_mem_sym_stats, dump_mem_sym_stats_for_var,
10033 debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
10034 delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
10035 dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
10036 Remove public functions.
10037 (pass_reset_cc_flags): Remove.
10038 (pass_build_alias): Move ...
10039 * tree-ssa-structalias.c (pass_build_alias): ... here.
10040 * tree-ssa-alias.c (may_be_aliased): Move ...
10041 * tree-flow-inline.h (may_be_aliased): ... here.
10042 tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
10043 count_uses_and_derefs): Move ...
10044 * gimple.c: ... here.
10045 * gimple.h (count_uses_and_derefs): Declare.
10046 * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
10047 ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
10048 same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
10049 indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
10050 ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
10051 call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
10052 get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
10053 New functions.
10054 * tree-dfa.c (refs_may_alias_p): Move ...
10055 * tree-ssa-alias.c (refs_may_alias_p): ... here. Extend.
10056 * tree-ssa-alias.h: New file.
10057 * tree-ssa-sink.c (is_hidden_global_store): Adjust.
10058 (statement_sink_location): Likewise.
10059 * opts.c (decode_options): Do not adjust max-aliased-vops or
10060 avg-aliased-vops values.
10061 * timevar.def (TV_TREE_MAY_ALIAS): Remove.
10062 (TV_CALL_CLOBBER): Likewise.
10063 (TV_FLOW_SENSITIVE): Likewise.
10064 (TV_FLOW_INSENSITIVE): Likewise.
10065 (TV_MEMORY_PARTITIONING): Likewise.
10066 (TV_ALIAS_STMT_WALK): New timevar.
10067 * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
10068 * tree-ssa-address.c (create_mem_ref_raw): Use build6.
10069 (get_address_description): Remove memory-tag related code.
10070 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
10071 * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
10072 * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
10073 and immediate uses in statements. Document.
10074 * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
10075 (dump_symbols): Remove.
10076 (dump_gimple_mem_ops): Do not dump loaded or stored syms.
10077 * alias.c (get_deref_alias_set): New function split out from ...
10078 (get_alias_set): ... here.
10079 * alias.h (get_deref_alias_set): Declare.
10080 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
10081 type parameter. Remove restrict pointer handling. Create a
10082 ref-all pointer in case type-based alias sets do not conflict.
10083 (vect_analyze_data_refs): Remove SMT related code.
10084 * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
10085 (vectorizable_load): Likewise.
10086 * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
10087 (DR_SYMBOL_TAG, DR_VOPS): Remove.
10088 * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
10089 Ignore vops and SMTs.
10090 (dr_analyze_alias): Likewise..
10091 (free_data_ref): Likewise.
10092 (create_data_ref): Likewise.
10093 (analyze_all_data_dependences): Likewise.
10094 (get_references_in_stmt): Adjust.
10095 * tree-flow-inline.h (gimple_aliases_computed_p,
10096 gimple_addressable_vars, gimple_call_clobbered_vars,
10097 gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
10098 factoring_name_p, mark_call_clobbered, clear_call_clobbered,
10099 compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
10100 gimple_mem_ref_stats): Remove.
10101 (gimple_vop): New function.
10102 (op_iter_next_use): Remove vuses and mayuses cases.
10103 (op_iter_next_def): Remove vdefs case.
10104 (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
10105 (clear_and_done_ssa_iter): Do not set removed fields.
10106 (op_iter_init): Likewise. Skip vuse and/or vdef if requested.
10107 Assert we are not iterating over vuses or vdefs if not also
10108 iterating over uses or defs.
10109 (op_iter_init_use): Likewise.
10110 (op_iter_init_def): Likewise.
10111 (op_iter_next_vdef): Remove.
10112 (op_iter_next_mustdef): Likewise.
10113 (op_iter_init_vdef): Likewise.
10114 (compare_ssa_operands_equal): Likewise.
10115 (link_use_stmts_after): Handle vuse operand.
10116 (is_call_used): Use is_call_clobbered.
10117 (is_call_clobbered): Global variables are always call clobbered,
10118 query the call-clobbers bitmap.
10119 (mark_call_clobbered): Ignore global variables.
10120 (clear_call_clobbered): Likewise.
10121 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
10122 virtual operands sanity check.
10123 * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
10124 Remove.
10125 (TARGET_MEM_REF): Remove TMR_TAG operand.
10126 * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
10127 Remove call-clobber related code.
10128 (remove_referenced_var): Likewise. Do not clear mpt or symbol_mem_tag.
10129 (dump_variable): Do not dump SMTs, memory stats, may-aliases or
10130 partitions or escape reason.
10131 (get_single_def_stmt, get_single_def_stmt_from_phi,
10132 get_single_def_stmt_with_phi): Remove.
10133 (dump_referenced_vars): Tidy.
10134 (get_ref_base_and_extent): Allow bare decls.
10135 (collect_dfa_stats): Adjust.
10136 * graphite.c (rename_variables_in_stmt): Adjust.
10137 (graphite_copy_stmts_from_block): Likewise.
10138 (translate_clast): Likewise.
10139 * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
10140 (EXPR_DIES): New.
10141 (translate_vuse_through_block): Use the oracle.
10142 (phi_translate_1): Adjust.
10143 (value_dies_in_block_x): Use the oracle. Cache the outcome
10144 in EXPR_DIES.
10145 (valid_in_sets): Check if the VUSE for
10146 a REFERENCE is available.
10147 (eliminate): Do not remove stmts during elimination,
10148 instead queue and remove them afterwards.
10149 (do_pre): Do not rebuild alias info.
10150 (pass_pre): Run TODO_rebuild_alias before PRE.
10151 * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
10152 * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
10153 (mark_all_v_defs_stmt): Remove.
10154 (mark_all_v_defs_seq): Adjust.
10155 (sra_replace): Likewise.
10156 (scalarize_use): Likewise.
10157 (scalarize_copy): Likewise.
10158 (scalarize_init): Likewise.
10159 (scalarize_ldst): Likewise.
10160 (todoflags): Remove.
10161 (tree_sra): Do not rebuild alias info.
10162 (tree_sra_early): Adjust.
10163 (pass_sra): Run TODO_update_address_taken before SRA.
10164 * tree-predcom.c (set_alias_info): Remove.
10165 (prepare_initializers_chain): Do not call it.
10166 (mark_virtual_ops_for_renaming): Adjust.
10167 (mark_virtual_ops_for_renaming_list): Remove.
10168 (initialize_root_vars): Adjust.
10169 (initialize_root_vars_lm): Likewise.
10170 (prepare_initializers_chain): Likewise.
10171 * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
10172 (may_propagate_copy_into_stmt): Likewise.
10173 (merge_alias_info): Do nothing for now.
10174 (propagate_tree_value_into_stmt): Adjust.
10175 (stmt_may_generate_copy): Likewise.
10176 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
10177 not mark symbols for renaming.
10178 (forward_propagate_addr_expr): Match up push/pop_stmt_changes
10179 with the same statement, make sure to update the new pointed-to one.
10180 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
10181 call statements, do not mark symbols for renaming.
10182 (mark_operand_necessary): Dump something.
10183 (ref_may_be_aliased): New function.
10184 (mark_aliased_reaching_defs_necessary_1): New helper function.
10185 (mark_aliased_reaching_defs_necessary): Likewise.
10186 (mark_all_reaching_defs_necessary_1): Likewise.
10187 (mark_all_reaching_defs_necessary): Likewise.
10188 (propagate_necessity): Do not process virtual PHIs. For
10189 non-aliased loads mark all reaching definitions as necessary.
10190 For aliased loads and stores mark the immediate dominating
10191 aliased clobbers as necessary.
10192 (visited): New global static.
10193 (perform_tree_ssa_dce): Free visited bitmap after propagating
10194 necessity.
10195 (remove_dead_phis): Perform simple dead virtual PHI removal.
10196 (remove_dead_stmt): Properly unlink virtual operands when
10197 removing stores.
10198 (eliminate_unnecessary_stmts): Schedule PHI removal after
10199 stmt removal.
10200 * tree-ssa-ter.c (is_replaceable_p): Adjust.
10201 (process_replaceable): Likewise.
10202 (find_replaceable_in_bb): Likewise.
10203 * tree-ssa.c (verify_ssa_name): Verify all VOPs are
10204 based on the single gimple vop.
10205 (verify_flow_insensitive_alias_info): Remove.
10206 (verify_flow_sensitive_alias_info): Likewise.
10207 (verify_call_clobbering): Likewise.
10208 (verify_memory_partitions): Likewise.
10209 (verify_alias_info): Likewise.
10210 (verify_ssa): Adjust..
10211 (execute_update_addresses_taken): Export. Update SSA
10212 manually. Optimize only when optimizing. Use a local bitmap.
10213 (pass_update_address_taken): Remove TODO_update_ssa, add
10214 TODO_dump_func.
10215 (pass_update_address_taken): Just use TODO_update_address_taken.
10216 (init_tree_ssa): Do not initialize addressable_vars.
10217 (verify_ssa): Verify new VUSE / VDEF properties.
10218 Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
10219 Do not call verify_alias_info.
10220 (delete_tree_ssa): Clear the VUSE, VDEF operands.
10221 Do not free the loaded and stored syms bitmaps. Reset the escaped
10222 and callused solutions. Do not free addressable_vars.
10223 Remove memory-tag related code.
10224 (warn_uninitialized_var): Aliases are always available.
10225 * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
10226 * lambda-code.c (can_put_in_inner_loop): Adjust.
10227 (can_put_after_inner_loop): Likewise.
10228 (perfect_nestify): Likewise.
10229 * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
10230 (vect_gen_widened_results_half): Remove CALL_EXPR handling.
10231 (vectorizable_conversion): Do not mark symbols for renaming.
10232 * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
10233 (expand_call_inline): Unlink the calls virtual operands before
10234 replacing it.
10235 (tree_function_versioning): Do not call update_ssa if we are not
10236 updating clones. Simplify.
10237 * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
10238 (propagate_with_phi): Likewise..
10239 * tree-outof-ssa.c (create_temp): Remove memory tag and call
10240 clobber code. Assert we are not aliased or global.
10241 * tree-flow.h: Include tree-ssa-alias.h
10242 (enum escape_type): Remove.
10243 (struct mem_sym_stats_d): Likewise.
10244 (struct mem_ref_stats_d): Likewise.
10245 (struct gimple_df): Add vop member. Remove global_var,
10246 call_clobbered_vars, call_used_vars, addressable_vars,
10247 aliases_compted_p and mem_ref_stats members. Add syms_to_rename,
10248 escaped and callused members.
10249 (struct ptr_info_def): Remove all members, add points-to solution
10250 member pt.
10251 (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
10252 call_clobbered, escape_mask, mpt and symbol_mem_tag members.
10253 * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
10254 (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
10255 (tree-ssa-alias.o): Likewise.
10256 (toplev.o): Add tree-ssa-alias.h
10257 (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
10258 * gimple.c (gimple_set_bb): Fix off-by-one error.
10259 (is_gimple_reg): Do not handle memory tags.
10260 (gimple_copy): Also copy virtual operands.
10261 Delay updating the statement. Do not reset loaded and stored syms.
10262 (gimple_set_stored_syms): Remove.
10263 (gimple_set_loaded_syms): Likewise.
10264 (gimple_call_copy_skip_args): Copy the virtual operands
10265 and mark the new statement modified.
10266 * tree-ssa-structalias.c (may_alias_p): Remove.
10267 (set_uids_in_ptset): Take the alias set to prune with as
10268 parameter. Fold in the alias test of may_alias_p.
10269 (compute_points_to_sets): Compute whether a ptr is dereferenced
10270 in a local sbitmap.
10271 (process_constraint): Deal with &ANYTHING on the lhs, reject all
10272 other ADDRESSOF constraints on the lhs.
10273 (get_constraint_for_component_ref): Assert that we don't get
10274 ADDRESSOF constraints from the base of the reference.
10275 Properly generate UNKNOWN_OFFSET for DEREF if needed.
10276 (struct variable_info): Remove collapsed_to member.
10277 (get_varinfo_fc): Remove.
10278 (new_var_info): Do not set collapsed_to.
10279 (dump_constraint): Do not follow cycles.
10280 (dump_constraint_graph): Likewise.
10281 (build_pred_graph): Likewise.
10282 (build_succ_graph): Likewise.
10283 (rewrite_constraints): Likewise.
10284 (do_simple_structure_copy): Remove.
10285 (do_rhs_deref_structure_copy): Remove.
10286 (do_lhs_deref_structure_copy): Remove.
10287 (collapse_rest_of_var): Remove.
10288 (do_structure_copy): Re-implement.
10289 (pta_stats): New global variable.
10290 (dump_pta_stats): New function.
10291 (struct constraint_expr): Make offset signed.
10292 (UNKNOWN_OFFSET): Define special value.
10293 (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
10294 (solution_set_expand): New helper function split out from ...
10295 (do_sd_constraint): ... here.
10296 (solution_set_add): Handle UNKNOWN_OFFSET. Handle negative offsets.
10297 (do_ds_constraint): Likewise.
10298 (do_sd_constraint): Likewise. Do not special-case ESCAPED = *ESCAPED
10299 and CALLUSED = *CALLUSED.
10300 (set_union_with_increment): Make inc argument signed.
10301 (type_safe): Remove.
10302 (get_constraint_for_ptr_offset): Handle unknown and negative
10303 constant offsets.
10304 (first_vi_for_offset): Handle offsets before start. Bail
10305 out early for offsets beyond the variable extent.
10306 (first_or_preceding_vi_for_offset): New function.
10307 (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
10308 Together with ESCAPED = *ESCAPED this properly computes reachability.
10309 (find_what_var_points_to): New function.
10310 (find_what_p_points_to): Implement in terms of find_what_var_points_to.
10311 (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
10312 pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
10313 pt_solutions_intersect): New functions.
10314 (compute_call_used_vars): Remove.
10315 (compute_may_aliases): New main entry into PTA computation.
10316 * gimple.h (gimple_p): New typedef.
10317 (struct gimple_statement_base): Remove references_memory_p.
10318 (struct gimple_statement_with_memory_ops_base): Remove
10319 vdef_ops, vuse_ops, stores and loads members. Add vdef and vuse
10320 members.
10321 (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
10322 gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
10323 gimple_set_references_memory): Remove.
10324 (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
10325 gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
10326 New functions.
10327 * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
10328 (verify_expr): Allow RESULT_DECL.
10329 (gimple_duplicate_bb): Do not copy virtual operands.
10330 (gimple_duplicate_sese_region): Adjust.
10331 (gimple_duplicate_sese_tail): Likewise.
10332 (mark_virtual_ops_in_region): Remove.
10333 (move_sese_region_to_fn): Do not call it.
10334 * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
10335 and pass_simple_dse.
10336 (execute_function_todo): Handle TODO_update_address_taken,
10337 call execute_update_addresses_taken for TODO_rebuild_alias.
10338 (execute_todo): Adjust.
10339 (execute_one_pass): Init dump files early.
10340 * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
10341 call-clobbered.
10342 (create_general_new_stmt): Clear vops.
10343 * tree-ssa-reassoc.c (get_rank): Adjust.
10344 * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
10345 symbols for renaming.
10346 * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
10347 (PARAM_AVG_ALIASED_VOPS): Likewise.
10348 * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
10349 (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
7a715bba 10350 * tree-ssa-operands.c: Simplify for new virtual operand representation.
5006671f
RG
10351 (operand_build_cmp, copy_virtual_operands,
10352 create_ssa_artificial_load_stmt, add_to_addressable_set,
10353 gimple_add_to_addresses_taken): Remove public functions.
10354 (unlink_stmt_vdef): New function.
10355
457d1d00
AM
103562009-04-03 Alan Modra <amodra@bigpond.net.au>
10357
10358 * config.gcc (powerpc-*-linux*): Merge variants.
10359
e19da24c 103602009-04-02 Chao-ying Fu <fu@mips.com>
60839f5d 10361 James Grosbach <james.grosbach@microchip.com>
e19da24c
CF
10362
10363 * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
10364 num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
10365 cop0_sp_offset.
10366 (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
10367 keep_interrupts_masked_p, use_debug_exception_return_p.
10368 (mips_attribute_table): Add interrupt, use_shadow_register_set,
10369 keep_interrupts_masked, use_debug_exception_return.
10370 (mips_interrupt_type_p, mips_use_shadow_register_set_p,
10371 mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
10372 New functions.
10373 (mips_function_ok_for_sibcall): Return false for interrupt handlers.
10374 (mips_print_operand): Process COP0 registers to print $0 .. $31
10375 correctly for GAS to process.
10376 (mips_interrupt_extra_call_saved_reg_p): New function.
10377 (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
10378 extra registers.
10379 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
10380 (mips_compute_frame_info): Add supports for interrupt context that
10381 includes doubleword accumulators and COP0 registers.
10382 (mips_for_each_saved_acc): New function.
10383 (mips_for_each_saved_gpr_and_fpr): Change the function name from
10384 mips_for_each_saved_reg.
10385 (mips_save_reg): Save accumulators.
10386 (mips_kernel_reg_p): A new for_each_rtx callback.
10387 (mips_expand_prologue): Support interrupt handlers.
10388 (mips_restore_reg): Restore accumulators.
10389 (mips_expand_epilogue): Support interrupt handlers.
10390 (mips_can_use_return_insn): Return false for interrupt handlers.
10391 (mips_epilogue_uses): New function.
10392 * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
10393 UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
10394 (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
10395 cop0_move): New instructions.
10396 * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
10397 * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
10398 defines.
10399 (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
10400 New defines.
10401 (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
10402 (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
10403 interrupt handlers, we use K0 as the temporary register.
10404 (EPILOGUE_USES): Change to a function call.
10405 * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
10406 handlers, we use K0 as the temporary register.
2ba9daa7 10407
e19da24c
CF
10408 * doc/extend.texi (Function Attributes): Document interrupt,
10409 use_shadow_register_set, keep_interrupts_masked,
10410 use_debug_exception_return for MIPS attributes.
10411
aa1ca044
AM
104122009-04-03 Alan Modra <amodra@bigpond.net.au>
10413
10414 * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
10415 Remove a number of t-files from tmake_file.
10416 * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
10417 * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
10418 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
10419 target_prototype, not TARGET_PROTOTYPE.
10420 (LINK_OS_GNU_SPEC): Define.
10421 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
10422 and darwin-ldoubdle.c.
10423
14fdc613
MM
104242009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
10425
10426 PR driver/39293
10427 * gcc.c (save_temps_flag): Add support for -save-temps=obj.
10428 (cpp_options): Ditto.
10429 (default_compilers): Ditto.
10430 (display_help): Ditto.
10431 (process_command): Ditto.
10432 (do_spec_1): Ditto.
10433 (set_input): Use lbasename instead of duplicate code.
10434 (save_temps_prefix): New static for -save-temps=obj.
10435 (save_temps_length): Ditto.
2ba9daa7 10436
14fdc613
MM
10437 * doc/invoke.texi (-save-temps=obj): Document new variant to
10438 -save-temps switch.
10439
d3aa398e
JL
104402009-04-02 Jeff Law <law@redhat.com>
10441
10442 * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
10443 variable.
10444
83f0ccb8
L
104452009-04-02 H.J. Lu <hongjiu.lu@intel.com>
10446
10447 * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
10448 * configure: Regenerated.
10449
dcb6e951
RAE
104502009-04-02 Rafael Avila de Espindola <espindola@google.com>
10451
10452 * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
10453 share the argument list.
10454
d85478c2
RAE
104552009-04-02 Rafael Avila de Espindola <espindola@google.com>
10456
10457 Merge
10458
10459 2009-02-12 Diego Novillo <dnovillo@google.com>
10460
83f0ccb8
L
10461 * varpool.c (debug_varpool): New.
10462 * cgraph.h (debug_varpool): Declare.
d85478c2 10463
34f42a49
JH
104642009-04-02 Jan Hubicka <jh@suse.cz>
10465
10466 * passes.c (init_optimization_passes): Remove two copies of ehcleanup
10467 pass.
10468
a4747b4a
L
104692009-04-02 H.J. Lu <hongjiu.lu@intel.com>
10470
10471 * config/i386/i386.c (ix86_abi): Move initialization to ...
10472 (override_options): Here.
10473
63a9de54
CB
104742009-04-02 Christian Bruel <christian.bruel@st.com>
10475
10476 * config/sh/sh.c (sh_dwarf_register_span): New function.
10477 (TARGET_DWARF_REGISTER_SPAN): Define.
10478 * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
2ba9daa7 10479
2f0fa28e
IR
104802009-04-02 Ira Rosen <irar@il.ibm.com>
10481
10482 PR tree-optimization/39595
2ba9daa7 10483 * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
2f0fa28e
IR
10484 interleaved loads group is not greater than the SLP group size.
10485
bbf7ce11
RAE
104862009-04-02 Rafael Avila de Espindola <espindola@google.com>
10487
10488 * builtins.c (is_builtin_name): New.
10489 (called_as_built_in): Use is_builtin_name.
10490 * tree.h (is_builtin_name): New.
10491 * varasm.c (incorporeal_function_p): Use is_builtin_name
10492
47e4dfcf
AS
104932009-04-02 Andrew Stubbs <ams@codesourcery.com>
10494
10495 * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
10496
d0940d56
DS
104972009-04-02 Dodji Seketeli <dodji@redhat.com>
10498
10499 PR c++/26693
532bfb0a 10500 * c-decl.c (clone_underlying_type): Move this ...
d0940d56
DS
10501 * c-common.c (set_underlying_type): ... here.
10502 Also, make sure the function properly sets TYPE_STUB_DECL() on
10503 the newly created typedef variant type.
10504 * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
7a715bba
UB
10505 * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
10506 points.
d0940d56 10507
bf1cbdc6
RG
105082009-04-02 Richard Guenther <rguenther@suse.de>
10509
10510 PR tree-optimization/37221
10511 * tree-flow.h (degenerate_phi_result): Declare.
10512 * tree-ssa-dom.c (degenerate_phi_result): Export.
10513 * tree-scalar-evolution.c (analyze_initial_condition): If
10514 the initial condition is defined by a degenerate PHI node
10515 use the degenerate value.
10516
87cfb32c
EB
105172009-04-01 Eric Botcazou <ebotcazou@adacore.com>
10518
10519 PR rtl-optimization/39588
10520 * combine.c (merge_outer_ops): Do not set the constant when this
10521 is not necessary.
10522 (simplify_shift_const_1): Do not modify it either in this case.
10523
bbb6eae8
SB
105242009-04-01 Steven Bosscher <steven@gcc.gnu.org>
10525
10526 * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
10527 tuning is deprecated if -mtune value is set to an Itanium1 variant.
10528
839a3b8a
JJ
105292009-04-01 Janis Johnson <janis187@us.ibm.com>
10530
10531 PR c/29027
10532 * c-lex.c (interpret_float): Default (no suffix) is double.
10533
667e8acb
XDL
105342009-04-1 Xinliang David Li <davidxl@google.com>
10535
10536 * config/i386/i386.c (legitimate_constant_p): Recognize
10537 all one vector constant.
10538
60839f5d 105392009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10540
60839f5d 10541 * config/vax/vax.c: Add #includes to silence warnings.
c4e75102
MT
10542 Change #include order to silence two warnings.
10543
60839f5d 105442009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10545
60839f5d 10546 * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
c4e75102
MT
10547 (ASM_SPEC): Pass -k to the assembler for PIC code.
10548
60839f5d 105492009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10550
60839f5d
EB
10551 * config.gcc: Add vax-*-linux* to the switch.
10552 * config/vax/linux.h: New file. (TARGET_VERSION,
c4e75102
MT
10553 TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
10554
60839f5d 105552009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10556
60839f5d 10557 * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
c4e75102 10558 Use predicate macros instead of GET_CODE() == foo.
60839f5d 10559 * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
c4e75102
MT
10560 ashlsi3, rotrsi3, <unnamed>): Likewise.
10561
60839f5d 105622009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10563
60839f5d 10564 * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
c4e75102 10565 jbbccihi, jbbccisi): Remova trailing whitespace.
60839f5d
EB
10566 * config/vax/constraints.md: Likewise.
10567 * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
10568 * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
10569 * config/vax/predicates.md: Likewise.
10570 * config/vax/vax.c (print_operand_address, vax_output_int_move,
c4e75102 10571 vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
60839f5d
EB
10572 * config/vax/vax.h: Likewise.
10573 * config/vax/vax.md (nonlocal_goto): Likewise.
c4e75102 10574
60839f5d 105752009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10576
60839f5d 10577 * config/vax/vax.c (vax_float_literal, vax_output_int_move)
c4e75102
MT
10578 (indirectable_address_p, adjacent_operands_p): Add spaces around
10579 braces.
60839f5d 10580 * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
c4e75102 10581
60839f5d 105822009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10583
60839f5d 10584 * config/vax/vax.c (legitimate_constant_address_p,
c4e75102
MT
10585 legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
10586 index_term_p, reg_plus_index_p, legitimate_address_p,
10587 vax_mode_dependent_address_p): Update comments to match functions
10588 modified by the recent int->bool conversion.
10589
60839f5d 105902009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10591
60839f5d
EB
10592 * config/vax/builtins.md: Update copyright message.
10593 * config/vax/constraints.md: Likewise.
10594 * config/vax/netbsd-elf.h: Likewise.
10595 * config/vax/predicates.md: Likewise.
10596 * config/vax/vax-protos.h: Likewise.
10597 * config/vax/vax.c: Likewise.
10598 * config/vax/vax.h: Likewise.
10599 * config/vax/vax.md: Likewise.
10600 * config/vax/vax.opt: Likewise.
c4e75102 10601
60839f5d 106022009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10603
60839f5d 10604 * config/vax/builtins.md (ffssi2, ffssi2_internal,
c4e75102 10605 sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
60839f5d
EB
10606 * config/vax/constraints.md (B, R): Likewise.
10607 * config/vax/predicates.md (external_memory_operand,
c4e75102 10608 nonimmediate_addsub_di_operand): Likewise.
60839f5d
EB
10609 * config/vax/vax.c (vax_output_int_add): Likewise.
10610 * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
c4e75102
MT
10611 untyped_call): Likewise.
10612
60839f5d 106132009-04-01 Matt Thomas <matt@3am-software.com>
c4e75102 10614
7a715bba
UB
10615 * config/vax/predicates.md: New file.
10616 (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
c4e75102
MT
10617 external_const_operand, nonsymbolic_operand, external_memory_operand,
10618 indirect_memory_operand, indexed_memory_operand,
10619 illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
10620 nonimmediate_addsub_di_operand, general_addsub_di_operand): New
10621 predicate.
7a715bba
UB
10622 * config/vax/constraints.md: New file.
10623 (Z0, U06, U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
10624 New constraint.
10625 * config/vax/builtins.md: New file.
10626 (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
10627 jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
10628 jbbccisi): Define.
c4e75102
MT
10629 * config/vax/vax.opt (mqmath): Add option.
10630 * config/vax/vax.md (isfx): Extend with DI.
10631 (VAXintQH, VAXintQHSD): Define.
10632 (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
10633 mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
10634 and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
10635 one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
10636 (movdi): Update constraints and use vax_output_int_move().
10637 (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
10638 movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
10639 pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
10640 nonlocal_goto): New.
10641 (mov<mode>): Extend accepted operand types.
10642 (subdi3_old): Rename from subdi3, change update constraints and use
10643 a new implementation.
60839f5d 10644 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
c4e75102
MT
10645 (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
10646 MOVE_RATIO, CLEAR_RATIO): Define.
10647 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
10648 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
10649 (PRINT_OPERAND): Redefine using a function instead of inlined code.
60839f5d 10650 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
c4e75102
MT
10651 (split_quadword_operands): Make static and really allow variable
10652 splitting.
10653 (print_operand_address): Update for PIC generation.
10654 (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
10655 indexable_address_p, fixup_mathdi_operand,
10656 vax_expand_addsub_di_operands, adjacent_operands_p): New.
10657 (vax_float_literal, legitimate_constant_p,
10658 indirectable_constant_address_p, index_term_p,
10659 reg_plus_index_p): Return bool instead of int.
10660 (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
10661 where needed.
10662 (vax_output_int_move, vax_output_int_add): Extend to allow PIC
10663 generation.
10664 (vax_output_conditional_branch): Indent.
10665 (legitimate_constant_address_p, indirectable_constant_address_p,
10666 indirectable_address_p, nonindexed_address_p, legitimate_address_p,
10667 vax_mode_dependent_address_p): Return bool instead of int, update for
10668 PIC generation.
10669 * config/vax/vax-protos.h (legitimate_constant_address_p,
10670 legitimate_constant_p, legitimate_address_p,
10671 vax_mode_dependent_address_p): Change declaration to bool.
10672 (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
10673 vax_expand_addsub_di_operands, vax_output_int_subtract,
10674 vax_output_movmemsi): Declare.
10675 (split_quadword_operands, vax_float_literal): Delete declaration.
10676 * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
10677 * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
10678 VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
10679 ASM_OUTPUT_DWARF_PCREL): Define.
10680 (ASM_SPEC): Change definition to allow PIC generation.
10681
9332c6eb
L
106822009-04-01 Steve Ellcey <sje@cup.hp.com>
10683
10684 * doc/sourcebuild.texi: Update front-end requirements.
10685
d93e052c
JJ
106862009-04-01 Jakub Jelinek <jakub@redhat.com>
10687
10688 PR target/39226
10689 * config/rs6000/rs6000.md (andsi3_internal5_nomc,
10690 anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
10691 (booldi3_internal3): Use boolean_or_operator instead of
10692 boolean_operator.
10693
6ccb2a4a
JM
106942009-04-01 Joseph Myers <joseph@codesourcery.com>
10695
10696 PR c/39605
10697 * c-decl.c (grokdeclarator): Pedwarn for file-scope array
10698 declarator whose size is not an integer constant expression but
10699 folds to an integer constant, then treat it as a constant
10700 subsequently.
10701
299b87f8
RG
107022009-04-01 Richard Guenther <rguenther@suse.de>
10703
10704 * fold-const.c (fold_plusminus_mult_expr): Do not fold
10705 i * 4 + 2 to (i * 2 + 1) * 2.
10706
b85eb797
JJ
107072009-04-01 Jakub Jelinek <jakub@redhat.com>
10708
10709 PR c/37772
10710 * c-parser.c (c_parser_asm_statement): Skip until close paren and
10711 return if c_parser_asm_string_literal returned NULL.
10712
235e1fe8
NC
107132009-04-01 Nick Clifton <nickc@redhat.com>
10714
10715 * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
10716 already defined.
10717 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
10718 * config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the
10719 other typedefs to avoid conflicts with libgcc2.c. Define labels
10720 to gain 16-bit bit-manipulation functions from libgcc2.c and then
10721 include it.
10722 * config/m32c/m32c-lib2-trapv.c: New file. Define labels
10723 to gain 16-bit trapping arithmetic functions from libgcc2.c and
10724 then include it.
10725
d6868399
RAE
107262009-04-01 Rafael Avila de Espindola <espindola@google.com>
10727
7a715bba
UB
10728 * varasm.c (default_function_rodata_section): Declare DOT as
10729 const char*.
d6868399 10730
73d21f56 107312009-04-01 Kai Tietz <kai.tietz@onevision.com>
60839f5d 10732 Andrey Galkin <agalkin@hypercom.com>
73d21f56
KT
10733
10734 PR/39492
10735 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
10736 Make object_name unique for each process.
10737
03742a9b
JJ
107382009-04-01 Jakub Jelinek <jakub@redhat.com>
10739
10740 PR other/39591
10741 * omp-low.c (remove_exit_barrier): Don't optimize if there are any
10742 addressable variables in the parallel that could go out of scope while
10743 running queued tasks.
10744
4223ff5f
AS
107452009-04-01 Anatoly Sokolov <aesok@post.ru>
10746
10747 * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
10748 (CASE_VALUES_THRESHOLD): Redefine.
10749 * config/avr/avr.c (avr_override_options): Remove initialization of
10750 avr_case_values_threshold variable.
10751 (avr_case_values_threshold): Remove variable. Add new function.
10752 * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
10753 * config/avr/avr.opt (mno-tablejump): Remove option.
10754 * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
10755
e893f6f3
DD
107562009-04-01 DJ Delorie <dj@redhat.com>
10757
10758 * varasm.c (default_function_rodata_section): Don't assume
10759 anything about where the first '.' in the section name is.
10760
b246d100
AM
107612009-04-01 Alan Modra <amodra@bigpond.net.au>
10762
10763 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
10764 rs6000_emit_stack_tie.
10765
d3e37a9e
ILT
107662009-03-31 Ian Lance Taylor <iant@google.com>
10767
10768 * tree-eh.c (tree_remove_unreachable_handlers): Compare
10769 gimple_code with GIMPLE_RESX, not RESX.
10770
c1b61fca
JM
107712009-03-31 Joseph Myers <joseph@codesourcery.com>
10772
10773 * c-common.c (c_get_ident): New.
7a715bba 10774 (c_common_nodes_and_builtins): Call it for type names that may be NULL.
c1b61fca 10775
c2d2ad48
BE
107762009-04-01 Ben Elliston <bje@au.ibm.com>
10777
10778 * config/rs6000/sysv4.opt (msdata): Improve option description.
10779
13d1a6e7
SE
107802009-03-31 Steve Ellcey <sje@cup.hp.com>
10781
10782 * config/ia64/ia64.md (divsf3_internal_lat): Remove.
10783 (divdf3_internal_lat): Remove.
10784 (divxf3_internal_lat): Remove.
10785 (divxf3_internal_thr): Remove.
10786 (divxf): Use divxf3_internal.
10787 * config/ia64/div.md (divsf3_internal_lat): New.
10788 (divdf3_internal_lat): New.
10789 (divxf3_internal): New.
10790
207bf79d
JM
107912009-03-31 Joseph Myers <joseph@codesourcery.com>
10792
10793 PR c/448
10794 * Makefile.in (USE_GCC_STDINT): Define.
10795 (stmp-int-hdrs): Install stdint.h if applicable.
10796 * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
10797 if known.
10798 (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
10799 (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
10800 UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
10801 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
10802 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
10803 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
10804 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
10805 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
10806 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
10807 (c_common_nodes_and_builtins): Initialize
10808 underlying_wchar_type_node. Do not initialize
10809 signed_wchar_type_node or unsigned_wchar_type_node. Initialize
10810 nodes for new types.
10811 (c_stddef_cpp_builtins): Define macros for new types.
10812 * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
10813 Remove.
10814 (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
10815 CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
10816 CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
10817 CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
10818 CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
10819 CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
10820 CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
10821 CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
10822 CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
10823 (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
10824 (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
10825 int16_type_node, int32_type_node, int64_type_node,
10826 uint8_type_node, uint16_type_node, c_uint32_type_node,
10827 c_uint64_type_node, int_least8_type_node, int_least16_type_node,
10828 int_least32_type_node, int_least64_type_node,
10829 uint_least8_type_node, uint_least16_type_node,
10830 uint_least32_type_node, uint_least64_type_node,
10831 int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
10832 int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
10833 uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
10834 uintptr_type_node): Define.
10835 * c-cppbuiltin.c (builtin_define_constants,
10836 builtin_define_type_minmax): New.
10837 (builtin_define_stdint_macros): Define more macros.
10838 (c_cpp_builtins): Define more limit macros.
10839 (type_suffix): New.
10840 (builtin_define_type_max): Define in terms of
10841 builtin_define_type_minmax. Remove is_long parameter. All
10842 callers changed.
10843 * config.gcc (use_gcc_stdint): Define.
10844 (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
10845 Add newlib-stdint.h for generic targets.
10846 * config/glibc-stdint.h, config/newlib-stdint.h,
10847 ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
10848 * config/m32c/m32c.h (UINTPTR_TYPE): Define.
10849 * config/score/score.h (UINTPTR_TYPE): Define.
10850 * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
10851 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
10852 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
10853 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
10854 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
10855 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
10856 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
10857 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
10858 * config/spu/spu.h (STDINT_LONG32): Define.
10859 * configure.ac (use_gcc_stdint): Substitute.
10860 * configure: Regenerate.
10861 * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
10862 __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
10863 __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
10864 __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
10865 __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
10866 __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
10867 __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
10868 __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
10869 __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
10870 __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
10871 __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
10872 __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
10873 __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
10874 __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
10875 __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
10876 __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
10877 __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
10878 __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
10879 __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
10880 __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
10881 __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
10882 * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
10883 INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
10884 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
10885 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
10886 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
10887 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
10888 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
10889 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
10890
ed853664
BS
108912009-03-31 Bernd Schmidt <bernd.schmidt@analog.com>
10892
10893 * loop-iv.c (suitable_set_for_replacement): Renamed from
10894 simplify_using_assignment; changed to return bool and to accept new
10895 args DEST and SRC. Return true iff we find a source/destination pair
10896 that can be used to make a replacement, and fill SRC and DEST if so.
10897 Remove arg ALTERED. Don't deal with altered regs here. All callers
10898 changed.
10899 (simplify_using_initial_values): Deal with altered regs here and track
10900 more precisely the effect they have on the validity of our expression.
10901
1569e190
BS
10902 * loop-iv.c (simplify_using_condition): A condition of the form
10903 (EQ REG CONST) can be used to simply make a substitution.
10904 (simplify_using_initial_values): Keep track of conditions we have seen
10905 and keep using them to simplify new expressions, while applying the
10906 same substitutions to them as to the expression.
10907
1d1eb80c
BS
10908 * simplify-rtx.c (simplify_relational_operation_1): Simplify
10909 (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
10910 GEU/LTU reversed.
10911
28af33b0
BS
10912 * loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers
10913 changed. Use this when trying to improve the upper bound.
10914 Generate the comparison by using simplify_gen_relational.
10915
b30321cd
BS
10916 * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
10917
60081874
BS
10918 * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
10919 functions.
2ba9daa7 10920 (simplify_using_assignment, simplify_using_initial_values): Call
60081874
BS
10921 replace_in_expr to make replacements. Call replace_single_def_regs
10922 once on the initial version of the expression.
10923
bebc6e07
RR
109242009-03-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10925
fcb82ab0 10926 PR target/27237
bebc6e07 10927 * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
2ba9daa7 10928
6b12efe9
RG
109292009-03-31 Richard Guenther <rguenther@suse.de>
10930
10931 PR middle-end/31029
10932 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
10933 equality comparisons. Fold C - X CMP X if C % 2 == 1.
10934
108f6c2f
RG
109352009-03-31 Richard Guenther <rguenther@suse.de>
10936
10937 * tree.h (div_if_zero_remainder): Declare.
10938 * fold-const.c (div_if_zero_remainder): Export.
10939 * tree-ssa-forwprop.c
10940 (forward_propagate_addr_into_variable_array_index): Handle
10941 constant array index addition outside of the variable index.
10942
8f612190
JM
109432009-03-31 Joseph Myers <joseph@codesourcery.com>
10944
10945 PR target/39592
10946 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
10947 define_splits, floatunssi<mode>2): Require x87 conversions from
10948 DImode to be permitted.
10949
47580d22
JM
109502009-03-31 Joseph Myers <joseph@codesourcery.com>
10951
10952 PR preprocessor/15638
10953 * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
10954
ba4d8f9d
RG
109552009-03-31 Richard Guenther <rguenther@suse.de>
10956
10957 PR middle-end/23401
10958 PR middle-end/27810
10959 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
10960 (struct tree_decl_with_vis): Remove gimple_formal_temp member.
10961 * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
10962 a separate statement.
10963 * gimplify.c (pop_gimplify_context): Remove formal temp handling.
10964 (lookup_tmp_var): Likewise.
10965 (is_gimple_formal_tmp_or_call_rhs): Remove.
10966 (is_gimple_reg_or_call_rhs): Rename to ...
10967 (is_gimple_reg_rhs_or_call): ... this.
10968 (is_gimple_mem_or_call_rhs): Rename to ...
10969 (is_gimple_mem_rhs_or_call): ... this.
10970 (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set
10971 DECL_GIMPLE_REG_P only if is_formal is true.
10972 (gimplify_compound_lval): Use is_gimple_reg. Remove workaround
10973 for non-proper post-modify expression gimplification.
10974 (gimplify_self_mod_expr): For post-modify expressions gimplify
10975 the lvalue to a minimal lvalue.
10976 (rhs_predicate_for): Remove formal temp case.
10977 (gimplify_modify_expr_rhs): Likewise.
10978 (gimplify_addr_expr): Use is_gimple_reg.
10979 (gimplify_expr): Remove formal temp cases.
10980 (gimple_regimplify_operands): Likewise.
10981 * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
10982 and FILTER_EXPR like constants.
10983 * gimple.c (walk_gimple_op): Fix val_only initialization, use
10984 is_gimple_reg.
10985 (is_gimple_formal_tmp_rhs): Remove.
10986 (is_gimple_reg_rhs): Remove special casing.
10987 (is_gimple_mem_rhs): Fix.
10988 (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
10989 (is_gimple_formal_tmp_var): Remove.
10990 (is_gimple_formal_tmp_reg): Likewise.
10991 (is_gimple_min_lval): Allow invariant component ref parts.
10992 * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
10993 is_gimple_formal_tmp_reg): Remove declarations.
10994 * tree-cfg.c (verify_expr): Verify that variables with address
10995 taken do not have DECL_GIMPLE_REG_P set.
10996 * tree-mudflap.c (mf_build_check_statement_for): Use
10997 force_gimple_operand instead of gimplify_expr.
10998
8de9b877
AZ
109992009-03-31 Ayal Zaks <zaks@il.ibm.com>
11000
11001 * modulo-sched.c (sms_schedule_by_order): Pass the actual
11002 schedulable rows to compute_split_row.
11003
b5e3caf2
BE
110042009-03-31 Ben Elliston <bje@au.ibm.com>
11005
11006 PR target/31635
11007 * config/rs6000/rs6000.c (rs6000_handle_option): Handle
11008 OPT_mvrsave.
11009
9752c4ad
AM
110102009-03-31 Alan Modra <amodra@bigpond.net.au>
11011
11012 * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
11013 * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
11014 * configure: Regenerate.
11015 * config.in: Regenerate.
11016 * config/rs6000/rs6000.opt (mtls-markers): Add.
11017 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
11018 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
11019 (tls_ld_aix, tls_ld_sysv): Likewise.
11020 (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
11021 (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
11022
b597d1b6
AM
110232009-03-31 Alan Modra <amodra@bigpond.net.au>
11024
11025 * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
11026
a203a221
JH
110272009-03-30 Jan Hubicka <jh@suse.cz>
11028
b597d1b6
AM
11029 * tree-eh.c (make_eh_edges): Set probability 100% to first edge
11030 out of RESX.
11031 (tree_remove_unreachable_handlers): Cleanup EH predecestor
11032 detection and label handling.
a203a221 11033
5b0c0b2c
VM
110342009-03-30 Vladimir Makarov <vmakarov@redhat.com>
11035
11036 * ira-int.h (ira_allocno): Rename left_conflicts_num to
11037 left_conflicts_size.
11038 (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
11039 ALLOCNO_LEFT_CONFLICTS_SIZE.
11040
11041 * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
11042 remove_allocno_from_bucket_and_push,
11043 allocno_spill_priority_compare, push_allocnos_to_stack,
11044 setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
11045 instead of ALLOCNO_LEFT_CONFLICTS_NUM.
11046 (setup_allocno_left_conflicts_num): Ditto. Rename to
11047 setup_allocno_left_conflicts_size.
11048 (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
11049 instead of ALLOCNO_LEFT_CONFLICTS_NUM and
11050 setup_allocno_left_conflicts_size instead of
11051 setup_allocno_left_conflicts_num.
11052
11053 * ira-build.c (ira_create_allocno): Use
11054 ALLOCNO_LEFT_CONFLICTS_SIZE instead of
11055 ALLOCNO_LEFT_CONFLICTS_NUM.
2ba9daa7 11056
9a48a93f
VM
110572009-03-30 Vladimir Makarov <vmakarov@redhat.com>
11058
11059 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
11060 instead of DF_LR_OUT.
11061
11062 * ira-lives.c (process_bb_node_lives): Ditto.
11063
11064 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
11065 instead of DF_LR_{OUT,IN}.
11066
11067 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
11068
11069 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
11070
4c936d4f
JH
110712009-03-30 Jan Hubicka <jh@suse.cz>
11072
11073 * except.c (label_to_region_map): Fix thinko.
11074
f4d9f129
SE
110752009-03-30 Steve Ellcey <sje@cup.hp.com>
11076
11077 PR middle-end/38237
11078 * tree.h (tree_find_value): New declaration.
11079 * tree.c (tree_find_value): New function.
11080 * varasm.c (assemble_external): Avoid duplicate entries on lists.
11081
b3f27c15
JJ
110822009-03-30 Jakub Jelinek <jakub@redhat.com>
11083
11084 PR debug/39563
11085 * c-decl.c (struct c_binding): Add locus field.
11086 (bind): Add locus argument, set locus field from it.
11087 (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
11088 add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
11089 (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
11090 implicitly_declare, undeclared_variable, lookup_label,
11091 declare_label, c_make_fname_decl, c_builtin_function,
11092 c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
11093 bind callers.
11094
ad41bd84 110952009-03-30 H.J. Lu <hongjiu.lu@intel.com>
680e8a00
L
11096
11097 PR target/38781
11098 * config/i386/i386.c (classify_argument): Check total size of
11099 structure.
11100
133f9369
MJ
111012009-03-30 Martin Jambor <mjambor@suse.cz>
11102
11103 * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
11104 IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
11105 IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
11106 respectively.
11107
11108 * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
11109 seen_variable_array_ref while also traversing a union.
11110
11111 * tree-inline.c (optimize_inline_calls): Do not call
11112 cgraph_node_remove_callees.
11113 * cgraphbuild.c (remove_cgraph_callee_edges): New function.
11114 (pass_remove_cgraph_callee_edges): New variable.
11115 * passes.c (init_optimization_passes): Add
11116 pass_remove_cgraph_callee_edges after early inlining and before all
11117 late intraprocedural passes.
11118
11119 * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
11120
1190f2eb
PB
111212009-03-30 Paolo Bonzini <bonzini@gnu.org>
11122
11123 * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
11124 Fix typos in names.
11125
fedc1775
PB
111262009-03-30 Paolo Bonzini <bonzini@gnu.org>
11127
fcb82ab0
UB
11128 * combine.c (simplify_comparison): Use have_insn_for.
11129 * dojump.c (do_jump): Likewise.
fedc1775 11130
65c5ae8b
PB
111312009-03-30 Paolo Bonzini <bonzini@gnu.org>
11132
11133 * config/sparc/sparc.c (sparc_compare_emitted): Remove.
11134 (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
11135 sparc_compare_op0 like sparc_compare_emitted used to be handled.
11136 (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
11137 instead of sparc_compare_emitted.
11138 * config/sparc/sparc.h (sparc_compare_emitted): Remove.
11139 * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
11140 instead of sparc_compare_emitted.
11141
d25aa7ab
PB
111422009-03-30 Paolo Bonzini <bonzini@gnu.org>
11143
11144 * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
11145 enter/exit cfglayout mode.
11146 (pass_partition_block): Require it.
11147 * combine.c (find_single_use, reg_dead_at_p): Use CFG.
11148 (combine_instructions): Track basic blocks instead of labels.
11149 (update_cfg_for_uncondjump): New.
11150 (try_combine): Use it. Update jumps after rescanning.
11151 (pass_combine): Require PROP_cfglayout.
11152 * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
11153
9c9e26f5
PB
111542009-03-30 Paolo Bonzini <bonzini@gnu.org>
11155
fcb82ab0
UB
11156 * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
11157 Provide/destroy PROP_cfglayout respectively.
11158 * gcse.c (pass_jump_bypass, pass_gcse): Require it.
11159 * tree-pass.h (PROP_cfglayout): New.
9c9e26f5 11160
28ddeea1
PB
111612009-03-30 Paolo Bonzini <bonzini@gnu.org>
11162
11163 * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
11164 fold_convert_const_fixed_from_fixed,
11165 fold_convert_const_fixed_from_int,
11166 fold_convert_const_fixed_from_real, fold_negate_const): Do not
11167 set TREE_CONSTANT_OVERFLOW.
11168 * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
11169 * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
11170
ebfd146a
IR
111712009-03-30 Ira Rosen <irar@il.ibm.com>
11172
11173 * tree-vect-loop-manip.c: New file.
11174 * tree-vectorizer.c: Update documentation and included files.
11175 (vect_loop_location): Make extern.
11176 (rename_use_op): Move to tree-vect-loop-manip.c
2ba9daa7
AS
11177 (rename_variables_in_bb, rename_variables_in_loop,
11178 slpeel_update_phis_for_duplicate_loop,
ebfd146a
IR
11179 slpeel_update_phi_nodes_for_guard1,
11180 slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
11181 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
11182 slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
2ba9daa7 11183 set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
ebfd146a
IR
11184 find_loop_location): Likewise.
11185 (new_stmt_vec_info): Move to tree-vect-stmts.c.
11186 (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
11187 get_vectype_for_scalar_type, vect_is_simple_use,
11188 supportable_widening_operation, supportable_narrowing_operation):
11189 Likewise.
11190 (bb_in_loop_p): Move to tree-vect-loop.c.
2ba9daa7
AS
11191 (new_loop_vec_info, destroy_loop_vec_info,
11192 reduction_code_for_scalar_code, report_vect_op,
ebfd146a
IR
11193 vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
11194 (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
11195 (vect_supportable_dr_alignment): Likewise.
11196 * tree-vectorizer.h (tree-data-ref.h): Include.
11197 (vect_loop_location): Declare.
11198 Reorganize function declarations according to the new file structure.
11199 * tree-vect-loop.c: New file.
2ba9daa7 11200 * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
ebfd146a
IR
11201 tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
11202 * tree-vect-data-refs.c: New file.
11203 * tree-vect-patterns.c (timevar.h): Don't include.
11204 * tree-vect-stmts.c: New file.
2ba9daa7 11205 * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
ebfd146a 11206 tree-vect-slp.c, tree-vect-loop.c.
2ba9daa7
AS
11207 * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
11208 tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
ebfd146a
IR
11209 tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
11210 (tree-vect-analyze.o): Remove.
11211 (tree-vect-transform.o): Likewise.
11212 (tree-vect-data-refs.o): Add rule.
2ba9daa7 11213 (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
ebfd146a
IR
11214 tree-vect-slp.o): Likewise.
11215 (tree-vect-patterns.o): Remove redundant dependencies.
11216 (tree-vectorizer.o): Likewise.
11217 * tree-vect-slp.c: New file.
11218
40a1cfba
RW
112192009-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11220
11221 * optc-gen.awk: Warn if an option flag has multiple different
11222 help strings.
11223
a9a7a9a2
SP
112242009-03-30 Sebastian Pop <sebastian.pop@amd.com>
11225
11226 * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
11227 -floop-block): Document dependences on PPL, CLooG and Graphite.
11228
8ce94e44
JM
112292009-03-30 Joseph Myers <joseph@codesourcery.com>
11230
11231 PR rtl-optimization/323
11232 * c-common.c (c_fully_fold, convert_and_check,
11233 c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
11234 (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
11235 * c-common.def (EXCESS_PRECISION_EXPR): New.
11236 * c-cppbuiltin.c (builtin_define_float_constants): Define
11237 constants with enough digits for long double.
11238 * c-lex.c (interpret_float): Interpret constant with excess
11239 precision where appropriate.
11240 * c-opts.c (c_common_post_options): Set
11241 flag_excess_precision_cmdline. Give an error for
11242 -fexcess-precision=standard for C++ for processors where the
11243 option is significant.
11244 * c-parser.c (c_parser_conditional_expression): Handle excess
11245 precision in condition.
11246 * c-typeck.c (convert_arguments): Handle arguments with excess
11247 precision.
11248 (build_unary_op): Move excess precision outside operation.
11249 (build_conditional_expr): Likewise.
11250 (build_compound_expr): Likewise.
11251 (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
11252 (build_modify_expr): Handle excess precision in RHS.
11253 (convert_for_assignment): Handle excess precision in converted
11254 value.
11255 (digest_init, output_init_element, process_init_element): Handle
11256 excess precision in initializer.
11257 (c_finish_return): Handle excess precision in return value.
11258 (build_binary_op): Handle excess precision in operands and add
11259 excess precision as needed for operation.
11260 * common.opt (-fexcess-precision=): New option.
11261 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
11262 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
11263 For standard excess precision, output explicit conversion to and
11264 truncation from XFmode.
11265 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
11266 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
11267 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
11268 define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
11269 define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
11270 floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
11271 divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
11272 *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
11273 *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
11274 define_splits, sqrt<mode>2): Disable where appropriate for
11275 standard excess precision.
11276 * convert.c (convert_to_real): Do not shorten arithmetic to type
11277 for which excess precision would be used.
11278 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
11279 * doc/invoke.texi (-fexcess-precision=): Document option.
11280 (-mfpmath=): Correct index entry.
11281 * flags.h (enum excess_precision, flag_excess_precision_cmdline,
11282 flag_excess_precision): New.
11283 * langhooks.c (lhd_post_options): Set
11284 flag_excess_precision_cmdline.
11285 * opts.c (common_handle_option): Handle -fexcess-precision=.
11286 * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
11287 init_excess_precision): New.
11288 (lang_dependent_init_target): Call init_excess_precision.
11289 * tree.c (excess_precision_type): New.
11290 * tree.h (excess_precision_type): Declare.
11291
1e57bf47
JM
112922009-03-30 Joseph Myers <joseph@codesourcery.com>
11293
11294 PR c/35235
11295 * c-typeck.c (build_component_ref): Do not copy qualifiers from
11296 non-lvalue to component.
11297
148e4216
JM
112982009-03-29 Joseph Myers <joseph@codesourcery.com>
11299
11300 PR preprocessor/34695
11301 * Makefile.in (c-opts.o): Depend on c-tree.h.
11302 * c-common.c: Move down include of diagnostic.h.
11303 (done_lexing, c_cpp_error): New.
11304 * c-common.h (done_lexing): Declare.
11305 * c-decl.c (c_write_global_declarations): Don't check cpp_errors
11306 (parse_in).
11307 * c-opts.c: Include c-tree.h.
11308 (c_common_init_options): Set preprocessor error callback.
11309 (c_common_handle_option): Do not set preprocessor
11310 inhibit_warnings, warnings_are_errors, warn_system_headers,
11311 pedantic_errors or inhibit_warnings flags.
11312 (c_common_post_options): Do not check cpp_errors (parse_in).
11313 (c_common_finish): Do not output dependencies if there were
11314 errors. Do not check return value of cpp_finish.
11315 * c-ppoutput.c (pp_file_change): Set input_location.
11316 * c-tree.h (c_cpp_error): Declare.
11317 * diagnostic.c (diagnostic_set_info_translated): Also initialize
11318 override_column.
11319 (diagnostic_build_prefix): Check override_column.
11320 * diagnostic.h (diagnostic_info): Add override_column field.
11321 (diagnostic_override_column): Define.
11322
2ec5deb5
PB
113232009-03-28 Paolo Bonzini <bonzini@gnu.org>
11324
ba20e309
UB
11325 * c-common.c (c_expand_expr, c_staticp): Remove.
11326 * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
11327 * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
11328 COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
11329 * c-gimplify.c (gimplify_compound_literal_expr,
11330 optimize_compound_literals_in_ctor): Remove.
11331 (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
11332 * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
11333 * c-semantics.c (emit_local_var): Remove.
11334
11335 * langhooks-def.h (lhd_expand_expr): Remove.
11336 * langhooks.c (lhd_expand_expr): Remove.
11337 * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
11338
11339 * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
11340 handling from c-semantics.c; don't call into langhook.
11341 (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
11342 * gimplify.c (gimplify_compound_literal_expr,
11343 optimize_compound_literals_in_ctor): Move from c-gimplify.c.
11344 (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
11345 (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
11346 as was done in c-gimplify.c.
11347 * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
11348 * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
11349 Move from c-common.h.
11350 * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
2ec5deb5
PB
11351
11352 * tree.c (staticp): Do not call langhook.
11353 * langhooks.c (lhd_staticp): Delete.
11354 * langhooks-def.h (lhd_staticp): Delete prototype.
11355 (LANG_HOOKS_STATICP): Delete.
11356 (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
11357
ba20e309
UB
11358 * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
11359 instead of DECL_STMTs.
2ec5deb5 11360
928c19bb
JM
113612009-03-29 Joseph Myers <joseph@codesourcery.com>
11362
11363 PR c/456
11364 PR c/5675
11365 PR c/19976
11366 PR c/29116
11367 PR c/31871
11368 PR c/35198
11369 * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
11370 void_type_node.
11371 (fold_call_expr): Return a NOP_EXPR from folding rather than the
11372 contained expression.
ba20e309 11373 * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
928c19bb
JM
11374 (c_common_truthvalue_conversion): Use c_save_expr. Do not fold
11375 conditional expressions for C.
11376 (decl_constant_value_for_optimization): Move from
ba20e309 11377 decl_constant_value_for_broken_optimization in c-typeck.c. Check
928c19bb
JM
11378 whether optimizing and that the expression is a VAR_DECL not of
11379 array type instead of doing such checks in the caller. Do not
11380 check pedantic. Call gcc_unreachable for C++.
11381 * c-common.def (C_MAYBE_CONST_EXPR): New.
11382 * c-common.h (c_fully_fold, c_save_expr,
11383 decl_constant_value_for_optimization): New prototypes.
11384 (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
11385 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
11386 EXPR_INT_CONST_OPERANDS): Define.
11387 * c-convert.c (convert): Strip nops from expression.
11388 * c-decl.c (groktypename): Take extra parameters expr and
11389 expr_const_operands. Update call to grokdeclarator.
11390 (start_decl): Update call to grokdeclarator. Add statement for
11391 expressions used in type of decl.
11392 (grokparm): Update call to grokdeclarator.
11393 (push_parm_decl): Update call to grokdeclarator.
11394 (build_compound_literal): Add parameter non_const and build a
11395 C_MAYBE_COSNT_EXPR if applicable.
11396 (grokdeclarator): Take extra parameters expr and
11397 expr_const_operands. Track expressions used in declaration
11398 specifiers and declarators. Fold array sizes and track whether
11399 they are constant expressions and whether they are integer
11400 constant expressions.
11401 (parser_xref_tag): Set expr and expr_const_operands fields in
11402 return value.
11403 (grokfield): Update call to grokdeclarator.
11404 (start_function): Update call to grokdeclarator.
11405 (build_null_declspecs): Set expr and expr_const_operands fields in
11406 return value.
11407 (declspecs_add_type): Handle expressions in typeof specifiers.
11408 * c-parser.c (c_parser_declspecs): Set expr and
11409 expr_const_operands fields for declaration specifiers.
11410 (c_parser_enum_specifier): Likewise.
11411 (c_parser_struct_or_union_specifier): Likewise.
11412 (c_parser_typeof_specifier): Likewise. Update call to
11413 groktypename. Fold expression as needed. Return expressions with
11414 type instead of adding statements.
11415 (c_parser_attributes): Update calls to c_parser_expr_list.
11416 (c_parser_statement_after_labels): Fold expression before passing
11417 to objc_build_throw_stmt.
11418 (c_parser_condition): Fold expression.
11419 (c_parser_asm_operands): Fold expression.
11420 (c_parser_conditional_expression): Use c_save_expr. Update call
11421 to build_conditional_expr.
11422 (c_parser_alignof_expression): Update call to groktypename.
11423 (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
11424 original_code. Fold expression argument of va_arg. Create
11425 C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
11426 argument to va_arg. Update calls to groktypename. Fold array
11427 index for offsetof. Verify that first argument to
11428 __builtin_choose_expr has integer type.
11429 (c_parser_postfix_expression_after_paren_type): Update calls to
11430 groktypename and build_compound_literal. Handle expressions with
11431 side effects in type name.
11432 (c_parser_postfix_expression_after_primary): Update call to
11433 c_parser_expr_list. Set original_code for calls to
11434 __builtin_constant_p.
11435 (c_parser_expr_list): Take extra parameter fold_p. Fold
11436 expressions if requested.
11437 (c_parser_objc_type_name): Update call to groktypename.
11438 (c_parser_objc_synchronized_statement): Fold expression.
11439 (c_parser_objc_receiver): Fold expression.
11440 (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
11441 (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
11442 c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
11443 * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
11444 (struct c_typespec): Add elements expr and expr_const_operands.
11445 (struct c_declspecs): Add elements expr and expr_const_operands.
11446 (groktypename, build_conditional_expr, build_compound_literal):
11447 Update prototypes.
11448 (in_late_binary_op): Declare.
11449 * c-typeck.c (note_integer_operands): New function.
11450 (in_late_binary_op): New variable.
11451 (decl_constant_value_for_broken_optimization): Move to c-common.c
11452 and rename to decl_constant_value_for_optimization.
11453 (default_function_array_conversion): Do not strip nops.
11454 (default_conversion): Do not call
11455 decl_constant_value_for_broken_optimization.
11456 (build_array_ref): Do not fold result.
11457 (c_expr_sizeof_expr): Fold operand. Use C_MAYBE_CONST_EXPR for
11458 result when operand is a VLA.
11459 (c_expr_sizeof_type): Update call to groktypename. Handle
11460 expressions included in type name. Use C_MAYBE_CONST_EXPR for
11461 result when operand names a VLA type.
11462 (build_function_call): Update call to build_compound_literal.
11463 Only fold result for calls to __builtin_* functions. Strip
11464 NOP_EXPR from INTEGER_CST returned from such functions. Fold
11465 the function designator.
11466 (convert_arguments): Fold arguments. Update call to
11467 convert_for_assignment.
11468 (build_unary_op): Handle increment and decrement of
11469 C_MAYBE_CONST_EXPR. Move lvalue checks for increment and
11470 decrement earlier. Fold operand of increment and decrement.
11471 Handle address of C_MAYBE_CONST_EXPR. Only fold expression being
11472 built for integer operand. Wrap returns that are INTEGER_CSTs
11473 without being integer constant expressions or that have integer
11474 constant operands without being INTEGER_CSTs.
11475 (lvalue_p): Handle C_MAYBE_CONST_EXPR.
11476 (build_conditional_expr): Add operand ifexp_bcp. Track whether
11477 result is an integer constant expression or can be used in
11478 unevaluated parts of one and avoid folding and wrap as
11479 appropriate. Fold operands before possibly doing -Wsign-compare
11480 warnings.
11481 (build_compound_expr): Wrap result for C99 if operands can be used
11482 in integer constant expressions.
11483 (build_c_cast): Update call to digest_init. Do not ignore
11484 overflow from casting floating-point constants to integers. Wrap
11485 results that could be confused with integer constant expressions,
11486 null pointer constants or floating-point constants.
11487 (c_cast_expr): Update call to groktypename. Handle expressions
11488 included in type name.
11489 (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR. Fold
11490 lhs inside possible SAVE_EXPR. Fold RHS before assignment.
11491 Update calls to convert_for_assignment.
11492 (convert_for_assignment): Take new parameter
11493 null_pointer_constant. Do not strip nops or call
11494 decl_constant_value_for_broken_optimization. Set
11495 in_late_binary_op for conversions to boolean.
11496 (store_init_value): Update call to digest_init.
11497 (digest_init): Take new parameter null_pointer_constant. Do not
11498 call decl_constant_value_for_broken_optimization. pedwarn for
11499 initializers not constant expressions. Update calls to
11500 convert_for_assignment.
11501 (constructor_nonconst): New.
11502 (struct constructor_stack): Add nonconst element.
11503 (really_start_incremental_init, push_init_level, pop_init_level):
11504 Handle constructor_nonconst and nonconst element.
11505 (set_init_index): Call constant_expression_warning for array
11506 designators.
11507 (output_init_element): Fold value. Set constructor_nonconst as
11508 applicable. pedwarn for initializers not constant expressions.
11509 Update call to digest_init. Call constant_expression_warning
11510 where constant initializers are required.
11511 (process_init_element): Use c_save_expr.
11512 (c_finish_goto_ptr): Fold expression.
11513 (c_finish_return): Fold return value. Update call to
11514 convert_for_assignment.
11515 (c_start_case): Fold switch expression.
11516 (c_process_expr_stmt): Fold expression.
11517 (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
ba20e309 11518 ensure statement expression is not evaluated in constant expression.
928c19bb
JM
11519 (build_binary_op): Track whether results are integer constant
11520 expressions or may occur in such, disable folding and wrap results
11521 as applicable. Fold operands for -Wsign-compare warnings unless
11522 in_late_binary_op.
11523 (c_objc_common_truthvalue_conversion): Handle results folded to
11524 integer constants that are not integer constant expressions.
11525 * doc/extend.texi: Document when typeof operands are evaluated,
11526 that condition of __builtin_choose_expr is an integer constant
11527 expression, and more about use of __builtin_constant_p in
11528 initializers.
11529
5babbcc0
RG
115302009-03-29 Richard Guenther <rguenther@suse.de>
11531
11532 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
11533 propagate addresses of array references.
11534
0340f2ba
SB
115352009-03-29 Steven Bosscher <steven@gcc.gnu.org>
11536
11537 * regmove.c (perhaps_ends_bb_p): Remove.
11538 (optimize_reg_copy_1): Don't call perhaps_ends_bb_p. Get basic block
11539 from INSN and check that the main loop stays within that basic block.
11540 (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
11541 (regmove_forward_pass): Split out from regmove_optimize. Use
11542 FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
11543 (regmove_backward_pass): Split out from regmove_optimize. Use
11544 FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
11545 (regmove_optimize): Simplify.
11546
eeae74a1
L
115472009-03-29 H.J. Lu <hongjiu.lu@intel.com>
11548
11549 PR target/39545
11550 * config/i386/i386.c (classify_argument): Ignore flexible array
11551 member in struct and warn ABI change.
11552
a24078b2
L
115532009-03-29 H.J. Lu <hongjiu.lu@intel.com>
11554
11555 * config/i386/i386-protos.h (ix86_agi_dependent): New.
11556
11557 * config/i386/i386.c (ix86_agi_dependent): Rewrite.
11558 (ix86_adjust_cost): Updated.
11559
a8da523f
JH
115602009-03-29 Jan Hubicka <jh@suse.cz>
11561
11562 PR middle-end/28850
11563 * tree-pass.h (pass_cleanup_eh): New function.
11564 (remove_unreachable_regions): Break code handling RTL
11565 to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
11566 that can not be reached by runtime.
11567 (can_be_reached_by_runtime): New function.
11568 (label_to_region_map): New function.
11569 (num_eh_regions): New function.
11570 (rtl_remove_unreachable_regions): New function.
11571 (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
11572 (remove_eh_region): New function.
11573 * except.h: Include sbitmap and vecprim.
11574 (remove_eh_region, remove_unreachable_regions, label_to_region_map,
11575 num_eh_regions): Declare.
11576 * passes.c (init_optimization_passes): Schedule cleanup_eh.
ba20e309 11577 * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
a8da523f
JH
11578 * tree-eh.c (tree_remove_unreachable_handlers): New function.
11579 (tree_empty_eh_handler_p): New function.
11580 (cleanup_empty_eh): New function.
11581 (cleanup_eh): New function.
11582 (pass_cleanup_eh): New function.
11583
98f358e5
JH
115842009-03-29 Jan Hubicka <jh@suse.cz>
11585
11586 * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
11587 for removed regions.
11588
13a9fa44
JH
115892009-03-29 Jan Hubicka <jh@suse.cz>
11590
11591 * except.c (dump_eh_tree): Dump all datastructures.
11592
e38cf733
JH
115932009-03-29 Jan Hubicka <jh@suse.cz>
11594
11595 * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
11596 (duplicate_eh_regions_1): Likewise.
11597 (duplicate_eh_regions): Likewise; cleanup code gorwing the region
11598 vector; call EH verification.
11599 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
11600 Be ready for region being removed.
11601
12802c2b
JH
116022009-03-29 Jan Hubicka <jh@suse.cz>
11603
11604 * bitmap.c (bitmap_last_set_bit): New function.
11605 * bitmap.h (bitmap_last_set_bit): Declare.
11606
4ea80a41
DA
116072009-03-29 David Ayers <ayers@fsfe.org>
11608
11609 PR objc/27377
11610 * c-typeck.c (build_conditional_expr): Emit ObjC warnings
11611 by calling objc_compare_types and surpress warnings about
11612 incompatible C pointers that are compatible ObjC pointers.
2ba9daa7 11613
4ea80a41 116142009-03-29 Adam Nemet <anemet@caviumnetworks.com>
3dc9eaa6
AN
11615
11616 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
11617 call initialize_inline_failed.
11618 (initialize_inline_failed): Move it from here ...
11619 * cgraph.c (initialize_inline_failed): ... to here.
11620 (cgraph_create_edge): Call initialize_inline_failed rather than
11621 setting inline_failed directly.
11622
7fb0ee07
BE
116232009-03-29 Ben Elliston <bje@au.ibm.com>
11624
11625 PR target/32542
11626 * sysv4.opt (msdata): Improve comment.
11627 * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
11628 * sysv4.h (SVR4_ASM_SPEC): Likewise.
11629
0be77bf2
BE
116302009-03-29 Ben Elliston <bje@au.ibm.com>
11631
11632 PR target/30451
11633 * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
11634 load and store attributes.
11635
593812b6
BE
116362009-03-29 Ben Elliston <bje@au.ibm.com>
11637
11638 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
11639 (ix86_init_builtins): Add built-in function __builtin_huge_valq.
11640 (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
11641 * doc/extend.texi (X86 Built-in Functions): Add index entries for
11642 __builtin_infq and __builtin_huge_valq.
11643
8272d11d
AS
116442009-03-28 Anatoly Sokolov <aesok@post.ru>
11645
11646 * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
11647 atmega8m1 devices.
11648 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
11649 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
11650
74fe548b
XDL
116512009-03-28 Xinliang David Li <davidxl@google.com>
11652
2ba9daa7 11653 * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
74fe548b
XDL
11654 (do_dbg_cnt): New function.
11655
33977f81
JH
116562009-03-28 Jan Hubicka <jh@suse.cz>
11657
11658 Merge from pretty-ipa:
11659
11660 2009-03-27 Jan Hubicka <jh@suse.cz>
ba20e309 11661
33977f81
JH
11662 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
11663 * tree-pass.h (function_called_by_processed_nodes_p): Declare.
11664 * passes.c (function_called_by_processed_nodes_p): New.
11665 * ipa-pure-const.c (check_call): Fix handling of operands.
11666 (analyze_function): Dump debug output for skipped bodies.
11667 (local_pure_const): Use function_called_by_processed_nodes_p.
11668 * dwarf2out.c (reference_to_unused): Use output.
11669 * passes.c (do_per_function_toporder): Likewise.
11670
11671 2008-11-12 Jan Hubicka <jh@suse.cz>
11672
11673 * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
11674 * ipa-pure-const.c (funct_state_d): Add can throw field; make
11675 state_set_in_source enum
11676 (check_decl): Ignore memory tags; do not set fake looping flags;
11677 dump diagnostics.
11678 (check_operand, check_tree, check_rhs_var, check_lhs_var,
11679 get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
11680 (check_call, analyze_function): Rewrite.
11681 (check_stmt): New.
11682 (add_new_function): Update call of analyze_function.
11683 (generate_summary): Add call of analyze_function.
11684 (propagate): Propagate can_throw; handle state_set_in_source correctly.
11685 (local_pure_const): New function.
11686 (pass_local_pure_const): New pass.
11687 * ipa-inline.c (inline_transform): Set after_inlining.
11688 * tree-eh.c (stmt_can_throw_external): New.
11689 * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
11690 work with aliasing built.
11691 * tree-flow.h (stmt_can_throw_external): New.
11692 * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
11693 and local pure/const pass in early and late optimization queue.
ba20e309 11694
617f3897
MJ
116952009-03-28 Martin Jambor <mjambor@suse.cz>
11696
11697 * fold-const.c (get_pointer_modulus_and_residue): New parameter
11698 allow_func_align.
11699 (fold_binary): Allow function decl aligment consideration is the
11700 second argument is integer constant one.
11701 * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
11702 (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
11703 with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
11704
fe89fbc5
JH
117052009-03-28 Jan Hubicka <jh@suse.cz>
11706
11707 * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
11708 * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
11709 * function.h (rtl_data): Add nothrow flag.
11710 * except.c (set_nothrow_function_flags): Use crtl->nothrow;
11711 set DECL_NOTHROW for AVAILABLE functions.
11712
574872ff
JJ
117132009-03-28 Jakub Jelinek <jakub@redhat.com>
11714
b3bf8855
JJ
11715 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
11716 following vector keyword has expansion starting with pixel or bool
11717 keyword, expand vector to __vector and pixel or bool to __pixel or
11718 __bool.
11719
574872ff
JJ
11720 PR c++/39554
11721 * opts.c (warning_disallowed_functions, warn_disallowed_functions,
11722 warn_if_disallowed_function_p): Removed.
11723 (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
11724 * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
11725 warning_if_disallowed_function_p.
11726 * flags.h (warn_if_disallowed_function_p,
11727 warn_disallowed_functions): Removed.
11728 * common.opt (Wdisallowed-function-list=): Removed.
11729 * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
11730
b005da11
RG
117312009-03-28 Richard Guenther <rguenther@suse.de>
11732
11733 PR tree-optimization/38723
11734 * tree-ssa-pre.c (compute_avail): Add all default definitions to
11735 the entry block.
11736
1de812a6
JH
117372009-03-28 Jan Hubicka <jh@suse.cz>
11738
11739 * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
11740 test introduced by my previous patch.
11741
fbb789d4
RG
117422009-03-28 Richard Guenther <rguenther@suse.de>
11743
11744 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
11745 the PHIs value undefined.
11746
6f1873a1
JH
117472009-03-28 Jan Hubicka <jh@suse.cz>
11748
11749 * tree-pass.h (pass_fixup_cfg): New pass.
11750 * ipa-inline.c (inline_transform): Set
11751 always_inline_functions_inlined/after_inlining.
11752 * tree-optimize.c (execute_fixup_cfg): Do not set them here.
11753 (pass_fixup_cfg): New pass.
11754 * passes.c (init_optimization_passes): Add fixup_cfg.
11755
17021bc8
RG
117562009-03-28 Richard Guenther <rguenther@suse.de>
11757
11758 PR tree-optimization/38458
11759 * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
11760 argument use the arguments copy-of value.
11761
e8114fba
RG
117622009-03-28 Richard Guenther <rguenther@suse.de>
11763
11764 PR tree-optimization/38180
11765 * tree-ssa-ccp.c (get_default_value): Simplify.
11766 (likely_value): Likewise.
11767 (surely_varying_stmt_p): Properly handle VOP case.
11768 (ccp_initialize): Likewise.
11769 (ccp_fold): Handle propagating through *&.
11770 (fold_const_aggregate_ref): Also handle decls.
11771
257eb6e3
JH
117722009-03-28 Jan Hubicka <jh@suse.cz>
11773
11774 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
11775 * cgraph.h (cgraph_node): Likewise.
11776 * cgraphunit.c (cgraph_process_new_functions): Set process flag.
11777 (cgraph_reset_node): Use process flag.
11778 (cgraph_mark_functions_to_output): Likewise.
11779 (cgraph_expand_function): Likewise.
11780 (cgraph_expand_all_functions): Likewise.
11781 (cgraph_output_in_order): Likewise.
11782 * dwarf2out.c (reference_to_unused): Likewise.
11783 * passes.c do_per_function_toporder): Likewise.
11784
61a05df1
JH
117852009-03-28 Jan Hubicka <jh@suse.cz>
11786
11787 Bring from lto-branch:
ba20e309 11788
61a05df1
JH
11789 2008-09-03 Doug Kwan <dougkwan@google.com>
11790
11791 * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
11792 enums instead of reason strings.
11793 * cgraph.c (cgraph_create_edge): Same.
11794 (cgraph_inline_failed_string): New function.
11795 * cgraph.h (cgraph_inline_failed_t): New enum type.
11796 (cgraph_inline_failed_string): New prototype.
11797 (struct cgraph_edge): Change type of INLINED_FAILED from constant
11798 char pointer to cgraph_inline_failed_t.
11799 (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
11800 (cgraph_default_inline_p): Ditto.
60839f5d 11801 * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
61a05df1
JH
11802 to cgraph_inline_failed_t pointer.
11803 * cif-code.def: New file.
11804 * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
11805 reason string.
11806 (cgraph_check_inline_limits): Change type of REASON to pointer to
11807 cgraph_inline_failed_t. Replace reason strings with enums.
11808 (cgraph_default_inline_p): Ditto.
11809 (cgraph_recursive_inlining_p): Ditto.
11810 (update_caller_keys): Change type of FAILED_REASON to
11811 cgraph_inline_failed_t.
11812 (cgraph_set_inline_failed): Change type of REASON to pointer to
11813 cgraph_inline_failed_t. Call cgraph_inline_failed_string to
11814 convert enums to strings for text output.
11815 (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
11816 to be of type cgraph_inline_failed_t. Replace reason strings with
11817 enums. Call cgraph_inline_failed_string to covert enums
11818 to strings for text output.
11819 (cgraph_decide_inlining): Replace reason strings with enums.
11820 (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
11821 to cgraph_inline_failed_t type. Call cgraph_inline_failed_string
11822 for text output.
11823 * tree-inline.c (expand_call_inline): Change type of REASON
11824 to cgraph_inline_failed_t. Replace reason strings with enums.
11825 Call cgraph_inline_failed_string for text output.
11826 * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
11827 (cgraph.o): Ditto.
11828
144e8aac
JH
118292009-03-28 Jan Hubicka <jh@suse.cz>
11830
11831 * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
11832 cgraph_clone_node): Remove master clone handling.
11833 (cgraph_is_master_clone, cgraph_master_clone): Remove.
11834 * cgraph.h (master_clone): Remove.
11835 (cgraph_is_master_clone, cgraph_master_clone): Remove.
11836 * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
11837 (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
11838
4a371c8d
JH
118392009-03-28 Jan Hubicka <jh@suse.cz>
11840
11841 * cgraph.c (cgraph_function_body_availability): Functions declared
11842 inline are always safe to assume that it is not going to be replaced.
11843
6cdb0ee3
RG
118442009-03-28 Richard Guenther <rguenther@suse.de>
11845
11846 PR tree-optimization/38513
11847 * tree-ssa-pre.c (eliminate): Remove redundant stores.
11848 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
11849 EXC_PTR_EXPR and FILTER_EXPR.
11850 (get_ref_from_reference_ops): Likewise.
11851
8ca1fd76
RG
118522009-03-28 Richard Guenther <rguenther@suse.de>
11853
11854 PR tree-optimization/38968
11855 * tree-vect-analyze.c (vect_compute_data_ref_alignment):
11856 Use FLOOR_MOD_EXPR to compute misalignment.
11857
a254e44d
RG
118582009-03-28 Richard Guenther <rguenther@suse.de>
11859
11860 PR tree-optimization/37795
11861 * tree.h (combine_comparisons): Declare.
11862 * fold-const.c (combine_comparisons): Export.
11863 * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
11864 comparisons.
11865 (ifcombine_iforif): Use combine_comparisons.
11866
a8ee227c
JH
118672009-03-28 Jan Hubicka <jh@suse.cz>
11868
11869 * tree-eh.c (inlinable_call_p): New function.
11870 (make_eh_edges): Use it.
11871 (verify_eh_edges): Use it.
11872 (stmt_can_throw_external, stmt_can_throw_internal): Use it.
11873 * except.c (reachable_next_level): Add inlinable_function argument
11874 (sjlj_find_directly_reachable_regions): Update.
11875 (add_reachable_handler): Do not set saw_any_handlers.
11876 (reachable_next_level): Handle MUST_NOT_THROW more curefully.
11877 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
11878 Add new inlinable call parameter.
11879 (can_throw_internal, can_throw_external): Update.
11880 * except.h (can_throw_internal_1, can_throw_external_1,
11881 foreach_reachable_handler): Update declaration.
11882
52c0e446
JM
118832009-03-28 Joseph Myers <joseph@codesourcery.com>
11884
11885 * config/arm/t-arm-coff, config/h8300/coff.h,
11886 config/i386/i386-aout.h, config/i386/i386-coff.h,
11887 config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
11888 config/pdp11/2bsd.h, config/rs6000/aix41.h,
11889 config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
11890 fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
11891 scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
11892 sys-types.h: Remove.
11893 * Makefile.in: Remove protoize and fixproto support and references
11894 in comments.
11895 (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
11896 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
11897 Remove.
11898 (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
11899 (MOSTLYCLEANFILES): Remove protoize$(exeext) and
11900 unprotoize$(exeext).
11901 (rest.encap): Don't depend on $(STMP_FIXPROTO)
11902 (.PHONY): Don't depend on proto.
11903 (libgcc-support): Don't depend on $(STMP_FIXPROTO).
11904 (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
11905 protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
11906 deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
11907 build/gen-protos.o, build/scan.o, xsys-protos.h,
11908 build/fix-header$(build_exeext), build/fix-header.o,
11909 build/scan-decls.o, fixhdr.ready, stmp-fixproto,
11910 stmp-install-fixproto): Remove.
11911 (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
11912 SYSCALLS.c or fixproto files.
11913 (install-common): Don't install protoize.
11914 (install-headers-tar, install-headers-cpio, install-headers-cp):
11915 Don't depend on $(STMP_FIXPROTO).
11916 (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't
11917 install fixproto files or write out fixproto settings.
11918 (uninstall): Don't uninstall protoize.
11919 * config.gcc (use_fixproto): Remove.
11920 (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
11921 i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
11922 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
11923 * config/m32r/t-linux (STMP_FIXPROTO): Remove.
11924 * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
11925 * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
11926 * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
11927 * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
11928 * config/t-svr4 (FIXPROTO_DEFINES): Remove.
11929 * config/t-vxworks (STMP_FIXPROTO): Remove.
11930 * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
11931 STMP_FIXPROTO): Remove.
11932 * config.in, configure: Regenerate.
11933 * crtstuff.c (gid_t, uid_t): Don't undefine.
11934 * doc/install.texi: Change m68k-coff to m68k-elf in example.
11935 (arm-*-coff, arm-*-aout: Remove target entries.
11936 (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
11937 Remove mention of AIX 4.1.
11938 (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
11939 * doc/invoke.texi (Running Protoize): Remove.
11940 * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
11941 (Protoize Caveats): Remove.
11942 * tsystem.h: Update comments on headers assumed to exist.
11943
20a07f44
VM
119442009-03-27 Vladimir Makarov <vmakarov@redhat.com>
11945
11946 * genautomata.c: Add a new year to the copyright. Add a new
11947 reference.
11948 (struct insn_reserv_decl): Add comments for member bypass_list.
11949 (find_bypass): Remove.
11950 (insert_bypass): New.
11951 (process_decls): Use insert_bypass.
11952 (output_internal_insn_latency_func): Output all bypasses with the
11953 same input insn in one switch case.
11954
11955 * rtl.def (define_bypass): Describe bypass choice.
11956 * doc/md.texi (define_bypass): Ditto.
11957
3a0d06c1
RB
119582009-03-27 Richard Guenther <rguenther@suse.de>
11959
11960 * gimplify.c (mark_addressable): Export.
11961 * tree-flow.h (mark_addressable): Declare.
11962 * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
11963 * tree-ssa.c (verify_phi_args): Verify that address taken
11964 variables have TREE_ADDRESSABLE set.
11965
119662009-03-27 Richard Guenther <rguenther@suse.de>
11967
11968 * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
11969 (build_fold_addr_expr_with_type): ... this. Remove in_fold handling.
11970 Do not mark decls TREE_ADDRESSABLE.
11971 (build_fold_addr_expr): Adjust.
11972 (fold_addr_expr): Remove.
11973 (fold_unary): Use build_fold_addr_expr.
11974 (fold_comparison): Likewise.
11975 (split_address_to_core_and_offset): Likewise.
11976 * coverage.c (tree_coverage_counter_addr): Mark the array decl
11977 TREE_ADDRESSABLE.
11978 * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
11979 (gimplify_modify_expr_to_memcpy): Mark source and destination
11980 addressable.
11981 * omp-low.c (create_omp_child_function): Mark the object decl
11982 TREE_ADDRESSABLE.
11983 (lower_rec_input_clauses): Mark the var we take the address of
11984 TREE_ADDRESSABLE.
11985 (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
11986
2ac26e15
L
119872009-03-27 H.J. Lu <hongjiu.lu@intel.com>
11988
11989 PR middle-end/39315
11990 * cfgexpand.c (expand_one_stack_var_at): Change alignment
11991 limit to MAX_SUPPORTED_STACK_ALIGNMENT.
11992
472c7fbd
RG
119932009-03-27 Richard Guenther <rguenther@suse.de>
11994
11995 PR tree-optimization/39120
11996 * tree-ssa-structalias.c (handle_rhs_call): Fill out return
11997 constraints.
11998 (handle_lhs_call): Process return constraints. Add escape
11999 constraints if necessary.
12000 (handle_const_call): Fill out return constraints. Make nested
12001 case more precise. Avoid consttmp if possible.
12002 (handle_pure_call): Fill out return constraints. Avoid
12003 callused if possible.
12004 (find_func_aliases): Simplify call handling.
12005
120062009-03-27 Richard Guenther <rguenther@suse.de>
12007
12008 PR tree-optimization/39120
12009 * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
12010 as a representative.
12011 (solve_graph): Do propagate CALLUSED.
12012 (handle_pure_call): Use a scalar constraint from CALLUSED for
12013 the return value.
12014 (find_what_p_points_to): CALLUSED shall not appear in poins-to
12015 solutions.
12016
d9223014
L
120172009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12018
12019 PR c/39323
12020 * c-common.c (handle_aligned_attribute): Properly check alignment
12021 overflow. Use (1U << i) instead of (1 << i).
12022
ba20e309 12023 * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
d9223014
L
12024
12025 * expr.h (get_mem_align_offset): Updated.
12026
12027 * tree.h (tree_decl_common): Change align to "unsigned int" and
12028 move it before pointer_alias_set.
12029
689b689c
L
120302009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12031 Jakub Jelinek <jakub@redhat.com>
12032
12033 PR target/38034
12034 * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
12035 gr_register_operand with gr_reg_or_0_operand.
12036 (cmpxchg_rel_di): Likewise.
12037 (sync_lock_test_and_set<mode>): Likewise.
12038
c619e982
L
120392009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12040
12041 * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
12042 (true_regnum): Likewise.
12043
12044 * rtlanal.c (subreg_info): Moved to ...
12045 * rtl.h (subreg_info): Here. New.
12046 (subreg_get_info): New.
12047
12048 * rtlanal.c (subreg_get_info): Make it extern.
12049
51212b32
L
120502009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12051
12052 PR target/39472
12053 * config/i386/i386.c (ix86_abi): New.
12054 (override_options): Handle -mabi=.
ba20e309 12055 (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
51212b32
L
12056 (ix86_call_abi_override): Likewise.
12057 (init_cumulative_args): Likewise.
12058 (function_arg_advance): Likewise.
12059 (function_arg_64): Likewise.
12060 (function_arg): Likewise.
12061 (ix86_pass_by_reference): Likewise.
12062 (ix86_function_value_regno_p): Likewise.
12063 (ix86_build_builtin_va_list_abi): Likewise.
12064 (setup_incoming_varargs_64): Likewise.
12065 (is_va_list_char_pointer): Likewise.
12066 (ix86_init_machine_status): Likewise.
ba20e309 12067 (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
51212b32
L
12068 (ix86_function_type_abi): Return enum calling_abi. Rewrite
12069 for 64bit. Replace DEFAULT_ABI with ix86_abi.
ba20e309 12070 (ix86_function_abi): Make it static and return enum calling_abi.
51212b32
L
12071 (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI
12072 with ix86_abi.
12073 (ix86_fn_abi_va_list): Updated.
12074
12075 * config/i386/i386.h (ix86_abi): New.
12076 (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
12077 (CONDITIONAL_REGISTER_USAGE): Likewise.
12078 (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
12079 (machine_function): Likewise.
12080
12081 * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
12082 with ix86_abi.
12083 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
12084 (STACK_BOUNDARY): Likewise.
12085 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
12086
12087 * config/i386/i386.opt (mabi=): New.
12088
12089 * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
12090 return enum calling_abi.
12091 (ix86_function_type_abi): Likewise.
12092 (ix86_function_abi): Removed.
12093
12094 * doc/invoke.texi: Document -mabi= option for x86.
12095
7338ea63
KG
120962009-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12097
12098 * builtins.c (real_dconstp): Delete.
12099 (fold_builtin_logarithm): Remove inaccurate log(e) special case.
12100
68599f33
DS
121012009-03-27 Dodji Seketeli <dodji@redhat.com>
12102 Jakub Jelinek <jakub@redhat.com>
12103
12104 PR debug/37959
12105 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
12106 (gen_subprogram_die): When a function is explicit, generate the
12107 DW_AT_explicit attribute.
12108 * langhooks.h (struct lang_hooks_for_decls): Add
12109 function_decl_explicit_p langhook.
12110 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
12111 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
12112
9f5e9983
JJ
121132009-03-27 Jakub Jelinek <jakub@redhat.com>
12114
64d7685c
JJ
12115 * builtins.c (fold_builtin_memory_op): Optimize memmove
12116 into memcpy if we can prove source and destination don't overlap.
12117
9f5e9983
JJ
12118 * tree-inline.c: Include gt-tree-inline.h.
12119 (clone_fn_id_num): New variable.
12120 (clone_function_name): New function.
12121 (tree_function_versioning): Use it.
12122 * Makefile.in (GTFILES): Add tree-inline.c.
12123
e54d52a8
MM
121242009-03-27 Mark Mitchell <mark@codesourcery.com>
12125
12126 * BASE-VER: Change to 4.5.0.
12127
e9d51dc6
XDL
121282009-03-27 Xinliang David Li <davidxl@google.com>
12129
12130 PR tree-optimization/39557
12131 * tree-ssa.c (warn_uninitialized_vars): free postdom info.
12132
4577cea1
XDL
121332009-03-27 Xinliang David Li <davidxl@google.com>
12134
12135 PR tree-optimization/39548
2ba9daa7 12136 * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
4577cea1
XDL
12137 candidate check.
12138
0f7464f4
L
121392009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12140
12141 * c-common.c (pointer_int_sum): Use %wd on return from
12142 tree_low_cst.
12143
a8847a7f
L
121442009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12145
12146 * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
12147 on return from tree_low_cst.
12148
b0957daf
AP
121492009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com>
12150
12151 PR c++/36799
ba20e309
UB
12152 * ginclude/stdarg.h (va_copy): Define also for
12153 __GXX_EXPERIMENTAL_CXX0X__.
b0957daf 12154
a5f805df
MLI
121552009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
12156
12157 PR c++/35652
12158 * builtins.h (c_strlen): Do not warn here.
12159 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
12160 * c-common.c (pointer_int_sum): Take an explicit location.
12161 Warn about offsets out of bounds.
12162 * c-common.h (pointer_int_sum): Adjust declaration.
12163
6f401211
RW
121642009-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12165
a5f805df
MLI
12166 * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
12167 markup glitch.
6f401211 12168
5a59b39e
JJ
121692009-03-26 Jakub Jelinek <jakub@redhat.com>
12170
12171 PR c++/39554
12172 * opts.c (warn_if_disallowed_function_p): Don't assume
12173 get_callee_fndecl must return non-NULL.
12174
d5f89b53
VM
121752009-03-26 Vladimir Makarov <vmakarov@redhat.com>
12176
12177 PR rtl-optimization/39522
12178 * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
12179 when reg_reloaded_valid is set.
12180
61238a79
UW
121812009-03-26 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12182
12183 * config/spu/divv2df3.c: New file.
12184 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
12185 (DPBIT_FUNCS): Filter out _div_df.
12186
03f8829b
BS
121872009-03-26 Bernd Schmidt <bernd.schmidt@analog.com>
12188
12189 * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
12190 a jump insn, count that jump in the distance to the loop start.
12191
9fdcdc74
KK
121922009-03-25 Kaz Kojima <kkojima@gcc.gnu.org>
12193
12194 PR target/39523
12195 * config/sh/sh.c (calc_live_regs): Fix condition for global
12196 registers except PIC_OFFSET_TABLE_REGNUM.
12197
46994828
KT
121982009-03-25 Kai Tietz <kai.tietz@onevision.com>
12199
12200 PR/39518
12201 * doc/invoke.texi (-mconsole): New.
12202 (-mcygwin): New.
12203 (-mno-cygwin): New.
12204 (-mdll): New.
12205 (-mnop-fun-dllimport): New.
12206 (-mthread): New.
12207 (-mwin32): New.
12208 (-mwindows): New.
12209 (sub section "i386 and x86-64 Windows Options"): New.
12210
60839f5d 122112009-03-25 Ralf Corsépius <ralf.corsepius@rtems.org>
370017b4
RC
12212
12213 * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
12214 * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
12215
ae560440
RG
122162009-03-25 Richard Guenther <rguenther@suse.de>
12217
12218 PR middle-end/39497
12219 * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
12220 of -Wno-error.
12221
cd510f15
AM
122222009-03-25 Andrey Belevantsev <abel@ispras.ru>
12223
12224 * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
12225 neither of haifa/selective schedulers are working.
12226
44ab0f0e
RW
122272009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12228
12229 * doc/invoke.texi (Debugging Options): Fix description of
12230 -fno-merge-debug-strings.
12231
ad9646c7
HPN
122322009-03-24 Hans-Peter Nilsson <hp@axis.com>
12233
e6142656
HPN
12234 * config/cris/libgcc.ver: New version-script.
12235 * config/cris/t-linux (SHLIB_MAPFILES): Use it.
12236
ad9646c7
HPN
12237 * configure.ac <GAS features, nop mnemonic>: Add pattern
12238 crisv32-*-* for "nop".
ba20e309 12239 <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
ad9646c7
HPN
12240 * configure: Regenerate.
12241
09ac4473
IR
122422009-03-24 Ira Rosen <irar@il.ibm.com>
12243
12244 PR tree-optimization/39529
12245 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
12246 mark_sym_for_renaming for the tag copied to the new vector
12247 pointer.
12248
d94a427e
AL
122492009-03-24 Arthur Loiret <aloiret@debian.org>
12250
ba20e309 12251 * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
d94a427e
AL
12252 * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
12253 EXTRA_SPEC_FUNCTIONS.
12254 (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
12255 * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
12256 * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
12257 -march and -mtune options.
12258
60839f5d 122592009-03-24 Ralf Corsépius <ralf.corsepius@rtems.org>
722d07aa
RC
12260
12261 * config/m68k/t-rtems: Add m5329 multilib.
12262
603f5959
DS
122632009-03-24 Dodji Seketeli <dodji@redhat.com>
12264 Jakub Jelinek <jakub@redhat.com>
12265
12266 PR debug/39524
12267 * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
12268 nodes.
12269
c5cdb03f
JJ
122702009-03-23 Jakub Jelinek <jakub@redhat.com>
12271
12272 PR c/39495
12273 * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
12274 instead of c_parser_expression_conv, if original_code isn't one of the
12275 4 allowed comparison codes, fail.
12276
3691626c
RG
122772009-03-23 Richard Guenther <rguenther@suse.de>
12278
12279 * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
12280 * tree.h (struct tree_type): Likewise.
12281 * reload.h (struct insn_chain): Likewise.
12282 * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
12283 * function.h (struct function): Likewise.
12284 * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
12285
88ccb72a
JJ
122862009-03-23 Jakub Jelinek <jakub@redhat.com>
12287
12288 PR tree-optimization/39516
12289 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
12290
60839f5d 122912009-03-23 Bingfeng Mei <bmei@broadcom.com>
a583a67e 12292
2ba9daa7 12293 * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
a583a67e
BM
12294 should be set true if BITS_PER_WORD of target is bigger than 32
12295
f82162f8
HPN
122962009-03-22 Hans-Peter Nilsson <hp@axis.com>
12297
12298 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
12299 Translate -B-options to -rpath-link. Correct existing
12300 rpath-link and conditionalize on !nostdlib.
12301
048fd785
RW
123022009-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12303
12304 * doc/extend.texi (Function Attributes, Variable Attributes):
12305 Fix typos.
12306 * doc/invoke.texi (Debugging Options, Optimize Options)
12307 (i386 and x86-64 Options, MCore Options): Likewise.
12308
6e75c1a9
JJ
123092009-03-20 Jakub Jelinek <jakub@redhat.com>
12310
12311 PR debug/37890
12312 * dwarf2out.c (gen_namespace_die): Add context_die argument and use
12313 it for block local namespace aliases.
12314 (gen_decl_die): Pass context_die to gen_namespace_die.
12315
ea1199ee
JJ
123162009-03-19 Jakub Jelinek <jakub@redhat.com>
12317
12318 PR c/39495
12319 * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
12320 minimum or maximum value.
12321
58929c10
AO
123222009-03-19 Alexandre Oliva <aoliva@redhat.com>
12323
12324 * reginfo.c (globalize_reg): Recompute derived reg sets.
12325
60839f5d 123262009-03-19 Ozkan Sezer <sezeroz@gmail.com>
234952b3
OS
12327
12328 PR target/39063
12329 * libgcc2.c (mprotect): Do not use signed arguments for
12330 VirtualProtect, use DWORD arguments. Also fix the 'may
12331 be used uninitialized' warning for the np variable.
12332
f57c2f04
JJ
123332009-03-19 Jakub Jelinek <jakub@redhat.com>
12334
12335 PR target/39496
12336 * config/i386/i386.c (ix86_function_regparm): Don't optimize local
12337 functions using regparm calling conventions when not optimizing.
12338 (ix86_function_sseregparm): Similarly for sseregparm calling
12339 conventions.
12340
9e517d61
LF
123412009-03-19 Li Feng <nemokingdom@gmail.com>
12342
12343 PR middle-end/39500
12344 * tree-data-ref.c (analyze_subscript_affine_affine): There is no
12345 dependence if the first conflict is after niter iterations.
12346
8ef20026
HPN
123472009-03-19 Hans-Peter Nilsson <hp@axis.com>
12348
12349 PR middle-end/38609
12350 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
12351 functions with dynamic stack-pointer adjustments.
12352
64e4a1a6
BE
123532009-03-19 Ben Elliston <bje@au.ibm.com>
12354
12355 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
12356 option; change to -msdata=data.
12357
9a0f3e86
RW
123582009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12359
12360 * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
12361 and -fopenmp.
12362
09bc5979
EB
123632009-03-18 Eric Botcazou <ebotcazou@adacore.com>
12364
12365 PR target/35180
12366 * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
12367
332459cd
SL
123682009-03-18 Sandra Loosemore <sandra@codesourcery.com>
12369
12370 * doc/invoke.texi (Code Gen Options): Expand discussion of
12371 -fno-common.
12372
8f5929e1
JJ
123732009-03-18 Jakub Jelinek <jakub@redhat.com>
12374
12375 * dse.c (struct group_info): Reorder fields for 64-bit hosts.
12376 * matrix-reorg.c (struct matrix_info): Likewise.
12377 * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
12378 * rtl.h (struct mem_attrs): Likewise.
12379 * df.h (struct df): Likewise.
12380 * tree-data-ref.h (struct data_dependence_relation): Likewise.
12381 * ira-int.h (struct ira_allocno): Likewise.
12382 * df-scan.c (struct df_collection_rec): Likewise.
12383 * ira.c (struct equivalence): Likewise.
12384 * function.c (struct temp_slot): Likewise.
12385 * cfgloop.h (struct loop): Likewise.
12386
d130d647
JJ
12387 PR debug/39485
12388 * function.c (use_register_for_decl): When not optimizing, disregard
12389 register keyword for variables with types containing methods.
12390
9968d233
SP
123912009-03-18 Sebastian Pop <sebastian.pop@amd.com>
12392
12393 PR middle-end/39447
12394 * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
12395 (is_simple_operand): Call contains_component_ref_p before calling data
12396 reference analysis that would fail on COMPONENT_REFs.
12397
12398 * tree-vrp.c (search_for_addr_array): Fix formatting.
12399
69484bfd
RG
124002009-03-18 Richard Guenther <rguenther@suse.de>
12401
12402 * tree-vect-transform.c (vect_loop_versioning): Fold the
12403 generated comparisons.
12404 * tree-vectorizer.c (set_prologue_iterations): Likewise.
12405 (slpeel_tree_peel_loop_to_edge): Likewise.
12406
66811228
RW
124072009-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12408
0631b69f
RW
12409 PR middle-end/37805
12410 * opts.c (print_specific_help): In addition to `undocumented',
12411 accept `separate' and `joined' flags if passed alone. Describe
12412 output by the first matched one of those.
12413 (common_handle_option): Skip over empty strings.
12414 * gcc.c (display_help): Fix help string for `--help='.
12415 * doc/invoke.texi (Option Summary, Overall Options): With
12416 `--help=', classes and qualifiers can both be repeated, but
12417 only the latter can be negated. One should not pass only
12418 negated qualifiers. Fix markup and examples.
12419
66811228
RW
12420 Revert
12421 2008-10-14 Jakub Jelinek <jakub@redhat.com>
12422 PR middle-end/37805
12423 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
12424 and -fhelp=separate.
12425
3c072c6b
JY
124262009-03-17 Jing Yu <jingyu@google.com>
12427
12428 PR middle-end/39378
80c65208
JY
12429 * function.h (struct rtl_data): Move is_thunk from here...
12430 (struct function): ...to here.
12431 * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
3c072c6b
JY
12432 * varasm.c (assemble_start_function): Change is_thunk from crtl to
12433 cfun.
80c65208
JY
12434 * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
12435 cfun.
12436 (alpha_does_function_need_gp, alpha_start_function): Likewise.
12437 (alpha_output_function_end_prologue): Likewise.
12438 (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
12439 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
12440 (rs6000_output_function_epilogue): Likewise.
12441 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
3c072c6b 12442
9ade279b
UB
124432009-03-17 Uros Bizjak <ubizjak@gmail.com>
12444
12445 PR target/39482
12446 * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
12447 from different units in a single alternative.
12448 (*truncdfsf_i387): Ditto.
12449 (*truncxfsf2_mixed): Ditto.
12450 (*truncxfdf2_mixed): Ditto.
12451
16e60c17
JJ
124522009-03-17 Jakub Jelinek <jakub@redhat.com>
12453
98381eb4
JJ
12454 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
12455 non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
12456
df5deb18
JJ
12457 PR debug/39474
12458 * tree-ssa-live.c (remove_unused_locals): Don't remove local
12459 unused non-artificial variables when not optimizing.
12460
a3f596ba
JJ
12461 PR debug/39471
12462 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
12463 DW_TAG_imported_module even if decl is IMPORTED_DECL with
12464 NAMESPACE_DECL in its DECL_INITIAL.
12465
6b2b8871
JJ
12466 PR middle-end/39443
12467 * optabs.c (set_user_assembler_libfunc): New function.
12468 * expr.h (set_user_assembler_libfunc): New prototype.
12469 * c-common.c: Include libfuncs.h.
12470 (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
12471 for memcmp, memset, memcpy, memmove and abort.
12472 * Makefile.in (c-common.o): Depend on libfuncs.h.
12473
16e60c17
JJ
12474 PR debug/39412
12475 * dwarf2out.c (gen_inlined_enumeration_type_die,
12476 gen_inlined_structure_type_die, gen_inlined_union_type_die,
12477 gen_tagged_type_instantiation_die): Removed.
12478 (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
12479 do nothing.
12480
4d936aca
JJ
124812009-03-17 Janis Johnson <janis187@us.ibm.com>
12482
12483 PR testsuite/38526
12484 * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
12485 its use.
12486 (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
12487 (check-parallel-%): Ditto.
12488 (check-consistency): Ditto.
12489
4e9b2e50
KT
124902009-03-17 Kai Tietz <kai.tietz@onevision.com>
12491
12492 * ipa-struct-reorg.c (create_general_new_stmt): Initialize
12493 local variable rhs by NULL_TREE.
12494
21440b2d
L
124952009-03-17 H.J. Lu <hongjiu.lu@intel.com>
12496
12497 PR target/39477
9ade279b 12498 * doc/extend.texi: Correct register behavior for regparm on Intel 386.
21440b2d 12499
d8905c6a
L
125002009-03-17 H.J. Lu <hongjiu.lu@intel.com>
12501
12502 PR target/39476
9ade279b 12503 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
d8905c6a
L
12504
125052009-03-17 H.J. Lu <hongjiu.lu@intel.com>
435a61d3
L
12506
12507 PR target/39473
12508 * config/i386/i386.c (ix86_expand_call): Check extra clobbers
12509 for ms->sysv ABI calls only in 64bit mode.
12510
12511 * config/i386/i386.md (untyped_call): Support 32bit.
12512
cdcabece
L
125132009-03-16 H.J. Lu <hongjiu.lu@intel.com>
12514
12515 * doc/extend.texi: Replace x86_65 with x86_64.
12516
97b4ba9f
JJ
125172009-03-16 Jakub Jelinek <jakub@redhat.com>
12518
12519 PR tree-optimization/39455
12520 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
12521 mismatches for POINTER_TYPE_P (type).
12522 (number_of_iterations_le): Likewise.
12523
60839f5d 125242009-03-16 Hariharan Sandanagobalane <hariharan@picochip.com>
83c191e1
HS
12525
12526 * config/picochip/picochip.c: Removed profiling support.
12527 * config/picochip/picochip.md: Removed profiling instruction.
12528 * config/picochip/picochip.h: Removed profiling builtin.
12529
f38095f3
JM
125302009-03-16 Joseph Myers <joseph@codesourcery.com>
12531
12532 * doc/install.texi (--with-host-libstdcxx): Document.
12533
2cb4817b
AS
125342009-03-14 Anatoly Sokolov <aesok@post.ru>
12535
12536 PR target/34299
12537 * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
12538 generate a warning if the function name does not begin with
12539 "__vector" and the function has either the 'signal' or 'interrupt'
12540 attribute, from here to ...
12541 (avr_declare_function_name): ...here. New function.
12542 * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
12543 * config/avr/avr-protos.h (avr_declare_function_name): Declare.
12544
39b2ac74
JJ
125452009-03-14 Jakub Jelinek <jakub@redhat.com>
12546
12547 PR bootstrap/39454
12548 * cse.c (fold_rtx): Don't modify original const_arg1 when
12549 canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
12550 separate variable instead.
12551 * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
12552 from out of range shift counts.
12553 (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
12554
ad41bd84 125552009-03-13 Catherine Moore <clm@codesourcery.com>
f7a82dee 12556
60839f5d 12557 * config/i386/x-mingw32 (host-mingw32.o): Replace
f7a82dee
CM
12558 diagnostic.h with $(DIAGNOSTIC_H).
12559
ad41bd84 125602009-03-12 Jakub Jelinek <jakub@redhat.com>
03a18198
JJ
12561
12562 PR target/39431
12563 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
12564 predicate.
12565 * config/i386/sync.md (sync_compare_and_swap<mode>,
12566 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
12567 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
12568 into a register.
12569 (sync_double_compare_and_swapdi_pic,
12570 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
12571 cmpxchg8b_pic_memory_operand instead of just memory_operand.
12572
122c59c7
L
125732009-03-12 H.J. Lu <hongjiu.lu@intel.com>
12574
12575 PR target/39445
9ade279b 12576 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
122c59c7 12577
cec8874f
L
125782009-03-12 H.J. Lu <hongjiu.lu@intel.com>
12579
12580 PR target/39327
12581 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
12582 (avx_addsubv4df3): Likewise.
12583 (*avx_addsubv4sf3): Likewise.
12584 (sse3_addsubv4sf3): Likewise.
12585
bbb52802
L
125862009-03-12 H.J. Lu <hongjiu.lu@intel.com>
12587
12588 PR target/38824
9ade279b 12589 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
bbb52802 12590
a812fb07
VM
125912009-03-12 Vladimir Makarov <vmakarov@redhat.com>
12592
12593 PR debug/39432
12594 * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
12595 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
12596 registers for allocnos created from user-defined variables.
12597
4caab5ba
UW
125982009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12599
12600 PR target/39181
12601 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
12602 of non-integer mode as well.
12603
498e51ca
AN
126042009-03-11 Adam Nemet <anemet@caviumnetworks.com>
12605
12606 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
12607 for functions for which the parameter types are unknown.
12608
9bfaf89d
JJ
126092009-03-11 Jakub Jelinek <jakub@redhat.com>
12610
12611 PR target/39137
9ade279b 12612 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
9bfaf89d
JJ
12613 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
12614 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
12615 * config/i386/i386.c (ix86_local_alignment): For
12616 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
12617 long long variables on the stack to avoid dynamic realignment.
12618 Allow the first argument to be a decl rather than type.
12619 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
12620
18a3bdcb
NC
126212009-03-11 Nick Clifton <nickc@redhat.com>
12622
12623 PR target/5362
40190a76
NC
12624 * config/mcore/mcore.opt: Remove deprecated m4align and m8align
12625 options.
12626 Add description to mno-lsim option.
12627 * config/mcore/mcore.h: Remove comment about deprecated m4align
12628 option.
12629 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
12630 * doc/invoke.texi: Add description of mno-lsim and
12631 mstack-increment options.
12632
18a3bdcb
NC
12633 * config/fr30/fr30.opt: Document the -mno-lsim option.
12634 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
12635 and -mno-lsim options.
12636
dc215785
UW
126372009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12638
12639 * fold-const.c (fold_comparison): Only call fold_inf_compare
12640 if the mode supports infinities.
12641
7716876b
JM
126422009-03-11 Jason Merrill <jason@redhat.com>
12643
12644 PR debug/39086
12645 * tree-nrv.c (tree_nrv): Don't do this optimization if the front
12646 end already did. Notice GIMPLE_CALL modifications of the result.
12647 Don't copy debug information from an ignored decl or a decl from
12648 another function.
12649
ddef83d2
RG
126502009-03-10 Richard Guenther <rguenther@suse.de>
12651 Nathan Froyd <froydnj@codesourcery.com>
12652
12653 PR middle-end/37850
9ade279b 12654 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
ddef83d2
RG
12655 (__divMODE3): Likewise.
12656
9a9ba8d9
JJ
126572009-03-09 Jakub Jelinek <jakub@redhat.com>
12658
12659 PR tree-optimization/39394
12660 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
12661 DECL_SIZE_UNIT of variable length FIELD_DECLs.
12662
929b7fc3
AK
126632009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12664
12665 * recog.c (verfiy_changes): Disallow renaming of hard regs in
12666 inline asms for register asm ("") declarations.
12667
1803581d
EB
126682009-03-09 Eric Botcazou <ebotcazou@adacore.com>
12669
12670 * fold-const.c (fold_unary): Fix comment.
12671
8454d27e
JH
126722009-03-07 Jan Hubicka <jh@suse.cz>
12673
12674 PR target/39361
969a5433
JJ
12675 * tree-inline.c (setup_one_parameter): Do replacement of const
12676 argument by constant in SSA form.
8454d27e 12677
3a695389
UW
126782009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12679
12680 PR middle-end/38028
12681 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
12682 determine alignment passed to assign_stack_local.
12683 (assign_parms_unsplit_complex): Likewise.
12684 * except.c (sjlj_build_landing_pads): Likewise.
12685
9f0e7885
JJ
126862009-03-06 Jakub Jelinek <jakub@redhat.com>
12687
65401a0b
JJ
12688 PR middle-end/39360
12689 * tree-flow.h (add_referenced_var): Return bool instead of void.
12690 * tree-dfa.c (add_referenced_var): Return result of
12691 referenced_var_check_and_insert call.
12692 * tree-inline.c (expand_call_inline): Call add_referenced_var instead
12693 of referenced_var_check_and_insert.
12694
9f0e7885 12695 PR debug/39372
9ade279b 12696 * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
9f0e7885
JJ
12697 (gen_variable_die): Emit DW_AT_location on abstract static variable's
12698 DIE, don't emit it if abstract origin already has it.
12699 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
12700 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
12701
3b664bd1
JBG
127022009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
12703
ba20e309 12704 * genpreds.c (needs_variable): Fix parentheses at variable name
3b664bd1
JBG
12705 detection.
12706 (write_tm_constrs_h): Indent generated code.
12707
d8f8ca80
RR
127082009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12709
12710 * doc/extend.texi (Function Attributes): Add documentation
12711 for isr attributes.
12712
6c3d550c
JJ
127132009-03-06 Jakub Jelinek <jakub@redhat.com>
12714
12715 PR debug/39387
12716 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
12717 take locus from its DECL_SOURCE_LOCATION instead of input_location.
12718
f9e96751
BS
127192009-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
12720
12721 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
12722 the loop as bad.
12723
ee0ee7e2
JJ
127242009-03-05 Jakub Jelinek <jakub@redhat.com>
12725
12726 PR debug/39379
12727 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
12728 with blocks containing IMPORTED_DECLs in BLOCK_VARS.
12729
6c6094f1
UB
127302009-03-05 Uros Bizjak <ubizjak@gmail.com>
12731
12732 * config/i386/i386.md (R8_REG, R9_REG): New constants.
12733 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
12734 constants instead of magic numbers.
12735 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
12736 (QI_REG_P): Ditto.
12737 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
12738 (x86_64_ms_abi_int_parameter_registers): Ditto.
12739 (x86_64_int_return_registers): Ditto.
09f8a8d3 12740 (ix86_maybe_switch_abi): Ditto.
6c6094f1
UB
12741 (ix86_expand_call): Ditto for clobbered_registers array.
12742 (ix86_hard_regno_mode_ok): Ditto.
12743 (x86_extended_QIreg_mentioned_p): Ditto.
12744
b267bd41
R
127452009-03-05 J"orn Rennecke <joern.rennecke@arc.com>
12746
6c6094f1 12747 PR tree-optimization/39349
1f3ad3f0
R
12748 * cse.c (cse_insn): Fix loop to stop at VOIDmode.
12749
b267bd41
R
12750 * combine.c (gen_lowpart_for_combine): Use omode when generating
12751 clobber.
12752
1242bc9d
R
127532009-03-04 J"orn Rennecke <joern.rennecke@arc.com>
12754
6c6094f1 12755 PR rtl-optimization/39235
1242bc9d
R
12756 * loop-iv.c (get_simple_loop_desc): Use XCNEW.
12757
48f03606
ZD
127582009-03-04 Zdenek Dvorak <ook@ucw.cz>
12759
12760 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
12761
b505e785
RG
127622009-03-04 Richard Guenther <rguenther@suse.de>
12763
12764 PR tree-optimization/39362
12765 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
12766 that occur in abnormal PHIs should be varying.
12767
f017bf5e
ZD
127682009-03-04 Zdenek Dvorak <ook@ucw.cz>
12769
12770 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
12771 Extend comments.
12772 (simple_iv): Take loop as an argument instead of statement.
12773 * tree-scalar-evolution.h (simple_iv): Declaration changed.
12774 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
12775 to simple_iv.
12776 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
12777 Ditto.
12778 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
12779 * matrix-reorg.c (analyze_transpose): Ditto.
12780 * tree-data-ref.c (dr_analyze_innermost): Ditto.
12781 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
12782 * tree-predcom.c (ref_at_iteration): Ditto.
12783 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
12784
6a66f28e
RG
127852009-03-04 Richard Guenther <rguenther@suse.de>
12786
12787 PR tree-optimization/39358
12788 * tree-ssa-structalias.c (do_sd_constraint): Fix check for
12789 escaped_id and callused_id.
12790 (solve_graph): Likewise.
12791
57e454ee
RG
127922009-03-04 Richard Guenther <rguenther@suse.de>
12793
12794 PR tree-optimization/39339
12795 * tree-sra.c (try_instantiate_multiple_fields): Make it
12796 no longer ICE on the above.
12797
a6fe9ed4
JM
127982009-03-03 Joseph Myers <joseph@codesourcery.com>
12799
12800 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
12801 that fits within Pmode.
12802
dc672951
SE
128032009-03-03 Steve Ellcey <sje@cup.hp.com>
12804
12805 PR middle-end/10109
12806 * tm.texi (LIBCALL_VALUE): Update description.
12807
8b9d598f
SE
128082009-03-03 Steve Ellcey <sje@cup.hp.com>
12809
12810 PR middle-end/34443
12811 * doc/extend.texi (section): Update description.
12812
13e4e36e
L
128132009-03-03 H.J. Lu <hongjiu.lu@intel.com>
12814
12815 PR middle-end/39345
12816 * tree-inline.c (remapped_type): New.
12817 (can_be_nonlocal): Call remapped_type instead of remap_type.
12818
067dd3c9
JJ
128192009-03-03 Jakub Jelinek <jakub@redhat.com>
12820
12821 PR fortran/39354
12822 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
12823 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
12824
9bd9f738
RG
128252009-03-03 Richard Guenther <rguenther@suse.de>
12826
12827 PR middle-end/39272
12828 * tree.c (tree_nonartificial_location): New function.
12829 * tree.h (tree_nonartificial_location): Declare.
12830 * builtins.c (expand_builtin_memory_chk): Provide location
12831 of the call location for artificial function pieces.
12832 (maybe_emit_chk_warning): Likewise.
12833 (maybe_emit_sprintf_chk_warning): Likewise.
12834 (maybe_emit_free_warning): Likewise.
12835 * expr.c (expand_expr_real_1): Likewise.
12836
f07049c8
JJ
128372009-03-03 Jakub Jelinek <jakub@redhat.com>
12838
12839 PR tree-optimization/39343
12840 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
12841 COMPONENT_REF t has ARRAY_TYPE.
12842
7d4fba4a
SP
128432009-03-02 Sebastian Pop <sebastian.pop@amd.com>
12844
12845 PR middle-end/39335
12846 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
12847 when the type precision of the induction variable should be
12848 larger than the type precision of nit.
12849 (gen_parallel_loop): Update use of canonicalize_loop_ivs.
12850 * graphite.c (graphite_loop_normal_form): Same.
12851 * tree-flow.h (canonicalize_loop_ivs): Update declaration.
12852
78168632
UB
128532009-03-02 Uros Bizjak <ubizjak@gmail.com>
12854
12855 * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
12856 (*call_1_rex64_ms_sysv): Use named constants instead of magic
6c6094f1 12857 numbers to describe clobbered registers.
78168632 12858 (*call_value_0_rex64_ms_sysv): Ditto.
6c6094f1
UB
12859 * config/i386/mmx.md (mmx_emms): Ditto.
12860 (mmx_femms): Ditto.
78168632 12861
63553059
RS
128622009-03-02 Richard Sandiford <rdsandiford@googlemail.com>
12863
12864 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
12865 of ABI_64.
12866
500a1f85
UW
128672009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12868
12869 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
12870 (spu_section_type_flags): New function.
12871
962aae34
UB
128722009-03-02 Uros Bizjak <ubizjak@gmail.com>
12873
12874 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
12875 reg_class_contents of FLOAT_REGS into a temporary.
12876
6dfb529c 128772009-03-02 Richard Guenther <rguenther@suse.de>
962aae34 12878 Ira Rosen <irar@il.ibm.com>
6dfb529c
RG
12879
12880 PR tree-optimization/39318
12881 * tree-vect-transform.c (vectorizable_call): Transfer the EH region
12882 information to the vectorized statement.
12883
6b5629db
UB
128842009-03-01 Uros Bizjak <ubizjak@gmail.com>
12885
434426d2
UB
12886 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
12887 variable. Use defined names instead of magic constants for REX SSE
12888 registers.
6b5629db 12889
14e5b285
RG
128902009-03-01 Richard Guenther <rguenther@suse.de>
12891
12892 PR tree-optimization/39331
12893 * omp-low.c (lower_send_shared_vars): Do not receive new
12894 values for the reference of DECL_BY_REFERENCE parms or results.
12895
526d73ab
JH
128962009-03-01 Jan Hubicka <jh@suse.cz>
12897
12898 PR debug/39267
12899 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
12900 BLOCK_NONLOCALIZED_VAR): New macros.
12901 (tree_block): Add nonlocalized_vars.
f4ea99bd
EB
12902 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
12903 gen_decl_die): Add origin argument. Allow generation of die with
12904 origin at hand only.
526d73ab 12905 (gen_member_die, gen_type_die_with_usage, force_decl_die,
f4ea99bd
EB
12906 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
12907 of gen_*.
526d73ab
JH
12908 (gen_block_die): Fix checking for unused blocks.
12909 (process_scope_var): Break out from .... ; work with origins only.
12910 (decls_for_scope) ... here; process nonlocalized list.
12911 (dwarf2out_ignore_block): Look for nonlocalized vars.
f4ea99bd
EB
12912 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
12913 vars.
526d73ab
JH
12914 (dump_scope_block): Dump them.
12915 * tree-inline.c (remap_decls): Handle nonlocalized vars.
12916 (remap_block): Likewise.
12917 (can_be_nonlocal): New predicate.
12918 (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
12919
7a9d3fe8
RW
129202009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12921
12922 * configure: Regenerate.
12923
b3cdf3cb
RW
129242009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12925
a16d1645 12926 * optc-gen.awk: No need to duplicate option flags twice.
9ade279b 12927 Reuse help texts for duplicate options which do not have any.
a16d1645 12928
1156c176
RW
12929 * gcc.c (display_help): Document --version.
12930
033505fc
RW
12931 * gcc.c (main): If print_help_list and verbose_flag, ensure
12932 driver output comes before subprocess output.
12933
4d077054
RW
12934 * optc-gen.awk: Assign all remaining fields to help string,
12935 space-separated, for multi-line help in *.opt.
12936
a072f1cf
RW
12937 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
12938 -Wno-pedantic-ms-format is for MinGW targets only.
12939
b3cdf3cb
RW
12940 * doc/options.texi (Option file format): Fix bad indentation,
12941 restoring dropped sentence.
12942
a3aadcc5
JH
129432009-02-28 Jan Hubicka <jh@suse.cz>
12944
12945 * tree-inline.c (tree_function_versioning): Output debug info.
12946
1cf5abb3
JH
129472009-02-28 Jan Hubicka <jh@suse.cz>
12948
12949 PR debug/39267
12950 * tree-inline.c (setup_one_parameter): Do not copy propagate
12951 arguments when not optimizing.
12952
c4d3f42f
L
129532009-02-28 H.J. Lu <hongjiu.lu@intel.com>
12954
12955 PR target/39327
12956 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
12957 (avx_addsubv4df3): Likewise.
12958 (*avx_addsubv4sf3): Likewise.
12959 (sse3_addsubv4sf3): Likewise.
12960 (*avx_addsubv2df3): Likewise.
12961 (sse3_addsubv2df3): Likewise.
12962 (avx_unpckhps256): Correct item selectors.
12963 (avx_unpcklps256): Likewise.
12964 (avx_unpckhpd256): Likewise.
12965 (avx_unpcklpd256): Likewise.
12966
eb50f5f4
JH
129672009-02-28 Jan Hubicka <jh@suse.cz>
12968
12969 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
12970 static vars.
12971 (copy_arguments_for_versioning): If var is declared don't declare it.
12972 (tree_function_versioning): First setup substitutions and then copy
12973 args.
12974
26140130
JH
129752009-02-27 Jan Hubicka <jh@suse.cz>
12976
12977 PR debug/39267
12978 * cgraph.h (varpool_output_debug_info): Remove.
12979 * cgraphunit.c (varpool_output_debug_info): Remove.
12980 * dwarf2out.c (deferred_locations_struct): New struct
12981 (deferred_locations): New type.
12982 (deferred_locations_list): New static var.
12983 (deffer_location): New function.
12984 (gen_variable_die): Use it.
12985 (decls_for_scope): Output info on local static vars.
12986 (dwarf2out_finish): Process deferred locations.
12987 * varpool.c (varpool_output_debug_info): Remove.
12988
cff7525f
JH
129892009-02-27 Jan Hubicka <jh@suse.cz>
12990
12991 PR debug/39267
12992 * tree.h (TREE_PROTECTED): Fix comment.
12993 (BLOCK_HANDLER_BLOCK): Remove.
12994 (struct tree_block): Remove handler_block add body_block.
12995 (inlined_function_outer_scope_p): New.
12996 (is_body_block): Remove.
12997 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
12998 * dwarf2out.c (is_inlined_entry_point): Remove.
12999 (add_high_low_attributes): Use inlined_function_outer_scope_p.
f10a1c6c
EB
13000 (gen_block_die): Use is_inlined_entry_point check. Remove body block
13001 code.
cff7525f
JH
13002 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
13003 * gimplify.c (gimplify_expr): Gimplify body blocks.
f10a1c6c
EB
13004 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
13005 block with multiple subblocks.
cff7525f
JH
13006 (dump_scope_block): Prettier output; dump more flags and info.
13007 (dump_scope_blocks): New.
13008 (remove_unused_locals): Use dump_scope_blocks.
13009 * tree-flow.h (dump_scope_blocks): Declare.
13010 * tree-cfg.c (execute_build_cfg): Dump scope blocks.
13011 * stmt.c (is_body_block): Remove.
13012 * tree-inline.c (remap_block): Copy BODY_BLOCK info.
13013 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
13014
c20993b9
SP
130152009-02-27 Sebastian Pop <sebastian.pop@amd.com>
13016
13017 PR middle-end/39308
2ba9daa7 13018 * graphite.c (graphite_loop_normal_form): Do not call
c20993b9
SP
13019 number_of_iterations_exit from a gcc_assert.
13020
e3cba5e5
AK
130212009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13022
60839f5d 13023 * config/s390/s390.c (s390_swap_cmp): Look for conditional
e3cba5e5
AK
13024 jumps if COND is NULL.
13025 (find_cond_jump): New function.
13026 (s390_z10_optimize_cmp): Handling for reg-reg compares added.
60839f5d 13027 * config/s390/s390.md: Remove z10_cobra attribute value.
e3cba5e5 13028
9dadeeb8
UB
130292009-02-26 Uros Bizjak <ubizjak@gmail.com>
13030
13031 * config/alpha/alpha.h (alpha_expand_mov): Return false if
13032 force_const_mem returns NULL_RTX.
13033
625d3251
EB
130342009-02-26 Jan Hubicka <jh@suse.cz>
13035
13036 PR debug/39267
13037 * cgraph.h (varpool_output_debug_info): Remove.
13038 * cgraphunit.c (varpool_output_debug_info): Remove.
13039 * dwarf2out.c (deferred_locations_struct): New struct
13040 (deferred_locations): New type.
13041 (deferred_locations_list): New static var.
13042 (deffer_location): New function.
13043 (gen_variable_die): Use it.
13044 (decls_for_scope): Output info on local static vars.
13045 (dwarf2out_finish): Process deferred locations.
13046 * varpool.c (varpool_output_debug_info): Remove.
13047
38432148 130482009-02-25 H.J. Lu <hongjiu.lu@intel.com>
8592acaf
L
13049
13050 PR rtl-optimization/39241
13051 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
13052 to subreg_offset_representable_p.
13053
62d049cf
PB
130542009-02-25 Paolo Bonzini <bonzini@gnu.org>
13055
13056 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
13057 execute function prototype. Get f and nregs from max_reg_num
13058 and get_insns. Remove the first backward pass as it's dead,
13059 guard the forward pass by flag_expensive_optimizations.
13060 (rest_of_handle_regmove): Delete.
13061 (pass_regmove): Replace it with regmove_optimize.
13062
f618d33e
MJ
130632009-02-25 Martin Jambor <mjambor@suse.cz>
13064
13065 PR tree-optimization/39259
13066 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
6c6094f1 13067 calls_alloca function flags.
f618d33e
MJ
13068 (copy_bb): Set calls_setjmp and alls_alloca function flags if such
13069 calls are detected.
13070
c8a05f7c
PB
130712009-02-25 Paolo Bonzini <bonzini@gnu.org>
13072
13073 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
13074 flags_set_1_rtx, flags_set_1_set): Delete.
13075 (regmove_optimize): Do not call mark_flags_life_zones.
13076
6d2538f5
JB
130772009-02-24 Julian Brown <julian@codesourcery.com>
13078
13079 PR target/35965
13080 * config/arm/arm.c (require_pic_register): Only set
13081 cfun->machine->pic_reg once per function.
13082
a2fa6772
SL
130832009-02-24 Sandra Loosemore <sandra@codesourcery.com>
13084
13085 * doc/invoke.texi (Link Options): Document an easier way to pass
9dadeeb8 13086 options that take arguments to the GNU linker using -Xlinker and -Wl.
a2fa6772 13087
5472de36
SE
130882009-02-24 Steve Ellcey <sje@cup.hp.com>
13089
13090 PR target/33785
13091 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
13092
844216f3
RG
130932009-02-24 Richard Guenther <rguenther@suse.de>
13094
13095 PR debug/39285
13096 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
13097
71adbef3 130982009-02-24 Richard Guenther <rguenther@suse.de>
8592acaf 13099 Zdenek Dvorak <ook@ucw.cz>
71adbef3
RG
13100
13101 PR tree-optimization/39233
13102 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
13103 from converting them to a generic type.
13104
f1a558e0
SP
131052009-02-23 Sebastian Pop <sebastian.pop@amd.com>
13106
13107 PR tree-optimization/39260
13108 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
13109 contains a condition with a real type.
13110 (build_scop_conditions_1): Conditions are always last_stmt of a bb.
13111
d8028f2c
JM
131122009-02-23 Jason Merrill <jason@redhat.com>
13113
13114 PR c++/38880
13115 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
13116 narrowing_initializer_constant_valid_p.
2ba9daa7 13117 (narrowing_initializer_constant_valid_p): Don't return
d8028f2c
JM
13118 null_pointer_node for adding a pointer to itself.
13119
9283b513
JH
131202009-02-23 Jan Hubicka <jh@suse.cz>
13121
13122 PR c/12245
9dadeeb8
UB
13123 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
13124 resizing.
9283b513 13125
61e04322
JH
131262009-02-23 Jan Hubicka <jh@suse.cz>
13127
9dadeeb8
UB
13128 PR tree-optimization/37709
13129 * tree.c (block_ultimate_origin): Move here from dwarf2out.
13130 * tree.h (block_ultimate_origin): Declare.
13131 * dwarf2out.c (block_ultimate_origin): Move to tree.c
61e04322
JH
13132 * tree-ssa-live.c (remove_unused_scope_block_p):
13133 Eliminate blocks containig no instructions nor live variables nor
13134 nested blocks.
13135 (dump_scope_block): New function.
13136 (remove_unused_locals): Enable removal of dead blocks by default;
9dadeeb8 13137 enable dumping at TDF_DETAILS.
61e04322 13138
38432148 131392009-02-21 H.J. Lu <hongjiu.lu@intel.com>
5339d3ea
L
13140
13141 * config/i386/i386.c (classify_argument): Don't allow COImode
13142 and OImode.
13143 (function_arg_advance_32): Don't allow OImode.
13144 (function_arg_32): Likewise.
13145 (function_value_32): Likewise.
13146 (return_in_memory_32): Likewise.
13147 (function_arg_64): Remove OImode comment.
13148
38432148 131492009-02-21 H.J. Lu <hongjiu.lu@intel.com>
f161e158
L
13150
13151 PR target/39261
13152 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
13153 ix86_expand_vector_set for V4DImode in 64bit mode only.
13154 (ix86_expand_vector_init_one_var): Likewise.
13155
dcd739a6
SP
131562009-02-21 Sebastian Pop <sebastian.pop@amd.com>
13157
13158 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
13159
6c3b938d
RS
131602009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
13161
8e361f23 13162 PR bootstrap/39257
6c3b938d
RS
13163 * loop-iv.c: Revert last change.
13164 * emit-rtl.c: Likewise.
13165
38432148 131662009-02-21 H.J. Lu <hongjiu.lu@intel.com>
4c64d3dd
L
13167
13168 PR target/39256
13169 * config/i386/i386.c (type_natural_mode): Remove an extra
13170 space in the warning message.
13171 (function_value_32): Handle 32-byte vector modes.
13172 (return_in_memory_32): Likewise.
13173
2ec62529
RS
131742009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
13175
13176 * loop-iv.c (truncate_value): New function.
13177 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
13178 of lowpart_subreg.
13179 (lowpart_subreg): Move to...
13180 * emit-rtl.c: ...here.
13181
ecb8c3cc 131822009-02-21 Danny Smith <dannysmith@users.sourceforge.net>
f814e489 13183
ecb8c3cc
DS
13184 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
13185 accidental and undocumented change at revision 140860.
13186
ae46a823
JM
131872009-02-21 Joseph Myers <joseph@codesourcery.com>
13188
13189 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
13190 take gimple_seq * arguments.
13191 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
13192 types_compatible_p langhook.
13193
07d8efe3 131942009-02-20 Mark Mitchell <mark@codesourcery.com>
f814e489 13195 Joseph Myers <joseph@codesourcery.com>
07d8efe3
MM
13196
13197 * config/arm/arm.c (arm_builtin_va_list): New function.
13198 (arm_expand_builtin_va_start): Likewise.
13199 (arm_gimplify_va_arg_expr): Likewise.
13200 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
13201 (TARGET_BUILD_BUILTIN_VA_START): Likewise.
13202 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
13203 (va_list_type): New variable.
13204 (arm_mangle_type): Mangle va_list_type appropriately.
13205
b1fb9f56
JJ
132062009-02-20 Jakub Jelinek <jakub@redhat.com>
13207
13208 PR middle-end/39157
13209 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
13210 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
13211 * params.def (loop-invariant-max-bbs-in-loop): New parameter.
13212 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
13213 parameter to 1000 for -O1 by default.
13214 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
13215 parameter.
13216 * loop-invariant.c: Include params.h.
13217 (move_loop_invariants): Don't call move_single_loop_invariants on
13218 very large loops.
13219
5bc0807c
JM
132202009-02-20 Jaka Mocnik <jaka@xlab.si>
13221
13222 * calls.c (emit_library_call_value_1): Use slot_offset instead of
13223 offset when calculating bounds for indexing stack_usage_map. Fixes
13224 a buffer overflow with certain target setups.
13225
c69cd1f5
JJ
132262009-02-20 Jakub Jelinek <jakub@redhat.com>
13227
13228 PR target/39240
13229 * calls.c (expand_call): Clear try_tail_call if caller and callee
13230 disagree in promotion of function return value.
13231
09812622
JJ
132322009-02-19 Jakub Jelinek <jakub@redhat.com>
13233
13234 PR target/39175
13235 * c-common.c (c_determine_visibility): If visibility changed and
13236 DECL_RTL has been already set, call make_decl_rtl to update symbol
13237 flags.
13238
68017cb4
L
132392009-02-19 H.J. Lu <hongjiu.lu@intel.com>
13240
13241 PR c++/39188
13242 * varasm.c (assemble_variable): Don't check DECL_NAME when
13243 globalizing a variable.
13244
ab4194da
JM
132452009-02-19 Joseph Myers <joseph@codesourcery.com>
13246
13247 PR c/38483
13248 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
13249 expression before any __builtin_trap call.
13250 * c-typeck.c (build_function_call): Convert and check function
13251 arguments before generating a call to a trap. Evaluate the
13252 function arguments before the trap.
13253
6b67572e
UB
132542009-02-19 Uros Bizjak <ubizjak@gmail.com>
13255
13256 PR target/39228
13257 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
13258 (UNSPEC_FXAM_MEM): New unspec.
13259 (fxam<mode>2_i387_with_temp): New insn and split pattern.
13260 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
13261 memory using fxam<mode>2_i387_with_temp to remove excess precision.
13262
9e39dba6
RG
132632009-02-19 Richard Guenther <rguenther@suse.de>
13264
13265 PR tree-optimization/39207
13266 PR tree-optimization/39074
13267 * tree-ssa-structalias.c (storedanything_id, var_storedanything,
13268 storedanything_tree): New.
13269 (do_ds_constraint): Simplify ANYTHING shortcutting. Update
6b67572e 13270 the STOREDANYTHING solution if the lhs solution contains ANYTHING.
9e39dba6
RG
13271 (build_succ_graph): Add edges from STOREDANYTHING to all
13272 non-direct nodes.
13273 (init_base_vars): Initialize STOREDANYTHING.
13274 (compute_points_to_sets): Free substitution info after
13275 building the succ graph.
13276 (ipa_pta_execute): Likewise.
13277
13278 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
13279 field.
13280 (do_ds_constraint): Do not add to special var or non-pointer
13281 field solutions.
13282 (type_could_have_pointers): Split out from ...
13283 (could_have_pointers): ... here. For arrays use the element type.
13284 (create_variable_info_for): Initialize may_have_pointers.
13285 (new_var_info): Likewise.
13286 (handle_lhs_call): Make the HEAP variable unknown-sized.
13287 (intra_create_variable_infos): Use a type with pointers for
13288 PARM_NOALIAS, make it unknown-sized.
13289
fd7b2603
L
132902009-02-18 H.J. Lu <hongjiu.lu@intel.com>
13291
13292 PR target/39224
6b67572e 13293 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
fd7b2603 13294
98b80692
JM
132952009-02-18 Jason Merrill <jason@redhat.com>
13296
13297 PR target/39179
13298 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
13299 value if DECL_EXTERNAL.
13300 * tree-sra.c (sra_walk_gimple_assign): Likewise.
13301 * target.h (gcc_target::binds_local_p): Clarify "module".
13302 * tree.h (TREE_PUBLIC): Clarify "module".
13303
0705d3f4
L
133042009-02-17 Xuepeng Guo <xuepeng.guo@intel.com>
13305
13306 PR target/38891
13307 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
13308 initialization for MS_ABI prior to the hunk of !TARGET_MMX.
13309
bce08d50
L
133102009-02-17 H.J. Lu <hongjiu.lu@intel.com>
13311
13312 PR target/39082
13313 * c.opt (Wabi): Support C and ObjC.
13314 (Wpsabi): New.
13315
13316 * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
13317
13318 * config/i386/i386.c (classify_argument): Warn once about the ABI
13319 change when passing union with long double.
13320
13321 * doc/invoke.texi: Update -Wabi for warning psABI changes.
13322
5600f233
JM
133232009-02-18 Joseph Myers <joseph@codesourcery.com>
13324
13325 PR c/35447
13326 * c-parser.c (c_parser_compound_statement): Always enter and leave
13327 a scope.
13328
8cd01fe6
JDA
133292009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13330
13331 PR target/34587
13332 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
13333
418df9d7
JJ
133342009-02-18 Jakub Jelinek <jakub@redhat.com>
13335
13336 PR tree-optimization/36922
13337 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
13338 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
13339 Likewise.
13340
082d2ebb
RS
133412009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
13342
13343 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
13344 to 0 for EABI64.
13345
17de576c
RS
133462009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
13347
13348 * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
13349
6d8d5435
RS
133502009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
13351
13352 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
13353 tree sharing.
13354
e69ff910
RB
133552009-02-17 Ruan Beihong <ruanbeihong@gmail.com>
13356 Richard Sandiford <rdsandiford@googlemail.com>
13357
13358 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
13359 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
13360 (loongson_biadd): ...this.
13361
6b24ee26
RG
133622009-02-17 Richard Guenther <rguenther@suse.de>
13363
13364 PR tree-optimization/39202
13365 * tree-ssa-structalias.c (do_structure_copy): Before collapsing
13366 a var make sure to follow existing collapses.
13367
91ab2c86
RG
133682009-02-17 Richard Guenther <rguenther@suse.de>
13369
13370 PR middle-end/39214
13371 * langhooks.c (lhd_print_error_function): Check for NULL block.
13372
73a63870
RG
133732009-02-17 Richard Guenther <rguenther@suse.de>
13374
13375 PR tree-optimization/39204
13376 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
13377 of the PHI arg.
13378
0e08f686
UB
133792009-02-17 Uros Bizjak <ubizjak@gmail.com>
13380
13381 * config/soft-fp/double.h: Update from glibc CVS.
13382
a60b7ddb
RG
133832009-02-17 Richard Guenther <rguenther@suse.de>
13384
13385 PR tree-optimization/39207
13386 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
13387 strict-aliasing warnings for pointers pointing to NULL.
13388
a47e20fd
JM
133892009-02-16 Joseph Myers <joseph@codesourcery.com>
13390
13391 PR c/35446
13392 * c-parser.c (c_parser_braced_init): Call pop_init_level when
13393 skipping until next close brace.
13394
50aab7dc
L
133952009-02-16 H.J. Lu <hongjiu.lu@intel.com>
13396
13397 PR target/37049
13398 * config/i386/i386.c (ix86_expand_push): Set memory alignment
13399 to function argument boundary.
13400
68e53db0
HS
134012009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com>
13402
13403 * config/picochip/picochip.md (lea_add): Allow any nonimmediate
13404 in the lea_add. Reload eventually constraints it properly.
0d50d55a 13405 * config/picochip/constraints.md: Remove the target constraint
68e53db0
HS
13406 "b", since it is not needed anymore.
13407
09e361bb
JJ
134082009-02-16 Jakub Jelinek <jakub@redhat.com>
13409
13410 * gthr-dce.h: Uglify function parameter and local variable names.
13411 * gthr-gnat.h: Likewise.
13412 * gthr-mipssde.h: Likewise.
13413 * gthr-nks.h: Likewise.
13414 * gthr-posix95.h: Likewise.
13415 * gthr-posix.h: Likewise.
13416 * gthr-rtems.h: Likewise.
13417 * gthr-single.h: Likewise.
13418 * gthr-solaris.h: Likewise.
13419 * gthr-tpf.h: Likewise.
13420 * gthr-vxworks.h: Likewise.
13421 * gthr-win32.h: Likewise.
13422
47f5a48f
L
134232009-02-15 H.J. Lu <hongjiu.lu@intel.com>
13424
13425 PR target/39196
13426 * config/i386/i386.md: Restrict the new peephole2 to move
13427 between MMX/SSE registers.
13428
68c9ab45
RG
134292009-02-15 Richard Guenther <rguenther@suse.de>
13430
13431 Revert
13432 2009-02-13 Richard Guenther <rguenther@suse.de>
13433
13434 * configure.ac: Enable LFS.
13435 * configure: Re-generate.
13436 * config.in: Likewise.
13437
d7815554
UW
134382009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13439
13440 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
13441 spu_srqwbyte, spu_srqwbytebc): Define.
13442 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
13443 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
13444 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
13445 "shrqby_<mode>"): New insn-and-split patterns.
13446 * config/spu/spu.c (expand_builtin_args): Determine and return
13447 number of operands using spu_builtin_description data.
13448 (spu_expand_builtin_1): Use it.
13449
c208436c
SE
134502009-02-13 Steve Ellcey <sje@cup.hp.com>
13451
13452 PR target/38056
13453 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
13454 TARGET_CONST_GP.
13455
c2e7ba7e
L
134562009-02-13 H.J. Lu <hongjiu.lu@intel.com>
13457
13458 PR target/39149
13459 * config/i386/i386.c (override_options): Correct warning
6c6094f1 13460 messages for -malign-loops, -malign-jumps and -malign-functions.
c2e7ba7e 13461
72f4e3a7
L
134622009-02-13 H.J. Lu <hongjiu.lu@intel.com>
13463
13464 PR target/39152
13465 * config/i386/i386.md: Restrict the new peephole2 to move
13466 between the general purpose registers.
13467
53f648e2
L
134682009-02-13 H.J. Lu <hongjiu.lu@intel.com>
13469
13470 PR target/39162
13471 * config/i386/i386.c (type_natural_mode): Add a new argument.
6b67572e 13472 Return the original mode and warn ABI change if vector size is 32byte.
53f648e2
L
13473 (function_arg_advance): Updated.
13474 (function_arg): Likewise.
13475 (ix86_function_value): Likewise.
13476 (ix86_return_in_memory): Likewise.
13477 (ix86_sol10_return_in_memory): Likewise.
13478 (ix86_gimplify_va_arg): Likewise.
13479 (function_arg_32): Don't warn ABX ABI change here.
13480 (function_arg_64): Likewise.
13481
38432148 134822009-02-13 Bernd Schmidt <bernd.schmidt@analog.com>
b1c92d54
BS
13483
13484 * loop-iv.c (implies_p): In the final case, test that operands 0
13485 of the two comparisons match.
13486
dd2139e7
BS
13487 * config/bfin/bfin.c (find_prev_insn_start): New function.
13488 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
13489 (find_next_insn_start): Move.
13490
601b3e1a
RG
134912009-02-13 Richard Guenther <rguenther@suse.de>
13492
13493 * configure.ac: Enable LFS.
13494 * configure: Re-generate.
13495 * config.in: Likewise.
13496
f007042e
JM
134972009-02-13 Joseph Myers <joseph@codesourcery.com>
13498
13499 PR c/35444
13500 * c-parser.c (c_parser_parms_list_declarator): Discard pending
13501 sizes on syntax error after some arguments have been parsed.
13502
3f238e8b
JJ
135032009-02-12 Jakub Jelinek <jakub@redhat.com>
13504
13505 * doc/invoke.texi (-fira): Remove.
13506
328e13b7
L
135072009-02-12 H.J. Lu <hongjiu.lu@intel.com>
13508
13509 * caller-save.c: Replace regclass.c with reginfo.c in comments.
13510 * recog.c: Likewise.
13511 * rtl.h: Likewise.
13512
c252db20
L
135132009-02-12 Uros Bizjak <ubizjak@gmail.com>
13514
13515 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
13516 (umul_ppmm): Likewise.
13517 (count_leading_zeros): Likewise.
13518 (count_trailing_zeros): Likewise.
13519 (UMUL_TIME): Likewise.
13520
135212009-02-12 H.J. Lu <hongjiu.lu@intel.com>
13522
ba181049
UB
13523 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
13524 soft-fp/t-softfp to tmake_file.
c252db20
L
13525
13526 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
ba181049
UB
13527 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
13528 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
13529 IA64_BUILTIN_INFQ]: New.
c252db20
L
13530 (ia64_init_builtins): Initialize __builtin_infq,
13531 __builtin_fabsq and __builtin_copysignq if not HPUX.
13532 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
13533 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
13534
13535 * config/ia64/lib1funcs.asm (__divtf3): Define only if
13536 SHARED is defined.
13537 (__fixtfti): Likewise.
13538 (__fixunstfti): Likewise.
13539 (__floattitf): Likewise.
13540
13541 * config/ia64/libgcc-glibc.ver: New.
13542 * config/ia64/t-fprules-softfp: Likewise.
13543 * config/ia64/sfp-machine.h: Likewise.
13544
13545 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
13546 (LIBGCC2_TF_CEXT): Likewise.
13547 (TF_SIZE): Likewise.
13548 (TARGET_INIT_LIBFUNCS): Likewise.
13549
ba181049 13550 * config/ia64/t-glibc (SHLINB_MAPFILES):
6b67572e 13551 Add $(srcdir)/config/ia64/libgcc-glibc.ver.
c252db20 13552
f13eae6a
L
135532009-02-12 H.J. Lu <hongjiu.lu@intel.com>
13554
13555 * config/i386/i386.c (construct_container): Rewrite processing
13556 BLKmode with X86_64_SSE_CLASS.
13557
12019aec
L
135582009-02-12 Paolo Bonzini <bonzini@gnu.org>
13559
13560 PR target/39152
13561 * config/i386/i386.md: Replace simplify_replace_rtx with
13562 replace_rtx in the new peephole2.
13563
28c11eb3
NS
135642009-02-12 Nathan Sidwell <nathan@codesourcery.com>
13565
13566 * doc/invoke.texi (Optimize Options): Stop claiming inlining and
13567 loop unrolling do not happen at -O2.
13568
c7b94907
MM
135692009-02-12 Michael Matz <matz@suse.de>
13570
13571 * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
13572
61e98967
JJ
135732009-02-12 Jakub Jelinek <jakub@redhat.com>
13574
13575 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
13576 for -g3.
13577
a2a237b5
BE
135782009-02-12 Ben Elliston <bje@au.ibm.com>
13579
13580 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
13581 patterns when updating the back chain. Missed in the 2009-02-10
13582 change.
13583
853eda8d
JJ
135842009-02-11 Janis Johnson <janis187@us.ibm.com>
13585
13586 * doc/extend.texi (Decimal Floating Types): Update identifier of
13587 draft TR and list of missing support.
13588
3ad6b266
JJ
135892009-02-11 Jakub Jelinek <jakub@redhat.com>
13590
13591 PR middle-end/39154
13592 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
13593 bit to variable length decl's flags, add it also to its
13594 pointer replacement variable.
13595
b058b753
UB
135962009-02-11 Uros Bizjak <ubizjak@gmail.com>
13597 Jakub Jelinek <jakub@redhat.com>
13598
13599 PR target/39118
13600 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
13601 (memory_blockage): New expander.
13602 (*memory_blockage): New insn pattern.
13603 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
13604 instead of general blockage at the end of function prologue when
13605 frame pointer is used to access red zone area. Do not emit blockage
13606 when profiling, it is emitted in generic code.
13607 (ix86_expand_epilogue): Emit memory_blockage at the beginning of
13608 function epilogue when frame pointer is used to access red zone area.
13609
bab64f23
PB
136102009-02-11 Paolo Bonzini <bonzini@gnu.org>
13611
0ce6dcfa 13612 PR target/38824
bab64f23
PB
13613 * config/i386/i386.md: Add two new peephole2 to avoid mov followed
13614 by arithmetic with memory operands.
13615 * config/i386/predicates.md (commutative_operator): New.
13616
8fd94bda
JJ
136172009-02-10 Janis Johnson <janis187@us.ibm.com>
13618
13619 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
13620 bulleted lists.
13621
794511d2
EB
136222009-02-10 Eric Botcazou <ebotcazou@adacore.com>
13623
13624 * alias.h (record_alias_subset): Declare.
13625 * alias.c (record_alias_subset): Make global.
13626
6da7fc87
NC
136272009-02-10 Nick Clifton <nickc@redhat.com>
13628
13629 * tree-parloops.c: Change license to GPLv3.
13630 * ipa-struct-reorg.c: Change license to GPLv3.
13631 * ipa-struct-reorg.h: Change license to GPLv3.
13632
a03813c8
SE
136332009-02-10 Steve Ellcey <sje@cup.hp.com>
13634
13635 PR c/39084
13636 * c-decl.c (start_struct): Return NULL on error.
13637
fc3103e7
JJ
136382009-02-10 Jakub Jelinek <jakub@redhat.com>
13639
9b43d37b
JJ
13640 PR middle-end/39124
13641 * cfgloopmanip.c (remove_path): Call remove_bbs after
13642 cancel_loop_tree, not before it.
13643
fc3103e7 13644 PR target/39139
b058b753 13645 * function.h (struct function): Add has_local_explicit_reg_vars bit.
fc3103e7
JJ
13646 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
13647 VAR_DECLs were seen.
13648 * tree-ssa-live.c (remove_unused_locals): Recompute
13649 cfun->has_local_explicit_reg_vars.
13650 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
13651 copies or clearings if cfun->has_local_explicit_reg_vars.
13652
dbf9ee15
UB
136532009-02-10 Uros Bizjak <ubizjak@gmail.com>
13654
13655 PR target/39118
13656 * config/i386/i386.c (expand_prologue): Emit blockage at the end
13657 of function prologue when frame pointer is used to access
13658 red zone area.
13659
bdec4dc7
RG
136602009-02-10 Richard Guenther <rguenther@suse.de>
13661
13662 PR middle-end/39127
13663 * gimplify.c (gimple_regimplify_operands): Always look if
13664 we need to create a temporary.
13665
7cae94fc
RG
136662009-02-10 Richard Guenther <rguenther@suse.de>
13667
13668 PR tree-optimization/39132
13669 * tree-loop-distribution.c (todo): New global var.
13670 (generate_memset_zero): Trigger TODO_rebuild_alias.
13671 (tree_loop_distribution): Return todo.
13672
a8800687
L
136732009-02-10 H.J. Lu <hongjiu.lu@intel.com>
13674
13675 PR target/39119
13676 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
13677 (x86_64_reg_class_name): Removed.
13678 (classify_argument): Return 0 if bytes > 32. Return 0 if the
13679 first one isn't X86_64_SSE_CLASS or any other ones aren't
13680 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn
13681 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
13682 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS
13683 and 3 X86_64_SSEUP_CLASS.
13684 (construct_container): Remove X86_64_AVX_CLASS. Handle 4
13685 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
13686
d4bacef0
BE
136872009-02-10 Ben Elliston <bje@au.ibm.com>
13688
13689 * config/rs6000/rs6000.md (allocate_stack): Always use an update
13690 form instruction to update the stack back chain word, even if the
13691 user has disabled the generation of update instructions.
13692 (movdi_<mode>_update_stack): New.
13693 (movsi_update_stack): Likewise.
13694 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
13695 always use an update form instruction to update the stack back
13696 chain word.
13697
01d7d2f3
SP
136982009-02-09 Sebastian Pop <sebastian.pop@amd.com>
13699
13700 PR middle-end/38953
b058b753
UB
13701 * graphite.c (if_region_set_false_region): After moving a region in
13702 the false branch of a condition, remove the empty dummy basic block.
01d7d2f3
SP
13703 (gloog): Remove wrong fix for PR38953.
13704
e41e2ab4
UW
137052009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13706
13707 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
13708 generation due to implicit sign extension.
13709
4bb07c5d
EB
137102009-02-09 Eric Botcazou <ebotcazou@adacore.com>
13711
13712 PR middle-end/38981
13713 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
13714 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
13715
f060a261
RG
137162009-02-09 Richard Guenther <rguenther@suse.de>
13717
13718 PR middle-end/35202
13719 * convert.c (convert_to_real): Disable (float)fn((double)x)
13720 to fnf(x) conversion if errno differences may occur and
13721 -fmath-errno is set.
13722
5a7e237c
AS
137232009-02-07 Anatoly Sokolov <aesok@post.ru>
13724
13725 * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
13726 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
13727 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
13728
feab5a67
JM
137292009-02-06 Joseph Myers <joseph@codesourcery.com>
13730
13731 PR c/35434
13732 * c-common.c (handle_alias_attribute): Disallow attribute for
13733 anything not a FUNCTION_DECL or VAR_DECL.
13734
90ef2296
JJ
137352009-02-06 Janis Johnson <janis187@us.ibm.com>
13736
13737 PR c/39035
13738 * real.c (do_compare): Special-case compare of zero against
13739 decimal float value.
13740
1de2c900
JM
137412009-02-06 Joseph Myers <joseph@codesourcery.com>
13742
13743 PR c/36432
13744 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
13745 as indicating flexible array members unless the field itself is
13746 being declarared as the incomplete array.
13747
e901811a
JH
137482009-02-06 Jan Hubicka <jh@suse.cz>
13749
13750 PR tree-optimization/38844
13751 * ipa-inline.c (try_inline): Stop inlining recursion when edge
13752 is already inlined.
13753
3cfa762b
RG
137542009-02-06 Richard Guenther <rguenther@suse.de>
13755
13756 PR middle-end/38977
13757 * tree-cfg.c (need_fake_edge_p): Force a fake edge for
13758 fork because we may expand it as __gcov_fork.
13759
8506528c
NC
137602009-02-06 Nick Clifton <nickc@redhat.com>
13761
dbf9ee15 13762 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
8506528c 13763
85169114
PB
137642009-02-06 Paolo Bonzini <bonzini@gnu.org>
13765
13766 PR tree-optimization/35659
13767 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
13768 vn_phi_eq): Shortcut if hashcode does not match.
13769 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
13770 NULL operands.
13771 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
13772 and avoid iterative_hash_expr.
13773 (FOR_EACH_VALUE_ID_IN_SET): New.
13774 (value_id_compare): Remove.
13775 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
13776 sort expressions by value id.
13777
6d39673d
KK
137782009-02-05 Kaz Kojima <kkojima@gcc.gnu.org>
13779
13780 PR target/38991
13781 * config/sh/predicates.md (general_movsrc_operand): Don't check
13782 the subreg of system registers here.
13783
e6e1c050
JJ
137842009-02-05 Jakub Jelinek <jakub@redhat.com>
13785
13786 PR c++/39106
13787 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
13788 on the copied decl.
13789
65a74b5d
PB
137902009-02-05 Paolo Bonzini <bonzini@gnu.org>
13791
13792 PR rtl-optimization/39110
13793 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
13794 addresses, not aligned ones.
13795
08e14b2a
DB
137962009-02-05 Daniel Berlin <dberlin@dberlin.org>
13797 Richard Guenther <rguenther@suse.de>
13798
13799 PR tree-optimization/39100
13800 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
13801 comment says and add edges.
13802
5006381c
JM
138032009-02-05 Joseph Myers <joseph@codesourcery.com>
13804
13805 PR c/35435
13806 * c-common.c (handle_tls_model_attribute): Ignore attribute for
13807 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
13808
2ba9daa7 138092009-02-04 Tobias Grosser <grosser@fim.uni-passau.de>
b0789219
TG
13810
13811 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
13812 sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
13813 register_bb_in_sese, new_sese, free_sese): Moved.
13814 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
13815 outermost_loop_in_scop, build_scop_iteration_domain,
13816 expand_scalar_variables_ssa_name, get_vdef_before_scop,
13817 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
13818 Use loop_in_sese_p instead of loop_in_scop_p.
13819 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
13820 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
13821 (scopdet_basic_block_info): Fix bug in scop detection.
13822 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
13823 eq_loop_to_cloog_loop): Remove.
13824 (nb_loops_around_loop_in_scop, nb_loop
13825 ref_nb_loops): Moved here...
13826 * graphite.h (ref_nb_loops): ... from here.
13827 (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
13828 (loop_domain_dim, loop_iteration_vector_dim): Remove.
13829 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
13830 * testsuite/gcc.dg/graphite/scop-19.c: New
13831
48e8382e
PB
138322009-02-04 Paolo Bonzini <bonzini@gnu.org>
13833 Hans-Peter Nilsson <hp@axis.com>
13834
13835 PR rtl-optimization/37889
13836 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
13837 Move offset handling from PLUS to before the switch. Use new
13838 arguments when considering SYMBOL_REFs too.
13839 (rtx_addr_can_trap_p): Pass dummy offset and size.
13840 (enum may_trap_p_flags): Remove.
13841 (may_trap_p_1): Pass size from MEM_SIZE.
13842
13843 PR rtl-optimization/38921
13844 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
13845 * rtl.h (may_trap_after_code_motion_p): Delete prototype.
13846 * rtlanal.c (may_trap_after_code_motion_p): Delete.
13847 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
13848
69349ea5
L
138492009-02-04 H.J. Lu <hongjiu.lu@intel.com>
13850
13851 AVX Programming Reference (January, 2009)
13852 * config/i386/sse.md (*vpclmulqdq): New.
13853
b545e411
JJ
138542009-02-04 Jakub Jelinek <jakub@redhat.com>
13855
13856 PR tree-optimization/38977
13857 PR gcov-profile/38292
bf9b2cc9 13858 * calls.c (special_function_p): Disregard __builtin_ prefix.
b545e411 13859
5b43bf05
HS
138602009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com>
13861
13862 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
13863 non-indexable addresses even before reload.
13864
062c4bb3
JM
138652009-02-03 Joseph Myers <joseph@codesourcery.com>
13866
13867 PR c/29129
13868 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
13869 as having variable size. Do not give an error for unnamed
13870 parameters with [*] declarators. Give a warning for type names
13871 with [*] declarators and mark them as variable size.
13872 * c-parser.c (c_parser_sizeof_expression): Do not give an error
13873 for sizeof applied to [*] type names.
13874
6175f578
AP
138752009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
13876
13877 PR C++/36607
13878 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
13879
d4f4bc84
JJ
138802009-02-03 Jakub Jelinek <jakub@redhat.com>
13881
13882 * gcc.c (process_command): Update copyright notice dates.
13883 * gcov.c (print_version): Likewise.
13884 * gcov-dump.c (print_version): Likewise.
13885 * mips-tfile.c (main): Likewise.
13886 * mips-tdump.c (main): Likewise.
13887
f6294de7
JM
138882009-02-03 Joseph Myers <joseph@codesourcery.com>
13889
13890 PR c/35433
13891 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
13892 for composite type involving a zero-length array type.
13893
754ccf7c
JJ
138942009-02-03 Jakub Jelinek <jakub@redhat.com>
13895
70f16287
JJ
13896 PR target/35318
13897 * function.c (match_asm_constraints_1): Skip over
13898 initial optional % in the constraint.
13899
754ccf7c
JJ
13900 PR inline-asm/39059
13901 * c-parser.c (c_parser_postfix_expression): If fixed point is not
13902 supported, don't accept FIXED_CSTs.
13903 * c-decl.c (finish_declspecs): Error if fixed point is not supported
13904 and _Sat is used without _Fract/_Accum. Set specs->type to
13905 integer_type_node for cts_fract/cts_accum if fixed point is not
13906 supported.
13907
965fdadf
CM
139082009-02-02 Catherine Moore <clm@codesourcery.com>
13909
dbf9ee15 13910 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
965fdadf 13911
2e8a796f
RS
139122009-02-02 Richard Sandiford <rdsandiford@googlemail.com>
13913
13914 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
13915 (ABI_HAS_64BIT_SYMBOLS): Use it.
13916 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
13917
e0079468
PB
139182009-02-02 Paul Brook <paul@codesourcery.com>
13919
13920 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
13921
eca72963
JJ
139222009-02-02 Jakub Jelinek <jakub@redhat.com>
13923
13924 PR inline-asm/39058
13925 * recog.h (asm_operand_ok): Add constraints argument.
13926 * recog.c (asm_operand_ok): Likewise. If it is set, for digits
13927 recurse on matching constraint.
13928 (check_asm_operands): Pass constraints as 3rd argument to
13929 asm_operand_ok. Don't look up matching constraint here.
13930 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
13931 to asm_operand_ok.
13932
b5bde9ff
BE
139332009-02-02 Ben Elliston <bje@au.ibm.com>
13934
13935 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
13936 TARGET_NARROW_VOLATILE_BITFIELD macro names.
13937
30f3e427
JDA
139382009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13939
be7659ba
JDA
13940 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
13941 information. Remove some obsolete information. Reorganize.
13942
30f3e427
JDA
13943 * config/pa/fptr.c: Revert license to GPL 2.
13944 * config/pa/milli64.S: Likewise.
13945
3cbfaf98
DK
139462009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
13947
13948 PR target/38904
13949 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass
13950 LIBRARY name in, instead of hard-coding it.
13951 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an
13952 extra target make frag to tmake_files according to EH model.
13953 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
13954 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target
13955 frags that define makefile variable EH_MODEL appropriately.
13956 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment.
13957 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or
13958 to "-sjlj" according to type of EH configured.
13959 (LIBGCC_SONAME): Concatenate it to shared library base name.
13960 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or
13961 to "_sjlj" according to type of EH configured.
13962 (LIBGCC_SONAME): Concatenate it to shared library base name.
13963 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL.
13964 (SHLIB_LINK): Add missing semicolon to if-else construct.
13965 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
13966 string value of "pe_dll" command-line option.
13967 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper.
13968 (SHLIB_SONAME): Use it when overriding t-cygming default.
13969 (SHLIB_IMPLIB): Override t-cygming default.
13970 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
13971 string value of "pe_dll" command-line option.
13972
8d0b6068
DK
139732009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
13974
13975 PR target/38952
13976 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
bf9b2cc9 13977 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
8d0b6068 13978
14c28276
RG
139792009-01-31 Richard Guenther <rguenther@suse.de>
13980
13981 PR tree-optimization/38937
13982 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
13983 computing the transitive closure.
13984
5f4d82c2
RG
139852009-01-30 Richard Guenther <rguenther@suse.de>
13986
13987 PR tree-optimization/39041
13988 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
13989 Propagate variable indices only if the types match for this stmt.
13990
d0728ae0
JJ
139912009-01-30 Jakub Jelinek <jakub@redhat.com>
13992
13993 PR target/39013
13994 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
13995 inline but never defined.
13996
6b67572e 139972009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com>
9fec758d
WG
13998
13999 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
14000 (*insv_h_di_reg_extimm): New insn.
14001 (*insv_l<mode>_reg_extimm): New insn.
14002
140032009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
9e8be1e4
HS
14004
14005 * config/picochip/picochip.c (flag_conserve_stack): set
14006 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
14007 fconserve-stack. Reduce call-overhead used by inliner.
14008
9fec758d 140092009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
df9198ab
HS
14010
14011 PR/38157
14012 * common.opt (flag_conserve_stack): Initialised to zero.
14013
7f1c539c
KT
140142009-01-30 Kai Tietz <kai.tietz@onevision.com>
14015
14016 PR/39002
14017 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
14018 (ix86_expand_epilogue): Take nsseregs in account to use proper restore
14019 method.
14020
3631be48
L
140212009-01-29 H.J. Lu <hongjiu.lu@intel.com>
14022
14023 * ira-color.c (allocno_reload_assign): Update comments.
14024 * regmove.c (regmove_optimize): Likewise.
14025
14026 * ra.h: Removed.
14027
416ac4d4
RM
140282009-01-29 Robert Millan <rmh@aybabtu.com>
14029
60839f5d
EB
14030 * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
14031 * config/i386/kopensolaris-gnu.h: New file. Undefine
416ac4d4 14032 `MD_UNWIND_SUPPORT'.
60839f5d 14033 * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
416ac4d4 14034
d5e54bc1
KH
140352009-01-29 Kazu Hirata <kazu@codesourcery.com>
14036
14037 PR tree-optimization/39007
14038 * tree-loop-distribution.c (generate_builtin): Use
14039 recompute_dominator to compute the immediate dominator of the
14040 basic block just after the loop.
14041
38432148 140422009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
e9e077fa
RO
14043
14044 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
14045 (ASM_OUTPUT_DWARF_PCREL): Define.
14046
38432148 140472009-01-29 Vladimir Makarov <vmakarov@redhat.com>
2af2dbdc
VM
14048
14049 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
14050 * doc/passes.texi: Remove entries about regclass, local-alloc, and
14051 global. Modify entries about regmove and IRA.
14052
14053 * ra-conflict.c: Remove the file.
14054
14055 * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
14056
14057 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
14058 (pass_regclass_init): Rename to pass_reginfo_init.
14059
14060 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
14061
14062 * toplev.h (flag_ira): Remove.
14063
14064 * caller-save.c (setup_save_areas): Remove flag_ira.
14065
bf9b2cc9 14066 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
2af2dbdc
VM
14067
14068 * global.c: Remove the file.
14069
ba20e309 14070 * opts.c (decode_options): Remove flag_ira.
2af2dbdc
VM
14071
14072 * hard-reg-set.h (losing_caller_save_reg_set): Remove.
14073
14074 * regmove.c: Modify file description.
14075 (find_use_as_address, try_auto_increment): Define them only if
14076 AUTO_INC_DEC is defined.
14077 (replacement_quality, replace_in_call_usage, fixup_match_1,
14078 stable_and_no_regs_but_for_p): Remove.
14079 (reg_set_in_bb): Make it static.
14080 (regmove_optimize): Remove flag_ira and code which worked for
14081 !flag_ira.
14082
14083 * local-alloc.c: Remove the file.
14084
14085 * common.opt (fira): Remove.
14086
14087 * ira.c: Include except.h.
14088 (eliminable_regset): Move from global.c.
14089 (mark_elimination): Ditto. Remove flag_ira.
14090 (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
14091 equiv_mem_modified, validate_equiv_mem_from_store,
14092 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
14093 contains_replace_regs, memref_referenced_p, memref_used_between_p,
14094 no_equiv, recorded_label_ref): Move from local-alloc.c.
14095 (update_equiv_regs): Ditto. Make it static.
14096 (print_insn_chain, print_insn_chains): Move it from global.c.
bf9b2cc9 14097 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira.
2af2dbdc
VM
14098 (build_insn_chain): Ditto. Make it static.
14099 (ra_init_live_subregs): Move from ra-conflict.c. Make it static.
14100 Rename to init_live_subregs.
14101 (gate_ira): Remove flag_ira.
14102
14103 * regclass.c: Rename reginfo.c. Change file description.
14104 (FORBIDDEN_INC_DEC_CLASSES): Remove.
dbf9ee15 14105 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
2af2dbdc
VM
14106 (init_reg_sets_1): Remove code for evaluation of
14107 reg_class_superclasses and losing_caller_save_reg_set.
14108 (init_regs): Remove init_reg_autoinc.
14109 (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
14110 ok_for_base_p_nonstrict): Remove.
bf9b2cc9 14111 (regclass_init): Rename to reginfo_init. Don't initialize init_cost.
2af2dbdc
VM
14112 (pass_regclass_init): Rename to pass_reginfo_init. Modify
14113 corresponding entries.
14114 (dump_regclass, record_operand_costs, scan_one_insn,
14115 init_reg_autoinc, regclass, record_reg_classes, copy_cost,
14116 record_address_regs, auto_inc_dec_reg_p): Remove.
14117 (gt-regclass.h): Rename to gt-reginfo.h.
14118
14119 * rtl.h (dump_global_regs, retry_global_alloc,
bf9b2cc9 14120 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
2af2dbdc
VM
14121
14122 * Makefile.in (RA_H): Remove.
14123 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
14124 Rename regclass.o to reginfo.o.
14125 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to
14126 gt-reginfo.h.
14127 (global.o, local-alloc.o, ra-conflict.o): Remove entries.
14128 (GTFILES): Rename regclass.c to reginfo.c.
14129
14130 * passes.c (init_optimization_passes): Remove pass_local_alloc and
bf9b2cc9 14131 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init.
2af2dbdc
VM
14132
14133 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
14134 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
14135 Remove flag_ira.
6b67572e 14136 (finish_spills): Ditto. Remove code for !flag_ira.
2ba9daa7 14137
c95b2534 141382009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
00b251a0
KZ
14139
14140 PR middle-end/35854
14141 * doc/invoke.texi (rtl debug options): Complete rewrite.
14142 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
14143 to auto_inc_dec".
14144 * mode-switching.c (pass_mode_switching): Rename pass from
14145 "mode-sw" to "mode_sw".
14146 * except.c (pass_convert_to_eh_ranges): Rename pass from
14147 "eh-ranges" to "eh_ranges".
14148 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
14149 to "subreg1".
2ba9daa7
AS
14150
14151
72a54528
AM
141522009-01-29 Andrey Belevantsev <abel@ispras.ru>
14153 Alexander Monakov <amonakov@ispras.ru>
14154
14155 PR middle-end/38857
14156 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
14157 register.
14158 (move_exprs_to_boundary): Change return type and pass through
14159 should_move from move_op. Relax assert. Update usage ...
14160 (schedule_expr_on_boundary): ... here. Use should_move instead of
14161 cant_move.
14162 (move_op_orig_expr_found): Indicate that insn was disconnected from
14163 stream.
14164 (code_motion_process_successors): Do not call after_merge_succs
14165 callback if original expression was not found when traversing any of
14166 the branches.
14167 (code_motion_path_driver): Change return type. Update prototype.
14168 (move_op): Update comment. Add a new parameter (should_move). Update
14169 prototype. Set *should_move based on indication provided by
14170 move_op_orig_expr_found.
14171
001b9eb6
PH
141722009-01-28 Pat Haugen <pthaugen@us.ibm.com>
14173
14174 * doc/invoke.texi (avoid-indexed-addresses): Document new option.
14175 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
14176 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
14177 * config/rs6000/rs6000.c (rs6000_override_options): Default
14178 avoid-indexed-addresses on for Power6, off for everything else.
14179 (avoiding_indexed_address_p): New function.
14180 (rs6000_legitimize_address): Use it.
14181 (rs6000_legitimate_address): Likewise.
14182 * config/rs6000/rs6000.md (movXX_updateX): Likewise
14183
59dc4898
KH
141842009-01-28 Kazu Hirata <kazu@codesourcery.com>
14185
14186 PR tree-optimization/38997
14187 * tree-loop-distribution.c (generate_memset_zero): Use
14188 POINTER_PLUS_EXPR for a pointer addition.
14189
07da44ab
AK
141902009-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
14191
14192 * config/s390/s390.md (bswap<mode>2): New pattern added.
14193
cdc15d23
WG
141942009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
14195
14196 * config/s390/s390.md (*tls_load_31): Added type attribute.
14197
d46f24b6
WG
141982009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
14199
14200 * config/s390/s390.md: Fix a few comments.
14201
729e750f
WG
142022009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
14203
14204 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
14205 (*tm<mode>_full): Fixed z10prop attribute.
14206 (*tst<mode>_extimm): Fixed z10prop attribute.
14207 (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
14208 (*tstqiCCT_cconly): Fixed z10prop attribute.
14209 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
14210 (*movsi_larl): Fixed z10prop attribute.
14211 (*movsi_zarch): Fixed z10prop attribute.
14212 (*movsi_eas): Fixed z10prop attribute.
14213 (*movhi): Fixed z10prop attribute.
14214 (*movqi): Fixed z10prop attribute.
14215 (*movstrictqi): Fixed z10prop attribute.
14216 (*mov<mode>): Fixed z10prop attribute.
14217 (*movcc): Fixed z10prop attribute.
14218 (*sethighpartdi_64): Fixed z10prop attribute.
14219 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
14220 (*negdi2_sign_cc): Fixed z10prop attribute.
14221 (*negdi2_sign): Fixed z10prop attribute.
14222 (*absdi2_sign_cc): Fixed z10prop attribute.
14223 (*absdi2_sign): Fixed z10prop attribute.
14224 (*negabsdi2_sign_cc): Fixed z10prop attribute.
14225 (*negabsdi2_sign): Fixed z10prop attribute.
14226 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
14227 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
14228 (doloop_si64): Fixed z10prop attribute.
14229 (doloop_si31): Fixed z10prop attribute.
14230 (doloop_long): Fixed z10prop attribute.
14231 (indirect_jump): Fixed z10prop attribute.
14232 (nop): Fixed z10prop attribute.
14233 (main_base_64): Fixed z10prop attribute.
14234 (reload_base_64): Fixed z10prop attribute.
14235
c7789bfb
JJ
142362009-01-28 Jakub Jelinek <jakub@redhat.com>
14237
14238 PR rtl-optimization/38740
6b67572e
UB
14239 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
14240 if !optimize.
c7789bfb
JJ
14241 * config/mips/mips.c (mips_reorg): Likewise.
14242
de081cfd
RG
142432009-01-28 Richard Guenther <rguenther@suse.de>
14244
14245 PR tree-optimization/38926
14246 * tree-ssa-pre.c (add_to_value): Assert we add only expressions
14247 with the correct value id to a value.
14248 (do_regular_insertion): Use the value number of edoubleprime
14249 for the value number of the expr.
14250
14251 Revert
14252 2008-08-21 Richard Guenther <rguenther@suse.de>
bf9b2cc9 14253
d748c406
UB
14254 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
14255 a PHI ask VN if it is already available.
14256 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
14257 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
de081cfd 14258
a9d386a1
JJ
142592009-01-28 Jakub Jelinek <jakub@redhat.com>
14260
14261 PR middle-end/38934
14262 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
14263 set to varying whenever max has TREE_OVERFLOW set, similarly
14264 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
14265
97a170cd
RG
142662009-01-28 Richard Guenther <rguenther@suse.de>
14267
14268 PR middle-end/38908
14269 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
14270 uninitialized aggregate uses in call arguments.
14271
89ebafc6
PB
142722009-01-28 Paolo Bonzini <bonzini@gnu.org>
14273
14274 PR tree-optimization/38984
14275 * tree-ssa-structalias.c (get_constraints_for_1): Do not use
14276 the nothing_id variable if -fno-delete-null-pointer-checks.
14277
bef3c57b
UB
142782009-01-28 Uros Bizjak <ubizjak@gmail.com>
14279
14280 PR target/38988
14281 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
14282 (set_got_offset_rex64): Ditto.
14283
0c6390fa
L
142842009-01-27 H.J. Lu <hongjiu.lu@intel.com>
14285
14286 PR target/38941
14287 * doc/extend.texi: Improve local variable with asm reg.
14288
bee6fa6d
AN
142892009-01-27 Adam Nemet <anemet@caviumnetworks.com>
14290
14291 * c.opt (Wpacked-bitfield-compat): Change init value to -1.
14292 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
14293 was not supplied then set warn_packed_bitfield_compat to the
14294 default value of 1.
14295 * stor-layout.c (place_field): Check warn_packed_bitfield_compat
14296 against 1.
14297
b5c3dfbb
RG
142982009-01-27 Richard Guenther <rguenther@suse.de>
14299
14300 PR tree-optimization/38503
14301 * cfgexpand.c (expand_gimple_basic_block): Ignore
14302 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
14303 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
14304 variables that cannot have TBAA applied.
14305 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
14306 statements.
14307
d748c406 143082009-01-27 Uros Bizjak <ubizjak@gmail.com>
576de5cb
UB
14309
14310 PR middle-end/38969
14311 * calls.c (initialize_argument_information): Do not wrap complex
14312 arguments in SAVE_EXPR.
14313
9112bb38
AT
143142009-01-26 Andreas Tobler <a.tobler@schweiz.org>
14315
14316 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
5efb79fc 14317 (INSTALL_LIBGCC): Revert typo commit.
9112bb38 14318
4757704f
RG
143192009-01-26 Richard Guenther <rguenther@suse.de>
14320
14321 PR tree-optimization/38745
14322 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
14323 from special handling.
14324
e3e6cff4
RG
143252009-01-26 Richard Guenther <rguenther@suse.de>
14326
14327 PR tree-optimization/38745
14328 * tree-ssa.c (execute_update_addresses_taken): Do not include
14329 variables that cannot possibly be a register in not_reg_needs.
14330 Do not clear TREE_ADDRESSABLE on vars that may not become
14331 registers.
14332 * tree-ssa.c (update_alias_info_1): Include those in the set
14333 of addressable vars.
14334
dc874b53
RG
143352009-01-26 Richard Guenther <rguenther@suse.de>
14336
14337 PR middle-end/38851
14338 * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
14339 * tree-ssa-dse.c: Include langhooks.h
14340 (execute_simple_dse): Remove stores with zero size.
14341
849421a3
JJ
143422009-01-24 Jakub Jelinek <jakub@redhat.com>
14343
14344 PR c/38957
14345 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
14346 as PLUS_EXPR.
14347
82f70421
JB
143482009-01-24 Julian Brown <julian@codesourcery.com>
14349
14350 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
14351 config/arm/linux-atomic.c.
14352 * config/arm/linux-atomic.c: New.
14353
863412d6
EB
143542009-01-24 Eric Botcazou <ebotcazou@adacore.com>
14355
14356 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
14357 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
14358 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
14359
8c684300
L
143602009-01-24 H.J. Lu <hongjiu.lu@intel.com>
14361
14362 PR c/38938
93f1527a 14363 * c-opts.c (c_common_handle_option): Update warn_pointer_sign
8c684300
L
14364 properly.
14365
b840fb02
SP
143662009-01-24 Sebastian Pop <sebastian.pop@amd.com>
14367
14368 PR tree-optimization/38953
14369 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
14370 (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
14371 (gloog): Split the exit of the scop when the scop exit is a loop exit.
14372 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
14373 changed the CFG.
14374
ecee559f
PB
143752009-01-24 Paul Brook <paul@codesourcery.com>
14376
14377 * config/arm/neon.md (neon_type): Move to arm.md.
14378 (neon_mov<VSTRUCT>): Add neon_type attribute.
14379 * config/arm/arm.md (neon_type): Move to here.
14380 (conds): Add "unconditioal" and use as default for NEON insns.
14381
61ad0914
BE
143822009-01-24 Ben Elliston <bje@au.ibm.com>
14383
14384 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
14385 void *' warning from -Wc++-compat.
14386 * Makefile.in (dominance.o-warn): Remove.
14387
38432148 143882009-01-23 Paolo Bonzini <bonzini@gnu.org>
9bacafeb
PB
14389
14390 PR tree-optimization/38932
14391 * fold-const.c (fold_unary_ignore_overflow): New.
14392 * tree.h (fold_unary_ignore_overflow): Declare.
14393 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
14394 * tree-ssa-sccvn.c (visit_reference_op_load,
14395 simplify_unary_expression): Likewise.
14396
2cd36c22
AN
143972009-01-22 Adam Nemet <anemet@caviumnetworks.com>
14398
14399 * c-decl.c (finish_struct): Move code to set DECL_PACKED after
14400 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields
14401 regardless of their type.
14402 * c-common.c (handle_packed_attribute): Don't ignore packed on
14403 bitfields.
14404 * c.opt (Wpacked-bitfield-compat): New warning option.
14405 * stor-layout.c (place_field): Warn if offset of a field changed.
14406 * doc/extend.texi (packed): Mention the ABI change.
14407 * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
14408 (Warning Options): Add it to the list.
14409
e4e624ab
L
144102009-01-22 H.J. Lu <hongjiu.lu@intel.com>
14411
14412 * c-opts.c (c_common_post_options): Fix a typo in comments.
14413
d0ea0759
SE
144142009-01-22 Steve Ellcey <sje@cup.hp.com>
14415
14416 PR middle-end/38615
14417 * gimplify.c (gimplify_init_constructor): Fix promotion of const
14418 variables to static.
14419 * doc/invoke.texi (-fmerge-all-constants): Update description.
14420
87673f84
UB
144212009-01-22 Uros Bizjak <ubizjak@gmail.com>
14422
14423 PR target/38931
14424 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
14425 (*movdi_1_rex64): Use type "mmx" for alternative 5.
14426
96339268
RE
144272009-01-22 Richard Earnshaw <rearnsha@arm.com>
14428
14429 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
14430 a word boundary.
14431 (LOCAL_ALIGNMENT): Similarly.
14432
442dc742 144332009-01-22 Mark Shinwell <shinwell@codesourcery.com>
87673f84 14434 Joseph Myers <joseph@codesourcery.com>
442dc742
MS
14435
14436 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
14437 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
14438 * config/arm/arm-tune.md: Regenerate.
14439 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
14440 -march=iwmmxt2.
14441
9b34732e
MS
144422009-01-22 Mark Shinwell <shinwell@codesourcery.com>
14443
14444 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
14445 version number to five.
14446
03c2a308
DS
144472009-01-22 Dodji Seketeli <dodji@redhat.com>
14448
14449 PR c++/38930
ba20e309 14450 * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
03c2a308
DS
14451 * c-common.c (set_underlying_type): Likewise.
14452 (is_typedef_decl ): Likewise
14453 * tree.h: Likewise
14454 (set_underlying_type): Likewise.
14455 (is_typedef_type): Likewise.
14456
1240d76e
VM
144572009-01-21 Vladimir Makarov <vmakarov@redhat.com>
14458
14459 PR middle-end/38587
14460 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
14461 crossing setjmps.
14462
b8a1087d
DK
144632009-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
14464
14465 PR bootstrap/37660
14466 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro.
14467 (LIBGCC_SPEC): Don't define.
14468 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC.
14469
435da628
UB
144702009-01-21 Uros Bizjak <ubizjak@gmail.com>
14471
14472 PR rtl-optimization/38879
14473 * alias.c (base_alias_check): Unaligned access via AND address can
14474 alias all surrounding object types except those with sizes equal
14475 or wider than the size of unaligned access.
14476
d597b3ce
DS
144772009-01-21 Dodji Seketeli <dodji@redhat.com>
14478
14479 PR c++/26693
ba20e309 14480 * c-decl.c (clone_underlying_type): Move this ...
d597b3ce 14481 * c-common.c (set_underlying_type): ... here.
435da628 14482 Also, make sure the function properly sets TYPE_STUB_DECL() on
d597b3ce
DS
14483 the newly created typedef variant type.
14484 (is_typedef_decl ): New entry point.
14485 * tree.h: Added a new member member_types_needing_access_check to
14486 struct tree_decl_non_common.
14487 (set_underlying_type): New entry point.
14488 (is_typedef_type): Likewise.
14489
71a6fe66
BM
144902009-01-21 Bingfeng Mei <bmei@broadcom.com>
14491
14492 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
14493 Check whether two instructions have memory references that
14494 belong to conflicting alias sets. walk_mems_1 and walk_mems_2
14495 are helper functions for traversing.
14496 * alias.h (insn_alias_sets_confilict_p): New prototypes.
14497 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
14498 not to draw dependency edge for instructions with non-conflicting
14499 alias sets.
14500
5a248274
JM
145012009-01-20 Joseph Myers <joseph@codesourcery.com>
14502
14503 PR other/38758
6b67572e
UB
14504 * longlong.h: Update copyright years. Use soft-fp license notice.
14505 Sync __clz_tab declaration with glibc.
5a248274 14506
4b84f3de
SE
145072009-01-20 Steve Ellcey <sje@cup.hp.com>
14508
14509 PR target/30687
14510 * doc/extend.texi (syscall_linkage): New.
14511 (version_id): Modify.
14512
37348bf1 145132009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
435da628 14514 Richard Guenther <rguenther@suse.de>
37348bf1
AP
14515
14516 PR tree-optimization/38747
14517 PR tree-optimization/38748
14518 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
14519 conversion if the base address is an indirect reference and the
14520 aliasing sets could cause issues.
14521
d0a58904
SP
145222009-01-20 Sebastian Pop <sebastian.pop@amd.com>
14523
2ba9daa7 14524 * common.opt (fgraphite, fgraphite-identity): Add comment for
d0a58904
SP
14525 explaining why these options are not documented.
14526
71e7afb2
SP
145272009-01-20 Sebastian Pop <sebastian.pop@amd.com>
14528
14529 * graphite.c (stmt_simple_for_scop_p): Also handle cases when
14530 gimple_call_lhs is NULL.
14531
38432148 145322009-01-20 Paolo Bonzini <bonzini@gnu.org>
09efeca1
PB
14533
14534 PR target/38868
14535 * emit-rtl.c (adjust_address_1): Make sure memref is never
14536 overwritten.
14537
cbb8dee3
BE
145382009-01-20 Ben Elliston <bje@au.ibm.com>
14539
14540 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
435da628 14541 const qualifier from arg parameter. Remove unnecessary cast to char *.
cbb8dee3
BE
14542 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
14543 const qualifier from arg 2.
14544
72c66596
IS
145452009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
14546
435da628 14547 * config/darwin.h: Add static-libgfortran to LINK_SPEC.
72c66596 14548
f68211cd
VM
145492009-01-19 Vladimir Makarov <vmakarov@redhat.com>
14550
14551 PR c/38869
14552 * rtl.h (reinit_regs): New prototype.
14553 * regclass.c: Include ira.h.
14554 (reinit_regs): New.
14555 * Makefile.in (regclass.o): Add ira.h.
14556 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
14557
6e4f1168
L
145582009-01-18 H.J. Lu <hongjiu.lu@intel.com>
14559
14560 PR target/38736
14561 * c-common.c (handle_aligned_attribute): Use
14562 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
14563 default alignment value.
14564
14565 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
14566
14567 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
14568 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
14569
14570 * doc/extend.texi: Update __attribute__ ((aligned)). Document
14571 __BIGGEST_ALIGNMENT__.
14572
14573 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
14574
890065bf
RG
145752009-01-18 Richard Guenther <rguenther@suse.de>
14576
14577 PR tree-optimization/38819
14578 * tree-flow.h (operation_could_trap_helper_p): Declare.
14579 * tree-eh.c (operation_could_trap_helper_p): Export.
14580 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
14581 * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
14582 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
14583 are about to insert a possibly trapping instruction and fail
14584 in this case.
14585
a729d731
AS
145862009-01-18 Andreas Schwab <schwab@suse.de>
14587
14588 * doc/install.texi (Configuration): Remove obsolete paragraph
14589 about use of --with-gnu-ld with --with-gnu-as.
14590
a640c13b
KH
145912009-01-18 Kazu Hirata <kazu@codesourcery.com>
14592
14593 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
14594 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
14595 Follow spelling conventions.
14596
dba2cc0c
BE
145972009-01-18 Ben Elliston <bje@au.ibm.com>
14598
14599 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
14600 C++ warning about implicit conversion from void * to struct
14601 bitmap_head_def *.
14602 (bitmap_obstack_free): Likewise for bitmap_element *.
bc127c63 14603 * Makefile.in (bitmap.o-warn): Remove.
dba2cc0c 14604
2207a498
DK
146052009-01-17 Dave Korn <dave.korn.cygwin@gmail.com>
14606
14607 * Makefile.in (BACKENDLIBS): Reorder to match dependencies.
14608
8137e465
SP
146092009-01-17 Sebastian Pop <sebastian.pop@amd.com>
14610 Tobias Grosser <tobi.grosser@amd.com>
14611
14612 * graphite.c (graphite_trans_scop_block): Do not block single
14613 nested loops.
14614
5be1c58c
AO
146152009-01-16 Alexandre Oliva <aoliva@redhat.com>
14616
14617 * ebitmap.h (ebitmap_iter_init): Initialize all fields.
14618 * ipa-struct-reorg.c (gen_struct_type): Replace known-true
14619 test with assertion.
14620
786ce82d
RG
146212009-01-16 Richard Guenther <rguenther@suse.de>
14622
14623 PR tree-optimization/38835
14624 PR middle-end/36227
14625 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
14626 and INT + PTR -> (INT)(PTR p+ INT) folding.
14627 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
14628
c1cb09ad
AN
146292009-01-16 Adam Nemet <anemet@caviumnetworks.com>
14630
14631 PR target/38554
14632 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
14633 the subreg from a lowpart subreg if it is also casting the value.
14634
bcab4e19
SP
146352009-01-16 Sebastian Pop <sebastian.pop@amd.com>
14636 Tobias Grosser <tobi.grosser@amd.com>
14637
14638 * graphite.c (compare_prefix_loops): New.
14639 (build_scop_canonical_schedules): Rewritten.
14640 (graphite_transform_loops): Move build_scop_canonical_schedules
14641 after build_scop_iteration_domain.
14642
0b040072
SP
146432009-01-16 Sebastian Pop <sebastian.pop@amd.com>
14644 Tobias Grosser <tobi.grosser@amd.com>
14645
2ba9daa7 14646 * graphite.c (add_conditions_to_domain): Add the loops to
0b040072
SP
14647 the dimension of the iteration domain. Do copy the domain
14648 only when it exists.
14649 (build_scop_conditions_1): Do not call add_conditions_to_domain.
14650 (add_conditions_to_constraints): New.
14651 (can_generate_code_stmt, can_generate_code): Removed.
14652 (gloog): Do not call can_generate_code.
14653 (graphite_transform_loops): Call add_conditions_to_constraints
14654 after building the iteration domain.
14655
56c6a499
JJ
146562009-01-16 Jakub Jelinek <jakub@redhat.com>
14657
14658 PR tree-optimization/38789
14659 * tree-ssa-threadedge.c
14660 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
14661 __builtin_constant_p.
14662
c95b2534 146632009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com>
cd3f1729
KZ
14664
14665 * dce.c (delete_unmarked_insns): Reversed the order that insns are
14666 examined before deleting them.
2ba9daa7 14667
c433cb14
RE
146682009-01-16 Richard Earnshaw <rearnsha@arm.com>
14669
14670 * function.c (aggregate_value_p): Correctly extract the function
14671 type from CALL_EXPR_FN lookup.
14672
c95b2534 146732009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com>
27d62fa4
HS
14674
14675 * config/picochip/picochip.c (picochip_override_options): Revert
14676 CFI asm flag disable commited previously.
14677
c77bb78f
SP
146782009-01-15 Sebastian Pop <sebastian.pop@amd.com>
14679 Tobias Grosser <tobi.grosser@amd.com>
14680 Jan Sjodin <jan.sjodin@amd.com>
14681
14682 * graphite.c (scan_tree_for_params): On substractions negate
14683 all the coefficients of the term.
14684 (clast_to_gcc_expression_red): New. Handle reduction expressions
14685 of more than two operands.
14686 (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
14687 (get_vdef_before_scop): Handle also the case of default definitions.
14688
574af2d6
RS
146892009-01-15 Richard Sandiford <rdsandiford@googlemail.com>
14690
14691 * caller-save.c (add_used_regs_1, add_used_regs): New functions.
14692 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
14693 Also use them when walking CALL_INSN_FUNCTION_USAGE.
14694
e939805b
L
146952009-01-15 H.J. Lu <hongjiu.lu@intel.com>
14696 Joey Ye <joey.ye@intel.com>
14697
14698 PR middle-end/37843
14699 * cfgexpand.c (expand_stack_alignment): Don't update stack
14700 boundary nor check incoming stack boundary here.
14701 (gimple_expand_cfg): Update stack boundary and check incoming
14702 stack boundary here.
14703
c95b2534 147042009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com>
750900db 14705
435da628 14706 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
2ba9daa7 14707
0196c95e
JJ
147082009-01-14 Jakub Jelinek <jakub@redhat.com>
14709
14710 PR rtl-optimization/38245
14711 * calls.c (expand_call): Add stack arguments to
14712 CALL_INSN_FUNCTION_USAGE even for pure calls (when
14713 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
14714 in regs and partially in memory or BLKmode arguments.
14715 (emit_library_call_value_1): Add stack arguments to
14716 CALL_INSN_FUNCTION_USAGE even for pure calls (when
14717 ACCUMULATE_OUTGOING_ARGS).
14718 * dce.c: Include tm_p.h.
14719 (find_call_stack_args): New function.
14720 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
14721 argument.
14722 (mark_insn): Call find_call_stack_args for CALL_Ps.
14723 (prescan_insns_for_dce): Walk insns backwards in bb rather than
14724 forwards. Allocate and free arg_stores bitmap if needed, pass it
14725 down to deletable_insn_p, don't mark stores set in arg_stores
14726 bitmap, clear the bitmap at the beginning of each bb.
14727 * Makefile.in (dce.o): Depend on $(TM_P_H).
14728
6df6bcfa
MM
147292009-01-14 Michael Meissner <gnu@the-meissners.org>
14730
14731 PR target/22599
435da628
UB
14732 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
14733 to make sure the insn is a conditional test (bug 22599). Reformat a
14734 few long lines.
6df6bcfa 14735
765ec70c
SP
147362009-01-14 Sebastian Pop <sebastian.pop@amd.com>
14737
14738 PR middle-end/38431
14739 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
14740 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
14741 (gloog): Do not call cleanup_tree_cfg.
2ba9daa7 14742 (graphite_transform_loops): Call cleanup_tree_cfg after all
765ec70c
SP
14743 scops have been code generated.
14744
7de2b688
BS
147452009-01-14 Basile Starynkevitch <basile@starynkevitch.net>
14746 * doc/gty.texi (Invoking the garbage collector): Added new node
14747 and section documenting ggc_collect.
14748
10bd6c5c
RG
147492009-01-14 Richard Guenther <rguenther@suse.de>
14750
14751 PR tree-optimization/38826
14752 PR middle-end/38477
14753 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
14754 initialization notes only if we actually emitted a warning.
14755 (intra_create_variable_infos): Add constraints for a result decl
14756 that is passed by hidden reference.
14757 (build_pred_graph): Mark all related variables non-direct on
14758 address-taking.
14759
9c7c70ee
NC
147602009-01-14 Nick Clifton <nickc@redhat.com>
14761
14762 * ira-conflicts.c: Include addresses.h for the definition of
14763 base_reg_class.
435da628
UB
14764 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
14765 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
9c7c70ee 14766
cf0c2a60
VM
147672009-01-13 Vladimir Makarov <vmakarov@redhat.com>
14768
14769 PR target/38811
14770 * Makefile.in (ira-lives.o): Add except.h.
14771
14772 * ira-lives.c: Include except.h.
14773 (process_bb_node_lives): Process can_throw_internal.
14774
d3302fd3
JJ
147752009-01-13 Jakub Jelinek <jakub@redhat.com>
14776
14777 PR rtl-optimization/38774
14778 * combine.c (simplify_set): When undoing cc_use change, don't do
14779 PUT_CODE on the newly created comparison, but instead put back the
14780 old comparison.
14781
7ab23fd0
JM
147822009-01-13 Joseph Myers <joseph@codesourcery.com>
14783
14784 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
14785 values. Remove duplicate arm8 entry.
14786
f9344488
SP
147872009-01-13 Sebastian Pop <sebastian.pop@amd.com>
14788
14789 PR tree-optimization/38786
14790 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
14791 the SSA_NAME case of expand_scalar_variables_expr.
14792 Set the type of an expression to the type of its assign statement.
14793 (expand_scalar_variables_expr): Also gather the scalar computation
14794 used to index the memory access. Do not pass loop_p.
14795 Fix comment. Stop recursion on tcc_constant or tcc_declaration.
14796 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
bef3c57b
UB
14797 the gimple_stmt_iterator where it inserts new code.
14798 Do not pass loop_p.
f9344488
SP
14799 (copy_bb_and_scalar_dependences): Do not pass loop_p.
14800 (translate_clast): Update call to copy_bb_and_scalar_dependences.
14801
2d8bb84d
SP
148022009-01-13 Sebastian Pop <sebastian.pop@amd.com>
14803
14804 * graphite.h (debug_value): Removed.
14805 * graphite.c (debug_value): Removed.
14806
ff128632
RE
148072009-01-13 Richard Earnshaw <rearnsha@arm.com>
14808
435da628
UB
14809 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
14810 ldrd/strd with two 32-bit instructions.
ff128632 14811
d5a0a47b
RE
148122009-01-13 Richard Earnshaw <rearnsha@arm.com>
14813
435da628
UB
14814 * config/arm/arm.c (struct processors): Pass for speed down into
14815 cost helper functions.
d5a0a47b
RE
14816 (const_ok_for_op): Handle COMPARE and inequality nodes.
14817 (arm_rtx_costs_1): Rewrite.
14818 (arm_size_rtx_costs): Update prototype.
14819 (arm_rtx_costs): Pass speed down to helper functions.
14820 (arm_slowmul_rtx_costs): Rework cost calculations.
14821 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
14822 (arm_9e_rtx_costs): Likewise.
14823
26d5bf5b
UB
148242009-01-13 Uros Bizjak <ubizjak@gmail.com>
14825
14826 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
435da628 14827 relocations of local symbols wider than UNITS_PER_WORD are not valid.
26d5bf5b
UB
14828 (alpha_legitimize_address): Do not split local symbols wider than
14829 UNITS_PER_WORD into HIGH/LO_SUM parts.
14830
5d14e3d5
DS
148312009-01-13 Danny Smith <dannysmith@users.sourceforge.net>
14832
14833 PR bootstrap/38580
14834 * gcc.c (process_command): Replace call to execvp with calls
14835 to pex_one and exit.
14836
33faafca
AS
148372009-01-03 Anatoly Sokolov <aesok@post.ru>
14838
14839 PR target/29141
14840 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
14841 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
14842 variant for devices with 3-byte PC.
ba20e309 14843 (__tablejump_elpm__): New.
33faafca 14844
634b5df5
JJ
148452009-01-12 Jakub Jelinek <jakub@redhat.com>
14846
14847 PR c/32041
14848 * c-parser.c (c_parser_postfix_expression): Allow `->' in
14849 offsetof member-designator, handle it as `[0].'.
14850
2842bb86
JDA
148512009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14852
14853 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
14854 function when not using named sections on targets with named sections
14855 if branch distance is less than 262132.
14856
76ee70f6
RE
148572009-01-12 Richard Earnshaw <rearnsha@arm.com>
14858
14859 * combine.c (combine_instructions): Recompute
14860 optimize_this_for_speed_p for each BB in the main combine loop.
14861
f56e675d
TB
148622009-01-12 Tomas Bily <tbily@suse.cz>
14863
14864 PR middlend/38385
26d5bf5b
UB
14865 * tree-loop-distribution.c (prop_phis): New function.
14866 (generate_builtin): Call prop_phis.
14867 * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
f56e675d 14868
c2152239
JJ
148692009-01-12 Jakub Jelinek <jakub@redhat.com>
14870
14871 PR tree-optimization/38807
14872 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
14873 gimple_visited_p unless stmt is GIMPLE_ASSIGN.
14874
0e510b3e
AN
148752009-01-11 Adam Nemet <anemet@caviumnetworks.com>
14876
14877 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
14878 subreg of op0 to the original op0.
14879
c95b2534 148802009-01-11 Laurent GUERBY <laurent@guerby.net>
10270471
LG
14881
14882 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
2ba9daa7 14883
53a7ff9a
MS
148842009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
14885
14886 PR debug/7055
60839f5d 14887 * mips-tfile.c (parse_def): Fix parsing of def strings
53a7ff9a
MS
14888 starting with digits.
14889
b3a796bc
JJ
148902009-01-10 Jakub Jelinek <jakub@redhat.com>
14891
14892 PR target/38695
14893 * config/arm/arm.c (arm_is_long_call_p): Don't call
14894 arm_function_in_section_p if decl isn't a FUNCTION_DECL.
14895
b21b850e
SB
148962009-01-09 Steven Bosscher <steven@gcc.gnu.org>
14897
14898 * regrename.c (regrename_optimize): Fix dumping.
14899 (find_oldest_value_reg): Preserve REG_POINTER.
14900 (copy_hardreg_forward_1): Likewise.
14901
e0e10d3a
DN
149022009-01-09 Diego Novillo <dnovillo@google.com>
14903
bf9b2cc9 14904 * gimple.h (struct gimple_statement_base) <uid>: Document
e0e10d3a
DN
14905 the restrictions on its use.
14906 (gimple_uid): Tidy.
14907 (gimple_set_uid): Tidy.
14908
c9da2ae8
JJ
149092009-01-09 Jakub Jelinek <jakub@redhat.com>
14910
14911 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
14912 zero guard even if align_bytes != 0 and count is smaller than
14913 size_needed.
14914
38432148 149152009-01-09 Vladimir Makarov <vmakarov@redhat.com>
a174c19c
VM
14916
14917 PR rtl-optimization/38495
26d5bf5b 14918 * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
a174c19c
VM
14919 (add_range_and_copies_from_move_list): Print all added ranges.
14920 Add ranges to memory optimized destination.
14921
260fda3d
JJ
149222009-01-09 Jakub Jelinek <jakub@redhat.com>
14923
6f6278ad
JJ
14924 PR target/38686
14925 PR target/38708
14926 * config/i386/i386.c (override_options): Reject
14927 -mstringop-strategy=rep_8byte with -m32.
14928 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
14929 to 1. Do count comparison against epilogue_size_needed at compile
14930 time even when count_exp was constant forced into register. For
14931 size_needed don't jump to epilogue, instead just avoid aligning
14932 and invoke the body algorithm. If need_zero_guard, add zero guard
14933 even if count is non-zero, but smaller than size_needed + number of
14934 bytes that could be stored for alignment.
14935 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
14936 to 1. If need_zero_guard, add zero guard even if count is non-zero,
14937 but smaller than size_needed + number of bytes that could be stored
14938 for alignment. Compare size_needed with epilogue_size_needed instead
14939 of desired_align - align, don't adjust size_needed, pass
14940 epilogue_size_needed to the epilogue expanders.
14941
260fda3d 14942 PR c/35742
26d5bf5b 14943 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
260fda3d 14944
67b846fa
JDA
149452009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14946
14947 * pa.c (last_address): Change to unsigned.
14948 (update_total_code_bytes): Change argument to unsigned. Don't
14949 check if insn addresses are set.
14950 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
14951 addresses are not set.
14952 (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
14953
91c82473
NC
149542009-01-09 Nick Clifton <nickc@redhat.com>
14955
14956 * config/sh/symbian.c: Replace uses of DECL_INLINE with
14957 DECL_DECLARED_INLINE_P.
14958
4017e262
JJ
149592009-01-09 Jakub Jelinek <jakub@redhat.com>
14960
0a49e5c2
JJ
14961 PR middle-end/38347
14962 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
14963 GET_MODE (op0) in operand_subword_force calls.
14964
4017e262
JJ
14965 PR middle-end/38771
14966 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
14967 fold_convert arg0 operands to TREE_TYPE (op0) first.
14968
7cd06356
VM
149692009-01-08 Vladimir Makarov <vmakarov@redhat.com>
14970
14971 * params.def (ira-max-conflict-table-size): Decrease default value
14972 to 1000.
14973
96867bbd
JJ
149742009-01-08 Jakub Jelinek <jakub@redhat.com>
14975
14976 PR tree-optimization/37031
14977 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
14978 on parameter_set.
14979 (build_access_matrix): Reserve correct size for AM_MATRIX vector,
14980 allocate it using gc instead of heap, use VEC_quick_push instead of
14981 VEC_safe_push.
14982 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
14983 instead of heap, use VEC_quick_push instead of VEC_safe_push.
14984 * tree-data-ref.h (struct access_matrix): Change matrix to gc
14985 allocated vector from heap allocated.
14986 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
14987 * tree-loop-linear.c (linear_transform_loops): Allocate nest
14988 vector only after perfect_loop_nest_depth call.
14989
68f61c3d
SP
149902009-01-08 Sebastian Pop <sebastian.pop@amd.com>
14991 Jan Sjodin <jan.sjodin@amd.com>
14992
14993 PR tree-optimization/38559
14994 * graphite.c (debug_value, copy_constraint,
14995 swap_constraint_variables, scale_constraint_variable, ): New.
14996 (get_lower_bound, get_upper_bound): Removed.
14997 (graphite_trans_bb_strip_mine): Clean up this code that works
14998 only for constant number of iterations. Fully copy upper and
14999 lower bound constraints, not only the constant part of them.
15000 * graphite.h (debug_value): Declared.
15001
82567e33
IR
150022009-01-08 Ira Rosen <irar@il.ibm.com>
15003
15004 PR tree-optimization/37194
15005 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
2ba9daa7 15006 Don't add the cost of cost model guard in prologue to scalar
82567e33
IR
15007 outside cost in case of known number of iterations.
15008
7da13f1d
NF
150092009-01-07 Nathan Froyd <froydnj@codesourcery.com>
15010 Alan Modra <amodra@bigpond.net.au>
15011
15012 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
15013 non-word-aligned REG+CONST addressing.
15014
c0f64575
UB
150152009-01-07 Uros Bizjak <ubizjak@gmail.com>
15016
15017 PR target/38706
15018 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
15019 free_after_compilation when outputting a thunk.
15020 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
15021 Do not call free_after_compilation here.
15022
301b6a4e
UB
150232009-01-07 Uros Bizjak <ubizjak@gmail.com>
15024
15025 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
301b6a4e
UB
15026 (ix86_valid_target_attribute_inner_p): Ditto.
15027
6a114766
JS
150282009-01-07 Jan Sjodin <jan.sjodin@amd.com>
15029
15030 PR tree-optimization/38492
15031 PR tree-optimization/38498
15032 * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
15033 * tree-chrec.h (scev_is_linear_expression): Declared.
15034 * graphite.c (graphite_cannot_represent_loop_niter): New.
15035 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
15036 (graphite_loop_normal_form): Use gcc_assert.
15037 (scan_tree_for_params): Use CASE_CONVERT.
15038 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
15039 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
15040 Use gcc_assert. Discard scops that contain unhandled cases.
15041 (build_scop_conditions): Return a boolean status for unhandled cases.
15042 (strip_mine_profitable_p): Print the loop number, not its depth.
15043 (is_interchange_valid): Pass the depth of the loop nest, don't
15044 recompute it wrongly.
15045 (graphite_trans_bb_block): Same.
15046 (graphite_trans_bb_block): Print tentative of loop blocking.
15047 (graphite_trans_scop_block): Do not print that the loop has been
15048 blocked.
15049 (graphite_transform_loops): Do not handle scops that contain condition
15050 scalar phi nodes.
15051
65b82caa
L
150522009-01-07 H.J. Lu <hongjiu.lu@intel.com>
15053
15054 AVX Programming Reference (December, 2008)
15055 * config/i386/avxintrin.h (_mm256_stream_si256): New.
15056 (_mm256_stream_pd): Likewise.
15057 (_mm256_stream_ps): Likewise.
15058
15059 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
15060 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
15061 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
15062 (bdesc_special_args): Add __builtin_ia32_movntdq256,
15063 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
15064 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
15065 (ix86_expand_special_args_builtin): Likewise.
15066
15067 * config/i386/sse.md (AVXMODEDI): New.
15068 (avx_movnt<mode>): Likewise.
15069 (avx_movnt<mode>): Likewise.
15070 (<sse>_movnt<mode>): Remove AVX support.
15071 (sse2_movntv2di): Likewise.
15072
cef158f9
RG
150732009-01-07 Richard Guenther <rguenther@suse.de>
15074
15075 PR middle-end/38751
15076 * fold-const.c (extract_muldiv): Remove obsolete comment.
15077 (fold_plusminus_mult_expr): Undo MINUS_EXPR
15078 to PLUS_EXPR canonicalization for the canonicalization.
15079
246cb5be
GP
150802009-01-07 Gerald Pfeifer <gerald@pfeifer.com>
15081
15082 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
15083 hosted cross-compilers generating less efficient code.
15084
84b9b872
RS
150852009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
15086
15087 * function.h (rtl_data): Add a dbr_scheduled_p field.
15088 * reorg.c (dbr_schedule): Set it.
15089 (gate_handle_delay_slots): Check it.
15090 * config/mips/mips.c (mips_base_delayed_branch): Delete.
15091 (mips_reorg): Check flag_delayed_branch instead of
15092 mips_base_delayed_branch.
15093 (mips_override_options): Don't set mips_base_delayed_branch
15094 or flag_delayed_branch.
15095
ace984c8
RS
150962009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
15097
15098 PR rtl-optimization/38426.
15099 * ira.c (ira): Set current_function_is_leaf earlier.
15100
7ad7809b
JJ
151012009-01-06 Jakub Jelinek <jakub@redhat.com>
15102
15103 PR rtl-optimization/38722
15104 * combine.c (try_combine): Don't modify PATTERN (i3) and notes
15105 too early, only set a flag and modify after last possible
15106 undo_all point.
15107
c52ec948
JJ
151082009-01-06 Janis Johnson <janis187@us.ibm.com>
15109
15110 PR c/34252
15111 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
15112 * real.c (decimal_single_format): Correct values of emin and emax.
15113 (decimal_double_format): Ditto.
15114 (decimal_quad_format): Ditto.
15115 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
15116 computation of DECnn_MIN and DECnn_MAX for corrected values of
15117 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of
15118 __DECnn_MIN__, and adjust its computation for the corrected value
15119 of emin.
15120
300240e1
JH
151212009-01-06 Jan Hubicka <jh@suse.cz>
15122
15123 PR target/38744
435da628 15124 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
300240e1 15125
271c069e
GP
151262009-01-06 Gerald Pfeifer <gerald@pfeifer.com>
15127
15128 * doc/contrib.texi (Contributors): Slightly adjust the end note.
15129 Add Robert Clark to the list of testers.
15130
64e4c301 151312009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 15132 Kai Tietz <kai.tietz@onevision.com>
64e4c301 15133
435da628
UB
15134 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
15135 * config/i386/i386.c (ix86_expand_call): Add clobbers.
64e4c301 15136
7650b83e 151372009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 15138 Kai Tietz <kai.tietz@onevision.com>
7650b83e 15139
435da628
UB
15140 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
15141 for w64 ABI.
15142 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
7650b83e
JH
15143 (ix86_nsaved_regs): Count only general purpose regs.
15144 (ix86_nsaved_sseregs): New.
15145 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
15146 to 16 for w64; compute padding and size of sse reg save area.
301b6a4e
UB
15147 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
15148 general purpose regs.
7650b83e
JH
15149 (ix86_emit_save_sse_regs_using_mov): New.
15150 (ix86_expand_prologue): Save SSE regs if needed.
15151 (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
15152 (ix86_emit_restore_sse_regs_using_mov): New.
15153 (ix86_expand_epilogue): Save SSE regs if needed.
15154
9aa5c1b2 151552009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 15156 Kai Tietz <kai.tietz@onevision.com>
9aa5c1b2 15157
435da628
UB
15158 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
15159 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
15160 functions when accumulate outgoing args is off.
9aa5c1b2 15161
f7556aae
L
151622009-01-06 H.J. Lu <hongjiu.lu@intel.com>
15163
15164 PR bootstrap/38742
15165 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
15166 before using pseudos_have_intersected_live_ranges_p.
15167
15168 * ira-int.h (ira_assert): Always define.
15169
e47b7d04
L
151702009-01-06 H.J. Lu <hongjiu.lu@intel.com>
15171
15172 AVX Programming Reference (December, 2008)
15173 * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
15174 (_mm256_permute2_pd): Likewise.
15175 (_mm_permute2_ps): Likewise.
15176 (_mm256_permute2_ps): Likewise.
15177 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
15178 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
15179
15180 * config/i386/i386.c (ix86_builtins): Remove
15181 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
15182 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
15183 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
15184 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
15185 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
15186 (bdesc_args): Remove __builtin_ia32_vpermil2pd,
15187 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
15188 __builtin_ia32_vpermil2ps256.
15189 (ix86_init_mmx_sse_builtins): Updated.
15190 (ix86_expand_args_builtin): Likewise.
15191
44b86471
JDA
151922009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15193
e47b7d04
L
15194 * pa.c (output_call): Relocate non-jump insns in the delay slot of
15195 long absolute calls when generating PA 2.0 code.
44b86471 15196
311aab06
VM
151972009-01-05 Vladimir Makarov <vmakarov@redhat.com>
15198
15199 PR rtl-optimization/38583
15200 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
15201
15202 * params.def (ira-max-conflict-table-size): New.
15203
15204 * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
2ba9daa7 15205
311aab06 15206 * ira.h (ira_conflicts_p): New external definition.
2ba9daa7 15207
311aab06
VM
15208 * ira-conflicts.c (build_conflict_bit_table): Do not build too big
15209 table. Report this. Return result of building.
15210 (ira_build_conflicts): Use ira_conflicts_p. Check result of
15211 building conflict table.
15212
301b6a4e 15213 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
311aab06 15214 (ira_color): Use ira_conflicts_p.
2ba9daa7 15215
311aab06
VM
15216 * global.c: Include ira.h.
15217 (pseudo_for_reload_consideration_p, build_insn_chain): Use
15218 ira_conflicts_p.
15219
15220 * Makefile.in (global.o): Add ira.h.
2ba9daa7 15221
311aab06
VM
15222 * ira-build.c (mark_all_loops_for_removal,
15223 propagate_some_info_from_allocno): New.
15224 (remove_unnecessary_allocnos): Call
15225 propagate_some_info_from_allocno.
15226 (remove_low_level_allocnos): New.
15227 (remove_unnecessary_regions): Add parameter. Call
15228 mark_all_loops_for_removal and remove_low_level_allocnos. Pass
15229 parameter to remove_unnecessary_regions.
15230 (ira_build): Remove all regions but root if the conflict table was
15231 not built. Update conflict hard regs for allocnos crossing calls.
15232
15233 * ira.c (ira_conflicts_p): New global.
15234 (ira): Define and use ira_conflicts_p.
15235
15236 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
15237 count_spilled_pseudo, find_reg, alter_reg, finish_spills,
301b6a4e 15238 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
2ba9daa7 15239
5641785f
BE
152402009-01-06 Ben Elliston <bje@au.ibm.com>
15241
15242 * gengtype-lex.l (YY_NO_INPUT): Define.
15243
e4e5261f
AP
152442009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
15245
15246 PR c/34911
5641785f
BE
15247 * c-common.c (handle_vector_size_attribute): Also reject
15248 BOOLEAN_TYPE types.
e4e5261f 15249
7b10257f
SP
152502009-01-05 Sebastian Pop <sebastian.pop@amd.com>
15251
15252 PR tree-optimization/38492
15253 * graphite.c (rename_map_elt, debug_rename_elt,
301b6a4e
UB
15254 debug_rename_map_1, debug_rename_map, new_rename_map_elt,
15255 rename_map_elt_info, eq_rename_map_elts,
15256 get_new_name_from_old_name, bb_in_sese_p): Moved around.
7b10257f
SP
15257 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
15258 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
15259 (sese_build_livein_liveouts): New.
15260 (new_sese, free_sese): New.
15261 (new_scop): Call new_sese.
15262 (free_scop): Call free_sese.
15263 (rename_variables_from_edge, rename_phis_end_scop): Removed.
15264 (register_old_new_names): Renamed register_old_and_new_names.
15265 (register_scop_liveout_renames, add_loop_exit_phis,
15266 insert_loop_close_phis, struct igp,
15267 default_liveout_before_guard, add_guard_exit_phis,
15268 insert_guard_phis, copy_renames): New.
15269 (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
15270 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
15271 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
15272 (scop_adjust_phis_for_liveouts): New.
15273 (gloog): Call scop_adjust_phis_for_liveouts.
15274
15275 * graphite.h (struct sese): Documented. Added fields liveout,
301b6a4e 15276 num_ver and livein.
7b10257f
SP
15277 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
15278 (new_sese, free_sese, sese_build_livein_liveouts): Declared.
15279 (struct scop): Added field liveout_renames.
15280 (SCOP_LIVEOUT_RENAMES): New.
15281
9761fcc7
HJ
152822009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
15283
15284 PR tree-optimization/38510
15285 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
15286 (translate_clast): Call recompute_all_dominators before
15287 graphite_verify.
15288 (gloog): Call recompute_all_dominators before graphite_verify.
15289
152902009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
c95b2534 15291 Jan Sjodin <jan.sjodin@amd.com>
9761fcc7
HJ
15292
15293 PR tree-optimization/38500
15294 * graphite.c (create_sese_edges): Call fix_loop_structure after
15295 splitting blocks.
15296
c95b2534 152972009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
48a01864
JS
15298
15299 * config.gcc: Add m32r*-*-rtems*.
15300 * config/m32r/rtems.h: New file.
15301
fc0cd180
BE
153022009-01-05 Ben Elliston <bje@au.ibm.com>
15303
15304 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
15305 (.po.pox): Likewise.
15306 (po/gcc.pot): Likewise.
15307
3106d8e5
DM
153082009-01-04 David S. Miller <davem@davemloft.net>
15309
15310 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
15311 (STARTING_FRAME_OFFSET): Always set to zero.
15312
0009b473
RS
153132009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
15314
15315 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
15316 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
15317 fixed-point types, and vectors of the same.
15318
4f24c6d6
RS
153192009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
15320
15321 * config/mips/sync.md (*mb_barrier): Rename to...
15322 (*memory_barrier): ...this.
15323
1df48f5c
JW
153242009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com>
15325
15326 * doc/extend.texi (Function Attributes): Move @cindex after @item
eefe5da0 15327 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
1df48f5c
JW
15328 and put in alphabetical order. Fix 'target' name and put in order.
15329 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
15330 typos.
15331
1a8c13b3
UB
153322009-01-04 Uros Bizjak <ubizjak@gmail.com>
15333
15334 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
15335 (memory_barrier): Expand as unspec instead of unspec_volatile.
15336 Remove mem:BLK from insn operands. Use Pmode scratch register.
15337 (*memory_barrier): Define as unspec instead of unspec_volatile.
15338 Use (match_dup 0) as input operand.
15339
15340 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
15341 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
15342 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
15343 scratch register. Remove operand 1.
15344 (*stbar): Define as unspec instead of unspec_volatile.
15345 Use (match_dup 0) as input operand, remove (const_int 8).
15346 (*membar): Define as unspec instead of unspec_volatile.
15347 Use (match_dup 0) as input operand, remove input operand 2.
15348
15349 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
15350 (memory_barrier): Expand as unspec instead of unspec_volatile.
15351 Remove mem:BLK from insn operands. Use Pmode scratch register.
15352 (*memory_barrier): Define as unspec instead of unspec_volatile.
15353 Use (match_dup 0) as input operand.
15354
15355 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
15356 Remove mem:BLK from insn operands. Use Pmode scratch register.
15357 Set volatile flag on operand 0.
15358 (*memory_barrier): New insn pattern.
15359
15360 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
15361 insn operands.
15362 (*memory_barrier): Use (match_dup 0) as input operand.
15363
15364 * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
15365 Remove mem:BLK from insn operands. Use Pmode scratch register.
15366 Set volatile flag on operand 0.
301b6a4e 15367 (*mb_internal): New insn pattern.
1a8c13b3
UB
15368
15369 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
15370
fb0703f7
SB
153712009-01-04 Steven Bosscher <steven@gcc.gnu.org>
15372
15373 PR middle-end/38586
15374 * function.c (struct temp_slot): Move to the section of the file
15375 that deals with temp slots. Remove field 'address'.
15376 (temp_slot_address_table): New hash table of address -> temp slot.
15377 (struct temp_slot_address_entry): New struct, items for the table.
15378 (temp_slot_address_compute_hash, temp_slot_address_hash,
15379 temp_slot_address_eq, insert_temp_slot_address): Support functions
15380 for the new table.
15381 (find_temp_slot_from_address): Rewrite to use the new hash table.
15382 (remove_unused_temp_slot_addresses): Remove addresses of temp
15383 slots that have been made available.
15384 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
15385 worker function for remove_unused_temp_slot_addresses.
15386 (assign_stack_temp_for_type): Don't clear the temp slot address list.
15387 Add the temp slot address to the address -> temp slot map.
15388 (update_temp_slot_address): Update via insert_temp_slot_address.
15389 (free_temp_slots): Call remove_unused_temp_slot_addresses.
15390 (pop_temp_slots): Likewise.
15391 (init_temp_slots): Allocate the address -> temp slot map, or empty
15392 the map if it is already allocated.
15393 (prepare_function_start): Initialize temp slot processing.
15394
b5a430f3
SB
153952009-01-04 Steven Bosscher <steven@gcc.gnu.org>
15396
15397 PR middle-end/38584
15398 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
15399 Calculate the size of all stack vars assuming no packing of stack
15400 vars will happen, replacing a quadratic algorithm with a linear one.
15401
5d560619
JJ
154022009-01-03 Jakub Jelinek <jakub@redhat.com>
15403
15404 PR target/38707
15405 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
15406 can't be used.
15407
953a7caa
DN
154082009-01-03 Diego Novillo <dnovillo@google.com>
15409
15410 * doc/contrib.texi: Update contributions.
15411
5f26a230
JJ
154122009-01-03 Jakub Jelinek <jakub@redhat.com>
15413
493aa551
JJ
15414 PR c++/38705
15415 * builtins.c (fold_builtin_memory_op): Give up if either operand
15416 is volatile. Set srctype or desttype to non-qualified version
15417 of the other type.
15418
5f26a230
JJ
15419 PR c/38700
15420 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
15421 and FUNCTION_DECLs.
15422
c95b2534 154232009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
fafe34f9
KZ
15424
15425 PR rtl-optimization/35805
15426 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
15427 problem if fast dce is able to remove any instructions.
15428 * dce.c (dce_process_block): Fix dump message.
2ba9daa7 15429
0b355794
MM
154302009-01-02 Mark Mitchell <mark@codesourcery.com>
15431
15432 PR 33649
15433 * tree-ssa-pre.c (compute_antic): Correct loop bounds.
15434
0cf0d02b
JJ
154352009-01-02 Jakub Jelinek <jakub@redhat.com>
15436
15437 PR middle-end/38690
15438 * tree-flow.h (op_code_prio, op_prio): New prototypes.
15439 * tree-pretty-print.c (op_code_prio): New function.
15440 (op_prio): No longer static. Use op_code_prio.
15441 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
15442 Use op_prio and op_code_prio to determine if () should be
15443 printed around operand(s) or not.
15444
15445 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
15446 dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
15447 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
15448 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
15449 pp_character instead of pp_string for single letter printing.
15450
e3606f3b
RS
154512009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
15452
15453 * doc/extend.texi: Fix '#pragma GCC option' typo.
15454
c95b2534 154552009-01-02 Richard Guenther <rguenther@suse.de>
00f39bd5 15456
a5f061dc
RG
15457 * doc/install.texi (--enable-checking): Mention different
15458 default for stage1.
15459 (--enable-stage1-checking): Document.
00f39bd5 15460
26de0bcb
AP
154612009-01-01 Andrew Pinski <pinskia@gmail.com>
15462
15463 PR middle-end/30142
15464 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
15465 case to be an error.
15466
7a7d8fab
BE
154672009-01-02 Ben Elliston <bje@au.ibm.com>
15468
15469 * config/fp-bit.h (pack_d): Constify argument.
15470 * config/fp-bit.c (makenan): Constify return type. Remove casts.
15471 (isnan): Constify argument.
15472 (isinf): Likewise.
15473 (iszero): Likewise.
15474 (pack_d): Likewise.
15475 (_fpadd_parts): Constify return type.
15476 (_fpmul_parts): Likewise.
15477 (_fpdiv_parts): Likewise.
15478
b295aee2
JJ
154792009-01-01 Jakub Jelinek <jakub@redhat.com>
15480
15481 PR c/36489
15482 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only
15483 warn about overwriting initializer with side-effects or
15484 -Woverride-init if !IMPLICIT.
15485 (output_init_element): Likewise. Pass IMPLICIT down to
15486 add_pending_init.
15487 (process_init_element): Add IMPLICIT argument. Pass it down
15488 to output_init_element.
15489 (push_init_element, pop_init_level, set_designator): Adjust
15490 process_init_element callers.
15491 (set_nonincremental_init, set_nonincremental_init_from_string):
15492 Adjust add_pending_init callers.
15493 (output_pending_init_elements): Adjust output_init_element callers.
15494 * c-tree.h (process_init_element): Adjust prototype.
15495 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
15496 process_init_element callers.
ad41bd84
JM
15497
15498\f
15499Copyright (C) 2009 Free Software Foundation, Inc.
15500
15501Copying and distribution of this file, with or without modification,
15502are permitted in any medium without royalty provided the copyright
15503notice and this notice are preserved.