]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
s390.md ("bswap<mode>2"): Only available on z900.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
677fbff4
AK
12009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2
3 * config/s390/s390.md ("bswap<mode>2"): Only available on z900.
4
03bd2f1a
AK
52009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6
7 * passes.c: Add bswap pass.
8 * tree-pass.h: Add pass_optimize_bswap declaration.
9 * tree-ssa-math-opts.c: Include diagnostics.h for print_gimple_stmt.
10 Include rtl.h, expr.h and optabs.h for optab_handler check.
11 (struct symbolic_number, pass_optimize_bswap): New definition.
12 (do_shift_rotate, verify_symbolic_number_p): New functions.
13 (find_bswap_1, find_bswap, execute_optimize_bswap): New functions.
14 (gate_optimize_bswap): New function.
15 * tree.c (widest_int_cst_value): New function.
16 * tree.h (widest_int_cst_value): Prototype added.
17
fb4c4640
SB
182009-06-14 Steven Bosscher <steven@gcc.gnu.org>
19
20 * cfgcleanup.c (old_insns_match_p): Remove code to substitute
21 REG_EQUAL/REG_EQUIV notes.
22
1d24fdd9
RG
232009-06-14 Richard Guenther <rguenther@suse.de>
24
25 PR middle-end/40389
26 * gimple.c (walk_stmt_load_store_addr_ops): The LHS of a call
27 has its address taken if NRV was applied and it is addressable.
28 * tree-ssa-structalias.c (get_constraint_for_address_of): New
29 function split out from ...
30 (get_constraint_for_1): ... here.
31 (handle_rhs_call): Use it to mark the return slot escaped if
32 it is addressable and NRV was applied.
33
4b29c5e5
AH
342009-06-13 Aldy Hernandez <aldyh@redhat.com>
35
36 * config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin):
37 Change first argument type to location_t.
38 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Same.
39 Do not set input_location.
40 Use loc instead of input_location throughout.
41
e1e6dc73
RG
422009-06-13 Richard Guenther <rguenther@suse.de>
43
1d24fdd9 44 PR tree-optimization/40421
e1e6dc73
RG
45 * tree-predcom.c (should_unroll_loop_p): Remove.
46 (tree_predictive_commoning_loop): Use can_unroll_loop_p.
47
8012b923
MM
482009-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
49
50 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
51 Add location argument.
52
4c4bde29
AH
532009-06-13 Aldy Hernandez <aldyh@redhat.com>
54
55 * config/alpha/alpha.c (alpha_build_builtin_va_list): Pass location to
56 build_decl.
57 * config/s390/s390.c (s390_build_builtin_va_list): Same.
58 (s390_gimplify_va_arg): Pass location to create_artificial_label.
59 * config/spu/spu-protos.h: Add location to
60 spu_resolve_overloaded_builtin.
61 * config/spu/spu.c (spu_build_builtin_va_list): Pass location to
62 spu_build_builtin_va_list.
63 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Add location
64 argument. Pass location to build_function_call_vec.
65 * config/sh/sh.c (sh_build_builtin_va_list): Pass location to
66 build_decl.
67 (emit_fpu_switch): Same.
68 (sh_gimplify_va_arg_expr): Pass location to create_artificial_label.
69 * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Pass location
70 to build_decl and create_artificial_label.
71 (xtensa_gimplify_va_arg_expr): Same.
72 * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list): Same.
73 (xstormy16_gimplify_va_arg_expr): Same.
74 * config/iq2000/iq2000.c (iq2000_expand_prologue): Same.
75 * config/arm/arm.c (arm_build_builtin_va_list): Same.
76 * config/mips/mips.c (mips_build_builtin_va_list): Same.
77 (mips16_build_function_stub): Same.
78 (mips16_build_call_stub): Same.
79
81beb031
RE
802009-06-13 Richard Earnshaw <rearnsha@arm.com>
81
82 PR target/40327
83 * arm/constraints.md (Pa, Pb): New constraints.
84 * arm/arm.md (thumb1_addsi3): Support more complex additions. Add a
85 split pattern to deal with them.
86
98f6c600
JS
872009-06-13 Joerg Sonnenberger <joerg@britannica.bec.de>
88
89 * doc/invoke.texi: Add missing option -Wp,OPTION in list,
90 fix index entry for -Xpreprocessor.
91
71856685
AH
922009-06-12 Aldy Hernandez <aldyh@redhat.com>
93
94 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
95 Add location argument to build_decl call.
96 * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Same.
97 (rs6000_init_builtins): Same.
98 (spe_init_builtins): Same.
99 (rs6000_gimplify_va_arg): Add location argument to
100 create_artificial_label call.
101
756b65f5
SB
1022009-06-12 Steven Bosscher <steven@gcc.gnu.org>
103
104 * timevar.def (TV_COMBINE_STACK_ADJUST): New timevar.
105 * combine-stack-adj.c (pass_stack_adjustments): Use it.
106 * Makefile.in: Fix GGC dependency for gcse.o.
107
c2255bc4
AH
1082009-06-12 Aldy Hernandez <aldyh@redhat.com>
109
110 * tree-pretty-print.c (dump_generic_node): Dump column numbers.
111 * gimple-pretty-print.c (dump_gimple_stmt): Same.
112 * gimplify.c (gimplify_modify_expr): Set location for GIMPLE_ASSIGNs
113 created.
114 * c-parser.c (c_parser_binary_expression): Use current column while
115 building binary operations.
116 * common.opt (fshow-column): Enable by default.
117 * tree-vrp.c (check_array_ref): Use warning_at.
118 (check_array_bounds): Use location from call back if expr has no
119 location.
120 * tree.h: Add location argument to maybe_fold_*.
121 * tree-ssa-ccp.c (ccp_fold): Pass location to maybe_fold_*.
122 (maybe_fold_offset_to_array_ref): Add location argument and use it.
123 (maybe_fold_offset_to_component_ref): Same.
124 (maybe_fold_offset_to_reference): Same.
125 (maybe_fold_offset_to_address): Same.
126 (maybe_fold_stmt_indirect): Same.
127 (maybe_fold_stmt_addition): Same.
128 (fold_stmt_r): Pass location to maybe_fold_*.
129 (fold_gimple_assign): Same.
130 * c-tree.h: Add location argument to finish_decl,
131 default_function_array_conversion, store_init_value.
132 * c-decl.c (define_label): Use error_at.
133 (c_make_fname_decl): Pass location to finish_decl.
134 (finish_decl): New location argument.
135 (build_compound_literal): Pass location to store_init_value.
136 (grokdeclarator): Pass location to finish_decl.
137 (grokfield): Same.
138 * c-typeck.c (array_to_pointer_conversion): New location argument.
139 (function_to_pointer_conversion): Same.
140 (default_function_array_conversion): Same.
141 (parser_build_unary_op): Pass location to overflow_warning.
142 (parser_build_binary_op): Same. Use warning_at.
143 (build_unary_op): Pass location to array_to_pointer_conversion.
144 (build_c_cast): Pass location to digest_init.
145 (build_modify_expr): New location argument.
146 (convert_for_assignment): Same.
147 (store_init_value): Same.
148 (digest_init): Same.
149 (output_init_element): Pass location to digest_init and
150 array_to_pointer_conversion.
151 (c_finish_return): Pass location to convert_for_assignment.
152 * gimplify.c (gimplify_conversion): Pass location to
153 maybe_fold_offset_to_address.
154 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Pass location
155 to maybe_fold_stmt_addition.
156 * c-omp.c (c_finish_omp_atomic): Pass new location to
157 build_modify_expr.
158 (c_finish_omp_for): Same.
159 * c-common.c (overflow_warning): New argument.
160 * c-common.h: New argument to build_modify_expr, overflow_warning.
161 * c-parser.c (c_parser_declaration_or_fndef): Pass location to
162 finish_decl.
163 (c_parser_initializer): Pass location to
164 default_function_array_conversion.
165 (c_parser_initelt): Same.
166 (c_parser_initval): Same.
167 (c_parser_asm_operands): Same.
168 (c_parser_expr_no_commas): Same. Pass location to build_modify_expr.
169 (c_parser_conditional_expression): Same.
170 (c_parser_binary_expression): Add location info to stack. Use it.
171 (c_parser_unary_expression): Pass location to
172 default_function_array_conversion, parser_build_unary_op,
173 build_indirect_ref, c_parser_postfix_expression_after_primary.
174 (c_parser_postfix_expression_after_primary): New location argument.
175 Use it.
176 (c_parser_expression_conv): Pass location to
177 default_function_array_conversion.
178 (c_parser_expr_list): Same.
179 (c_parser_omp_atomic): Same.
180 (c_parser_omp_for_loop): Same.
181 * c-tree.h: (struct c_declarator): Add comment to id_loc.
182 (build_array_declarator): New argument.
183 * c-decl.c (build_array_declarator): Add location argument.
184 (grokdeclarator): Set id_loc for cdk_array.
185 * c-parser.c (c_parser_direct_declarator_inner): Pass location to
186 build_array_declarator.
187 * tree.c (build_omp_clause): Add location argument.
188 * tree.h (OMP_CLAUSE_HAS_LOCATION): New macro.
189 (OMP_CLAUSE_LOCATION): New macro.
190 (struct tree_omp_clause): Add location field.
191 (build_omp_clause): Add argument.
192 * testsuite/gcc.dg/gomp/for-1.c: Fix column.
193 * cp/pt.c (tsubst_omp_for_iterator): Pass location to
194 build_omp_clause.
195 * cp/parser.c (cp_parser_omp_var_list_no_open): Same.
196 (cp_parser_omp_clause_collapse): Same.
197 (cp_parser_omp_clause_default): Same.
198 (cp_parser_omp_clause_if): Same.
199 (cp_parser_omp_clause_nowait): Same.
200 (cp_parser_omp_clause_num_threads): Same.
201 (cp_parser_omp_clause_ordered): Same.
202 (cp_parser_omp_clause_schedule): Same.
203 (cp_parser_omp_clause_untied): Same.
204 (cp_parser_omp_for_loop): Same.
205 (cp_parser_omp_parallel): Pass location to c_split_parallel_clauses.
206 * c-tree.h (c_start_case): Add location argument.
207 (c_process_expr_stmt): Same.
208 (c_finish_goto_*): Same.
209 * tree-parloops.c (initialize_reductions): Pass location to
210 build_omp_clause.
211 (create_parallel_loop): Same.
212 * fortran/trans-openmp.c (gfc_trans_omp_variable_list): Same.
213 (gfc_trans_omp_reduction_list): Same.
214 (gfc_trans_omp_clauses): Same.
215 (gfc_trans_omp_do): Same.
216 * c-typeck.c (c_finish_goto_label): Same.
217 (c_finish_goto_ptr): New location argument.
218 (c_start_case): Same.
219 (emit_side_effect_warnings): Same.
220 (c_process_expr_stmt): Same.
221 (c_finish_stmt_expr): Same.
222 (c_finish_omp_clauses): Use error_at instead of error.
223 * gimplify.c (gimplify_adjust_omp_clauses_1): Pass location to
224 build_omp_clause.
225 * c-omp.c (c_split_parallel_clauses): New location argument.
226 * tree-nested.c (convert_nonlocal_reference_stmt): Pass location
227 to build_omp_clause.
228 (convert_local_reference_stmt): Same.
229 (convert_gimple_call): Same.
230 * c-common.h (c_split_parallel_clauses): New argument.
231 * c-parser.c (c_parser_statement_after_labels): Pass location to
232 c_finish_goto_label.
233 (c_parser_switch_statement): Pass location to c_start_case.
234 (c_parser_for_statement): Pass location to c_finish_expr_stmt,
235 and c_process_expr_stmt.
236 (c_parser_omp_variable_list): Add location argument.
237 (c_parser_omp_clause_collapse): Pass location to
238 build_omp_clause.
239 (c_parser_omp_clause_default): Same.
240 (c_parser_omp_clause_if): Same.
241 (c_parser_omp_clause_num_threads): Same.
242 (-c_parser_omp_clause_ordered): Same.
243 (c_parser_omp_clause_reduction): Pass location to
244 c_parser_omp_variable_list.
245 (c_parser_omp_clause_schedule): Pass location to build_omp_clause.
246 (c_parser_omp_clause_untied): Same.
247 (c_parser_omp_for_loop): Pass location to c_process_expr_stmt.
248 (c_parser_omp_parallel): Pass location to
249 c_split_parallel_clauses.
250
251 * c-tree.h (check_for_loop_decls, undeclared_variable,
252 build_component_ref, build_array_ref, build_external_ref,
253 c_expr_sizeof_expr, c_expr_sizeof_type, parser_build_unary_op,
254 build_conditional_expr, build_compound_expr, c_cast_expr,
255 build_c_cast, build_asm_expr, c_end_compound_stmt, c_finish_stmt_expr,
256 c_finish_return, c_finish_omp_parallel, c_finish_omp_task): New
257 argument.
258 * c-semantics.c (build_stmt): Same.
259 (build_case_label): Same.
260 * c-decl.c (c_finish_incomplete_decl): Pass location on down.
261 (undeclared_variable): New argument.
262 (make_label): Same.
263 (lookup_label): Pass location on down.
264 (define_label): Same.
265 (finish_decl): Same.
266 (build_compound_literal): Same.
267 (finish_struct): Same.
268 (finish_function): Do not set location here.
269 (check_for_loop_decls): New argument.
270 * tree.c (save_expr): Set location.
271 (build_empty_stmt): New argument.
272 * tree.h (build_empty_stmt): New argument to build_empty_stmt.
273 (CAN_HAVE_LOCATION_P): Make sure we have a non empty node.
274 * builtins.c (gimplify_va_arg_expr): Use locations.
275 (expand_builtin_sync_operation): Same.
276 * c-typeck.c (build_component_ref): New argument.
277 (build_array_ref): Same.
278 (build_external_ref): Same.
279 (c_expr_sizeof_expr): Same.
280 (c_expr_sizeof_type): Same.
281 (parser_build_unary_op): Same.
282 (build_conditional_expr): Same.
283 (build_compound_expr): Pass location on down.
284 (build_compound_expr): New argument.
285 (build_c_cast): Same.
286 (c_cast_expr): Same.
287 (build_asm_expr): Same.
288 (c_finish_return): Same.
289 (c_process_expr_stmt): Pass location on down.
290 (c_finish_stmt_expr): New argument.
291 (push_clenaup): Same.
292 (c_finish_omp_parallel): Same.
293 (c_finish_omp_task): Same.
294 * gimplify.c (gimplify_call_expr): Pass location on down.
295 * c-omp.c (c_finish_omp_master): New argument.
296 (c_finish_omp_critical): Same.
297 (c_finish_omp_ordered): Same.
298 (c_finish_omp_barrier): Same.
299 (-c_finish_omp_taskwait): Same.
300 (c_finish_omp_atomic): Same.
301 (c_finish_omp_flush): Same.
302 * tree-inline.c (copy_tree_body_r): Pass location on down.
303 (inline_forbidden_p): Remove use of input_location.
304 * c-gimplify.c (c_build_bind_expr): New argument.
305 * c-common.c (c_common_truthvalue_conversion): Pass location on down.
306 (c_sizeof_or_alignof_type): New argument.
307 (c_alignof_expr): Same.
308 (build_va_arg): Same.
309 (c_add_case_label): Same.
310 * c-common.h (c_sizeof_or_alignof_type, c_alignof_expr,
311 c_sizeof, c_alignof, build_va_arg, build_stmt, build_case_label,
312 c_build_bind_expr, objc_build_selector_expr, objc_build_throw_stmt,
313 c_finish_omp_master, c_finish_omp_critical, c_finish_omp_ordered,
314 c_finish_omp_barrier, c_finish_omp_atomic, c_finish_omp_flush,
315 c_finish_omp_taskwait, c_finish_omp_for, c_split_parallel_clauses):
316 New argument.
317 * stub-objc.c (objc_build_selector_expr): Same.
318 (objc_build_throw_stmt): Same.
319 * c-parser.c (c_parser_declaration_or_fndef): Pass location on down.
320 (c_parser_initelt): Same.
321 (c_parser_compound_statement): Same.
322 (c_parser_compound_statement_nostart): Same.
323 (c_parser_label): Same.
324 (c_parser_statement_after_labels): Same.
325 (c_parser_if_body): Same.
326 (c_parser_else_body): Same.
327 (c_parser_if_statement): Same.
328 (c_parser_switch_statement): Same.
329 (c_parser_while_statement): Same.
330 (c_parser_do_statement): Same.
331 (c_parser_for_statement): Same.
332 (c_parser_asm_statement): Same.
333 (c_parser_conditional_expression): Same.
334 (c_parser_binary_expression): Same.
335 (c_parser_cast_expression): Same.
336 (c_parser_unary_expression): Same.
337 (c_parser_sizeof_expression): Same.
338 (c_parser_alignof_expression): Same.
339 (c_parser_postfix_expression): Same.
340 (c_parser_expression): Same.
341 (c_parser_objc_receiver): Same.
342 (c_parser_omp_variable_list): Same.
343 (c_parser_omp_structured_block): Same.
344 (c_parser_omp_atomic): New argument.
345 (c_parser_omp_barrier): Same.
346 (c_parser_omp_critical): Same.
347 (c_parser_omp_flush): Pass location on down.
348 (c_parser_omp_for_loop): New argument.
349 (c_parser_omp_for): Same.
350 (c_parser_omp_master): Same.
351 (c_parser_omp_ordered): Same.
352 (c_parser_omp_sections_scope): Same.
353 (c_parser_omp_sections): Same.
354 (c_parser_omp_parallel): Same.
355 (c_parser_omp_single): Same.
356 (c_parser_omp_task): Same.
357 (c_parser_omp_taskwait): Pass location on down.
358 (c_parser_omp_construct): Same.
359 (c_parser_omp_threadprivate): Same.
360 * dwarf2asm.c, targhooks.c, optabs.c, tree.c, tree.h, target.h,
361 builtins.c, omp-low.c, cgraphunit.c, tree-call-cdce.c,
362 tree-ssa-alias.c, gimple-low.c, c-tree.h, expr.c, tree-parloops.c,
363 c-decl.c, tree-eh.c, langhooks.c, function.c, stor-layout.c,
364 c-typeck.c, gimplify.c, c-pragma.c, expmed.c, except.c, coverage.c,
365 emit-rtl.c, cfgexpand.c, tree-mudflap.c, varasm.c, tree-nested.c,
366 rtl.h, tree-inline.c, tree-profile.c, c-common.c, c-common.h,
367 tree-switch-conversion.c, tree-cfg.c, ipa-struct-reorg.c, c-parser.c,
368 config/i386/i386.c, stmt.c:
369 Add location argument to the following function definitions and/or
370 function calls: build_decl, objcp_start_struct, objcp_finish_struct,
371 start_struct, finish_struct, PUSH_FIELD, create_artificial_label,
372 cp_make_fname_decl, pushtag, implicitly_declare, c_make_fname_decl,
373 build_compound_literal, parser_xref_tag, resolve_overloaded_builtin,
374 do_case, c_finish_bc_stmt, build_compound_literal,
375 build_function_call.
376 * c-decl.c (build_compound_literal): Add location argument.
377 Make all diagnostic calls use location.
378 (start_struct): Same.
379 (finish_struct): Same.
380 (start_enum): Same.
381 (build_enumerator): Same.
382 (start_function): Same.
383 (grokdeclarator): Make all diagnostic calls use location.
384 (store_parm_decls_oldstyle): Same.
385 * c-typeck.c (build_function_call): Add location argument.
386 Make all diagnostic calls use location.
387 (do_case): Same.
388 (c_finish_bc_stmt): Same.
389 * tree-nested.c (get_trampoline_type): Add argument.
390 Pass location to build_decl.
391 (lookup_tramp_for_decl): Pass location to get_trampoline_type.
392 * rtl.h (RTL_LOCATION): New.
393 * c-common.c (c_add_case_label): Add location argument.
394 Make all diagnostic calls use location.
395 * c-common.h: Add location argument to make_fname_decl, do_case,
396 c_add_case_label, build_function_call, resolve_overloaded_builtin.
397 * c-parser.c (c_parser_enum_specifier): Rename ident_loc to enum_loc.
398 Set it appropriately for every case. Pass enum_loc to start_enum
399 call. Pass value_loc first to build_enumerator. Pass enum_loc to
400 parser_xref_tag.
401 (c_parser_struct_or_union_specifier): Save location. Use it for
402 start_struct, finish_struct, and parser_xref_tag.
403
3d8b2a98
ILT
4042009-06-12 Ian Lance Taylor <iant@google.com>
405
406 * fold-const.c (fold_unary): Rename local variable and to
407 and_expr.
408
409 * c-opts.c (c_common_handle_option): For -Wc++-compat set
410 cpp_opts->warn_cxx_operator_names.
411
737142ce
AP
4122009-06-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
413
414 PR tree-opt/38865
415 * tree-ssa-sccvn.c (visit_reference_op_load): If vn_reference_lookup
416 is returns NULL and OP is a VCE, look through the VCE.
417
d3a0d55d
ILT
4182009-06-12 Ian Lance Taylor <iant@google.com>
419
420 PR bootstrap/40430
421 * collect2.c (main): Use CONST_CAST2 in code inside #if
422 LINK_ELIMINATE_DUPLICATE_LDIRECTORIES.
423
f85882d8
JY
4242009-06-12 Joey Ye <joey.ye@intel.com>
425
426 PR middle-end/39146
427 * cfgexpand.c (get_decl_align_unit): Update
428 max_used_stack_slot_alignment with align instead of
429 stack_alignment_needed.
430
431 * function.c (assign_stack_local_1): Update
432 max_used_stack_slot_alignment with alignment_in_bits instead
433 of stack_alignment_needed.
434 (locate_and_pad_parm): Don't update max_used_stack_slot_alignment
435 here.
436
fc9f468b
JJ
4372009-06-12 Jakub Jelinek <jakub@redhat.com>
438
439 * dwarf2out.c (last_var_location_insn): New variable.
440 (dwarf2out_end_epilogue): Clear last_var_location_insn.
441 (dwarf2out_var_location): Don't record anything after last real
442 insn. Only change labels if there were any real instructions
443 in between last note and this one, or if changed sections.
444
7c1db202
RH
4452009-06-11 Richard Henderson <rth@redhat.com>
446
f85882d8 447 * alpha.c (alpha_expand_prologue): Add a REF_CFA_REGISTER
15cb981a
RH
448 note when storing the frame pointer in a register.
449 (FRP): Don't redefine to nothing for epilogue.
450 (alpha_expand_epilogue): Mark register and sp restores.
451 (unicosmk_gen_dsib): Don't mark weird frame pointer adjust.
452
7c1db202
RH
453 * config/alpha/alpha.c (alpha_emit_setcc): Fix test for
454 when gen_lowpart is needed.
455
f2ae7631
RH
4562009-06-11 Richard Henderson <rth@redhat.com>
457
42755c21
RH
458 * dwarf2out.c (def_cfa_1): Likewise for DW_CFA_cfa_offset.
459
f2ae7631
RH
460 * dwarf2out.c (need_data_align_sf_opcode): New.
461 (div_data_align): Move earlier.
462 (def_cfa_1, reg_save): Use it.
463
8ed0ce99
L
4642009-06-11 H.J. Lu <hongjiu.lu@intel.com>
465
466 * config/i386/i386.c (OPTION_MASK_ISA_CRC32_SET): New.
467 (OPTION_MASK_ISA_CRC32_UNSET): Likewise.
468 (ix86_handle_option): Handle OPT_mcrc32.
469 (ix86_target_string): Add -mcrc32.
470 (bdesc_args): Enable crc32 builtins with OPTION_MASK_ISA_CRC32.
471
472 * config/i386/i386.h (TARGET_CRC32): New.
473
474 * config/i386/i386.md (sse4_2_crc32<mode>): Also check
475 TARGET_CRC32.
476 (sse4_2_crc32di): Likewise.
477
478 * config/i386/i386.opt (mcrc32: New.
479
480 * doc/invoke.texi: Document -mcrc32.
481
9fd68a1f
RH
4822009-06-11 Richard Henderson <rth@redhat.com>
483
8ed0ce99 484 * common.opt (gdwarf-): Accept a version number.
9fd68a1f
RH
485 * doc/invoke.texi (gdwarf-): Update docs.
486 * opth-gen.awk: Special case -gdwarf+ to OPT_gdwarfplus.
487 * opts.c (common_handle_option) [OPT_gdwarf_]: Verify dwarf
488 version level, and record it.
489
490 * dwarf2.h (DW_CIE_VERSION): Remove.
491 * dwarf2out.c (DWARF_VERSION): Remove.
492 (add_fde_cfi): Skip DW_CFA_set_loc addition for dwarf3.
493 (output_call_frame_info): Use CIE version 3 for dwarf3,
494 or if the return register column is out of range for version 1.
495 (dwarf_stack_op_name): Add all dwarf3 values.
496 (DEBUG_PUBTYPES_SECTION): New.
497 (size_of_die) [dw_val_class_die_ref]: Handle DW_FORM_ref_addr
498 encoding change for dwarf3.
499 (output_die) [dw_val_class_die_ref]: Likewise.
500 (output_compilation_unit_header): Emit correct version for dwarf3.
501 (output_line_info): Likewise.
502 (output_pubnames): Update for DWARF_VERSION removal.
503 (output_aranges): Likewise.
504 (gen_subprogram_die): Emit DW_OP_call_frame_cfa if emitting dwarf3.
505 (dwarf2out_init): Don't ifdef DEBUG_PUBTYPES_SECTION.
506 (dwarf2out_finish): Likewise.
507
4de8ce3b
DD
5082009-06-11 David Daney <ddaney@caviumnetworks.com>
509
510 * system.h (gcc_assert, gcc_unreachable): Revert accidental commit
511 in r148403.
512
468059bc
DD
5132009-06-11 David Daney <ddaney@caviumnetworks.com>
514
515 PR c/39252
516 * doc/extend.texi ( __builtin_unreachable): Document new builtin.
517 * builtins.c (expand_builtin_unreachable): New function.
518 (expand_builtin): Handle BUILT_IN_UNREACHABLE case.
519 * builtins.def (BUILT_IN_UNREACHABLE): Add new builtin.
520 * cfgcleanup.c (try_optimize_cfg): Delete empty blocks with no
521 successors.
522 * cfgrtl.c (rtl_verify_flow_info): Handle empty blocks when
523 searching for missing barriers.
524
b5a6e96f
FXC
5252009-06-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
526
527 * config/darwin.h (LINK_COMMAND_SPEC): Adjust spec to link libcov
528 when -fprofile-generate* was passed.
529 * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
530
6be6462e
AG
5312009-06-11 Anthony Green <green@moxielogic.com>
532
533 * config/moxie/moxie.md: Define length attribute for all
534 instructions.
535 (rCC): Define.
536 (*b<cond:code>): Support limited branch ranges for new PC-relative
537 branch instructions.
538 * config/moxie/moxie.h (HAS_LONG_UNCOND_BRANCH): Define.
539
caaabe0a
JJ
5402009-06-11 Jakub Jelinek <jakub@redhat.com>
541
e5219642
JJ
542 * config/i386/i386.c (min_insn_size): Use get_attr_length
543 for normal insns other than TYPE_MULTI, TYPE_OTHER and TYPE_FCMP.
544 For __asm return 0.
545
caaabe0a
JJ
546 * config/i386/i386.c (ix86_pad_returns): Use emit_jump_insn_before
547 instead of emit_insn_before.
548
a567fa6a
ILT
5492009-06-10 Ian Lance Taylor <iant@google.com>
550
551 PR bootstrap/40408
552 * graphite.c (add_conditions_to_domain): Change SWITCH_EXPR to
553 GIMPLE_SWITCH.
554
6a753d5f
RE
5552009-06-10 Revital Eres <eres@il.ibm.com>
556
557 * passes.c (init_optimization_passes): Reschedule
558 predictive-commoning pass before complete unroll pass.
559
a550d677
MJ
5602009-06-10 Martin Jambor <mjambor@suse.cz>
561
562 * cgraph.c (cgraph_node_can_be_local_p): New function.
563 (cgraph_make_node_local): New function.
564 * cgraph.h (cgraph_node_can_be_local_p): Declare.
565 (cgraph_make_node_local): Declare.
566
d8259b07
NF
5672009-06-10 Nathan Froyd <froydnj@codesourcery.com>
568
569 * tree.h (tree_base): Add packed_flag and user_align fields.
570 Decrease size of spare field.
571 (TYPE_USER_ALIGN): Use user_align from tree_base.
572 (DECL_USER_ALIGN): Likewise.
573 (TYPE_PACKED): Use packed_flag from tree_base.
574 (DECL_PACKED): Likewise.
575 (tree_type): Delete packed_flag and user_align fields. Widen
576 precision field. Widen mode field and shuffle fields to align
577 mode on an 8-bit boundary.
578 (tree_decl_common): Delete decl_flag_1 and user_align fields.
579 Renumber decl_flag_* fields. Fix comments. Widen
580 decl_common_unused field.
581 (DECL_HAS_VALUE_EXPR_P): Adjust for renumbering of decl_flag_*
582 fields.
583 (DECL_EXTERNAL): Likewise.
584 (DECL_BIT_FIELD): Likewise.
585 (DECL_NONADDRESSABLE_P): Likewise.
586 (TYPE_DECL_SUPRESS_DEBUG): Likewise.
587 * config/arm/arm-modes.def (XImode): Make it an INT_MODE.
588
c2569604
ILT
5892009-06-10 Ian Lance Taylor <iant@google.com>
590
591 * vec.h (DEF_VEC_ALLOC_I): Use DEF_VEC_NONALLOC_FUNCS_I.
592 (DEF_VEC_ALLOC_P): Use DEF_VEC_NONALLOC_FUNCS_P.
593 (DEF_VEC_ALLOC_O): Use DEF_VEC_NONALLOC_FUNCS_O.
594 (DEF_VEC_ALLOC_FUNC_P): Only define VEC_OP (T,A,alloc).
595 (DEF_VEC_NONALLOC_FUNCS_P): New macro, broken out of old
596 DEF_VEC_ALLOC_FUNC_P.
597 (DEF_VEC_ALLOC_FUNC_O): Only define VEC_OP (T,A,alloc).
598 (DEF_VEC_NONALLOC_FUNCS_O): New macro, broken out of old
599 DEF_VEC_ALLOC_FUNC_O.
600 (DEF_VEC_ALLOC_FUNC_I): Only define VEC_OP (T,A,alloc).
601 (DEF_VEC_NONALLOC_FUNCS_I): New macro, broken out of old
602 DEF_VEC_ALLOC_FUNC_I.
603 (vec_stack_p_reserve, vec_stack_p_reserve_exact): Declare.
604 (vec_stack_p_reserve_exact_1): Declare.
605 (vec_stack_o_reserve, vec_stack_o_reserve_exact): Declare.
606 (vec_stack_free): Declare.
607 (VEC_stack_alloc): Define.
608 (DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_FUNC_P_STACK): Define.
609 (DEF_VEC_ALLOC_O_STACK, DEF_VEC_ALLOC_FUNC_O_STACK): Define.
610 (DEF_VEC_ALLOC_I_STACK, DEF_VEC_ALLOC_FUNC_I_STACK): Define.
611 * vec.c (void_p): New type. Call DEF_VEC_P and DEF_VEC_ALLOC_P
612 for void_p.
613 (stack_vecs): New static variable.
614 (vec_stack_p_reserve_exact_1): New function.
615 (vec_stack_o_reserve_1): New static function.
616 (vec_stack_p_reserve, vec_stack_p_reserve_exact): New functions.
617 (vec_stack_o_reserve, vec_stack_o_reserve_exact): New functions.
618 (vec_stack_free): New function.
619 * df-scan.c (df_ref): Use DEF_VEC_P and DEF_VEC_ALLOC_P_STACK.
620 (VEC_df_ref_stack_alloc): Define.
621 (df_mw_hardreg_ptr): New type. Use DEF_VEC_P and
622 DEF_VEC_ALLOC_P_STACK.
623 (VEC_df_mw_hardreg_ptr_stack_alloc): Define.
624 (struct df_collection_rec): Change _vec fields to VEC. Remove
625 _use fields.
626 (df_free_collection_rec): Adjust for new fields.
627 (df_insn_rescan): Use new df_collection_rec fields.
628 (df_notes_rescan, df_canonize_collection_rec): Likewise.
629 (df_ref_create_structure, df_ref_record): Likewise.
630 (df_get_conditional_uses, df_get_call_refs): Likewise.
631 (df_insn_refs_collect, df_bb_refs_collect): Likewise.
632 (df_bb_refs_record, df_record_entry_block_defs): Likewise.
633 (df_record_exit_block_uses, df_bb_verify): Likewise.
634 (df_swap_refs): Change ref_vec parameter to VEC. Change all
635 callers.
636 (df_sort_and_compress_refs): Change ref_vec parameter to VEC.
637 Remove count parameter. Change return type to void. Change all
638 callers.
639 (df_sort_and_compress_mws): Change mw_vec parameter to VEC.
640 Remove count parameter. Change return type to void. Change all
641 callers.
642 (df_install_refs): Change old_vec parameter to VEC. Remove count
643 parameter. Change all callers.
644 (df_install_mws): Change old_vec parameter to VEC. Remove count
645 parameter. Change all callers.
646 (df_refs_verify): Change new_rec parameter to VEC. Change call
647 callers.
648 (df_mws_verify): Likewise.
649
e7aae3e8
AO
6502009-06-10 Alexandre Oliva <aoliva@redhat.com>
651
652 * gcc.c (compare_files): Cast munmap argumento to caddr_t.
653
412ac8d5
L
6542009-06-10 H.J. Lu <hongjiu.lu@intel.com>
655
656 * doc/extend.texi: Add description for __builtin_ia32_crc32di.
657
cceb575c
AG
6582009-06-10 Anthony Green <green@moxielogic.com>
659
660 * config/moxie/crti.asm: New file.
661 * config/moxie/crtn.asm: New file.
662 * config/moxie/moxie.c: New file.
663 * config/moxie/moxie.h: New file.
664 * config/moxie/sfp-machine.h: New file.
665 * config/moxie/moxie-protos.h: New file.
666 * config/moxie/t-moxie: Created.
667 * config/moxie/t-moxie-softfp: Created.
668 * config/moxie/moxie.md: Created.
669 * config/moxie/constraints.md: Created.
670 * config.gcc: Add moxie support.
671 * doc/md.texi (Machine Constraints): Add moxie constraints.
672 * doc/contrib.texi (Contributors): Mention moxie port.
673 * doc/install.texi (Specific): Mention the moxie port.
674
bf406687
ILT
6752009-06-09 Ian Lance Taylor <iant@google.com>
676
677 * system.h (HAVE_DESIGNATED_INITIALIZERS): Don't define if
678 compiling with C++.
679 * optabs.c (optab_table): Only use designated initializers if
680 HAVE_DESIGNATED_INITIALIZERS is defined.
681 (convert_optab_table): Likewise.
682 (init_optabs): Always call init_insn_codes if
683 HAVE_DESIGNATED_INITIALIZERS is not defined.
684
744aa42f
ILT
6852009-06-09 Ian Lance Taylor <iant@google.com>
686
687 * targhooks.c (default_builtin_vectorized_function): Change fn
688 parameter to unsigned int.
689 (default_builtin_vectorized_conversion): Change code parameter to
690 unsigned int.
691 (default_builtin_reciprocal): Change fn parameter to unsigned int.
692 * targhooks.h: Update declarations.
693 * config/rs6000/rs6000.c (rs6000_builtin_conversion): Change code
694 parameter to unsigned int.
695
696 * c-typeck.c (comptypes_check_enum_int): New static function.
697 (comptypes_internal): Add enum_and_int_p parameter. Change all
698 callers.
699 (comp_target_types): Add location parameter. Change all callers.
700 (tagged_types_tu_compatible_p): Add enum_and_int_p parameter.
701 Change all callers.
702 (function_types_compatible_p, type_lists_compatible_p): Likewise.
703 (build_conditional_expr): Add colon_loc parameter. Change all
704 callers.
705 (convert_for_assignment): Add location parameter. Change all
706 callers.
707 * c-parser.c (c_parser_conditional_expression): Pass location of
708 colon to build_conditional_expr.
709 * c-tree.h (build_conditional_expr): Update declaration.
710
bcbe3b25
SP
7112009-06-09 Sebastian Pop <sebastian.pop@amd.com>
712
713 * graphite.c: Revert previous patch.
714
dc2a6925
SP
7152009-06-09 Sebastian Pop <sebastian.pop@amd.com>
716
717 PR bootstrap/40103
718 * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
719
d81f5387
GS
7202009-06-09 Ghassan Shobaki <ghassan.shobaki@amd.com>
721
8ed0ce99
L
722 * tree-ssa-loop-prefetch.c
723 (loop_prefetch_arrays): Fixed a portability problem in printf format
724 string.
d81f5387 725
8056eb4f
MJ
7262009-06-09 Martin Jambor <mjambor@suse.cz>
727
728 PR tree-optimization/40351
729 * tree-sra.c (propagate_subacesses_accross_link): Check that a refrence
730 to a potential artifical subaccess can be constructed.
731
bd9a3465
KK
7322009-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
733
734 * config/sh/sh-protos.h (sh_optimization_options): Declare.
735 (sh_override_options): Likewise.
736 * config/sh/sh.c: Include params.h.
737 (sh_optimization_options): New.
738 (sh_override_options): Likewise.
739 * config/sh/sh.c (OPTIMIZATION_OPTIONS): Use sh_optimization_options.
740 (OVERRIDE_OPTIONS): Use sh_override_options.
741
8845deab
JJ
7422009-06-08 Jakub Jelinek <jakub@redhat.com>
743
744 * dwarf2out.c (emit_cfa_remember): New variable.
745 (add_fde_cfi): If emit_cfa_remember, recurse to add
746 DW_CFA_remember_state first.
747 (dwarf2out_begin_epilogue): Don't add_fde_cfi DW_CFA_remember_state,
748 instead just set emit_cfa_remember.
749
9ea81b0c
JH
7502009-06-08 Jan Hubicka <jh@suse.cz>
751
752 PR debug/40126
753 * dwarf2out.c (dwarf2out_abstract_function): Free decl_loc_table.
754
21ecdec5
JH
7552009-06-08 Jan Hubicka <jh@suse.cz>
756
757 PR middle-end/39834
758 * cgraphunit.c (save_inline_function_body): Do not copy transform hooks
759 for saved inline bodies.
760 * ipa-passes.c (do_per_function): Do not add the hoks multiple times
761 for given function.
762
72e48218
AN
7632009-06-08 Adam Nemet <anemet@caviumnetworks.com>
764
765 * jump.c (returnjump_p): Handle delayed branches. Add missing
766 function comment.
767
6ce2002b
JH
7682009-06-08 Jan Hubicka <jh@suse.cz>
769
770 PR middle-end/40102
771 * cgraph.c (cgraph_create_edge_including_clones): Also asume that the
772 original node might've been modified.
773 * tree-inline.c (copy_bb): Do not assume that all clones are the same.
774
eb9ed98a
JJ
7752009-06-08 Jakub Jelinek <jakub@redhat.com>
776
777 * tree-object-size.c (addr_object_size): Add OSI argument.
778 Handle also INDIRECT_REF with SSA_NAME inside of it as base address.
779 (compute_builtin_object_size, expr_object_size): Adjust callers.
780 (plus_stmt_object_size): Call addr_object_size instead of
781 compute_builtin_object_size.
782
db34470d 7832009-06-08 Ghassan Shobaki <ghassan.shobaki@amd.com>
8ed0ce99 784 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
db34470d
GS
785
786 * tree-ssa-loop-prefetch.c
787 (gather_memory_references): Introduced a counter for the number of
788 memory references.
789 (anything_to_prefetch_p): Introduced a counter for the number of
790 prefetches.
791 (is_loop_prefetching_profitable): New function with a cost model
792 for prefetching.
793 (loop_prefetch_arrays): Use the new cost model to determine if
794 prefetching is profitable.
795 * params.def (MIN_INSN_TO_PREFETCH_RATIO,
796 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
797 * params.h (MIN_INSN_TO_PREFETCH_RATIO,
798 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
799 * doc/invoke.texi (MIN_INSN_TO_PREFETCH_RATIO,
800 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
801
eb7adebc
MM
8022009-06-08 Michael Matz <matz@suse.de>
803
804 PR debug/40012
eb7adebc
MM
805 * cfgexpand.c (set_rtl): Store place also in DECL_RTL, if all
806 partitions use the same.
807 (expand_one_var): Deal with DECL_RTL sometimes begin set also
808 for basevars of SSA_NAMEs.
809 (expand_used_vars): Reset TREE_USED for basevars of SSA_NAMEs,
810 to not expand them twice.
811 (gimple_expand_cfg): Clear DECL_RTL for those decls that have
812 multiple places.
813
2153915d
AO
8142009-06-08 Alexandre Oliva <aoliva@redhat.com>
815
816 * common.opt (fcompare-debug=, fcompare-debug-second): New.
817 (fdump-final-insns=, gtoggle): New.
818 * doc/invoke.texi: Document them.
819 * final.c (rest_of_clean_state): Dump final insn stream.
820 * gcc.c (invoke_as): Hook in -fcompare-debug.
821 (static_spec_functions): Add compare-debug-dump-opt,
822 compare-debug-self-opt and compare-debug-auxbase-opt.
823 (compare_debug, compare_debug_second, compare_debug_opt): New.
824 (switches_debug_check, n_switches_debug_check): New.
825 (debug_auxbase_opt, debug_check_temp_file): New.
826 (process_command): Handle -fno-compare-debug, -fcompare-debug and
827 -fcompare-debug=*.
828 (do_self_spec): Handle arguments after switches.
829 (do_spec_1): Add .gk extension to temp file basenames for compare.
830 (check_live_switch): Take SWITCH_IGNORE into account, and earlier.
831 (cc1_options): Use it instead of normal auxbase computation for
832 the second compare-debug compilation.
833 (compare_files): New.
834 (main): Set up and implement compare debug mode.
835 (compare_debug_dump_opt_spec_function): New.
836 (compare_debug_self_opt_spec_function): New.
837 (compare_debug_auxbase_opt_spec_function): New.
838 * toplev.c (process_options): Handle flag_gtoggle,
839 flag_dump_final_insns.
840 * coverage.c (coverage_begin_output): Don't overwrite .gcno file
841 during -fcompare-debug-second compilation.
842
cdb88468
ILT
8432009-06-07 Ian Lance Taylor <iant@google.com>
844
845 * dwarf2.h (enum dwarf_location_atom): Add
846 INTERNAL_DW_OP_tls_addr.
847 * dwarf2out.c (INTERNAL_DW_OP_tls_addr): Don't #define.
848
849 * c-common.c (c_do_switch_warnings): Don't exit early for -Wswitch
850 with no default node. Change warning with %H to warning_at.
851 Don't clear warn_switch around case checking.
852 * doc/invoke.texi (Warning Options): Clarify distinction between
853 -Wswitch and -Wswitch-enum.
854
4fe8e1a2
BRF
8552009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
856
857 * tree-pass.h (TODO_update_ssa_any): Document internal use only.
858
69952c1d
BRF
8592009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
860
861 * gbl-ctors.h: Add header guard.
862
b2ad0284
BRF
8632009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
864
865 * tree-flow.h (make_value_handle, set_value_handle, sort_vuses,
866 sort_vuses_heap, vn_lookup_or_add, vn_lookup_or_add_with_stmt,
867 vn_lookup_or_add_with_vuses, vn_add, vn_add_with_vuses,
868 vn_lookup_with_stmt, vn_lookup, vn_lookup_with_vuses): Remove
869 prototypes for removed functions.
870 (expressions_equal_p): Move to ...
871 * tree-ssa-sccvn.h: ... here and ...
872 * matrix-reorg.c: ... adjust includes.
873
c3df55f9
BRF
8742009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
875
876 * ipa-struct-reorg.c (do_reorg_1): Fix whitespace in dump output.
877
b5a7159f
BRF
8782009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
879
880 * c-decl.c (finish_decl): Use bool for variable was_incomplete.
881 (finish_function): Remove erroneous whitespace.
882
95bca6b0
BRF
8832009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
884
2cd713a0
BRF
885 * tree-cfg.c (gimple_merge_blocks): Commentary typo fix.
886 (verify_stmts): Print statement who's gimple_bb is set to a wrong BB
249eb506
BRF
887
8882009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
889
890 * errors.c (internal_error): Commentary typo fix.
891 * gimple-iterator.c (gsi_insert_seq_on_edge): Ditto.
892 * tree-ssa-pre.c: Ditto.
95bca6b0 893
2cd713a0
BRF
8942009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
895
896 * basic-block.h (ENTRY_BLOCK, EXIT_BLOCK): Document that neither of
897 them is supposed to hold actual statements.
898
5bca4e80
ILT
8992009-06-06 Ian Lance Taylor <iant@google.com>
900
901 * doc/extend.texi (Attribute Syntax): Document that C++ labels on
902 empty statements can now have attributes.
903
47ac44d6
SZ
9042009-06-05 Shujing Zhao <pearly.zhao@oracle.com>
905
906 * config/mips/mips.c: Use REG_P and CONST_INT_P where applicable.
907 * config/mips/mips.md: Ditto.
908
19b905ce
NF
9092009-06-05 Nathan Froyd <froydnj@codesourcery.com>
910
911 * config/rs6000/eabi.asm (__eabi_convert): Don't define if
912 _RELOCATABLE.
913 (__eabi_uconvert): Likewise.
914
16702e19
NF
9152009-06-05 Nathan Froyd <froydnj@codesourcery.com>
916
917 * config/rs6000/ppc-asm.h: Protect auto-host.h inclusion and
918 CFI_* definitions with IN_GCC.
919
a735afd1
DE
9202009-06-05 David Edelsohn <edelsohn@gnu.org>
921
922 * xcoffout.h (xcoffout_source_line): Update prototype.
923
26a347c5
KG
9242009-06-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
925
926 * builtins.c (do_mpc_ckconv, do_mpc_arg1): Use
927 mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM.
928
9f706f23
JJ
9292009-06-05 Jakub Jelinek <jakub@redhat.com>
930
931 PR middle-end/40340
932 * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
933 inlined_function_outer_scope_p blocks for artificial inlines
934 even at -g0/-g1.
935 * tree.c (tree_nonartificial_location): Rewrite using
936 block_nonartificial_location.
937
8f439681
RE
9382009-06-05 Revital Eres <eres@il.ibm.com>
939 Leehod Baruch <leehod@il.ibm.com>
940
941 * expr.c (expand_assignment): Expand MISALIGNED_INDIRECT_REF.
942 (expand_expr_real_1): Remove comment.
943 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
944 Vectorize misaligned access when the target supports it.
945 (vect_supportable_dr_alignment): Check for unaligned access
946 support.
947 * tree-vect-stmts.c (vectorizable_store): Generate misaligned store
948 and remove asset.
949
b89f8e3c
JB
9502009-06-05 Julian Brown <julian@codesourcery.com>
951
952 * config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP.
953 * config/arm/ieee754-sf.S (cmpsf2): Likewise.
954
47d1f191
RG
9552009-06-05 Richard Guenther <rguenther@suse.de>
956
957 PR bootstrap/40350
958 * dwarf2out.c (dwarf2out_begin_function): Mark discriminator
959 as possibly unused.
960
9f706f23 9612009-06-05 Jakub Jelinek <jakub@redhat.com>
75707b28
JJ
962
963 * config/s390/s390.c (global_not_special_regno_p): New static inline.
964 (save_gprs): Don't tell unwinder when a global register is saved.
965 (s390_emit_epilogue): Emit needed epilogue unwind info.
966
90f06248
AO
9672009-06-05 Alexandre Oliva <aoliva@redhat.com>
968
969 * dwarf2out.c (deferred_asm_name): New.
970 (add_name_and_src_coords_attributes): Defer creation of
971 DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not
972 computed yet.
973 (move_linkage_attr): New.
974 (dwarf2out_finish): Revisit deferrals and emit attributes at the
975 right place.
976
c10348e5
AO
9772009-06-05 Alexandre Oliva <aoliva@redhat.com>
978
979 * tree-nested.c (finalize_nesting_tree_1): Declare the
980 frame_decl in the binding tree.
981
6c52e687
CC
9822009-06-04 Cary Coutant <ccoutant@google.com>
983
984 * basic-block.h (struct basic_block_def): Add discriminator field.
985 * dbxout.c (dbxout_source_line): Add new parameter. Change all
986 callers.
987 * debug.c (do_nothing_debug_hooks): Add additional entry.
988 (debug_nothing_int_charstar_int): New function.
989 * debug.h (struct gcc_debug_hooks): Add parameter to source_line
990 hook.
991 (debug_nothing_int_charstar_int): New declaration.
992 * dwarf2out.c (dwarf2out_source_line): Add new parameter. Write
993 discriminator value in .loc directive.
994 * final.c (last_discriminator): New variable.
995 (discriminator): New variable.
996 (final_start_function): Initialize above variables, pass current
997 discriminator to debug hook.
998 (notice_source_line): Check for discriminator change.
999 * gimple-pretty-print.c (dump_bb_header): Print discriminator value.
1000 * sdbout.c (sdbout_source_line): New parameter.
1001 * tree-cfg.c (struct locus_discrim_map): New structure type.
1002 (discriminator_per_locus): New hash table.
1003 (build_gimple_cfg): Allocate and free discriminator hash table.
1004 (make_edges): Call assign_discriminator.
1005 (locus_map_hash): New function.
1006 (locus_map_eq): New function.
1007 (next_discriminator_for_locus): New function.
1008 (same_line_p): New function.
1009 (assign_discriminator): New function.
1010 (make_cond_expr_edges): Call assign_discriminator.
1011 (make_gimple_switch_edges): Likewise.
1012 (first_non_label_stmt): New function.
1013 * vmsdbgout.c (vmsdbgout_source_line): Add new parameter. Change
1014 all callers.
1015 * xcoffout.c (xcoffout_source_line): Add new parameter.
1016
1017 * configure.ac (gcc_cv_as_discriminator): New configury check for
1018 gas support for discriminator.
1019 * configure: Regenerate.
1020 * config.in: Regenerate.
1021
e07e020b
RR
10222009-06-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1023
1024 * config/arm/arm.c (thumb2_legitimate_index_p): Initialize
1025 val after checking for integers.
1026
72fa3605
UB
10272009-06-04 Uros Bizjak <ubizjak@gmail.com>
1028
1029 * config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from
1030 X64_REGPARM_MAX.
1031 (REGPARM_MAX): Use X86_64_MS_REGPARM_MAX.
1032 (X86_64_MS_SSE_REGPARM_MAX): Rename from X64_SSE_REGPARM_MAX.
1033 (SSE_REGPARM_MAX): Use X86_64_MS_SSE_REGPARM_MAX.
1034 * config/i386/i386.c: Use X86_64_MS_REGPARM_MAX instead of
1035 X64_REGPARM_MAX. Use X86_64_MS_SSE_REGPARM_MAX instead of
1036 X64_SSE_REGPARM_MAX.
1037 * config/i386/i386.md: Use X86_64_MS_SSE_REGPARM_MAX instead of
1038 X64_SSE_REGPARM_MAX.
1039
bdde878c
AO
10402009-06-04 Alexandre Oliva <aoliva@redhat.com>
1041
1042 * gcc.c (report_times_to_file): New.
1043 (execute): Implement it.
1044 (process_command): Support -time=.
1045 * doc/invoke.texi: Document it.
1046
2ce59df7
AO
10472009-06-04 Alexandre Oliva <aoliva@redhat.com>
1048
1049 * tree-ssa-live.c (remove_unused_scope_block_p): Keep variables
1050 that have value exprs.
1051
78bd9046
AO
10522009-06-04 Alexandre Oliva <aoliva@redhat.com>
1053
1054 * dwarf2asm.c (dw2_force_const_mem): Defer creation of
1055 declarations for constants until...
1056 (dw2_output_indirect_constant_1): ... this point.
1057
e63d4106
RE
10582009-06-04 Richard Earnshaw <rearnsha@arm.com>
1059
1060 PR target/10242
1061 * arm.md (arm_addsi3): Don't try to split an add with an
1062 eliminable register until after reload has completed.
1063
6bc7bc14
ILT
10642009-06-03 Ian Lance Taylor <iant@google.com>
1065
1066 * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST.
1067 * genattrtab.c (write_length_unit_log): Likewise.
1068 * genchecksum.c (dosum): Likewise.
1069 * gengtype.c (write_rtx_next): Likewise.
1070 (finish_root_table, write_roots): Likewise.
1071 * gimple.c (gimple_ops_offset_): Likewise.
1072 * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise.
1073 * config/arc/arc.c (arc_attribute_table): Likewise.
1074 * config/arm/arm.c (arm_attribute_table): Likewise.
1075 * config/avr/avr.c (avr_attribute_table): Likewise.
1076 * config/crx/crx.c (crx_attribute_table): Likewise.
1077 * config/m32r/m32r.c (m32r_attribute_table): Likewise.
1078 * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise.
1079 * config/mcore/mcore.c (mcore_attribute_table): Likewise.
1080 * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
1081 * config/sh/sh.c (sh_attribute_table): Likewise.
1082 * config/sparc/sparc.c (sparc_attribute_table): Likewise.
1083 * config/spu/spu.c (spu_attribute_table): Likewise.
1084 * config/v850/v850.c (v850_attribute_table): Likewise.
1085
1086 * config/alpha/alpha.c (vms_attribute_table): Make static.
1087 * config/bfin/bfin.c (bfin_attribute_table): Likewise.
1088 * config/h8300/h8300.c (h8300_attribute_table): Likewise.
1089 * config/mips/mips.c (mips_attribute_table): Likewise.
1090
1091 * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and
1092 $(SYSTEM_H).
1093 (cc1-checksum.o): Likewise.
1094
19d892fd
SE
10952009-06-03 Steve Ellcey <sje@cup.hp.com>
1096
1097 * config/ia64/vect.md (*movv2sf_internal): Handle big endian case.
1098
679f3354
JJ
10992009-06-03 Jakub Jelinek <jakub@redhat.com>
1100
ff35822b
JJ
1101 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated
1102 insn if it is changing sp. Use gen_add3_insn instead of
1103 conditionally gen_addsi3 and gen_adddi3.
1104 (offset_below_red_zone_p): New static inline function.
1105 (rs6000_emit_epilogue): Emit needed epilogue unwind info.
1106 Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3.
1107 * config/rs6000/ppc-asm.h: Include auto-host.h.
1108 (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET,
1109 CFI_RESTORE): Define.
1110 * config/rs6000/crtresxgpr.asm: Add unwind info.
1111 * config/rs6000/crtresxfpr.asm: Likewise.
1112 * config/rs6000/crtresgpr.asm: Likewise.
1113 * config/rs6000/crtresfpr.asm: Likewise.
1114 * config/rs6000/crtsavgpr.asm: Likewise.
1115 * config/rs6000/crtsavfpr.asm: Likewise.
1116
679f3354
JJ
1117 * dwarf2out.c (output_cfi_directive): Pass 1 instead of
1118 0 to second argument of DWARF2_FRAME_REG_OUT macros.
1119
2e94c12d
JB
11202009-06-03 Julian Brown <julian@codesourcery.com>
1121
1122 * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four
1123 words or less (including TImode) in core registers.
1124
3111cce0
RG
11252009-06-03 Richard Guenther <rguenther@suse.de>
1126
1127 PR middle-end/40328
1128 * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.
1129
5e1b50f6
AB
11302009-06-03 Andrey Belevantsev <abel@ispras.ru>
1131
1132 * statistics.c (statistics_counter_event): Do not record event
1133 in pass dump if its number == -1.
1134 (curr_statistics_hash): Add assert that we never get passes
1135 with static number == -1.
1136
6f11d690
RG
11372009-06-03 Richard Guenther <rguenther@suse.de>
1138 Andrey Belevantsev <abel@ispras.ru>
1139
1140 * cfgexpand.c (discover_nonconstant_array_refs_r): Make only
1141 non-BLKmode arrays addressable.
1142
88961471
MK
11432009-06-03 Maxim Kuvyrkov <maxim@codesourcery.com>
1144
1145 * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
1146 * config/m68k/m68k.h: ... here.
1147 * testsuite/gcc.dg/falign-labels.c (dg-options): Don't restrict for
1148 m68k and fido.
1149
9961eb45
MJ
11502009-06-03 Martin Jambor <mjambor@suse.cz>
1151
1152 PR tree-optimization/40323
1153 * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single
1154 assignment.
1155
2f2c62a0
RG
11562009-06-03 Richard Guenther <rguenther@suse.de>
1157
1158 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
1159 consistently.
1160
d6ced3b7
SZ
11612009-06-03 Shujing Zhao <pearly.zhao@oracle.com>
1162
1163 * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
1164 JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
1165 JUMP_TABLE_DATA_P where applicable.
1166 * config/sh/sh.c: Ditto.
1167 * config/sh/sh.h: Ditto.
1168 * config/sh/sh.md: Ditto.
1169 * config/sh/symbian.c: Ditto.
1170
f3afc8a7
UB
11712009-06-03 Uros Bizjak <ubizjak@gmail.com>
1172
1173 * config/i386/driver-i386.c (describe_cache): Optimize
1174 concatenation of strings. Use snprintf instead of sprintf.
1175 (host_detect_local_cpu): Ditto. Ignore -march and -mtune for native
1176 target when not compiling with GCC.
1177
1964788a
KK
11782009-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
1179
1180 * config/sh/sh.c: Revert last change.
1181 (sh_expand_epilogue): Emit a blockage insn before the frame
1182 pointer adjustment unconditionally.
1183
8633c315
RS
11842009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1185
1186 * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
1187 * config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
1188 * config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
1189 * gcc.c (set_collect_gcc_options): Don't add -fwhole-program
1190 to COLLECT_GCC_OPTIONS.
1191
781a1758
RS
11922009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1193
1194 * collect2.c (target_system_root): New variable.
1195 (main): Handle --sysroot=.
1196 (ignore_library): Strip the sysroot from the library path.
1197
dfb636dc
RS
11982009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1199
1200 * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
1201 (collect2.o): Depend on collect2-aix.h.
1202 (collect2-aix.o): New rule.
1203 * collect2-aix.h: New file.
1204 * collect2-aix.c: Likewise.
1205 * collect2.c: Include collect2-aix.h. Don't undefine
1206 OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
1207 Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
1208 Use TARGET_AIX_VERSION instead of _AIX51.
1209 * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
1210 * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
1211 * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
1212 * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
1213 * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.
1214
51136ae8
RS
12152009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1216
1217 * collect2.c (ignore_library): Avoid premature post-increment
1218 and null deference.
1219
7f142d33
RS
12202009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1221
1222 * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
1223 * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
1224 !CROSS_DIRECTORY_STRUCTURE alternative and use it for
1225 CROSS_DIRECTORY_STRUCTURE too.
1226 (LINK_LIBG_SPEC): Likewise.
1227 (LIB_SPEC): Add %R to sysroot paths.
1228 * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
1229 (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
1230 * config/rs6000/aix51.h: As for aix43.h.
1231 * config/rs6000/aix52.h: Likewise.
1232 * config/rs6000/aix53.h: Likewise.
1233 * config/rs6000/aix61.h: Likewise.
1234 * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
1235 to the beginning of sysroot paths.
1236
9e74b7d2
AO
12372009-06-02 Alexandre Oliva <aoliva@redhat.com>
1238
1239 * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
1240 INSN_LISTs that are out of the REG_NOTE range.
1241
a9f6ecee
AO
12422009-06-02 Alexandre Oliva <aoliva@redhat.com>
1243
1244 * loop-unroll.c (struct iv_to_split): Add pointer to next.
1245 (struct var_to_expand): Likewise.
1246 (struct opt_info): Add head and tail for linked lists of the above.
1247 (analyze_insn_to_expand_var): Initialize next.
1248 (analyze_iv_to_split_insn): Likewise.
1249 (analyze_insns_in_loop): Create linked lists.
1250 (allocate_basic_variable): Simplify for use without hash table.
1251 (insert_var_expansion_initialization): Likewise, make it type-safer.
1252 (combine_var_copies_in_loop_exit): Likewise.
1253 (apply_opt_in_copies): Walk lists rather than hash tables.
1254 (release_var_copies): Simplified and inlined by hand into...
1255 (free_opt_info): ... this function.
1256
69596c69
RG
12572009-06-02 Richard Guenther <rguenther@suse.de>
1258
1259 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
1260 for field decls.
1261
fe8a7779
AO
12622009-06-02 Alexandre Oliva <aoliva@redhat.com>
1263
1264 * cfgexpand.c (gimple_expand_cfg): Discard the source location
1265 only for builtins that are not overridden.
1266
1bcca2c5
AO
12672009-06-02 Alexandre Oliva <aoliva@redhat.com>
1268
1269 * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
1270 label string.
1271
8588f797
AO
12722009-06-02 Alexandre Oliva <aoliva@redhat.com>
1273
1274 * df-core.c (df_ref_debug): Honor -fdump-noaddr.
1275
45f39d78
AO
12762009-06-02 Alexandre Oliva <aoliva@redhat.com>
1277
1278 * combine.c (move_deaths): Compare LUIDs within the same BB only.
1279
2aa7c49b
AO
12802009-06-02 Alexandre Oliva <aoliva@redhat.com>
1281
1282 * common.opt (fdump-unnumbered-links): New.
1283 * doc/invoke.texi (-fdump-unnumbered-links): Document it.
1284 * print-rtl.c (flag_dump_unnumbered_links): New.
1285 (print_rtx): Test it.
1286
55b2829b
RE
12872009-06-02 Richard Earnshaw <rearnsha@arm.com>
1288
1289 * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
1290 push/pop multiple to 8-byte alignment.
e63d4106 1291
6c0d7021
JJ
12922009-06-01 Jakub Jelinek <jakub@redhat.com>
1293
0aa34d44
JJ
1294 * config/i386/i386.c (queued_cfa_restores): New static variable.
1295 (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
1296 functions.
1297 (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
1298 (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
1299 Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
1300 Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
1301 note unconditionally.
1302 (ix86_emit_restore_regs_using_mov): Likewise.
1303 (ix86_emit_restore_sse_regs_using_mov): Likewise.
1304 (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
1305 it through to ix86_emit_restore_reg_using_pop.
1306 (ix86_emit_leave): Add RED_OFFSET argument. Call
1307 ix86_add_queued_cfa_restore_notes. Call ix86_add_cfa_restore_note
1308 instead of adding REG_CFA_OFFSET note unconditionally.
1309 (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
1310 the above functions. Call ix86_add_queued_cfa_restore_notes when
1311 needed.
1312
1313 * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
1314 force output of the label even for dwarf2out_do_cfi_asm.
1315 (add_fde_cfi): If -g2 and above and cfi might change CFA,
1316 force creation of CFI label and chain DW_CFA_set_loc jumping to it
1317 for convert_cfa_to_fb_loc_list. Adjust other dwarf2out_cfi_label
1318 caller.
1319 (dwarf2out_stack_adjust, dwarf2out_frame_debug,
1320 dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
1321 dwarf2out_cfi_label callers.
1322 * tree.h (dwarf2out_cfi_label): Adjust prototype.
1323 * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
1324 Adjust dwarf2out_cfi_label callers.
1325 * config/vax/vax.c (vax_output_function_prologue): Likewise.
1326
604a6be9
JJ
1327 * config/i386/i386.h (struct machine_cfa_state,
1328 struct machine_function): Guard with ifndef USED_FOR_TARGET
1329 instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.
1330
df0026a7
JJ
1331 PR other/40024
1332 * emutls.c (__emutls_get_address): Change arr->size to mean number
1333 of allocated arr->data entries instead of # of slots + 1.
1334
6c0d7021
JJ
1335 PR middle-end/40316
1336 * recog.c (peep2_reinit_state): New function.
1337 (peephole2_init_state): Use it at the end of a basic block and also
1338 when seeing a RTX_FRAME_RELATED_P insn.
1339
49df2fb8
SE
13402009-06-01 Steve Ellcey <sje@cup.hp.com>
1341
1342 * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
1343 fixuns_truncrfdi2): New.
1344 (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
1345 *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
1346 *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
1347 *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
1348 *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
1349 *recip_approx): Remove.
1350 (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
1351 moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
1352 divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
1353 move to div.md.
1354 * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
1355 setf_exp_rf): New.
1356
67165eb3
ILT
13572009-06-01 Ian Lance Taylor <iant@google.com>
1358
1359 * attribs.c (register_attribute): Use CONST_CAST.
1360 * collect2.c (main): Use CONST_CAST2.
1361 (scan_prog_file): Likewise.
1362 * gcc.c (process_command, main): Likewise.
1363 * toplev.c (toplev_main): Likewise.
1364
1365 * c-typeck.c (handle_warn_cast_qual): New static function,
1366 partially broken out of build_c_cast.
1367 (build_c_cast): Call handle_warn_cast_qual.
1368 * doc/invoke.texi (Warning Options): Document new effect of
1369 -Wcast-qual.
1370
e74fe492
AH
13712009-06-01 Aldy Hernandez <aldyh@redhat.com>
1372
1373 * diagnostic.c (diagnostic_build_prefix): Always print columns.
1374 (diagnostic_report_current_module): Print columns.
1375 * common.opt (flag_show_column): Enable by default.
1376
7eba2d1f
LM
13772009-06-01 Luis Machado <luisgpm@br.ibm.com>
1378
1379 * alias.c (find_base_term): Check for NULL term before returning.
1380
ee88d9aa
MK
13812009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
1382
1383 Revert due to PR40320:
ee88d9aa
MK
1384 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
1385 * calls.c (emit_library_call_value_1): Don't force_operand for move
1386 and push insns.
1387
324c9b02 13882009-06-01 Olivier Hainque <hainque@adacore.com>
40d0d9e4 1389 Eric Botcazou <ebotcazou@adacore.com>
324c9b02
OH
1390
1391 * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
1392 to be processed as a bitfield for constructor output purposes.
1393 * output.h (initializer_constant_valid_for_bitfield_p): Declare
1394 new function.
1395 * varasm.c (oc_local_state): New type, output_constructor
1396 local state to support communication with helpers.
1397 (oc_outer_state): New type, output_constructor outer state of
1398 relevance in recursive calls.
1399 (output_constructor_array_range): New output_constructor helper,
1400 extracted code for an array range element.
1401 (output_constructor_regular_field): New output_constructor helper,
1402 extracted code for an element that is not a bitfield.
1403 (output_constructor_bitfield): New output_constructor helper,
1404 extracted code for a bitfield element. Accept an OUTER state
1405 argument for recursive processing. Recurse on record or array
1406 CONSTRUCTOR values, possibly past noop conversions.
62295314 1407 (initializer_constant_valid_for_bitfield_p): New predicate. Whether
324c9b02
OH
1408 VALUE is a valid constant-valued expression for use in a static
1409 bit-field initializer.
62295314
OH
1410 (output_constructor): Rework to use helpers. Accept and honor an
1411 OUTER state argument for recursive calls. Return total size. Be
324c9b02
OH
1412 prepared for nested constructors initializing bitfields.
1413 (output_constant): Feed OUTER in calls to output_constructor.
1414
0980d7fe
MK
14152009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
1416
1417 * calls.c (emit_library_call_value_1): Don't force_operand for move
1418 and push insns.
1419
29661412
NC
14202009-06-01 Nick Clifton <nickc@redhat.com>
1421
1422 * doc/invoke.texi (IA-64 Options): Fix typo.
1423
e9dbe7bb
IR
14242009-06-01 Ira Rosen <irar@il.ibm.com>
1425
1426 PR tree-optimization/39129
1427 * tree-vect-loop-manip.c (conservative_cost_threshold): Change the
1428 printed message.
1429 (vect_do_peeling_for_loop_bound): Use
1430 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
1431 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
1432 (vect_loop_versioning): Likewise.
1433 (vect_create_cond_for_alias_checks): Fix indentation.
1434 * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the
1435 macros.
1436 (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
1437 (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
1438 * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to
1439 "control flow in loop".
1440 (vect_estimate_min_profitable_iters): Use
1441 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
1442 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
1443 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
1444 (vect_create_data_ref_ptr): Don't mention array dimension in printing.
1445 * tree-vect-stmts.c (vectorizable_store): Replace the check that the
1446 statement belongs to a group of strided accesses with the exact code
1447 check.
1448 (vectorizable_load): Likewise.
1449 * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
1450 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
1451
5ac69a80
GP
14522009-06-01 Gerald Pfeifer <gerald@pfeifer.com>
1453
1454 * config/freebsd-stdint.h: New file.
1455 * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
1456 Add freebsd-stdint.h to tm_file.
1457
54b2b460
RE
14582009-06-01 Richard Earnshaw <rearnsha@arm.com>
1459
1460 * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
1461 (thumb2_extendhidi2): Likewise.
1462
a7ca77cf
ILT
14632009-05-31 Ian Lance Taylor <iant@google.com>
1464
f3afc8a7 1465 * regstat.c (regstat_n_sets_and_refs): Remove duplicate definition.
c50d84e3
ILT
1466
14672009-05-31 Ian Lance Taylor <iant@google.com>
1468
f3afc8a7 1469 * Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H).
a7ca77cf
ILT
1470 (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
1471 (ipa-reference.o): Depend upon gt-ipa-reference.h.
1472
1aec401e
JM
14732009-05-31 Jason Merrill <jason@redhat.com>
1474
1475 * tree-pretty-print.c (print_call_name): Take the callee, not the
f3afc8a7 1476 call itself. Make non-static. Use dump_function_name for functions.
1aec401e
JM
1477 (dump_generic_node): Adjust.
1478 * diagnostic.h: Declare print_call_name.
1479 * gimple-pretty-print.c (dump_gimple_call): Use it.
1480
ed7910bb
KK
14812009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
1482
1483 * config/sh/sh.md (ashldi3_std): New define_expand.
1484 (ashldi3): Use it.
1485
47ea8d4e
KK
14862009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
1487
1488 PR target/40313
1489 * config/sh/sh.c: Include debug.h.
1490 (sh_expand_epilogue): Emit a blockage insn before the frame
1491 pointer adjustment also when dwarf2out_do_frame returns true.
1492
405e8b49
RE
14932009-05-31 Richard Earnshaw <rearnsha@arm.com>
1494
1495 * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
1496 (thumb2_extendqidi2): New pattern.
1497
71ece343
IR
14982009-05-31 Ira Rosen <irar@il.ibm.com>
1499
1500 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
1501 mark phis for renaming.
1502 * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
1503 (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
1504 Call mark_sym_for_renaming.
1505 * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
f3afc8a7
UB
1506 * tree-vect-loop.c (vect_transform_loop): Remove
1507 vect_memsyms_to_rename initialization and a call to
1508 mark_set_for_renaming.
71ece343 1509
b3041944
JJ
15102009-05-31 Jakub Jelinek <jakub@redhat.com>
1511
1512 PR middle-end/40304
1513 * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
1514 frame related even if !set_cfa && style < 0.
1515
a1bda0d7
KT
15162009-05-30 Kai Tietz <kai.tietz@onevision.com>
1517
1518 * config/i386/mingw-tls.c: New file.
f3afc8a7
UB
1519 * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file.
1520 * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets
1521 defining _WIN32 but not __CYGWIN__.
a1bda0d7 1522
acd26225
KG
15232009-05-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1524
1525 * configure.ac: Add MPC support.
1526
1527 * config.in, configure: Regenerate.
1528
cd9c1ca8
RH
15292009-05-29 Richard Henderson <rth@redhat.com>
1530
1531 * cfgcleanup.c (try_crossjump_to_edge): Only skip past
1532 NOTE_INSN_BASIC_BLOCK.
1533 * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
1534 Duplicate NOTE_INSN_EPILOGUE_BEG notes.
1535 * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
1536 to be deleted.
1537 * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
1538 add in_use field.
1539 (add_cfi): Disable check redefining cfa away from drap.
1540 (lookup_cfa_1): Add remember argument; handle remember/restore.
1541 (lookup_cfa): Pass remember argument.
1542 (cfa_remember): New.
1543 (compute_barrier_args_size_1): Remove sibcall check.
1544 (dwarf2out_frame_debug_def_cfa): New.
1545 (dwarf2out_frame_debug_adjust_cfa): New.
1546 (dwarf2out_frame_debug_cfa_offset): New.
1547 (dwarf2out_frame_debug_cfa_register): New.
1548 (dwarf2out_frame_debug_cfa_restore): New.
1549 (dwarf2out_frame_debug): Handle REG_CFA_* notes.
1550 (dwarf2out_begin_epilogue): New.
1551 (dwarf2out_frame_debug_restore_state): New.
1552 (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
1553 DW_CFA_restore_state.
1554 (output_cfi_directive): Likewise.
1555 (convert_cfa_to_fb_loc_list): Likewise.
1556 (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
1557 * dwarf2out.h: Update.
1558 * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
1559 (copy_insn_1): Early out for null.
1560 * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
1561 and dwarf2out_frame_debug_restore_state.
1562 * function.c (prologue, epilogue, sibcall_epilogue): Remove.
1563 (prologue_insn_hash, epilogue_insn_hash): New.
1564 (free_after_compilation): Adjust freeing accordingly.
1565 (record_insns): Create hash table if needed; push insns into
1566 hash instead of array.
1567 (maybe_copy_epilogue_insn): New.
1568 (contains): Search hash table instead of array.
1569 (sibcall_epilogue_contains): Remove.
1570 (thread_prologue_and_epilogue_insns): Split eh_return insns
1571 and mark them as epilogues.
1572 (reposition_prologue_and_epilogue_notes): Rewrite epilogue
1573 scanning in terms of basic blocks.
1574 * insn-notes.def (CFA_RESTORE_STATE): New.
1575 * jump.c (returnjump_p_1): Accept EH_RETURN.
1576 (eh_returnjump_p_1, eh_returnjump_p): New.
1577 * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
1578 CFA_REGISTER, CFA_RESTORE): New.
1579 * rtl.def (EH_RETURN): New.
1580 * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
1581
1582 * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
1583 (eh_return_internal): Use eh_return rtx; split w/ epilogue.
1584
1585 * config/i386/i386.c (gen_push): Update cfa state.
1586 (pro_epilogue_adjust_stack): Add set_cfa argument. When true,
1587 add a CFA_ADJUST_CFA note.
1588 (ix86_dwarf_handle_frame_unspec): Remove.
1589 (ix86_expand_prologue): Update cfa state.
1590 (ix86_emit_restore_reg_using_pop): New.
1591 (ix86_emit_restore_regs_using_pop): New.
1592 (ix86_emit_leave): New.
1593 (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
1594 (ix86_expand_epilogue): Add notes for unwinding the epilogue.
1595 * config/i386/i386.h (struct machine_cfa_state): New.
1596 (ix86_cfa_state): New.
1597 * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
1598 (eh_return_internal): Merge from eh_return_<mode>,
1599 use eh_return rtx, split w/ epilogue.
1600
72b5577d
ILT
16012009-05-29 Ian Lance Taylor <iant@google.com>
1602
1603 * builtins.c (validate_gimple_arglist): Don't use va_arg with
1604 enum type.
1605 * calls.c (emit_library_call_value_1): Likewise.
1606
1607 * c-typeck.c (c_build_va_arg): New function.
1608 * c-tree.h (c_build_va_arg): Declare.
1609 * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
1610 instead of build_va_arg.
1611
7a2faca1
EB
16122009-05-29 Eric Botcazou <ebotcazou@adacore.com>
1613
1614 * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
1615 (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
1616 (ptr_difference_cost): Use affine combinations to compute it.
1617 (difference_cost): Likewise.
1618 (get_computation_cost_at): Compute more accurate cost for addresses
1619 if the ratio is a multiplier allowed in addresses.
1620 For non-addresses, consider that an additional offset or symbol is
1621 added only once.
1622
725fd454
JJ
16232009-05-29 Jakub Jelinek <jakub@redhat.com>
1624
a0987204
JJ
1625 * config/i386/i386.c (ix86_decompose_address): Avoid useless
1626 0 displacement. Add 0 displacement if base is %[er]bp or %r13.
1627
725fd454
JJ
1628 * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
1629 TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
1630 (prefix_rex): For UNIT_MMX don't imply the prefix by default
1631 if MODE_DI.
1632 (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
1633 to 1 for TYPE_SSE{IADD1,CVT1}.
1634 (prefix_vex_imm8): Removed.
1635 (length_vex): Only pass 1 as second argument to
1636 ix86_attr_length_vex_default if prefix_extra is 0.
1637 (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
1638 (length): For prefix vex computation use length_immediate
1639 attribute instead of prefix_vex_imm8.
1640 (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
1641 addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
1642 *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
1643 *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
1644 (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
1645 *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
1646 a space in between the operands.
1647 (*anddi_1_rex64, *andsi_1): Likewise. Override prefix_rex to 1
1648 if one operand is 0xff and the other one si, di, bp or sp.
1649 (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
1650 other one si, di, bp or sp.
1651 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
1652 (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
1653 type and mode attributes.
1654 (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
1655 (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
1656 prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
1657 (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
1658 prefix_data16 attribute iff MODE_DF.
1659 (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
1660 (fix_trunc<mode>di_sse): Set prefix_rex attribute.
1661 (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
1662 constm128_operand in length_immediate computation.
1663 (*addhi_4): Likewise. Fix mode attribute to MODE_HI.
1664 (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
1665 (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
1666 length_immediate attribute to 1.
1667 (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
1668 (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
1669 for certain alternatives.
1670 (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
1671 prefix_data16 attribute if MODE_V1DF.
1672 (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
1673 length_immediate to 1.
1674 (set_got_rex64, set_rip_rex64): Remove length attribute, set
1675 length_address to 4, set mode attribute to MODE_DI.
1676 (set_got_offset_rex64): Likewise. Set length_immediate to 0.
1677 (fxam<mode>2_i387): Set length attribute to 4.
1678 (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
1679 *prefetch_3dnow_rex): Override length_address attribute.
1680 (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
1681 attributes.
1682 * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
1683 (constm128_operand): Removed.
1684 * config/i386/i386.c (memory_address_length): For
1685 disp && !index && !base in 64-bit mode account for SIB byte if
1686 print_operand_address can't optimize disp32 into disp32(%rip)
1687 and UNSPEC doesn't imply (%rip) addressing. Add 1 to length
1688 for fs: or gs: segment.
1689 (ix86_attr_length_immediate_default): When checking if shortform
1690 is possible, truncate immediate to the length of the non-shortened
1691 immediate.
1692 (ix86_attr_length_address_default): Ignore MEM_P operands
1693 with X constraint.
1694 (ix86_attr_length_vex_default): Only check for DImode on
1695 GENERAL_REG_P operands.
1696 * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
1697 prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
1698 (sse_cvttps2pi): Clear prefix_rep attribute.
1699 (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
1700 attribute.
1701 (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
1702 (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
1703 *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
1704 iff operand 2 is const_int_operand.
1705 (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
1706 sse2_shufpd_<mode>): Set length_immediate attribute to 1.
1707 (sse2_pshufd_1): Likewise. Set prefix attribute to maybe_vex
1708 instead of vex.
1709 (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
1710 prefix_data16.
1711 (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
1712 prefix_data16 attribute for movlpd and movhpd instructions.
1713 (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise. Override
1714 length_immediate for shufpd instruction.
1715 (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
1716 (avx_cmpp<avxmodesuffixf2c><mode>3,
1717 avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
1718 <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
1719 avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
f3afc8a7 1720 *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1.
725fd454
JJ
1721 (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
1722 (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
1723 (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
1724 prefix_data16 attribute for the first alternative to 1.
1725 (*avx_loadlps): Override length_immediate for the first alternative.
1726 (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
1727 attributes for second alternative.
1728 (*vec_concatv2sf_sse4_1): Override length_immediate and
1729 prefix_data16 attributes for second alternative.
1730 (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
1731 vec_extract_hi_<mode>, vec_extract_lo_v16hi,
1732 vec_extract_hi_v16hi, vec_extract_lo_v32qi,
1733 vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
1734 (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
1735 prefix_data16 and length_immediate to 1.
1736 (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
1737 to 1.
1738 (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
f3afc8a7 1739 prefix_extra attribute for variants that don't have 0f prefix alone.
725fd454
JJ
1740 (*avx_pinsr<ssevecsize>): Likewise. Set length_immediate to 1.
1741 (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
1742 *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
1743 *sse4_1_pextrd): Set length_immediate to 1.
1744 (*sse4_1_pinsrd): Likewise. Set prefix_extra to 1.
1745 (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
1746 to 1.
1747 (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
1748 *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
1749 length_immediate to 1 for second alternative.
1750 (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
1751 prefix_extra and length_immediate attributes for the first
1752 alternative.
1753 (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
1754 first alternative.
1755 (*vec_concatv2di_rex64_sse4_1): Likewise. Override prefix_rex
1756 to 1 for the first and third alternative.
1757 (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
1758 alternative.
1759 (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
1760 attribute.
1761 (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
1762 attribute to 0.
1763 (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
1764 *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
1765 *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
1766 *avx_psign<mode>3): Set prefix_extra attribute to 1.
1767 (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
1768 ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
1769 ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
1770 ssse3_psign<mode>3): Override prefix_rex attribute.
f3afc8a7 1771 (*avx_palignrti): Override prefix_extra and length_immediate to 1.
725fd454
JJ
1772 (ssse3_palignrti): Override length_immediate to 1.
1773 (ssse3_palignrdi): Override length_immediate to 1, override
1774 prefix_rex attribute.
f3afc8a7 1775 (abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute.
725fd454
JJ
1776 (sse4a_extrqi): Override length_immediate to 2.
1777 (sse4a_insertqi): Likewise. Override prefix_data16 to 0.
1778 (sse4a_insertq): Override prefix_data16 to 0.
1779 (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
1780 avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
1781 avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
1782 *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
1783 avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
1784 and length_immediate to 1.
1785 (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
1786 sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
1787 sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
1788 sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
1789 and length_immediate to 1.
1790 (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
1791 (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
1792 (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
1793 avx_ptest256): Override prefix_extra to 1.
1794 (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
1795 Override prefix_data16 and length_immediate to 1.
1796 (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
1797 sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
1798 sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
1799 sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
1800 prefix_data16 to 0 and prefix_extra to 2.
1801 (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
1802 (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
1803 attribute.
1804 (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
1805 sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
1806 Override prefix_data16 and prefix_rep to 0, length_immediate to 1
1807 and prefix_extra to 2.
1808 (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
1809 prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
1810 (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
1811 avx_vpermilvar<mode>3,
1812 avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
1813 avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
1814 avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
1815 avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
1816 Override prefix_extra to 1.
1817 (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
1818 (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
1819 vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
1820 vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
1821 prefix_extra and length_immediate to 1.
1822 (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
1823 modrm to 0.
1824 (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
1825 to 1 for the first alternative.
1826 * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
1827 prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
1828 cases.
1829 (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
1830 *movv2sf_internal_avx, *movv2sf_internal): Override
1831 prefix_rep attribute for certain alternatives.
1832 (*mov<mode>_internal): Override prefix_rep or prefix_data16
1833 attributes for certain alternatives.
1834 (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
1835 attributes for certain alternatives.
1836 (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
1837 *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
1838 mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
1839 mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
1840 *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
1841 mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
1842 mmx_pswapdv2si2): Set prefix_extra attribute to 1.
1843 (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
1844 length_immediate to 1 if operand 2 is const_int_operand.
1845 (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
f3afc8a7 1846 *vec_extractv2si_1): Set length_immediate attribute to 1.
725fd454
JJ
1847 (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
1848 using old 3DNOW insn rather than SSE/3DNOW_A.
1849 (mmx_emms, mmx_femms): Clear modrm attribute.
1850
0674b9d0
MJ
18512009-05-29 Martin Jambor <mjambor@suse.cz>
1852
1853 * tree-sra.c: New implementation of SRA.
1854
1855 * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
1856 (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
1857 (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
1858 * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
1859 (SRA_MAX_STRUCTURE_COUNT): Removed.
1860 (SRA_FIELD_STRUCTURE_RATIO): Removed.
1861 * doc/invoke.texi (sra-max-structure-size): Removed.
1862 (sra-field-structure-ratio): Removed.
1863
616f21df
JJ
18642009-05-29 Jakub Jelinek <jakub@redhat.com>
1865
1866 PR middle-end/40291
1867 * builtins.c (expand_builtin_memcmp): Convert len to sizetype
1868 before expansion.
1869
da7ba240
AB
18702009-05-29 Andrey Belevantsev <abel@ispras.ru>
1871
1872 PR rtl-optimization/40101
1873 * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
1874 seqno. Adjust comment.
1875 * sel-sched.c (find_seqno_for_bookkeeping): Assert that when
1876 inserting bookkeeping before a jump, the jump is not scheduled.
1877 When no positive seqno found, provide a value. Add comment.
1878
71dcd609
RG
18792009-05-29 Richard Guenther <rguenther@suse.de>
1880
1881 * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
1882 short-cutting on the first component.
1883
a900ae6b
JJ
18842009-05-29 Jakub Jelinek <jakub@redhat.com>
1885
1886 PR middle-end/39958
1887 * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
1888 for trees other than decls/types.
1889
821bb7f8
RG
18902009-05-29 Richard Guenther <rguenther@suse.de>
1891
1892 * tree-ssa-operands.c (get_expr_operands): Do not handle
1893 INDIRECT_REFs in the handled-component case. Remove
1894 unused get_ref_base_and_extent case.
1895 * tree-dfa.c (get_ref_base_and_extent): Avoid calling
1896 tree_low_cst and host_integerp where possible.
1897 * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
1898 codes for equivalence.
1899 * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
1900
e997fb9c
DB
19012009-05-29 David Billinghurst <billingd@gcc.gnu.org>
1902
1903 * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
1904 to tmake_file for i[34567]86-*-cygwin*.
1905
58195b74
JJ
19062009-05-29 Jakub Jelinek <jakub@redhat.com>
1907
1908 PR target/40017
1909 * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
1910 (altivec_categorize_keyword, init_vector_keywords,
1911 rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
1912 similar to bool.
1913
055df276
KT
19142009-05-29 Kai Tietz <kai.tietz@onevision.com>
1915
1916 * tree.c (handle_dll_attribute): Check if node is
1917 of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
1918
f5939ef3
RE
19192009-05-29 Richard Earnshaw <rearnsha@arm.com>
1920
1921 * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
1922 component.
1923 (thumb2_zero_extendqidi2): Likewise.
1924
c185de40
KK
19252009-05-28 Kaz Kojima <kkojima@gcc.gnu.org>
1926
1927 * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
1928 instead of gen_movrt.
1929 * config/sh/sh.md (movrt): Remove.
1930
bf3c6caf
SE
19312009-05-28 Steve Ellcey <sje@cup.hp.com>
1932
f3afc8a7 1933 * doc/invoke.texi (IA-64 Options):
bf3c6caf
SE
1934 Add -msdata, -mfused-madd, -mno-inline-float-divide,
1935 -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
1936 -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
1937 -msched-prefer-non-control-spec-insns,
1938 -msched-stop-bits-after-every-cycle,
1939 -msched-count-spec-in-critical-path,
1940 -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
f3afc8a7 1941 -msched-max-memory-insns-hard-limit, -msched-max-memory-insns.
bf3c6caf
SE
1942 Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
1943 and -msched-spec-verbose.
1944
8a66e987
JM
19452009-05-28 Joseph Myers <joseph@codesourcery.com>
1946
f3afc8a7 1947 * config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache.
8a66e987
JM
1948 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
1949 error if used.
1950 * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
1951
b45d2719
RG
19522009-05-28 Richard Guenther <rguenther@suse.de>
1953
1954 * tree-ssa-alias.c (ao_ref_init): New function.
1955 (ao_ref_base): Likewise.
1956 (ao_ref_base_alias_set): Likewise.
1957 (ao_ref_alias_set): Likewise.
1958 (refs_may_alias_p_1): Change signature.
1959 (refs_may_alias_p): Adjust.
1960 (refs_anti_dependent_p): Likewise.
1961 (refs_output_dependent_p): Likewise.
1962 (call_may_clobber_ref_p_1): Change signature.
1963 (call_may_clobber_ref_p): Adjust.
1964 (stmt_may_clobber_ref_p_1): New function split out from ...
1965 (stmt_may_clobber_ref_p): ... here.
1966 (maybe_skip_until): Adjust signature.
1967 (get_continuation_for_phi): Likewise.
1968 (walk_non_aliased_vuses): Likewise.
1969 * tree-ssa-alias.h (struct ao_ref_s): New structure type.
1970 (ao_ref_init): Declare.
1971 (ao_ref_base): Likewise.
1972 (ao_ref_alias_set): Likewise.
1973 (stmt_may_clobber_ref_p_1): Likewise.
1974 (walk_non_aliased_vuses): Adjust.
1975 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
1976 (get_ref_from_reference_ops): remove.
1977 (vn_reference_lookup_2): Adjust signature.
1978 (vn_reference_lookup_3): Do not re-build trees. Handle unions.
f3afc8a7 1979 (vn_reference_lookup_pieces): Adjust signature, do not re-build trees.
b45d2719
RG
1980 (vn_reference_lookup): Adjust.
1981 (vn_reference_insert): Likewise.
1982 (vn_reference_insert_pieces): Adjust signature.
1983 (visit_reference_op_call): Adjust.
1984 * tree-ssa-pre.c (get_expr_type): Simplify.
1985 (phi_translate_1): Adjust.
1986 (compute_avail): Likewise.
1987 (translate_vuse_through_block): Do not re-build trees.
1988 (value_dies_in_block_x): Likewise.
1989 * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
1990 fields.
1991 (vn_reference_lookup_pieces): Adjust declaration.
1992 (vn_reference_insert_pieces): Likewise.
1993
554223b6
BK
19942009-05-28 Benjamin Kosnik <bkoz@redhat.com>
1995
1996 * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
1997 with checking disabled.
1998
233215fe
DK
19992009-05-28 Dave Korn <dave.korn.cygwin@gmail.com>
2000
2001 PR target/37216
2002
2003 * configure.ac (HAVE_GAS_ALIGNED_COMM): Add autoconf test and
2004 macro definition for support of three-operand format aligned
2005 .comm directive in assembler on cygwin/pe/mingw target OS.
2006 * configure: Regenerate.
2007 * config.h: Regenerate.
2008
2009 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Use
2010 aligned form of .comm directive if -mpe-aligned-commons is in effect.
2011 * config/i386/cygming.opt (-mpe-aligned-commons): Add new option.
2012
2013 * doc/invoke.texi (-mpe-aligned-commons): Document new target option.
2014 * doc/tm.texi (ASM_OUTPUT_COMMON): Document zero size commons.
2015
24adb18f
IR
20162009-05-28 Ira Rosen <irar@il.ibm.com>
2017
2018 PR tree-optimization/40254
2019 * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
2020 in analysis of basic blocks.
2021
2c5bfdf7
AN
20222009-05-28 Adam Nemet <anemet@caviumnetworks.com>
2023
2024 PR middle-end/33699
f3afc8a7 2025 * target.h (struct gcc_target): Fix indentation. Add const_anchor.
2c5bfdf7
AN
2026 * target-def.h (TARGET_CONST_ANCHOR): New macro.
2027 (TARGET_INITIALIZER): Use it.
2028 * cse.c (CHEAPER): Move it up to the other macros.
2029 (insert): Rename this ...
2030 (insert_with_costs): ... to this. Add cost parameters. Update
2031 function comment.
2032 (insert): New function. Call insert_with_costs.
2033 (compute_const_anchors, insert_const_anchor, insert_const_anchors,
2034 find_reg_offset_for_const, try_const_anchors): New functions.
2035 (cse_insn): Call try_const_anchors. Adjust cost of src_related
2036 when using a const-anchor. Call insert_const_anchors.
f3afc8a7 2037 * config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor.
2c5bfdf7
AN
2038 * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
2039
9e6aced0
AO
20402009-05-28 Alexandre Oliva <aoliva@redhat.com>
2041
2042 * tree-inline.c (remap_decls): Enable nonlocalized variables
2043 when not optimizing.
2044
89fbbe4e
AO
20452009-05-28 Alexandre Oliva <aoliva@redhat.com>
2046
2047 * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
2048 Simplify other tests involving optimize.
2049
e455776a
TT
20502009-05-27 Tom Tromey <tromey@redhat.com>
2051
2052 * unwind-dw2.c (_Unwind_DebugHook): New function.
2053 (uw_install_context): Call _Unwind_DebugHook.
2054
cea32bca
TT
20552009-05-27 Tom Tromey <tromey@redhat.com>
2056
2057 * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
2058
c607156f
ILT
20592009-05-27 Ian Lance Taylor <iant@google.com>
2060
2061 * Makefile.in (LINKER, LINKER_FLAGS): Define.
2062 (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
2063 (ALL_LINKERFLAGS): Define.
2064 (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
2065 (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
2066 (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
2067 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
2068 (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
2069 $(LINKER_FOR_BUILD).
2070 (build/gcov-iov$(build_exeext)): Likewise.
2071
ec0a1343
JB
20722009-05-27 Julian Brown <julian@codesourcery.com>
2073
2074 * gcse.c (target.h): Include.
2075 (can_assign_to_reg_without_clobbers_p): Check that the target allows
2076 copy of argument to a pseudo register.
2077
ac80ba07
DN
20782009-05-27 Diego Novillo <dnovillo@google.com>
2079
2080 * tree-ssa-live.c (dump_scope_block): Document arguments.
2081 (dump_scope_blocks): Document.
2082 (debug_scope_blocks): New.
2083 * tree-flow.h (debug_scope_blocks): Declare.
2084
d1803a17
DC
20852009-05-21 Denis Chertykov <denisc@overta.ru>
2086
f3afc8a7 2087 * doc/contrib.texi (Contributors): Add myself to the list.
d1803a17 2088
51fb7760 20892009-05-27 Olivier Hainque <hainque@adacore.com>
ceadb728
OH
2090
2091 * expr.c (target_align): New function. Alignment the TARGET of an
2092 assignment may be assume to have.
2093 (highest_pow2_factor_for_target): Use it instead of relying on
2094 immediate tree attributes of TARGET, not necessarily honored when
2095 intermediate bitfields are involved.
2096
634fa334
L
20972009-05-27 H.J. Lu <hongjiu.lu@intel.com>
2098
2099 PR target/40266
2100 * config/i386/driver-i386.c (host_detect_local_cpu): Support
2101 AVX, SSE4, AES, PCLMUL and POPCNT.
2102
65332587
DN
21032009-05-27 Diego Novillo <dnovillo@google.com>
2104
2105 * tree-pretty-print.c (dump_location): New.
2106 (dump_generic_node): Call it.
2107 Factor code to handle BLOCK nodes ...
2108 (dump_block_node): ... here.
2109
3e17e31d
RAE
21102009-05-27 Rafael Avila de Espindola <espindola@google.com>
2111
f3afc8a7
UB
2112 * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h
2113 with it.
3e17e31d
RAE
2114 * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
2115 included.
2116 * gcc-plugin.h: Include config.h and system.h.
2117 (IN_GCC): Define if not defined.
2118
5e370570
HPN
21192009-05-27 Hans-Peter Nilsson <hp@axis.com>
2120
2121 PR middle-end/40249
2122 * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
2123 with -fno-inline.
2124
d000f0d9
SZ
21252009-05-27 Shujing Zhao <pearly.zhao@oracle.com>
2126
2127 * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
2128 applicable.
2129 * config/m32r/m32r.h: Ditto.
2130 * config/m32r/m32r.md: Ditto.
2131 * config/m32r/predicates.md: Ditto.
2132
82f331ff
AO
21332009-05-27 Alexandre Oliva <aoliva@redhat.com>
2134
2135 * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
2136
ae2392a9
BS
21372009-05-26 Basile Starynkevitch <basile@starynkevitch.net>
2138
2139 * doc/plugins.texi
2140 (Loading plugins): typo.
2141 (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
2142 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
2143 (Interacting with the GCC Garbage Collector): Added new section.
2144 (Giving information about a plugin): Added new section for
2145 PLUGIN_INFO.
ae2392a9
BS
2146 * ggc.h (ggc_register_root_tab): Added declaration.
2147 * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
2148 (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
2149 (register_callback): Improved comment in declaration.
f3afc8a7
UB
2150 * ggc-common.c (const_ggc_root_tab_t) Added new typedef for vectors.
2151 (extra_root_vec) Added static variable for dynamic roots registration.
ae2392a9
BS
2152 (ggc_register_root_tab) Added new routine.
2153 (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
2154 PLUGIN_GGC_MARKING event.
2155 * ggc-zone.c: Include plugin.h.
2156 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
2157 * ggc-page.c: Include plugin.h.
2158 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
2159 * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
2160 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
2161 (register_callback): check lack of callbacks for
2162 pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
2163 PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
2164 (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
2165 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
2166 * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
2167 dependency on plugin.h.
2168 (plugin.o): Added dependency on ggc.h...
2169
f0cfd3a8
RG
21702009-05-26 Richard Guenther <rguenther@suse.de>
2171
2172 PR middle-end/40248
2173 Revert
2174 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
2175 with mismatched comparison modes.
2176
2177 * expr.c (expand_expr_real_1): Expand the operand of a
2178 VIEW_CONVERT_EXPR in its natural mode.
2179
7980bfb8
ILT
21802009-05-26 Ian Lance Taylor <iant@google.com>
2181
2182 * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
2183 (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
2184 (ALL_COMPILERFLAGS): Define.
2185 (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
2186 (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
2187 (collect2$(exeext), collect2.o): Likewise.
2188 (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
2189 (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
2190 ($(out_object_file), mips-tfile, mips-tdump): Likewise.
2191 (libbackend.o, intl.o, cppdefault.o): Likewise.
2192 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
2193 (build/%.o): Use $(COMPILER_FOR_BUILD).
2194 (build/gen%$(build_exeext)): Likewise.
2195 (build/gcov-iov$(build_exeext)): LIkewise.
2196 * config/t-darwin (darwin.o): Use $(COMPILER).
2197 (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
2198 * config/t-sol2 (sol2-c.o): Likewise.
2199 (sol2.o): Likewise.
2200 * config/t-vxworks (vxworks.o): Likewise.
2201 * config/x-darwin (host-darwin.o): Likewise.
2202 * config/x-hpux (host-hpux.o): Likewise.
2203 * config/x-linux (host-linux.o): Likewise.
2204 * config/x-solaris (host-solaris.o): Likewise.
2205 * config/alpha/x-alpha (driver-alpha.o): Likewise.
2206 * config/arm/t-arm (arm-c.o): Likewise.
2207 * config/arm/t-pe (pe.o): Likewise.
2208 * config/arm/t-wince-pe (pe.o): Likewise.
2209 * config/i386/t-cygming (winnt.o): Likewise.
2210 (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
2211 * config/i386/t-cygwin (cygwin1.o): Likewise.
2212 (cygwin2.o): Likewise.
2213 * config/i386/t-i386 (i386-c.o): Likewise.
2214 * config/i386/t-interix (winnt.o): Likewise.
2215 * config/i386/t-netware (netware.o): Likewise.
2216 * config/i386/t-nwld (nwld.o): Likewise.
2217 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
2218 * config/i386/x-i386 (driver-i386.o): Likewise.
2219 * config/i386/x-cygwin (host-cygwin.o): Likewise.
2220 * config/i386/x-mingw32 (host-mingw32.o): Likewise.
2221 * config/ia64/t-ia64 (ia64-c.o): Likewise.
2222 * config/m32c/t-m32c (m32c-pragma.o): Likewise.
2223 * config/mips/x-native (driver-native.o): Likewise.
2224 * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
2225 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
2226 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
2227 * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
2228 * config/score/t-score-elf (score7.o): Likewise.
2229 (score3.o): Likewise.
2230 * config/sh/t-sh (sh-c.o): Likewise.
2231 * config/sh/t-symbian (sh-c.o): Likewise.
2232 (symbian.o): Likewise.
2233 * config/spu/t-spu-elf (spu-c.o): Likewise.
2234 * config/v850/t-v850 (v850-c.o): Likewise.
2235 * config/v850/t-v850e (v850-c.o): Likewise.
2236
23977d3c
RG
22372009-05-26 Richard Guenther <rguenther@suse.de>
2238
2239 PR tree-optimization/40122
2240 * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
2241 VECTOR_CSTs if possible.
2242 (fold_gimple_assign): Likewise.
2243
3d62b895
RG
22442009-05-26 Richard Guenther <rguenther@suse.de>
2245
2246 PR middle-end/40252
2247 * fold-const.c (fold_binary): Use the correct types for building
2248 rotates.
2249
12346147
RG
22502009-05-26 Richard Guenther <rguenther@suse.de>
2251
2252 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
2253 redundant calls to merge_alias_info.
2254 (bump_vector_ptr): Likewise.
2255 * tree-ssa-copy.c (merge_alias_info): Remove.
2256 (replace_exp_1): Remove call to merge_alias_info.
2257 (propagate_tree_value): Likewise.
2258 (fini_copy_prop): Propagate points-to info.
2259 * tree-flow.h (merge_alias_info): Remove.
2260
807d5e6f
HS
22612009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
2262
2263 * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
2264
85057983
JH
22652009-05-25 Jan Hubicka <jh@suse.cz>
2266
2267 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
2268 * cgraph.h (struct inline_summary): New filed self_wize,
2269 size_inlining_benefit, self_time and time_inlining_benefit.
2270 (struct cgraph_global_info): Replace insns by time ans size fields.
2271 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
2272 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
2273 (ipcp_update_callgraph): Do not touch function bodies.
2274 * ipa-inline.c: Include except.h
2275 (MAX_TIME): New constant.
2276 (overall_insns): Remove.
2277 (leaf_node_p): New.
2278 (overall_size, max_benefit): New static variables.
2279 (cgraph_estimate_time_after_inlining): New function.
2280 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
2281 (cgraph_clone_inlined_nodes): Update size.
2282 (cgraph_mark_inline_edge): Update size.
2283 (cgraph_estimate_growth): Use size info.
2284 (cgraph_check_inline_limits): Check size.
2285 (cgraph_default_inline_p): Likewise.
2286 (cgraph_edge_badness): Compute badness based on benefit and size cost.
2287 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
2288 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
2289 and times.
85057983
JH
2290 (cgraph_decide_inlining): Likewise.
2291 (cgraph_decide_inlining_incrementally): Likewise; honor
2292 PARAM_EARLY_INLINING_INSNS.
2293 (likely_eliminated_by_inlining_p): New predicate.
2294 (estimate_function_body_sizes): New function.
2295 (compute_inline_parameters): Use it.
2296 * except.c (must_not_throw_labels): New function.
2297 * except.h (must_not_throw_labels): Declare.
2298 * tree-inline.c (init_inline_once): Kill inlining_weigths
2299 * tree-ssa-structalias.c: Avoid uninitialized warning.
2300 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
2301 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
2302 (PARAM_INLINE_CALL_COST): Remove.
2303 (PARAM_EARLY_INLINING_INSNS): New.
2304
01df5c8a
RG
23052009-05-25 Richard Guenther <rguenther@suse.de>
2306
2307 PR tree-optimization/36327
2308 * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
f3afc8a7 2309 callback for reference translation or lookup at the point of may-defs.
01df5c8a
RG
2310 * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
2311 * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
2312 for union COMPONENT_REFs.
2313 (vn_reference_lookup_3): New callback. Lookup from memset
2314 and CONSTRUCTOR assignment, translate through struct copies.
2315 (vn_reference_lookup_pieces): Make sure to not free the
2316 passed operands array. Adjust walk_non_aliased_vuses call.
2317 (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
2318 make sure we do not leak memory.
2319
6b8ed145
RG
23202009-05-25 Richard Guenther <rguenther@suse.de>
2321
2322 * tree-ssa-alias.h (dump_points_to_solution): Declare.
2323 * tree-inline.c (expand_call_inline): Reset the escaped and
2324 callused solutions.
2325 * tree-ssa-structalias.c (pass_build_ealias): New.
2326 * tree-pass.h (pass_build_ealias): Declare.
2327 * passes.c (init_optimization_passes): Add PTA during
2328 early optimizations.
2329 * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
2330 and CALLUSED solutions.
2331 (dump_points_to_solution): New function, split out from ...
2332 (dump_points_to_info_for): ... here.
2333 * tree-parloops.c (parallelize_loops): Reset the escaped and
2334 callused solutions.
2335
0adcf178
RO
23362009-05-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2337
2338 PR bootstrap/40027
2339 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
2340 * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
2341
12aaf609
IR
23422009-05-25 Ira Rosen <irar@il.ibm.com>
2343
2344 PR tree-optimization/40238
2345 * tree-vect-stmts.c (vect_init_vector): Insert initialization
2346 statements after basic block's labels.
2347 * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info()
2348 to free the allocated memory.
2349
7f9a14e3
KK
23502009-05-24 Kaz Kojima <kkojima@gcc.gnu.org>
2351
2352 * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
2353 return address with a USE.
2354
b842d478
RG
23552009-05-24 Richard Guenther <rguenther@suse.de>
2356
2357 PR middle-end/40233
2358 * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
2359 array type from the main variant of the inner type.
2360
8db7b33f
JBG
23612009-05-24 Jan-Benedict Glaw <jbglaw@lug-owl.de>
2362
2363 * config/vax/vax-protos.h (legitimate_constant_address_p): Change
2364 definition to bool (from int) to un-break build.
2365 (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
2366
cff4e50d
PB
23672009-05-24 Paolo Bonzini <bonzini@gnu.org>
2368
2369 * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
2370 discard_stmt_changes): Delete.
2371 * tree-ssa-operands.c (scb_stack): Delete.
2372 (init_ssa_operands): Do not initialize it.
2373 (fini_ssa_operands): Do not free it.
2374 (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
2375
2376 * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with
2377 update_stmt, remove the others. Fix comments.
2378 * tree-dfa.c (optimize_stack_restore): Likewise.
2379 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
2380 * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
2381 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
2382 * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
2383 Likewise.
2384 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
2385 * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
f3afc8a7
UB
2386 (dom_opt_finalize_block): Likewise, adjusting access to
2387 stmts_to_rescan.
cff4e50d
PB
2388 (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
2389 (stmts_to_rescan): Change item type to gimple.
2390 (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
2391
a70d6342
IR
23922009-05-24 Ira Rosen <irar@il.ibm.com>
2393
2394 * doc/passes.texi (Tree-SSA passes): Document SLP pass.
2395 * tree-pass.h (pass_slp_vectorize): New pass.
2396 * params.h (SLP_MAX_INSNS_IN_BB): Define.
2397 * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
2398 * tree-vectorizer.c (timevar.h): Include.
2399 (user_vect_verbosity_level): Declare.
2400 (vect_location): Fix comment.
2401 (vect_set_verbosity_level): Update user_vect_verbosity_level
2402 instead of vect_verbosity_level.
2403 (vect_set_dump_settings): Add an argument. Ignore user defined
2404 verbosity if dump flags require higher level of verbosity. Print to
2405 stderr only for loop vectorization.
2406 (vectorize_loops): Update call to vect_set_dump_settings.
2407 (execute_vect_slp): New function.
2408 (gate_vect_slp): Likewise.
2409 (struct gimple_opt_pass pass_slp_vectorize): New.
2410 * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
2411 access its members.
2412 (vec_info_for_bb): New function.
2413 (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
2414 (VECTORIZATION_ENABLED): New macro.
2415 (SLP_ENABLED, SLP_DISABLED): Likewise.
2416 (vect_is_simple_use): Add bb_vec_info argument.
2417 (new_stmt_vec_info, vect_analyze_data_ref_dependences,
2418 vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
2419 vect_analyze_data_ref_accesses, vect_analyze_data_refs,
2420 vect_schedule_slp, vect_analyze_slp): Likewise.
2421 (vect_analyze_stmt): Add slp_tree argument.
2422 (find_bb_location): Declare.
2423 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
2424 * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
2425 (vect_analyze_loop_operations, vect_analyze_loop,
2426 get_initial_def_for_induction, vect_create_epilog_for_reduction,
2427 vect_finalize_reduction, vectorizable_reduction,
2428 vectorizable_live_operation, vect_transform_loop): Likewise.
2429 * tree-data-ref.c (dr_analyze_innermost): Update comment,
2430 skip evolution analysis if analyzing a basic block.
2431 (dr_analyze_indices): Likewise.
2432 (initialize_data_dependence_relation): Skip the test whether the
2433 object is invariant for basic blocks.
2434 (compute_all_dependences): Skip dependence analysis for data
2435 references in basic blocks.
2436 (find_data_references_in_stmt): Don't fail in case of invariant
2437 access in basic block.
2438 (find_data_references_in_bb): New function.
2439 (find_data_references_in_loop): Move code to
782dc37a 2440 find_data_references_in_bb and add a call to it.
a70d6342
IR
2441 (compute_data_dependences_for_bb): New function.
2442 * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
2443 * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
2444 that STEP is 0.
2445 (vect_analyze_data_ref_dependence): Check for interleaving in case of
2446 unknown dependence in basic block and fail in case of dependence in
2447 basic block.
2448 (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
2449 dependence instances from either loop or basic block vectorization
2450 info.
2451 (vect_compute_data_ref_alignment): Check if it is loop vectorization
2452 before calling nested_in_vect_loop_p.
2453 (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
2454 dependence instances from either loop or basic block vectorization
2455 info.
2456 (vect_verify_datarefs_alignment): Likewise.
2457 (vect_enhance_data_refs_alignment): Adjust function calls.
2458 (vect_analyze_data_refs_alignment): Likewise.
2459 (vect_analyze_group_access): Fix printing. Skip different checks if
2460 DR_STEP is 0. Keep strided stores either in loop or basic block
2461 vectorization data structure. Fix indentation.
2462 (vect_analyze_data_ref_access): Fix comments, allow zero step in
2463 basic blocks.
2464 (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
2465 dependence instances from either loop or basic block vectorization
2466 info.
2467 (vect_analyze_data_refs): Update comment. Call
2468 compute_data_dependences_for_bb to analyze basic blocks.
2469 (vect_create_addr_base_for_vector_ref): Check for outer loop only in
2470 case of loop vectorization. In case of basic block vectorization use
782dc37a 2471 data-ref itself as a base.
a70d6342
IR
2472 (vect_create_data_ref_ptr): In case of basic block vectorization:
2473 don't advance the pointer, add new statements before the current
2474 statement. Adjust function calls.
2475 (vect_supportable_dr_alignment): Support only aligned accesses in
2476 basic block vectorization.
2477 * common.opt (ftree-slp-vectorize): New flag.
2478 * tree-vect-patterns.c (widened_name_p): Adjust function calls.
2479 (vect_pattern_recog_1): Likewise.
2480 * tree-vect-stmts.c (process_use): Likewise.
2481 (vect_init_vector): Add new statements in the beginning of the basic
2482 block in case of basic block SLP.
2483 (vect_get_vec_def_for_operand): Adjust function calls.
2484 (vect_finish_stmt_generation): Likewise.
2485 (vectorizable_call): Add assert that it is loop vectorization, adjust
2486 function calls.
2487 (vectorizable_conversion, vectorizable_assignment): Likewise.
2488 (vectorizable_operation): In case of basic block SLP, take
2489 vectorization factor from statement's type and skip the relevance
2490 check. Adjust function calls.
2491 (vectorizable_type_demotion): Add assert that it is loop
2492 vectorization, adjust function calls.
2493 (vectorizable_type_promotion): Likewise.
2494 (vectorizable_store): Check for outer loop only in case of loop
2495 vectorization. Adjust function calls. For basic blocks, skip the
2496 relevance check and don't advance pointers.
2497 (vectorizable_load): Likewise.
2498 (vectorizable_condition): Add assert that it is loop vectorization,
2499 adjust function calls.
2500 (vect_analyze_stmt): Add argument. In case of basic block SLP, check
2501 that it is not reduction, get vector type, call only supported
782dc37a 2502 functions, skip loop specific parts.
a70d6342
IR
2503 (vect_transform_stmt): Check for outer loop only in case of loop
2504 vectorization.
2505 (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
2506 (vect_is_simple_use): Fix comment, add new argument, fix conditions
2507 for external definition.
2508 * passes.c (pass_slp_vectorize): New pass.
2509 * tree-vect-slp.c (find_bb_location): New function.
2510 (vect_get_and_check_slp_defs): Add argument, adjust function calls,
2511 check for patterns only in loops.
2512 (vect_build_slp_tree): Add argument, adjust function calls, fail in
2513 case of multiple types in basic block SLP.
2514 (vect_mark_slp_stmts_relevant): New function.
2515 (vect_supported_load_permutation_p): Fix comment.
2516 (vect_analyze_slp_instance): Add argument. In case of basic block
2517 SLP, take vectorization factor from statement's type, check that
2518 unrolling factor is 1. Adjust function call. Save SLP instance in
2519 either loop or basic block vectorization structure. Return FALSE,
2520 if SLP failed.
2521 (vect_analyze_slp): Add argument. Get strided stores groups from
2522 either loop or basic block vectorization structure. Return FALSE
2523 if basic block SLP failed.
2524 (new_bb_vec_info): New function.
2525 (destroy_bb_vec_info, vect_slp_analyze_node_operations,
2526 vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
2527 (vect_schedule_slp): Add argument. Get SLP instances from either
2528 loop or basic block vectorization structure. Set vectorization factor
2529 to be 1 for basic block SLP.
2530 (vect_slp_transform_bb): New function.
2531 * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
2532
0676c393
MM
25332009-05-23 Mark Mitchell <mark@codesourcery.com>
2534
2535 * final.c (shorten_branches): Do not align labels for jump tables.
2536 (final_scan_insn): Use JUMP_TABLE_DATA_P.
2537
94324dae
EB
25382009-05-23 Eric Botcazou <ebotcazou@adacore.com>
2539
2540 * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
2541 Remove outdated reference to flow.c and fix nits.
2542 * doc/gccint.texi: Tweak RTL description.
2543 * doc/rtl.texi: Likewise.
2544
92bffc14
DC
25452009-05-23 Denis Chertykov <chertykov@gmail.com>
2546
2547 * config/avr/avr.c: Change my email address.
2548 * config/avr/avr.h: Likewise.
2549 * config/avr/avr.md: Likewise.
2550 * config/avr/avr-protos.h: Likewise.
2551 * config/avr/libgcc.S: Likewise.
2552
eec9405e
TS
25532009-05-22 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
2554
2555 * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
2556 (spu_split_load, spu_split_store): Change return type to int.
2557 (spu_split_convert): Declare.
2558 * config/spu/predicates.md (spu_mem_operand): Remove.
2559 (spu_mov_operand): Update.
2560 (spu_dest_operand, shiftrt_operator, extend_operator): Define.
2561 * config/spu/spu.c (regno_aligned_for_load): Remove.
2562 (reg_aligned_for_addr, spu_expand_load): Define.
2563 (spu_expand_extv): Reimplement and handle MEM.
2564 (spu_expand_insv): Handle MEM.
2565 (spu_sched_reorder): Handle insn's with length 0.
2566 (spu_legitimate_address_p): Reimplement.
2567 (store_with_one_insn_p): Return TRUE for any mode with size
2568 larger than 16 bytes.
2569 (address_needs_split): Define.
2570 (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
2571 operands.
2572 (spu_convert_move): Define.
782dc37a 2573 (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
eec9405e
TS
2574 (spu_split_store): Change all MEM's to TImode.
2575 (spu_init_expanders): Preallocate registers that correspond to
2576 LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
2577 mark_reg_pointer.
2578 (spu_split_convert): Define.
2579 * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
2580 (_move<mode>, _movdi, _movti): Update predicate and condition.
2581 (load, store): Change to define_split.
2582 (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
2583 extend<mode>ti2.
2584 (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
2585 (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
2586 define_insn_and_split of lshr<mode>3.
2587 (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
2588 (<v>ashr<mode>3_imm): Define.
2589 (extv, extzv, insv): Allow MEM operands.
2590 (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
2591 shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
2592 sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
2593 (_spu_convert2): Change to define_insn_and_split and remove the
2594 corresponding define_peephole2.
2595 (stack_protect_set, stack_protect_test, stack_protect_test_si):
2596 Change predicates to memory_operand.
2597
7d31a807
MM
25982009-05-22 Mark Mitchell <mark@codesourcery.com>
2599
2600 * config/arm/thumb2.md: Add 16-bit multiply instructions.
7d31a807 2601
d021d274
MM
26022009-05-21 Michael Meissner <meissner@linux.vnet.ibm.com>
2603
2604 PR tree-optimization/40219
2605 * tree.c (iterative_hash_expr): Make sure the builtin function is
2606 a normal builtin function and not a front end or back end builtin
2607 before indexing into the built_in_decls array.
2608
4d7a65ea
RG
26092009-05-22 Richard Guenther <rguenther@suse.de>
2610
2611 PR middle-end/38964
2612 * alias.c (write_dependence_p): Do not use TBAA for answering
2613 anti-dependence or output-dependence.
782dc37a 2614 * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
4d7a65ea
RG
2615 (emit_pointer_definition): Remove.
2616 (emit_alias_warning): Likewise.
2617 (find_what_var_points_to): Remove TBAA pruning code.
2618 (find_what_p_points_to): Likewise. Do not warn about strict-aliasing
2619 violations.
2620 (compute_points_to_sets): Remove code computing the set of
2621 dereferenced pointers.
2622 * tree-data-ref.c (dr_may_alias_p): Properly use the split
2623 oracle for querying anti and output dependencies.
2624 * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
2625 if TBAA may be applied.
2626 (refs_anti_dependent_p): New function.
2627 (refs_output_dependent_p): Likewise.
2628 * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
2629 (refs_output_dependent_p): Likewise.
2630 * doc/tree-ssa.texi (Memory model): New section.
2631 * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
2632 * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
2633 * cfgexpand.c (expand_gimple_basic_block): Do not handle
2634 GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
2635 * expr.c (expand_expr_real_1): Likewise.
2636 * gimple-low.c (lower_stmt): Likewise.
2637 * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
2638 (dump_gimple_cdt): Remove.
2639 * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
2640 (gimple_size): Likewise.
2641 (walk_gimple_op): Likewise.
2642 (is_gimple_stmt): Likewise.
2643 (walk_stmt_load_store_addr_ops): Likewise.
2644 (gimple_build_cdt): Remove.
2645 * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
2646 * gimple.h (gimple_cdt_new_type): Remove.
2647 (gimple_cdt_new_type_ptr): Likewise.
2648 (gimple_cdt_set_new_type): Likewise.
2649 (gimple_cdt_location): Likewise.
2650 (gimple_cdt_location_ptr): Likewise.
2651 (gimple_cdt_set_location): Likewise.
2652 * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
2653 * tree-cfg.c (remove_useless_stmts_1): Do not handle
2654 GIMPLE_CHANGE_DYNAMIC_TYPE.
2655 (verify_types_in_gimple_stmt): Likewise.
2656 * tree-inline.c (estimate_num_insns): Likewise.
2657 (expand_call_inline): Do not copy DECL_NO_TBAA_P.
2658 (copy_decl_to_var): Likewise.
2659 (copy_result_decl_to_var): Likewise.
2660 * tree-pretty-print.c (dump_generic_node): Do not handle
2661 CHANGE_DYNAMIC_TYPE_EXPR.
2662 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
2663 * tree-ssa-operands.c (get_expr_operands): Likewise.
2664 * tree-ssa-structalias.c (struct variable_info): Remove
2665 no_tbaa_pruning member.
2666 (new_var_info): Do not set it based on DECL_NO_TBAA_P.
2667 (unify_nodes): Do not copy it.
2668 (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
2669 (dump_solution_for_var): Do not dump no_tbaa_pruning state.
2670 (set_uids_in_ptset): Do not check it.
2671 (find_what_var_points_to): Likewise.
2672 (compute_tbaa_pruning): Remove.
2673 (compute_points_to_sets): Do not call it.
2674 * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
2675 * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
2676 * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
2677 (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
2678 (DECL_NO_TBAA_P): Likewise.
2679 (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
2680 * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
2681 (expand_omp_atomic_pipeline): Do not set it.
2682 * print-tree.c (print_node): Do not dump it.
2683 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
2684 redundant check.
2685
83a6ac60
VM
26862009-05-22 Vladimir Makarov <vmakarov@redhat.com>
2687
2688 PR target/39856
2689 * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
2690 for clobber.
2691
fe2978fb
MM
26922009-05-22 Mark Mitchell <mark@codesourcery.com>
2693
2694 * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
2695 non-external.
2696
134ef638
BE
26972009-05-22 Ben Elliston <bje@au.ibm.com>
2698
2699 * Makefile.in (bversion.h, s-bversion): New targets.
2700 (TOPLEV_H): Add bversion.h.
2701 * toplev.h: Include "bversion.h".
2702 (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
2703 the __format__ attribute only if compiling with the same version
2704 of GCC as the sources (the "build version").
2705
52fc669d
BE
27062009-05-22 Ben Elliston <bje@au.ibm.com>
2707
2708 * c-format.c (handle_format_attribute): Fix comment typo.
2709
583ca921
SE
27102009-05-21 Steve Ellcey <sje@cup.hp.com>
2711
2712 PR target/37846
2713 * config/ia64/ia64.opt (mfused-madd): New.
2714 * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
2715 * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
2716 * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
2717 madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
2718 nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
2719 msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
2720 nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
2721 * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms
2722 instruction if !TARGET_FUSED_MADD.
2723 (fpma, fpms): Remove colon from name.
2724
150e3929
RG
27252009-05-22 Richard Guenther <rguenther@suse.de>
2726
2727 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
2728 TMR_ORIGINAL. Always either record TMR_SYMBOL or TMR_BASE.
2729 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
2730 TARGET_MEM_REF.
2731 (create_expression_by_pieces): Only convert if necessary.
2732 * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
2733 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
2734
9a2b090c
AN
27352009-05-21 Adam Nemet <anemet@caviumnetworks.com>
2736
2737 * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
2738 regular pattern from a template and rename it ...
2739 (*extzv_truncsi_exts): ... to this.
2740
33b92c9d
RG
27412009-05-21 Richard Guenther <rguenther@suse.de>
2742
2743 * cgraph.h (struct cgraph_node): Remove inline_decl member.
2744 * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
2745 (cgraph_default_inline_p): Likewise.
2746 (cgraph_decide_inlining_incrementally): Likewise.
2747
cabf85c3
L
27482009-05-21 H.J. Lu <hongjiu.lu@intel.com>
2749 Uros Bizjak <ubizjak@gmail.com>
2750
2751 * config/i386/cpuid.h (bit_MOVBE): New.
2752
2753 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
2754
2755 * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
2756 (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
2757 (ix86_handle_option): Handle OPT_mmovbe.
2758 (ix86_target_string): Add -mmovbe.
2759 (pta_flags): Add PTA_MOVBE.
2760 (processor_alias_table): Add PTA_MOVBE to "atom".
2761 (override_options): Handle PTA_MOVBE.
2762
2763 * config/i386/i386.h (TARGET_MOVBE): New.
2764
2765 * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
2766 (*bswapsi_movbe): New.
2767 (*bswapdi_movbe): Likewise.
2768 (bswapdi2): Renamed to ...
2769 (*bswapdi_1): This.
2770 (bswapdi2): New expander.
2771
2772 * config/i386/i386.opt (mmovbe): New.
2773
2774 * doc/invoke.texi: Document -mmovbe.
2775
9fefa0aa
TG
27762009-05-21 Taras Glek <tglek@mozilla.com>
2777
2778 * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
2779 * gcc-plugin.h (plugin_init): Updated signature.
2780 * gcc-plugin.h (plugin_name_args): Moved to this header.
cabf85c3
L
2781 * doc/plugins.texi (plugin_init): Updated documention to reflect
2782 API change.
9fefa0aa
TG
2783 * doc/plugins.texi (plugin_name_args): Added to documention.
2784
1ea9fe56
MM
27852009-05-21 Mark Mitchell <mark@codesourcery.com>
2786
2787 * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
2788 (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
2789
52f84254
SZ
27902009-05-21 Shujing Zhao <pearly.zhao@oracle.com>
2791
2792 * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
2793 JUMP_TABLE_DATA_P predicates where applicable.
2794 * config/i386/predicates.md: Ditto.
2795 * config/i386/sse.md: Ditto.
2796
a952487c
JJ
27972009-05-21 Jakub Jelinek <jakub@redhat.com>
2798
93cac287
JJ
2799 * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
2800 operand2 -128 override length_immediate attribute to 1.
2801 * config/i386/predicates.md (constm128_operand): New predicate.
2802
a952487c
JJ
2803 * config/i386/i386.c (memory_address_length): Handle %r12
2804 the same as %rsp and %r13 the same as %rbp. For %rsp and %rbp
2805 also check REGNO.
2806 (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
2807 mode look through optional ZERO_EXTEND and SUBREG.
2808 * config/i386/i386.md (R12_REG): New define_constant.
2809 (prefix_data16): For sse unit set also for MODE_TI insns.
2810 (prefix_rex): For -m32 always return 0. For TYPE_IMOVX
2811 insns set if operand 1 is ext_QIreg_operand.
2812 (modrm): For TYPE_IMOV clear only if not MODE_DI. For
2813 TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
2814 immediate.
2815 (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
2816 mode from MODE_DI to MODE_SI.
2817 (movdi_1_rex64): Override modrm and length_immediate attributes
2818 only for movabs (TYPE_IMOV, alternative 2).
2819 (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
2820 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
2821 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
2822 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
2823 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
2824 prefix_rex attribute if DImode.
2825 (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
2826 *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
2827 *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
2828 *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
2829 attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
2830 (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
2831 Likewise. For TYPE_IMOV clear length_immediate attribute.
2832 (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
2833 *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
2834 *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
2835 *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
2836 *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
2837 or one operand TYPE_ISHIFT.
2838 (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
2839 *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
2840 *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
2841 *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
2842 *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
2843 *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
2844 *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
2845 *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
2846 *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
2847 *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
2848 *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
2849 *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
2850 *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
2851 *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
2852 *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
2853 *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
2854 *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
2855 set mode attribute, don't override length attribute.
2856 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
2857 to 1.
2858 (return_internal_long): Set length attribute to 2 instead of 1.
2859 (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
2860 *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
2861 prefix_rex attribute.
782dc37a
UB
2862 * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
2863 New predicates.
2864 (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
a952487c 2865
64af62c2
RR
28662009-05-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2867
2868 * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
2869
c166b898
ILT
28702009-05-20 Ian Lance Taylor <iant@google.com>
2871
2872 * tree.c (build_tree_list_vec_stat): New function.
2873 (ctor_to_vec): New function.
2874 (build_nt_call_vec): New function.
2875 (build_call_array): Change args to be a const pointer.
2876 (build_call_vec): New function.
2877 * tree.h (build_nt_call_vec): Declare.
2878 (build_tree_list_vec_stat): Declare.
2879 (build_tree_list_vec): Define.
2880 (build_call_array): Update declaration.
2881 (build_call_vec): Declare.
2882 (ctor_to_vec): Declare.
2883 * c-common.c (tree_vector_cache): New static variable.
2884 (make_tree_vector): New function.
2885 (release_tree_vector): New function.
2886 (make_tree_vector_single): New function.
2887 (make_tree_vector_copy): New function.
2888 * c-common.h (tree_vector_cache, make_tree_vector): Declare.
2889 (make_tree_vector_single, make_tree_vector_copy): Declare.
2890 * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
2891 (c_parser_expr_list): Don't manage cache here, instead call
2892 make_tree_vector.
2893 (c_parser_release_expr_list): Remove static function.
2894 (c_parser_vec_to_tree_list): Remove static function.
2895 (c_parser_attributes): Call build_tree_list_vec instead of
2896 c_parser_vec_to_tree_list. Call release_tree_vector instead of
2897 c_parser_release_expr_list.
2898 (c_parser_postfix_expression_after_primary): Likewise.
2899 (c_parser_objc_keywordexpr): Likewise.
2900
40449a90
SL
29012009-05-20 Sandra Loosemore <sandra@codesourcery.com>
2902
2903 * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
2904 TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
2905 TARGET_CONVERT_TO_TYPE.
2906 * hooks.c (hook_tree_const_tree_null): Define.
2907 * hooks.h (hook_tree_const_tree_null): Declare.
2908 * target.h (struct gcc_target): Add invalid_parameter_type,
2909 invalid_return_type, promoted_type, and convert_to_type fields.
2910 * target-def.h: (TARGET_INVALID_PARAMETER_TYPE): Define.
2911 (TARGET_INVALID_RETURN_TYPE): Define.
2912 (TARGET_PROMOTED_TYPE): Define.
2913 (TARGET_CONVERT_TO_TYPE): Define.
2914 (TARGET_INITIALIZER): Update for new fields.
2915 * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
2916 (grokparms): Check targetm.invalid_parameter_type.
2917 * c-typeck.c (default_conversion): Check targetm.promoted_type.
2918 * c-convert.c (convert): Check targetm.convert_to_type.
2919
642d97ff
AN
29202009-05-20 Adam Nemet <anemet@caviumnetworks.com>
2921
2922 * config/mips/mips.md (*extenddi_truncate<mode>,
2923 *extendsi_truncate<mode>): Emit exts if supported. Add attribute
2924 defintions.
2925 (*extendhi_truncateqi): New define_insn_and_sptit.
2926
776248b8
JJ
29272009-05-20 Jakub Jelinek <jakub@redhat.com>
2928
2929 PR middle-end/40204
2930 * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
782dc37a 2931 recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
776248b8 2932
d98e8686
EB
29332009-05-20 Eric Botcazou <ebotcazou@adacore.com>
2934
2935 * fold-const.c (build_fold_addr_expr_with_type): Take the address of
2936 the operand of VIEW_CONVERT_EXPR.
2937
37c50435
L
29382009-05-20 H.J. Lu <hongjiu.lu@intel.com>
2939
2940 * config/i386/driver-i386.c (host_detect_local_cpu): Check
f3afc8a7 2941 extended family and model for Intel processors. Support Intel Atom.
37c50435 2942
dbb6088f
OH
29432009-05-20 Olivier Hainque <hainque@adacore.com>
2944
2945 * gstab.h (stab_code_type): Define, to be used instead of the
2946 __stab_debug_code enum, made anonymous. Add 2009 to the copyright
2947 notice.
2948 * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
2949 occurrences by stab_code_type.
2950 * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
2951
7ec49257
MJ
29522009-05-20 Martin Jambor <mjambor@suse.cz>
2953
2954 * tree-flow.h (insert_edge_copies_seq): Undeclare.
2955 (sra_insert_before): Likewise.
2956 (sra_insert_after): Likewise.
2957 (sra_init_cache): Likewise.
2958 (sra_type_can_be_decomposed_p): Likewise.
2959 * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
2960 * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
2961 (sra_insert_before): Likewise.
2962 (sra_insert_after): Likewise.
2963 (sra_init_cache): Likewise.
2964 (insert_edge_copies_seq): Made static and moved upwards.
2965
2966 * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
2967 case.
2968
2969 * tree-flow-inline.h (contains_view_convert_expr_p): New function.
2970
2971 * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
2972 (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
2973 simple copies.
2974
0328ae4d
RG
29752009-05-20 Richard Guenther <rguenther@suse.de>
2976
2977 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
2978 with mismatched comparison modes.
2979
a7994a57 29802009-05-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
782dc37a 2981
a7994a57 2982 * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
782dc37a
UB
2983 (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
2984 * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
2985 with shifts for Thumb2.
2986 (orsi_notsi): New for orn.
2987 (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
2988 (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
2989 * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
2990 (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
2991 Don't invert remainder for IOR.
a7994a57 2992
e36dc339
ZD
29932009-05-19 Zdenek Dvorak <ook@ucw.cz>
2994
2995 PR tree-optimization/40087
2996 * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
2997 number_of_iterations_ne): Rename never_infinite argument.
2998 (number_of_iterations_lt_to_ne, number_of_iterations_lt,
2999 number_of_iterations_le): Handle pointer-type ivs when
3000 exit_must_be_taken is false.
3001 (number_of_iterations_cond): Do not always assume that
3002 exit_must_be_taken if the control variable is a pointer.
3003
5cfd5d9b
AP
30042009-05-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
3005
3006 * c-typeck.c (build_binary_op): Allow % on integal vectors.
3007 * doc/extend.texi (Vector Extension): Document that % is allowed too.
3008
2f1c7156
L
30092009-05-19 H.J. Lu <hongjiu.lu@intel.com>
3010
3011 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
3012 ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
3013
7bb27074
MLI
30142009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
3015
3016 PR c/40172
3017 * c.opt (Wlogical-op): Disabled by default.
3018 * c-opt (c_common_post_options): Do not enable Wlogical-op with
3019 Wextra.
3020 * doc/invoke.texi (Wlogical-op): Likewise.
3021
5aefc6a0
EB
30222009-05-19 Eric Botcazou <ebotcazou@adacore.com>
3023
3024 * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
3025 into CASE_CONVERT.
3026 <PLUS_EXPR>: Strip useless type conversions instead of type nops.
3027 Propagate the type of the first operand.
3028 <ASSERT_EXPR>: Simplify.
3029 (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
3030 Rewrite using the RHS code as discriminant.
3031 <NOP_EXPR>: Turn into CASE_CONVERT.
3032 <PLUS_EXPR>: Propagate the type of the first operand.
3033
f3a83111
SE
30342009-05-19 Steve Ellcey <sje@cup.hp.com>
3035
3036 * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
3037 (ia64_dconst_0_375): New.
3038 * config/ia64/ia64.c (ia64_override_options): Remove
3039 -minline-sqrt-min-latency warning.
3040 (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
3041 (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
3042 * config/ia64/ia64.md (*sqrt_approx): Remove.
3043 (sqrtsf2): Remove #if 0.
3044 (sqrtsf2_internal_thr): Rewrite and move to div.md.
3045 (sqrtdf): Remove assert.
3046 (sqrtdf2_internal_thr): Rewrite and move to div.md.
3047 (sqrtxf2): Remove #if 0.
3048 (sqrtxf2_internal_thr): Rewrite and move to div.md.
3049 * div.md (sqrt_approx_rf): New.
3050 (sqrtsf2_internal_thr): New implementation.
3051 (sqrtsf2_internal_lat): New.
3052 (sqrtdf2_internal_thr: New implementation.
3053 (sqrtxf2_internal): New implementation.
3054
1ffc7157
FXC
30552009-05-19 Francois-Xavier Coudert <fxcoudert@gmail.com>
3056 Hans-Peter Nilsson <hp@axis.com>
3057
3058 * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
3059 (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
3060 (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
3061 (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
3062 (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
3063 (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
3064 (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
3065 (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
3066 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
3067 (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
3068 * c-common.c: ...from here.
3069
db91d9ef
MLI
30702009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
3071
f3afc8a7 3072 * c-common.c (warn_logical_operator): Remove unnecessary conditionals.
db91d9ef 3073
bbb9d91f
KG
30742009-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3075
3076 * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
3077
ce883f54
BE
30782009-05-19 Ben Elliston <bje@au.ibm.com>
3079
3080 * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
3081 assignments with memcpy calls.
3082 (add_fdes): Likewise.
3083 (binary_search_unencoded_fdes): Likewise.
3084 (linear_search_fdes): Eliminate type puns.
3085
377f099a
RG
30862009-05-19 Richard Guenther <rguenther@suse.de>
3087
3088 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
3089 not falsely claim to have propagated into all uses.
3090
848bc769
BE
30912009-05-19 Ben Elliston <bje@au.ibm.com>
3092
3093 * doc/invoke.texi (C Dialect Options): Update OpenMP specification
3094 version to v3.0.
3095
1bb99877
KK
30962009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
3097
3098 * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
3099 * config/sh/sh.c (sh_legitimate_address_p): Make static.
3100 (TARGET_LEGITIMATE_ADDRESS_P): New.
3101 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3102 * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
3103
82725547
DS
31042009-05-18 Dodji Seketeli <dodji@redhat.com>
3105
3106 PR debug/40109
3107 * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
3108 child of the containing namespace's DIE.
3109
f6a1e430
AN
31102009-05-18 Adam Nemet <anemet@caviumnetworks.com>
3111
3112 * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
3113 *zero_extendhi_truncqi): Move after the zero_extend patterns.
3114 (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
3115 extend patterns.
3116
6a90d232
L
31172009-05-18 H.J. Lu <hongjiu.lu@intel.com>
3118
3119 PR target/39942
3120 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
3121 gen_align with gen_pad.
3122 (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
3123 #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
3124
3125 * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
3126 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
3127
3128 * config/i386/i386.md (align): Renamed to ...
3129 (pad): This. Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
3130 ASM_OUTPUT_MAX_SKIP_PAD.
3131
c4406f74
AS
31322009-05-18 Andreas Schwab <schwab@linux-m68k.org>
3133
06555043
AS
3134 * config.gcc: Fix variable syntax.
3135
c4406f74
AS
3136 PR target/39531
3137 * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
3138 before calling exact_log2.
3139 (output_iorsi3): Likewise.
3140 (output_xorsi3): Likewise.
3141
99052692
KK
31422009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
3143
3144 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
3145 for the none zero constant operand except for EQ and NE
3146 comprisons even when the first operand is R0.
3147
f4aa3848
AK
31482009-05-18 Andreas Krebbel <krebbel1@de.ibm.com>
3149
3150 * config/s390/2064.md: Remove trailing whitespaces.
3151 * config/s390/2084.md: Likewise.
3152 * config/s390/constraints.md: Likewise.
3153 * config/s390/fixdfdi.h: Likewise.
3154 * config/s390/libgcc-glibc.ver: Likewise.
3155 * config/s390/s390-modes.def: Likewise.
3156 * config/s390/s390-protos.h: Likewise.
3157 * config/s390/s390.c: Likewise.
3158 * config/s390/s390.h: Likewise.
3159 * config/s390/s390.md: Likewise.
3160 * config/s390/tpf-unwind.h: Likewise.
3161
ab7256e4
MK
31622009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
3163
3164 * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
3165
75df395f
MK
31662009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
3167
3168 M68K TLS support.
3169 * configure.ac (m68k-*-*): Check if binutils support TLS.
3170 * configure: Regenerate.
3171 * config/m68k/predicates.md (symbolic_operand): Extend comment.
3172 * config/m68k/constraints.md (Cu): New constraint.
3173 * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
3174 (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
3175 (movsi): Handle TLS symbols.
3176 (addsi3_5200): Handle XTLS symbols, indent.
3177 * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
3178 (m68k_tls_reference_p): Declare.
3179 (m68k_legitimize_address): Declare.
3180 (m68k_unwrap_symbol): Declare.
3181 * config/m68k/m68k.opt (mxtls): New option.
3182 * config/m68k/m68k.c (ggc.h): Include.
3183 (m68k_output_dwarf_dtprel): Implement hook.
3184 (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
3185 (m68k_expand_prologue): Load GOT pointer when function needs it.
3186 (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
3187 (m68k_legitimate_constant_address_p): Same.
3188 (m68k_decompose_address): Handle TLS references.
3189 (m68k_get_gp): New static function.
3190 (enum m68k_reloc): New contants.
3191 (TLS_RELOC_P): New macro.
3192 (m68k_wrap_symbol): New static function.
3193 (m68k_unwrap_symbol): New function.
3194 (m68k_final_prescan_insn_1): New static function.
3195 (m68k_final_prescan_insn): New function.
3196 (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
3197 functions.
3198 (legitimize_pic_address): Handle TLS references..
3199 (m68k_tls_get_addr, m68k_get_tls_get_addr)
3200 (m68k_libcall_value_in_a0_p)
3201 (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
3202 (m68k_call_m68k_read_tp): Helper variables and functions for ...
3203 (m68k_legitimize_tls_address): Handle TLS references.
3204 (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
3205 New functions.
3206 (m68k_legitimize_address): Handle TLS symbols.
3207 (m68k_get_reloc_decoration): New static function.
3208 (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
3209 UNSPEC_RELOC32.
3210 (m68k_output_dwarf_dtprel): Implement hook.
3211 (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
3212 (m68k_libcall_value): Return result in A0 instead of D0 when asked by
3213 m68k_call_* routines.
3214 (sched_attr_op_type): Handle TLS symbols.
3215 (gt-m68k.h): Include.
3216 * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
3217 (LEGITIMATE_PIC_OPERAND_P): Support TLS.
3218
8b75fc9b
MJ
32192009-05-18 Martin Jambor <mjambor@suse.cz>
3220
3221 * ipa-prop.c (ipa_check_stmt_modifications): Removed.
3222 (visit_store_addr_for_mod_analysis): New function.
3223 (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
3224 (determine_cst_member_ptr): Use gimple_assign_single_p.
3225 (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
3226 (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
3227 operands. Don't check number of operands of a NOP_EXPR.
3228
f133d4a2
EF
32292009-05-18 Eric Fisher <joefoxreal@gmail.com>
3230
3231 * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
3232
ae8af500
L
32332009-05-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
3234
3235 PR c/40172
3236 * c-common.c (warn_logical_operator): Don't warn if one of
3237 expression isn't always true or false.
3238
25e8fde8
KT
32392009-05-17 Kai Tietz <kai.tietz@onevision.com>
3240
ae8af500
L
3241 * config/i386/biarch32.h: New file.
3242 * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
25e8fde8 3243
ef67af22
AN
32442009-05-17 Adam Nemet <anemet@caviumnetworks.com>
3245
3246 * config/mips/mips.md (*zero_extend<mode>_trunchi,
3247 *zero_extend<mode>_truncqi): Merge these into ...
3248 (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
3249 Name the pattern following this as *zero_extendhi_truncqi.
3250
e2d87023
BL
32512009-05-16 Brad Lucier <lucier@math.purdue.edu>
3252
3253 PR middle-end/39301
3254 * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
3255 * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
3256 (output_info): Make field HOST_WIDEST_INT.
3257 (print_statistics): Use HOST_WIDEST_INT_PRINT.
3258 (dump_bitmat_statistics): Same.
3259
428ddbf0
FXC
32602009-05-16 Francois-Xavier Coudert <fxcoudert@gmail.com>
3261
3262 * config.gcc (use_gcc_stdint): Set to wrap.
3263 * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
3264 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
3265 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
3266 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
3267 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
3268 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
3269 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
3270 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
3271
1ab8a8c2
JM
32722009-05-16 Joseph Myers <joseph@codesourcery.com>
3273
3274 * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
3275 tune_64.
3276 * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
3277 Move definitions earlier.
3278 (OPT_ARCH64, OPT_ARCH32): Define.
3279 (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
3280 and tune_64.
3281
70544f44
RE
32822009-05-16 Richard Earnshaw <rearnsha@arm.com>
3283
3284 PR target/40153
3285 * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
3286 implies.
3287
6241ded1
RE
32882009-05-16 Richard Earnshaw <rearnsha@arm.com>
3289
3290 * arm.md (movdi2): Copy non-reg values to DImode registers.
3291
a99c6711
JJ
32922009-05-16 Jakub Jelinek <jakub@redhat.com>
3293
40a8f07a
JJ
3294 PR target/39942
3295 * final.c (label_to_max_skip): New function.
3296 (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
3297 CODE_LABEL_NUMBER <= max_labelno.
3298 * output.h (label_to_max_skip): New prototype.
3299 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
3300 (ix86_avoid_jump_mispredicts): ... this. Don't define if
3301 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined. Update comment.
3302 Handle CODE_LABELs with >= 16 byte alignment or with
3303 max_skip == (1 << align) - 1.
3304 (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
3305 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
3306
a99c6711
JJ
3307 PR target/39942
3308 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
3309 .p2align 3 if MAX_SKIP is smaller than 7.
3310 * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
3311
7e5487a2
ILT
33122009-05-15 Ian Lance Taylor <iant@google.com>
3313
3314 * alias.c (struct alias_set_entry_d): Rename from struct
3315 alias_set_entry. Change all uses.
3316 * except.c (struct call_site_record_d): Rename from struct
3317 call_site_record. Change all uses.
3318 * except.h (struct eh_region_d): Rename from struct eh_region.
3319 Change all uses.
3320 * gcse.c (struct hash_table_d): Rename from struct hash_table.
3321 Change all uses.
3322 * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
3323 ivtype_map_elt. Change all uses.
3324 (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
3325 Change all uses.
3326 (struct ifsese_d): Rename fromstruct ifsese. Change all uses.
3327 * graphite.h (struct name_tree_d): Rename from struct name_tree.
3328 Change all uses.
3329 (struct sese_d): Rename from struct sese. Change all uses.
782dc37a
UB
3330 * omega.h (struct eqn_d): Rename from struct eqn. Change all uses.
3331 (struct omega_pb_d): Rename from struct omega_pb. Change all uses.
7e5487a2
ILT
3332 * optabs.h (struct optab_d): Rename from struct optab. Change all
3333 uses.
3334 (struct convert_optab_d): Rename from struct convert_optab.
3335 Change all uses.
3336 * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
3337 ipa_opt_pass. Change all uses.
3338 * tree-predcom.c (struct dref_d): Rename from struct dref. Change
3339 all uses.
3340
3341 * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
3342 defined as a typedef.
3343 (grokdeclarator): If -Wc++-compat, warn if a typedef is already
3344 defined as a tag.
3345
a243fb4a
MLI
33462009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
3347
3348 PR 16302
3349 * fold-const.c (make_range,build_range_check,merge_ranges): Move
3350 declaration to...
3351 (merge_ranges): Returns bool.
3352 * tree.h (make_range): .. to here.
3353 (build_range_check): Likewise.
3354 (merge_ranges): Likewise. Renamed from merge_ranges.
3355 * c-typeck.c (parser_build_binary_op): Update calls to
3356 warn_logical_operator.
3357 * c-common.c (warn_logical_operator): Add new warning.
3358 * c-common.h (warn_logical_operator): Update declaration.
3359
1b53c5f3
MLI
33602009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
3361
782dc37a 3362 * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
1b53c5f3 3363
c128599a
KG
33642009-05-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3365
f9bab007
KG
3366 * doc/install.texi: Document MPC requirements, flags etc.
3367
c128599a
KG
3368 * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
3369 (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
3370 Evaluate constant arguments.
3371 (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
3372 (fold_builtin_1): Likewise, also evaluate constant arguments.
3373 Remove superfluous break.
3374 (do_mpc_ckconv): New.
3375 * real.h: Include mpc.h.
3376 * toplev.c (print_version): Output MPC version info if available.
3377
d33e4b70
SL
33782009-05-15 Sandra Loosemore <sandra@codesourcery.com>
3379
782dc37a 3380 * fold-const.c (fold_convert_const_real_from_real): Check for overflow.
d33e4b70 3381
a02ab464
L
33822009-05-15 H.J. Lu <hongjiu.lu@intel.com>
3383
3384 * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
3385 only once.
3386
796bda22
JH
33872009-05-15 Jan Hubicka <jh@suse.cz>
3388
3389 * doc/invoke.texi (max-early-inliner-iterations): New flag.
3390 * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
3391 (try_inline): Fix return value.
3392 (cgraph_decide_inlining_incrementally): Honor new value.
3393 (cgraph_early_inlining): Handle indirect inlining.
3394 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
3395
d88e5c37
JH
33962009-05-15 Jan Hubicka <jh@suse.cz>
3397
3398 * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
3399 * cgraphunit.c (cgraph_finalize_function): Set it.
3400 (cgraph_expand_function): Use it.
3401
ae63687c
SL
34022009-05-15 Sandra Loosemore <sandra@codesourcery.com>
3403
3404 * real.c (encode_ieee_half): Define.
3405 (decode_ieee_half): Define.
3406 (ieee_half_format): Define.
3407 (arm_half_format): Define.
3408 * real.h (ieee_half_format): Declare.
3409 (arm_half_format): Declare.
3410
1bd74ad9
SL
34112009-05-15 Sandra Loosemore <sandra@codesourcery.com>
3412
3413 * optabs.c (prepare_float_lib_cmp): Test that the comparison,
3414 swapped, and reversed optabs exist before trying to use them.
3415
dc34db56
PB
34162009-05-15 Paul Brook <paul@codesourcery.com>
3417 Sandra Loosemore <sandra@codesourcery.com>
3418
dc34db56
PB
3419 * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
3420 loads. Allow PRE_DEC.
3421 (output_move_neon): Handle PRE_DEC.
3422 (arm_print_operand): Add 'A' for neon structure loads.
3423 * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
3424 * config/arm/neon.md (neon_mov): Update comment.
3425 * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
3426 calls.
3427 (Um): New constraint.
3428
1d405d7b
JH
34292009-05-15 Jan Hubicka <jh@suse.cz>
3430
3431 Revert the following patch until testsuite fallout is fixed:
3432 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
3433 * cgraph.h (struct inline_summary): New filed self_wize,
3434 size_inlining_benefit, self_time and time_inlining_benefit.
3435 (struct cgraph_global_info): Replace insns by time ans size fields.
3436 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
3437 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
3438 (ipcp_update_callgraph): Do not touch function bodies.
3439 * ipa-inline.c: Include except.h
782dc37a 3440 (MAX_TIME): New constant.
1d405d7b
JH
3441 (overall_insns): Remove
3442 (overall_size, max_benefit): New static variables.
3443 (cgraph_estimate_time_after_inlining): New function.
3444 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
3445 (cgraph_clone_inlined_nodes): Update size.
3446 (cgraph_mark_inline_edge): Update size.
3447 (cgraph_estimate_growth): Use size info.
3448 (cgraph_check_inline_limits): Check size.
3449 (cgraph_default_inline_p): Likewise.
3450 (cgraph_edge_badness): Compute badness based on benefit and size cost.
3451 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
3452 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
3453 and times.
1d405d7b 3454 (cgraph_decide_inlining): Likewise.
00c5fa1b
EB
3455 (cgraph_decide_inlining_incrementally): Likewise; honor
3456 PARAM_EARLY_INLINING_INSNS.
1d405d7b
JH
3457 (likely_eliminated_by_inlining_p): New predicate.
3458 (estimate_function_body_sizes): New function.
3459 (compute_inline_parameters): Use it.
3460 * except.c (must_not_throw_labels): New function.
3461 * except.h (must_not_throw_labels): Declare.
3462 * tree-inline.c (init_inline_once): Kill inlining_weigths
3463 * tree-ssa-structalias.c: Avoid uninitialized warning.
3464 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
3465 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
3466 (PARAM_INLINE_CALL_COST): Remove.
3467 (PARAM_EARLY_INLINING_INSNS): New.
3468
7ffa47ca
RG
34692009-05-15 Richard Guenther <rguenther@suse.de>
3470
3471 * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
3472 not TODO_update_ssa.
3473
828552ed
RG
34742009-05-15 Richard Guenther <rguenther@suse.de>
3475
3476 PR tree-optimization/39999
3477 * gimple.h (gimple_expr_type): Use the expression type looking
3478 through useless conversions.
3479 * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
3480 (vn_nary_op_insert_stmt): Likewise.
3481 (simplify_binary_expression): Likewise.
3482
248fc9f3
RG
34832009-05-15 Richard Guenther <rguenther@suse.de>
3484
3485 * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
3486 New options, enabled by default.
3487 * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
3488 Document.
3489 * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
3490 * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
3491 * tree-ssa-structalias.c (gate_tree_pta): New function.
3492 (pass_build_alias): Use it.
3493
16b29cc4
JM
34942009-05-15 Joseph Myers <joseph@codesourcery.com>
3495
3496 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
3497 recurse on an invariant address if a conversion from a pointer
3498 type to a wider integer type is involved.
3499
125cae84
JH
35002009-05-15 Jan Hubicka <jh@suse.cz>
3501
3502 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
3503 * cgraph.h (struct inline_summary): New filed self_wize,
3504 size_inlining_benefit, self_time and time_inlining_benefit.
3505 (struct cgraph_global_info): Replace insns by time ans size fields.
3506 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
3507 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
3508 (ipcp_update_callgraph): Do not touch function bodies.
3509 * ipa-inline.c: Include except.h
782dc37a 3510 (MAX_TIME): New constant.
125cae84
JH
3511 (overall_insns): Remove
3512 (overall_size, max_benefit): New static variables.
3513 (cgraph_estimate_time_after_inlining): New function.
3514 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
3515 (cgraph_clone_inlined_nodes): Update size.
3516 (cgraph_mark_inline_edge): Update size.
3517 (cgraph_estimate_growth): Use size info.
3518 (cgraph_check_inline_limits): Check size.
3519 (cgraph_default_inline_p): Likewise.
3520 (cgraph_edge_badness): Compute badness based on benefit and size cost.
3521 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
3522 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
3523 and times.
125cae84 3524 (cgraph_decide_inlining): Likewise.
00c5fa1b
EB
3525 (cgraph_decide_inlining_incrementally): Likewise; honor
3526 PARAM_EARLY_INLINING_INSNS.
125cae84
JH
3527 (likely_eliminated_by_inlining_p): New predicate.
3528 (estimate_function_body_sizes): New function.
3529 (compute_inline_parameters): Use it.
3530 * except.c (must_not_throw_labels): New function.
3531 * except.h (must_not_throw_labels): Declare.
3532 * tree-inline.c (init_inline_once): Kill inlining_weigths
3533 * tree-ssa-structalias.c: Avoid uninitialized warning.
3534 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
3535 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
3536 (PARAM_INLINE_CALL_COST): Remove.
3537 (PARAM_EARLY_INLINING_INSNS): New.
3538 doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
3539 (inline-call-cost): Remove.
3540 (early-inlining-insns): New.
3541
84fb43a1
EB
35422009-05-15 Eric Botcazou <ebotcazou@adacore.com>
3543
3544 * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters. Use them
3545 for bounds.
3546 (print_int_cst_bounds_in_octal_p): Likewise.
3547 (dbxout_type): Adjust calls to above functions. Be prepared to deal
3548 with subtypes.
3549 * dwarf2out.c (base_type_die): Likewise.
3550 (is_subrange_type): Delete.
3551 (subrange_type_die): Add LOW and HIGH parameters. Use them for bounds.
3552 (modified_type_die): Call subrange_type_for_debug_p on subtypes.
f3afc8a7
UB
3553 * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it
3554 if the destination type is boolean.
84fb43a1
EB
3555 (build_range_check): Do not special-case subtypes.
3556 (fold_sign_changed_comparison): Likewise.
3557 (fold_unary): Likewise.
3558 * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
3559 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
3560 * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
f3afc8a7
UB
3561 * tree.c (subrange_type_for_debug_p): New predicate based on the
3562 former is_subrange_type.
84fb43a1
EB
3563 * tree.h (subrange_type_for_debug_p): Declare.
3564 * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
3565 (convert_affine_scev): Remove call to above function.
3566 (chrec_convert_aggressive): Likewise.
3567 * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
3568 false for conversions involving subtypes.
3569 * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
3570 (vrp_val_min): Likewise.
3571 (needs_overflow_infinity): Likewise.
3572 (extract_range_from_unary_expr): Likewise.
3573
331d9186
PB
35742009-05-15 Paolo Bonzini <bonzini@gnu.org>
3575
e9351712
L
3576 * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
3577 * config/frv/frv.c: Likewise.
3578 * config/s390/s390.c: Likewise.
3579 * config/sparc/sparc.h: Likewise.
3580 * config/i386/i386.h: Likewise.
3581 * config/i386/i386.c: Likewise.
3582 * config/crx/crx.c: Likewise.
3583 * config/m68hc11/m68hc11.h: Likewise.
3584 * config/iq2000/iq2000.c: Likewise.
3585 * config/mn10300/mn10300.h: Likewise.
3586 * config/mn10300/mn10300.c: Likewise.
3587 * config/m68k/m68k.c: Likewise.
3588 * config/rs6000/rs6000.c: Likewise.
3589 * config/rs6000/xcoff.h: Likewise.
3590 * config/rs6000/linux64.h: Likewise.
3591 * config/rs6000/sysv4.h: Likewise.
3592 * config/score/score3.c: Likewise.
3593 * config/score/score7.c: Likewise.
3594 * config/score/score.c: Likewise.
3595 * config/arm/arm.md: Likewise.
3596 * config/mips/mips.c: Likewise.
3597 * config/mips/mips.md: Likewise.
3598 * config/bfin/bfin.h: Likewise.
3599 * config/pa/pa.c: Likewise.
3600 * config/pa/constraints.md: Likewise.
3601
3602 * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
3603 * config/pdp11/pdp11.c (legitimate_address_p): Delete.
3604 * config/pdp11/pdp11.h: Use memory_address_p instead.
331d9186 3605
09639a83
ILT
36062009-05-14 Ian Lance Taylor <iant@google.com>
3607
3608 * passes.c (finish_optimization_passes): Change i to int.
3609 * plugin.c (plugins_active_p): Change event to int.
3610 (dump_active_plugins): Likewise.
3611 * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
3612 Add cast.
3613 * tree.c (tree_range_check_failed): Change c to unsigned int.
3614 (omp_clause_range_check_failed): Likewise.
3615 (build_common_builtin_nodes): Change mode to int. Add cast.
3616 * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
3617 (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
3618
3619 * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
3620 ++ or -- with a variable of enum type.
3621
c04a56bf
SB
36222009-05-14 Steven Bosscher <steven@gcc.gnu.org>
3623
3624 PR driver/40144
3625 * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
3626
237ee620
SB
36272009-05-14 Steven Bosscher <steven@gcc.gnu.org>
3628
3629 * store-motion.c: Do not include params.h
3630 * Makefile.in: Fix dependencies for various files.
3631
1154c4fa
SB
36322009-05-14 Steven Bosscher <steven@gcc.gnu.org>
3633
3634 * auto-inc-dec.c: Fix pass description, remove apparent
3635 accidental duplication.
3636
61c27353
L
36372009-05-14 H.J. Lu <hongjiu.lu@intel.com>
3638
3639 PR middle-end/40147
3640 * ipa-utils.h (memory_identifier_string): Moved to ...
3641 * tree.h (memory_identifier_string): Here. Add GTY(()).
3642
c6c3dba9
PB
36432009-05-14 Paolo Bonzini <bonzini@gnu.org>
3644
3645 * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
3646 in the former documentation of...
3647 (GO_IF_LEGITIMATE_ADDRESS): ... this.
3648 * ira-conflicts.c (get_dup_num): Use address_operand.
3649 * targhooks.c (default_legitimate_address_p): New.
3650 * targhooks.h (default_legitimate_address_p): New.
3651 * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
3652 Call hook.
3653 * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
3654 * target.h (struct target): Add legitimate_address_p.
3655 * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
3656 (TARGET_INITIALIZER): Include it.
3657
3658 * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3659 * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
3660 * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
3661 (TARGET_LEGITIMATE_ADDRESS_P): New.
3662
3663 * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3664 (REG_OK_STRICT_P): Delete.
3665 * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
3666 (frv_legitimate_address_p_1): ... this.
3667 * config/frv/frv.c (frv_legitimate_address_p): Forward to...
3668 (frv_legitimate_address_p_1): ... the renamed old
3669 frv_legitimate_address_p.
3670 * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
3671 (TARGET_LEGITIMATE_ADDRESS_P): New.
3672
3673 * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3674 * config/s390/s390-protos.h (legitimate_address_p): Remove.
3675 * config/s390/s390.c (legitimate_address_p): Rename to...
3676 (s390_legitimate_address_p): ... this, make static.
3677 (legitimize_address): Adjust call.
3678 (TARGET_LEGITIMATE_ADDRESS_P): New.
3679 * config/s390/constraints.md ("e"): Call strict_memory_address_p.
3680
3681 * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3682 * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
3683 * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
3684 (TARGET_LEGITIMATE_ADDRESS_P): New.
3685
3686 * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3687 * config/spu/spu-protos.h (spu_legitimate_address): Remove.
3688 * config/spu/spu.c (spu_legitimate_address): Rename to...
3689 (spu_legitimate_address_p): ... this, make static.
3690 (TARGET_LEGITIMATE_ADDRESS_P): New.
3691
3692 * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3693 * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
3694 * config/sparc/sparc.c (legitimate_address_p): Rename to...
3695 (sparc_legitimate_address_p): ... this, make static and return bool.
3696 (legitimize_address): Adjust call.
3697 (TARGET_LEGITIMATE_ADDRESS_P): New.
3698
3699 * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3700 * config/i386/i386-protos.h (legitimate_address_p): Remove.
3701 * config/i386/i386.c (legitimate_address_p): Rename to...
3702 (ix86_legitimate_address_p): ... this, make static.
3703 (constant_address_p): Move after it, adjust call.
3704 (TARGET_LEGITIMATE_ADDRESS_P): New.
3705
3706 * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3707 * config/avr/avr-protos.h (legitimate_address_p): Remove.
3708 * config/avr/avr.c (legitimate_address_p): Rename to...
3709 (avr_legitimate_address_p): ... this, make static.
3710 (legitimize_address): Adjust call.
3711 (TARGET_LEGITIMATE_ADDRESS_P): New.
3712
3713 * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3714 * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
3715 * config/crx/crx.c (crx_legitimate_address_p): Make static.
3716 (TARGET_LEGITIMATE_ADDRESS_P): New.
3717
3718 * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3719 * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
3720 * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
3721 (TARGET_LEGITIMATE_ADDRESS_P): New.
3722
3723 * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3724 * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
3725 Remove.
3726 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
3727 Make static.
3728 (TARGET_LEGITIMATE_ADDRESS_P): New.
3729
3730 * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3731 * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
3732 Remove.
3733 * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
3734 Rename to...
3735 (m68hc11_legitimate_address_p): ... this, make static.
3736 (go_if_legitimate_address_internal): Rename to...
3737 (m68hc11_legitimate_address_p_1): ... this.
3738 (legitimize_address): Adjust call.
3739 (TARGET_LEGITIMATE_ADDRESS_P): New.
3740
3741 * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
782dc37a
UB
3742 * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
3743 * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
c6c3dba9
PB
3744 (TARGET_LEGITIMATE_ADDRESS_P): New.
3745
3746 * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3747 * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
3748 * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
3749 (mn10300_legitimate_address_p): ... this, make static.
3750 (TARGET_LEGITIMATE_ADDRESS_P): New.
3751
3752 * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3753 * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
3754 * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
3755 (TARGET_LEGITIMATE_ADDRESS_P): New.
3756
3757 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3758 (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
3759 (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
3760 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3761 * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
3762 * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
3763 (rs6000_legitimate_address_p): ... this, make static.
3764 (TARGET_LEGITIMATE_ADDRESS_P): New.
3765 (REG_MODE_OK_FOR_BASE_P): Delete.
3766 (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
3767
3768 * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3769 * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
3770 Delete.
3771 * config/picochip/picochip.c (picochip_legitimate_address_p): Make
3772 static, adjust types.
3773 (TARGET_LEGITIMATE_ADDRESS_P): New.
3774
3775 * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3776 * config/score/score.c (score_address_p): Rename to...
3777 (score_legitimate_address_p): ... this.
3778 (TARGET_LEGITIMATE_ADDRESS_P): New.
3779 * config/score/score3.c (score3_address_p): Rename to...
3780 (score3_legitimate_address_p): ... this.
3781 * config/score/score7.c (score7_address_p): Rename to...
3782 (score7_legitimate_address_p): ... this.
3783
3784 * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
3785 THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
3786 GO_IF_LEGITIMATE_ADDRESS): Delete.
3787 * config/arm/arm-protos.h (thumb1_legitimate_address_p,
3788 thumb2_legitimate_address_p): Delete.
3789 (arm_legitimate_address_p): Rename to...
3790 (arm_legitimate_address_outer_p): ... this.
3791 * config/arm/constraints.md ("Uq"): Adjust call.
3792 * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
f3afc8a7
UB
3793 * config/arm/arm.c (arm_legitimate_address_p): New, rename old one
3794 to...
c6c3dba9 3795 (arm_legitimate_address_outer_p): ... this.
f3afc8a7
UB
3796 (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make
3797 static.
c6c3dba9
PB
3798 (TARGET_LEGITIMATE_ADDRESS_P): New.
3799
3800 * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3801 * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
3802 * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
3803 (TARGET_LEGITIMATE_ADDRESS_P): New.
3804
3805 * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3806 * config/vax/vax-protos.h (legitimate_address_p): Remove.
3807 * config/vax/vax.c (legitimate_address_p): Rename to...
3808 (vax_legitimate_address_p): ... this, make static.
3809 (TARGET_LEGITIMATE_ADDRESS_P): New.
3810
3811 * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3812 * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
3813 * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
3814 (TARGET_LEGITIMATE_ADDRESS_P): New.
3815
3816 * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3817 * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
3818 * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
3819 (mmix_legitimate_address_p): ... this, make static.
3820 (TARGET_LEGITIMATE_ADDRESS_P): New.
3821
3822 * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3823 * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
3824 * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
3825 (TARGET_LEGITIMATE_ADDRESS_P): New.
3826
3bd0d9c8
PB
38272009-05-14 Paolo Bonzini <bonzini@gnu.org>
3828
3829 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
3830 of MODE_COMPLEX_INT.
3831
fe049033
RO
38322009-05-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3833
3834 * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
3835 LCT_NORMAL in function call.
3836 * mips-tdump.c (print_file_desc): Add cast to enum type.
3837 * mips-tfile.c (add_ext_symbol): Add casts to enum types.
3838 (mark_stabs): Add casts to enum types.
3839 (parse_stabs_common): Add casts to enum types.
16f7ad42 3840
b0907a6c
AN
38412009-05-13 Adam Nemet <anemet@caviumnetworks.com>
3842
3843 * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
3844 Check for invalid values of LETTER.
3845
d1c8e08a
TG
38462009-05-13 Taras Glek <tglek@mozilla.com>
3847
f3afc8a7
UB
3848 * attribs.c (register_attribute): moved out attribute registration
3849 into register_attribute.
3850 * doc/plugins.texi: Documented register_attribute and
3851 PLUGIN_ATTRIBUTES.
16f7ad42
TG
3852 * gcc-plugin.h: Added forward decl for register_attribute.
3853 * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
3854 * plugin.c (register_callback, invoke_plugin_callbacks): Added
3855 PLUGIN_ATTRIBUTES boilerplate.
d1c8e08a 3856
4ed7f970
DK
38572009-05-14 Dave Korn <dave.korn.cygwin@gmail.com>
3858
3859 * config/i386/msformat-c.c (ms_printf_length_specs): Use enumeration
3860 values even in sentinel and empty entries.
3861 (ms_printf_flag_specs): Likewise.
3862 (ms_scanf_flag_specs): Likewise.
3863 (ms_strftime_flag_specs): Likewise.
3864 (ms_print_char_table): Likewise.
3865 (ms_scan_char_table): Likewise.
3866 (ms_time_char_table): Likewise.
3867
3d8fa148
DK
38682009-05-13 Doug Kwan <dougkwan@google.com>
3869
3870 * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
3871
f06257d3
AN
38722009-05-13 Adam Nemet <anemet@caviumnetworks.com>
3873
3874 * config/mips/mips.md (store): Add attributes for QI and HI.
3875 Update comment.
3876 (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
3877 (truncdi<mode>2): ... this new pattern.
3878
fb201767
BH
38792009-05-13 Brad Hards <bradh@kde.org>
3880
3881 * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
3882
c7bda60e 38832009-05-14 Jakub Jelinek <jakub@redhat.com>
efc3527a
BE
3884 Ben Elliston <bje@au.ibm.com>
3885
3886 PR middle-end/40035
3887 * dse.c (check_mem_read_rtx): Guard against width == -1.
3888
ce985b43
MM
38892009-05-13 Michael Matz <matz@suse.de>
3890
3891 PR middle-end/39976
3892 * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
3893 (trivially_conflicts_p): New function.
3894 (insert_backedge_copies): Use it.
3895
7de1d221
JJ
38962009-05-13 Janis Johnson <janis187@us.ibm.com>
3897
3898 * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
3899 (handle_stdc_pragma): Use new enum constant names.
3900 (handle_pragma_float_const_decimal64): Ditto.
3901
bfefafc6
ILT
39022009-05-13 Ian Lance Taylor <iant@google.com>
3903
3904 * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
3905 tree.def.
3906
286c4fcb
NS
39072009-05-13 Nathan Sidwell <nathan@codesourcery.com>
3908
3909 * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
3910 * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
3911 multilibs.
3912 * config/m68k/m68k.h (FL_UCLINUX): Define.
3913
ebaa6ea7
JH
39142009-05-13 Jan Hubicka <jh@suse.cz>
3915
3916 * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
3917
2b703e1a
KK
39182009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
3919
3920 * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
3921 unless -fschedule-insns is specified.
3922
c3537723
KK
39232009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
3924
3925 PR target/39561
3926 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
3927 TARGET_EXPAND_CBRANCHDI4.
3928 * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
3929 * config/sh/sh.opt (mexpand-cbranchdi): Remove.
3930 (cmpeqdi): Fix comment.
3931
cdeed45a
KK
39322009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
3933
3934 * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
3935 (sh_legitimate_address_p): Likewise.
3936 * config/sh/sh.c (sh_legitimate_index_p): New.
3937 (sh_legitimate_address_p): Likewise.
3938 * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
3939 (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
3940 (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
3941 (MAYBE_BASE_REGISTER_RTX_P): New macro.
3942 (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
3943 (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
3944 (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
3945 (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
3946 (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
3947
02f0b13a
JH
39482009-05-12 Jan Hubicka <jh@suse.cz>
3949
3950 * tree-inline.c (estimate_operator_cost): Add operands;
3951 when division happens by constant, it is cheap.
3952 (estimate_num_insns): Loads and stores are not having cost of 0;
3953 EH magic stuff is cheap; when computing runtime cost of switch,
3954 use log2 base of amount of its cases; builtin_expect has cost of 0;
3955 compute cost for moving return value of call.
3956 (init_inline_once): Initialize time_based flags.
3957 * tree-inline.h (eni_weights_d): Add time_based flag.
3958
ecb7f6de
PB
39592009-05-12 Paolo Bonzini <bonzini@gnu.org>
3960
3961 * df-core.c: Update head documentation.
3962
c24151ce
MM
39632009-05-12 Michael Meissner <meissner@linux.vnet.ibm.com>
3964
3965 PR bootstrap/40118
3966 * rs6000.c (rs6000_generate_compare): Use op1b instead of
3967 shadowing exisiting variable op1.
3968
fbdf817d
UB
39692009-05-12 Uros Bizjak <ubizjak@gmail.com>
3970
704bf7c8 3971 PR target/37179
fbdf817d
UB
3972 * config/i386/driver-i386.c (processor_signatures): New enum.
3973 (SIG_GEODE): Move from vendor_signatures to processor_signatures.
3974 (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
3975 processor signature to detect geode processor.
3976
5e8d1826
PB
39772009-05-12 Paolo Bonzini <bonzini@gnu.org>
3978
3979 Revert:
3980
3981 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
3982
3983 * optabs.c (prepare_cmp_insn): Temporarily disable test that
3984 causes spurious differences between trunk and cond-optab branch.
3985
f90b7a5a
PB
39862009-05-12 Paolo Bonzini <bonzini@gnu.org>
3987
fbdf817d
UB
3988 * dojump.c (compare_from_rtx): Delete.
3989 * expmed.c (emit_store_flag): Only try cstore_optab. Canonicalize
3990 any MODE_CC mode to the cstorecc4 pattern. Use prepare_operand, fail
f90b7a5a
PB
3991 if the comparison does not satisfy the predicate; test predicates for
3992 operands 2 and 3 of a cstore pattern. Don't try cstore optab
3993 further if one existing pattern fails.
fbdf817d 3994 * expr.h (compare_from_rtx): Delete.
f90b7a5a 3995 (prepare_operand): Declare it.
fbdf817d 3996 * optabs.c: Change "lib call" to "libcall" throughout.
f90b7a5a 3997 (bcc_gen_fctn, setcc_gen_code, trap_rtx,
fbdf817d
UB
3998 HAVE_conditional_trap, emit_cmp_insn): Delete.
3999 (can_compare_p): Delete cmp_optab case.
f90b7a5a 4000 (prepare_float_lib_cmp): Return an rtx and a machine mode.
fbdf817d
UB
4001 Accept other parameters by value.
4002 (prepare_operand): Make non-static.
4003 (prepare_cmp_insn): Return an rtx and a machine mode. Accept
4004 other parameters by value. Try to widen operands here based on
4005 an optab_methods argument and looking at cbranch_optab.
4006 (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
4007 loop. Use cbranch_optab directly.
4008 (emit_cmp_and_jump_insns): Fix comment. Adjust call to
4009 prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
4010 assertion.
4011 (emit_conditional_move, emit_conditional_add): Inline what's needed
4012 of compare_from_rtx, using new prepare_cmp_insn for the rest.
4013 (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
4014 with COMPARE. Move cmov_optab and cstore_optab above
4015 with cbranch_optab, move cmp_optab down with ucmp_optab,
4016 remove tst_otpab. Do not initialize trap_rtx.
4017 (gen_cond_trap): Do it here. Use ctrap_optab. Test predicate
f90b7a5a
PB
4018 for trap code. Do not check HAVE_conditional_trap. Use
4019 prepare_cmp_insn. Accept no predicate for operand 3.
fbdf817d
UB
4020 * optabs.h (OTI_cmp): Mark as used only for libcalls.
4021 (OTI_ctrap, ctrap_optab): New.
4022 (tst_optab): Delete.
4023 (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
4024 * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
4025 with lookup of ctrap_optab.
f3afc8a7
UB
4026 * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn, setcc_gen_code):
4027 Delete.
fbdf817d
UB
4028 (ctrap_optab): New.
4029
4030 * combine.c (combine_simplify_rtx, simplify_set): Do not
4031 special case comparing against zero for cc0 machines.
f90b7a5a
PB
4032 * simplify-rtx.c (simplify_binary_operation_1): Never remove
4033 COMPARE on cc0 machines.
4034 (simplify_relational_operation): Return a new expression when
4035 a COMPARE could be removed.
fbdf817d
UB
4036 * final.c (final_scan_insn): Compare cc_status values
4037 against LHS of a (compare FOO (const_int 0)) cc0 source.
4038 Also check if cc_status.value is the full compare.
f90b7a5a 4039
fbdf817d
UB
4040 * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
4041 (cstoreMM4): Document.
f90b7a5a 4042 (conditional_trap): Document ctrapMM4 instead.
fbdf817d 4043 (sync_compare_and_swapMM): Refer to cbranchcc4.
f90b7a5a
PB
4044 (Dependent Patterns): Eliminate obsolete information referring to
4045 the old jump optimization phase.
fbdf817d 4046 (Canonicalization): Include cbranchcc4 case, omit canonicalization
f90b7a5a
PB
4047 of compares with 0 on cc0 machines.
4048 (Jump Patterns): Refer to MODE_CC jump patterns preferably,
4049 avoiding references to cc0. Remove text about storing operands
4050 in cmpMM.
4051 * doc/tm.texi (Condition Codes): Include blurb on different
4052 condition code representations, separate into subsections for
4053 CC0, MODE_CC and conditional execution.
4054
fbdf817d
UB
4055 * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
4056 alpha_emit_setcc): Accept operands and a machine mode.
4057 * config/alpha/alpha.c (alpha_emit_conditional_branch):
4058 Get code/op0/op1 from operands, use machine mode argument
4059 instead of alpha_compare.fp_p. Emit the branch here.
4060 (alpha_emit_setcc): Likewise, and return boolean.
4061 (alpha_emit_conditional_move): Likewise. Assert that
4062 cmp_op_mode == cmp_mode, and simplify accordingly.
4063 * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
4064 * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
4065 (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
4066 Delete.
4067 (stack probe test): Use cbranchdi4.
4068 * config/alpha/predicates.md (alpha_cbranch_operator): New.
4069
4070 * config/arc/arc.c (gen_compare_reg): Do not emit cmp.
4071 * config/arc/arc.h (movsicc, movsfcc): Use it.
4072 (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
4073 (cbranchsi4, cstoresi4): New.
4074 (cmpsi, bCC and sCC expanders): Remove.
4075
4076 * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
4077 * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
4078 * config/arm/predicates.md (arm_comparison_operator): Only include
4079 floating-point operators if there is a hardware floating-point unit.
4080 * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
4081 deferring to cbranch_cc and cstore_cc respectively.
4082 (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
4083 cbranch_cc, cstore_cc): New.
4084 (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
f90b7a5a 4085 arm_compare_op1.
fbdf817d
UB
4086 (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
4087
4088 * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
4089 * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
4090 as an argument.
4091 (adjust_insn_length): Adjust calls.
4092 (avr_reorg): Handle (compare (foo) (const_int 0)).
4093 * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
4094 (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
4095 (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
4096 (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
4097 (bCC): Remove.
4098 (cbranchqi4, cbranchhi4, cbranchsi4): New.
f90b7a5a
PB
4099 (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
4100
fbdf817d
UB
4101 * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
4102 (cbranchsi4, cstorebi4, cstoresi4): New.
f90b7a5a 4103 (movbisi): This insn is duplicate, split it to zero_extend.
fbdf817d
UB
4104 * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
4105 (bfin_gen_compare): Do not use them. Emit VOIDmode SET, not BImode.
4106 (bfin_optimize_loop): Use cbranch expander.
4107 * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
4108 * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
4109 (bfin_bimode_comparison_operator): ... this.
4110 (bfin_direct_comparison_operator): New.
f90b7a5a 4111
fbdf817d
UB
4112 * config/cris/cris.c (cris_normal_notice_update_cc): Look
4113 inside (compare FOO (const_int 0)).
4114 (cris_rtx_costs): Handle ZERO_EXTRACT.
4115 * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
4116 (*tstdi_non_v32): Fold in *cmpdi_non_v32.
4117 (*tstdi_v32): Delete.
4118 (*cmpdi_non_v32): Add M alternative for operand 1.
4119 (cmpsi, cmp<mode>): Make private.
4120 (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
4121 with COMPARE.
4122 (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
4123
4124 * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
4125 (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
4126 (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
f90b7a5a
PB
4127 (cc_reg_operand): New.
4128 (any_cond): Delete.
fbdf817d
UB
4129 * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
4130 crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
4131 * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
4132 * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
4133 crx_expand_scond): Delete.
4134
4135 * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
4136 (cbranchsi4): New.
4137 * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
4138 * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
4139
4140 * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
4141 cstoresi4, cstoresf4, cstoredf4): New.
4142 (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
4143 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
4144 Receive the entire operands array.
4145 * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
4146 * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
4147 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
4148 Get test/op0/op1 from the operands array.
4149 (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
4150
4151 * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
4152 (h8300_expand_store): New.
4153 * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
4154 (const_int 0)).
4155 (h8300_expand_branch): Emit compare here. Adjust for new arguments.
4156 (h8300_expand_store): New.
4157 * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
4158 or do not try to produce (set (cc0) REG).
4159 (peepholes): Wrap arguments with COMPARE. Add a peephole to
4160 change a compare into a move to a scratch register. Disable some
4161 peepholes when comparing with zero.
4162 (tstsi, tsthi, tstsi, cmpqi): Make private.
4163 (cmphi): Delete.
4164 (bCC, sCC): Delete.
4165 (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
4166 cstoresi4): New.
f90b7a5a
PB
4167
4168 * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
4169 ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
4170 (ix86_emit_i387_log1p): Use gen_cbranchxf4.
4171 (ix86_emit_i387_log1p): Use cbranchxf2.
4172 (ix86_expand_setcc): Return void.
4173 * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
4174 * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
4175 cmp<MODEF>, cmpcc): Remove.
fbdf817d
UB
4176 (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
4177 cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
4178 cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
f90b7a5a
PB
4179 (sCC and bCC expanders): Remove.
4180 (stack_protect_test): Use cbranchcc4.
4181
fbdf817d
UB
4182 * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
4183 Delete.
4184 (ia64_expand_compare): Accept three rtx by reference and return void.
4185 * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
4186 (ia64_expand_compare): Replace op0/op1 with *op0/*op1. Get code
4187 from *expr. Update *expr with the BImode comparison to do.
4188 * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
4189 cmptf, bCC, sCC, conditional_trap): Delete.
4190 (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4,
4191 cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
4192 cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
4193 ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
4194 * config/ia64/predicates.md (ia64_cbranch_operator): New.
4195
4196 * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
4197 type of last argument.
4198 * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
4199 (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
4200 use machine mode argument instead of branch_type. Remove dead
4201 code for floating-point comparisons.
4202 * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
4203 * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
4204 Remove.
4205 (cbranchsi4, cstoresi4): New.
4206 * config/iq2000/predicates.md (reg_or_const_operand): New.
4207
4208 * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
4209 * config/m32c/m32c.md (any_cond, gl_cond): Delete.
4210 (b<code>_op): Rewrite to...
4211 (bcc_op): ... this, using match_operator.
4212 (s<code>_op): Rewrite to...
4213 (scc_op): ... this, using match_operator.
4214 (s<code>_24_op): Rewrite to...
4215 (scc_op_24): ... this, using match_operator.
4216 (s<code>_<mode>): Rewrite to...
4217 (cstore<mode>4): ... this, using match_operator.
4218 (s<code>_<mode>_24): Rewrite to...
4219 (cstore<mode>4_24): ... this, using match_operator.
4220 * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
4221 m32c_unpend_compare, m32c_expand_scc): Delete.
4222 * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
4223 m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
4224 (m32c_expand_movcc): Change NE to EQ if necessary.
4225 (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
4226
4227 * config/m32r/m32r-protos.h (gen_cond_store): New.
4228 * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
4229 (gen_cond_store): New, from sCC patterns.
4230 (m32r_expand_block_move): Use cbranchsi4.
4231 * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
4232 * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
4233 (cbranchsi4, cstoresi4): New.
4234
4235 * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
4236 Delete.
4237 (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
f90b7a5a 4238 (m68hc11_notice_update_cc): Look into a compare with 0.
fbdf817d
UB
4239 * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
4240 Delete.
4241 * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
4242 cmphi, cmpqi, bCC): Delete.
4243 (cbranchsi4, cbranchhi4, cbranchqi4): New.
4244 (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
4245 bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
4246 sets with COMPARE.
4247
4248 * config/m68k/predicates.md (m68k_cstore_comparison_operator,
4249 const0_operand, const1_operand, m68k_subword_comparison_operand): New.
4250 * config/m68k/constraints.md (H): New.
4251 * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
4252 the define_insn below.
4253 (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
4254 (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
4255 *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
4256 patterns): Wrap RHS with COMPARE.
4257 (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
4258 (*cmpdi_internal): Name this pattern.
4259 (cmpdi): Change to define_insn.
4260 (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
4261 cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
4262 (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
4263 predicate.
4264 (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
4265 sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
4266 (conditional_trap): Change to...
4267 (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
4268 (*conditional_trap): Use the ordered_comparison_operator and
4269 const1_operand predicates.
4270 * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
4271 (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
4272 (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
4273 * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
4274
4275 * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
4276 mcore_modify_comparison, mcore_gen_compare_reg): Remove.
4277 (mcore_gen_compare): New.
4278 * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
4279 (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
4280 (mcore_gen_compare): ... this.
4281 * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
4282 (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
4283 (stack probe pattern): Use cbranchsi4.
4284
4285 * config/mips/predicates.md (mips_cstore_operator): New.
4286 * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
4287 * config/mips/mips.md (any_cond): Delete.
4288 (conditional_trap): Rename to ctrap<GPR:mode>4. Adjust predicates,
4289 always succeed.
4290 (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
4291 fixuns_truncsfdi2): Use cbranch patterns.
4292 (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete.
4293 (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
4294 Adjust call to mips_expand_conditional_branch.
4295 (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
4296 cstore<GPR:mode>4.
4297 * config/mips/mips-protos.h (mips_expand_conditional_branch,
4298 mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
4299 * config/mips/mips.c (cmp_operands): Delete.
4300 (mips_emit_compare): Get comparison operands from *op0/*op1.
4301 (mips_expand_scc): Get code/op0/op1/target from operands. Assert
4302 that it succeeds. Use op0/op1 instead of cmp_operands.
4303 (mips_expand_conditional_branch, mips_expand_conditional_move,
4304 mips_expand_conditional_trap): Likewise.
4305 (mips_block_move_loop): Use cbranch patterns.
4306 * config/mips/mips.h (cmp_operands): Delete.
4307
4308 * config/mmix/mmix.c (mmix_valid_comparison): Delete.
4309 (mmix_gen_compare_reg): Just return a register in the right CC mode.
4310 * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
4311 * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
4312 (*cmpcc_folded): Rename to...
4313 (*cmpdi_folded): this.
4314 (*cmpcc): Rename to...
4315 (*cmps): ... this.
4316 (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
4317 (bCC): Remove.
4318 (cbranchdi4): New.
4319 (cbranchdf4): New. Handle invalid comparisons here.
4320 * config/mmix/predicates.md (float_comparison_operator): New.
4321
4322 * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
4323 zero_extract to be cheap in (compare (zero_extract) (const_int 0).
4324 * config/mn10300/mn10300.md (tst): Delete.
4325 (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
4326 Name these patterns and wrap RHS in a compare.
4327 (*cmpsi): Make this pattern private. Include tst.
4328 (*cmpsf): Make this pattern private.
4329 (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
4330 (compare with zero peepholes): Likewise.
4331 (bCC): Remove.
4332 (cbranchsi4, cbranchsf4): New.
4333 (casesi): Use cbranchsi4.
4334
4335 * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
4336 hppa_branch_type): Delete.
4337 (return_addr_rtx): Use cbranchsi4.
4338 (emit_bcond_fp): Accept all operands. Replace CODE with NE.
4339 Emit CCFPmode comparison here.
4340 (gen_cmp_fp): Delete, now part of emit_bcond_fp.
4341 * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
4342 hppa_branch_type): Delete.
4343 * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
4344 (movsicc, movdicc): Remove references to hppa_compare_op0,
4345 hppa_compare_op1 and compare_from_rtx.
4346 (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
4347 (casesi): Use cbranchsi4.
4348
4349 * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
4350 * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
4351 * config/pdp11/pdp11.md (register_or_const0_operand): New.
4352 (cmpdf, cmphi, cmpqi): Make private. Add tst alternatives.
4353 (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
4354 (bCC): Delete.
4355 (cbranchdf4, cbranchhi4, cbranchqi4): New.
4356 (*branch, *branch_inverted): New.
4357
4358 * config/picochip/picochip.md (cbranchhi4): Use
4359 ordered_comparison_operator.
4360 (cmphi, bCC): Remove.
4361
4362 * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
4363 (trap_comparison_operator): Delete.
4364 * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
4365 rs6000_emit_cbranch): Accept mode and operands.
4366 * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
4367 rs6000_compare_fp_p): Delete.
4368 (rs6000_generate_compare): Accept mode and comparison. Extract code
4369 and op0/op1 from there. Replace references to rs6000_compare_op0
4370 and rs6000_compare_op1.
4371 (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
4372 extract result from passed operands.
4373 (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
4374 extract loc from passed operands.
4375 (rs6000_emit_cmove): Likewise.
4376 * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
4377 rs6000_compare_fp_p): Delete.
4378 * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
4379 (cbranch<GPR>4, cbranch<FP>4): New.
4380 (cstore<mode>4): New. Consolidate here all choices about when to use
4381 portable or specialized sCC sequences.
4382 (stack_protect_test): Use cbranchsi4.
4383 (conditional_trap): Replace with ctrap<GPR>4.
4384 (conditional trap insn): Replace trap_comparison_operator with
4385 ordered_comparison_operator.
4386
4387 * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
4388 (s390_emit_prologue): Use ctrap.
4389 * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
4390 * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
4391 New predicates replacing...
4392 * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
4393 (cmp<GPR>, cmp<FP>, cmpcc): Delete.
4394 (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
4395 (add<mode>cc): Do not use s390_compare_op0/op1.
4396 (s<code>): Change to...
4397 (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
4398 (seq): Change to...
4399 (cstorecc4): ... this. Handle EQ or NE equally.
4400 (*sne): Un-privatize for use in cstorecc4.
4401 (b<code>): Change to...
4402 (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
4403 (conditional_trap): Replace with...
4404 (ctrap<GPR>4, ctrap<FP>4): ... these.
4405 (stack_protect): Use cbranchcc4.
4406
4407 * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
4408 * config/score/score-protos.h (score_gen_cmp): Delete.
4409 * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
4410 (score_block_move-loop): Use cbranchsi4.
4411 * config/score/score.md (cbranchsi4): New.
4412 (cmpsi, bCC): Delete.
4413 * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
4414 (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
4415 * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
4416 (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
4417 * config/score/score3.h (score3_gen_cmp): Delete.
4418 * config/score/score7.h (score7_gen_cmp): Delete.
4419
4420 * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
4421 (sh_emit_scc_to_t): ... this. Return void.
4422 (from_compare): Rename to...
4423 (sh_emit_compare_and_branch): ... this.
4424 (sh_emit_compare_and_set): New.
4425 (sh_expand_t_scc): Accept operands.
4426 * config/sh/predicates.md (sh_float_comparison_operator): New.
4427 * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
4428 (prepare_scc_operands): Rename to...
4429 (sh_emit_scc_to_t): ... this. Return void. Get op0/op1 from
4430 arguments.
4431 (sh_emit_cheap_store_flag): New.
f90b7a5a 4432 (sh_emit_set_t_insn): New.
fbdf817d
UB
4433 (from_compare): Rename to...
4434 (sh_emit_compare_and_branch): ... this. Accept mode. Rewrite
4435 handling of TARGET_SH2E floating point to avoid recursive call.
4436 Generate branch here.
4437 (sh_emit_compare_and_set): New.
4438 (sh_expand_t_scc): Get op0/op1 from arguments.
4439 (sh_emit_cheap_store_flag): New.
4440 * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
4441 cases.
f90b7a5a 4442 (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
fbdf817d
UB
4443 (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
4444 (movsicc, movdicc): Do nothing when it recreated operands from
4445 sh_compare_*. Use sh_emit_cheap_store_flag. Adjust call to
4446 prepare_scc_operands (now sh_emit_scc_to_t).
4447 (udivdi3): Use cstoresi4.
4448 (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
4449 bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
4450 (cbranchint4_media, cbranchfp4_media): New.
4451 (casesi): Use cbranchdi4.
4452 (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
4453 Delete.
4454 (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
4455 (movnegt): Remove second operand.
4456 (cbranchsf4, cbranchdf4): New.
4457 (stack_protect): Use cbranchdi4/cbranchsi4.
4458
4459 * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
4460 (gen_compare_reg): Accept comparison, extract part of it to...
4461 (gen_compare_reg_1): ... this.
4462 (gen_compare_operator): Delete.
4463 (gen_v9_scc): Accept separate destination, comparison code and arms.
4464 Do not use sparc_compare_op0/sparc_compare_op1.
4465 (emit_scc_insn, emit_conditional_branch_insn): New.
4466 (emit_v9_brxx): Make static. Remove useless assertion.
4467 (sparc_emit_float_lib_cmp): Return RTL instead of calling
4468 emit_cmp_insn.
4469 (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
4470 * config/sparc/sparc-protos.h (gen_compare_reg,
f90b7a5a
PB
4471 sparc_emit_float_lib_cmp): Adjust prototype.
4472 (emit_scc_insn, emit_conditional_branch_insn): New.
4473 (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
fbdf817d
UB
4474 * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
4475 * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
4476 iterators to the top.
4477 (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
4478 snesi_special_extend, sCC, bCC, seqdi_special_trunc,
f90b7a5a 4479 snedi_special_trunc): Delete.
fbdf817d 4480 (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
f90b7a5a 4481 and snedi_special_trunc.
fbdf817d
UB
4482 (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
4483 cbranchdi4, cbranch<F:mode>4): New.
4484 (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
4485 here. Use gen_compare_reg instead of gen_compare_operator.
4486 (conditional_trap): Replace with...
4487 (ctrapsi4, ctrapdi4): ... this.
4488 (stack_protect_test): Use cbranchcc4.
4489
4490 * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
4491 argument to rtx.
4492 * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove.
4493 (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
4494 Change spu_compare_op0/op1 to op0/op1 throughout. Get target
4495 from operands[0] or operands[3] depending on is_set.
4496 * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
4497 * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
4498 cmpdf, bCC), sCC: Remove.
4499 (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4,
4500 cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
4501 cstoredf4): New.
4502 (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
4503 spu_emit_branch_or_set.
4504
4505 * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
4506 Add two arguments.
4507 * config/stormy16/stormy16.h (xstormy16_compare_op0,
4508 xstormy16_compare_op1): Delete.
4509 * config/stormy16/stormy16.c (xstormy16_compare_op0,
4510 xstormy16_compare_op1): Delete.
4511 (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
4512 Adjust calls.
4513 * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
4514 (cmphi, cmpsi, bCC): Remove.
4515
4516 * config/v850/v850.md (tstsi, cmpsi): Fold into...
4517 (*cmpsi): ... this one.
4518 (cbranchsi4, cstoresi4): New.
4519 (bCC expanders): Delete.
4520 (sCC insns): Fold into...
4521 (*setcc): ... this one.
4522 (casesi): Do not use gen_cmpsi and gen_bgtu.
f90b7a5a
PB
4523 (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
4524 (movsicc): Simplify.
4525 * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
4526
fbdf817d
UB
4527 * config/vax/vax-protos.h (cond_name): New.
4528 (vax_output_conditional_branch): Remove.
4529 * config/vax/vax.c (cond_name): New.
4530 (vax_output_conditional_branch): Remove.
4531 * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
4532 * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
4533 (cmp<VAXint>, cmp<VAXfp>): Privatize. Add constraints for tst.
4534 (bit<VAXint>): Wrap source with (compare).
4535 (b<code> and following unnamed pattern): Rename to *branch and
4536 *branch_reversed. Change macroization to match_operator.
4537 (cbranch<VAXint>4, cbranch<VAXfp>4): New.
4538
4539 * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
4540 * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
4541 Change last argument to machine_mode.
4542 (xtensa_expand_scc): Add machine_mode argument.
4543 * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
4544 (gen_conditional_move, xtensa_expand_conditional_branch,
4545 xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
4546 instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
4547 Adjust operand numbers.
4548 * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
4549 Delete.
4550 * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
4551 (cmpsi, cmpsf, b<code>, s<code>): Delete.
4552 (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
f90b7a5a 4553
16670495
PB
45542009-05-12 Paolo Bonzini <bonzini@gnu.org>
4555
4556 * optabs.c (prepare_cmp_insn): Temporarily disable test that
4557 causes spurious differences between trunk and cond-optab branch.
4558
4a4a4e99
AO
45592009-05-12 Alexandre Oliva <aoliva@redhat.com>
4560
4561 PR target/37137
4562 * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
4563
72b9acff
AO
45642009-05-12 Alexandre Oliva <aoliva@redhat.com>
4565
4566 * tree.c (iterative_hash_pointer): Delete.
4567 (iterative_hash_expr): Short-circuit handling of NULL pointer.
4568 Hash UIDs and versions of SSA names. Don't special-case built-in
4569 function declarations.
4570
b7dd69ac
ILT
45712009-05-11 Ian Lance Taylor <iant@google.com>
4572
4573 PR bootstrap/40103
4574 * graphite.c: Force -Wc++-compat to only be a warning before
4575 #including "cloog/cloog.h".
4576
ed102b70
MJ
45772009-05-11 Martin Jambor <mjambor@suse.cz>
4578
4579 * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
4580
08f1af2e
JH
45812009-05-11 Jan Hubicka <jh@suse.cz>
4582
4583 * tree-ssa-loop-ivcanon.c: Include target.h
4584 (struct loop_size): new structure.
4585 (constant_after_peeling): New predicate.
4586 (tree_estimate_loop_size): New function.
4587 (estimated_unrolled_size): Rewrite for new estimates.
4588 (try_unroll_loop_completely): Use new estimates.
4589 * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
4590
a7d39bd3
AP
45912009-05-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
4592
4593 * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
4594 libcpp interface change.
4595 (spu_macro_to_expand): Likewise.
4596
f5a1f0d0
PB
45972009-05-11 Paolo Bonzini <bonzini@gnu.org>
4598
4599 PR tree-optimization/40026
4600 * gimplify.c (gimplify_init_constructor): Change initial conditional
4601 to assertion. Rewrite TREE_OPERAND (*expr_p, 1) after
4602 optimize_compound_literals_in_ctor.
4603
c260f01f
NS
46042009-05-11 Nathan Sidwell <nathan@codesourcery.com>
4605
4606 * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
4607 New devices.
4608 * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
4609
df398a37
L
46102009-05-11 H.J. Lu <hongjiu.lu@intel.com>
4611
4612 * tree-vect-data-refs.c (vect_analyze_group_access): Use
4613 HOST_WIDE_INT for gap.
4614
4da39468
IR
46152009-05-11 Ira Rosen <irar@il.ibm.com>
4616
4617 PR tree-optimization/40074
4618 * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
4619 account in group size and step comparison.
4620
4effdf02
RG
46212009-05-11 Richard Guenther <rguenther@suse.de>
4622
4623 * passes.c (init_optimization_passes): Strip now incorrect comment.
4624 (execute_function_todo): Do not set PROP_alias.
4625 * tree-pass.h (PROP_alias): Remove.
4626 * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
4627 * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
4628 * tree-nrv.c (pass_return_slot): Likewise.
4629 * tree-object-size.c (pass_object_sizes): Likewise.
4630 * tree-ssa-dom.c (pass_dominator): Likewise.
4631 (pass_phi_only_cprop): Likewise.
4632 * tree-ssa-dse.c (pass_dse): Likewise.
4633 * tree-ssa-phiopt.c (pass_phiopt): Likewise.
4634 (pass_cselim): Likewise.
4635 * tree-ssa-pre.c (pass_pre): Likewise.
4636 (pass_fre): Likewise.
4637 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
4638 * tree-ssa-sink.c (pass_sink_code): Likewise.
4639 * tree-stdarg.c (pass_stdarg): Likewise.
4640 * tree-tailcall.c (pass_tail_calls): Likewise.
4641 * tree-vrp.c (pass_vrp): Likewise.
4642
24b97832
ILT
46432009-05-10 Ian Lance Taylor <iant@google.com>
4644
4645 * basic-block.h (enum profile_status): Break out of struct
4646 control_flow_graph.
4647 * cgraph.h (struct inline_summary): Break out of struct
4648 cgraph_local_info.
4649 * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
4650 of struct cgraph_order_sort.
fbdf817d 4651 * combine.c (enum undo_kind): New enum, broken out of struct undo.
24b97832
ILT
4652 * cse.c (struct branch_path): Break out of struct
4653 cse_basic_block_data.
4654 * except.h (enum eh_region_type): Break out of struct eh_region.
4655 * gcc.c (enum add_del): Break out of struct modify_target.
fbdf817d 4656 * genrecog.c (enum decision_type): Break out of struct decision_test.
24b97832
ILT
4657 * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
4658 ggc_pch_data.
fbdf817d
UB
4659 * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
4660 * regmove.c (enum match_use): New enum, broken out of struct match.
24b97832
ILT
4661 * sched-int.h (enum post_call_group): New enum, broken out of
4662 struct deps.
4663 (struct deps_reg): Break out of struct deps.
4664 * target.h (struct asm_int_op): Break out of struct gcc_target.
4665 * tree-eh.c (struct goto_queue_node): Break out of struct
4666 leh_tf_state.
4667 * tree-inline.h (enum copy_body_cge_which): Break out of
4668 copy_body_data.
4669 * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
4670
4671 * c-decl.c (in_struct, struct_types): New static variables.
4672 (pushtag): Add loc parameter. Change all callers.
4673 (lookup_tag): Add ploc parameter. Change all callers.
4674 (check_compound_literal_type): New function.
4675 (parser_xref_tag): Add loc parameter. Change all callers. If
4676 -Wc++-compat, warn about struct/union/enum types defined within a
4677 struct or union.
4678 (start_struct): Add enclosing_in_struct, enclosing_struct_types,
4679 and loc parameters. Change all callers. Change error calls to
4680 error_at, using loc. For a redefinition, if the location of the
4681 original definition is known, report it. Set in_struct and
fbdf817d 4682 struct_types. If -Wc++-compat warn if in sizeof, typeof, or alignof.
24b97832
ILT
4683 (finish_struct): Add new parameters enclosing_in_struct and
4684 enclosing_struct_types. Change all callers. Set
4685 C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
4686 in the struct. If in a struct, add this struct to struct_types.
4687 (start_enum): Add loc parameter. Change all callers. Use
4688 error_at for errors, using loc. For a redefinition, if the
4689 location of the original definition is known, report it. If in a
4690 struct, add this enum type to struct_types. If -Wc++-compat warn
4691 if in sizeof, typeof, or alignof.
fbdf817d
UB
4692 * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
4693 (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
24b97832
ILT
4694 (c_parser_enum_specifier): Get enum location for start_enum.
4695 (c_parser_struct_or_union_specifier): Get struct location for
4696 start_struct. Save in_struct and struct_types status between
4697 start_struct and finish_struct.
4698 (c_parser_cast_expression): Get location of cast.
4699 (c_parser_alignof_expression): Get location of type.
4700 (c_parser_postfix_expression): Likewise.
4701 (c_parser_postfix_expression_after_paren_type): Add type_loc
fbdf817d
UB
4702 parameter. Change all callers. Call check_compound_literal_type.
4703 Use type_loc for error about variable size type.
4704 * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
4705 of an enum constant from an enum type defined in a struct or union.
24b97832
ILT
4706 (c_cast_expr): Add loc parameter. Change all callers. If
4707 -Wc++-compat, warn about defining a type in a cast.
4708 * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
4709 (start_enum, start_struct, finish_struct): Update declarations.
4710 (parser_xref_tag, c_cast_expr): Update declarations.
4711 (check_compound_literal_type): Declare.
4712
7a2738fa
BE
47132009-05-11 Ben Elliston <bje@au.ibm.com>
4714
4715 * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
4716 for recent libcpp interface change.
4717 (rs6000_macro_to_expand): Likewise.
4718
af618949
MM
47192009-05-10 Michael Matz <matz@suse.de>
4720
4721 PR target/40031
4722 * config/arm/arm.c (require_pic_register): Emit on entry edge,
4723 not at entry of function.
4724
b7d7a473
RG
47252009-05-10 Richard Guenther <rguenther@suse.de>
4726
4727 PR tree-optimization/40081
4728 Revert
4729 * tree-sra.c (instantiate_element): Instantiate scalar replacements
4730 using the main variant of the element type. Do not fiddle with
4731 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
4732
4733 * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
4734 structs with volatile fields.
4735
078c3644
JH
47362009-05-10 Jan Hubicka <jh@suse.cz>
4737
4738 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
fbdf817d
UB
4739 (estimate_move_cost): Assert that it does not get called for
4740 VOID_TYPE_P.
078c3644
JH
4741 (estimate_num_insns): Skip VOID types in argument handling.
4742 (optimize_inline_calls): Delete unreachable blocks and verify that
4743 callgraph is valid.
4744
39ff5a96
JH
47452009-05-10 Jan Hubicka <jh@suse.cz>
4746
4747 * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
4748 * cgraph.c (cgraph_mark_address_taken_node): New function.
4749 (dump_cgraph_node): Dump new flag.
4750 * cgraph.h (struct cgraph_node): Add address_taken.
4751 (cgraph_mark_address_taken_node): New function.
39ff5a96
JH
4752 * ipa.c (cgraph_postorder): Prioritize functions with address taken
4753 since new direct calls can be born.
4754
9a0c6187
JM
47552009-05-10 Joseph Myers <joseph@codesourcery.com>
4756
4757 * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
4758 tok->val.node.node.
4759
4b685e14
JH
47602009-05-10 Jan Hubicka <jh@suse.cz>
4761
4762 PR middle-end/40084
fb0be169
EB
4763 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
4764 argument; rewrite.
4b685e14
JH
4765 (cgraph_update_edges_for_call_stmt): Take old_decl argument.
4766 * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
4767 * tree-inline.c (copy_bb): Set frequency correctly.
fb0be169
EB
4768 (fold_marked_statements): Update call to
4769 cgraph_update_edges_for_call_stmt.
4b685e14 4770
29d08eba
JM
47712009-05-10 Joseph Myers <joseph@codesourcery.com>
4772
4773 * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
4774 identifiers in diagnostics.
4775 * config/arm/arm.c (arm_handle_fndecl_attribute,
4776 arm_handle_isr_attribute): Likewise.
4777 * config/avr/avr.c (avr_handle_progmem_attribute,
782dc37a 4778 avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
29d08eba
JM
4779 * config/bfin/bfin.c (handle_int_attribute,
4780 bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
4781 bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
4782 bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
4783 Likewise.
4784 * config/darwin.c (darwin_handle_kext_attribute,
4785 darwin_handle_weak_import_attribute): Likewise.
4786 * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
4787 h8300_handle_eightbit_data_attribute,
4788 h8300_handle_tiny_data_attribute): Likewise.
4789 * config/i386/i386.c (ix86_handle_cconv_attribute,
782dc37a 4790 ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
29d08eba
JM
4791 * config/i386/winnt.c (ix86_handle_shared_attribute,
4792 ix86_handle_selectany_attribute): Likewise.
4793 * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
4794 * config/m32c/m32c.c (function_vector_handler): Likewise.
4795 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
4796 m68hc11_handle_fntype_attribute): Likewise.
4797 * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
4798 * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
4799 * config/mips/mips.c (mips_insert_attributes,
4800 mips_merge_decl_attributes, mips_expand_builtin): Likewise.
4801 * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
4802 rs6000_handle_struct_attribute): Likewise.
4803 * config/sh/sh.c (sh_insert_attributes,
4804 sh_handle_resbank_handler_attribute,
4805 sh_handle_interrupt_handler_attribute,
4806 sh2a_handle_function_vector_handler_attribute,
4807 sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
4808 Likewise.
4809 * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
4810 * config/spu/spu.c (spu_handle_fndecl_attribute,
4811 spu_handle_vector_attribute): Likewise.
4812 * config/stormy16/stormy16.c
4813 (xstormy16_handle_interrupt_attribute): Likewise.
4814 * config/v850/v850-c.c (ghs_pragma_section): Likewise.
4815 * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
4816
f41c4af3
JM
48172009-05-10 Joseph Myers <joseph@codesourcery.com>
4818
782dc37a 4819 * pretty-print.h (struct pretty_print_info): Add translate_identifiers.
f41c4af3
JM
4820 (pp_translate_identifiers): New.
4821 (pp_identifier): Only conditionally translate identifier to locale
4822 character set.
4823 * pretty-print.c (pp_construct): Set pp_translate_identifiers.
4824 (pp_base_tree_identifier): Only conditionally translate identifier
4825 to locale character set.
4826 * c-pretty-print.c (M_): Define.
4827 (pp_c_type_specifier, pp_c_primary_expression): Mark English
4828 fragments for conditional translation with M_.
4829 * tree-pretty-print.c (maybe_init_pretty_print): Disable
4830 identifier translation.
4831
896d7dbd
RG
48322009-05-10 Richard Guenther <rguenther@suse.de>
4833
4834 PR tree-optimization/40081
4835 * tree-sra.c (instantiate_element): Instantiate scalar replacements
4836 using the main variant of the element type. Do not fiddle with
4837 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
4838
9a23acef
JH
48392009-05-09 Jan Hubicka <jh@suse.cz>
4840
4841 PR middle-end/40080
4842 * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
4843 indirect calls; verify cgraph afterwards.
4844
d563610d
JH
48452009-05-09 Jan Hubicka <jh@suse.cz>
4846
4847 PR bootstrap/40082
4848 * ipa.c (update_inlined_to_pointer): New function.
4849 (cgraph_remove_unreachable_nodes): Use it.
4850
f08a18d0
JH
48512009-05-09 Jan Hubicka <jh@suse.cz>
4852
4853 * tree-eh.c (struct leh_state): Remove prev_try.
4854 (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
4855 not track prev_try.
4856 * except.c (gen_eh_region_cleanup, duplicate_eh_regions,
4857 copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
4858 remove_eh_handler_and_replace, foreach_reachable_handler,
4859 verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
4860 * except.h (struct eh_region): Remove eh_region_u_cleanup.
4861 (gen_eh_region_cleanup): Update prototype.
4862
0afd7219
JH
48632009-05-09 Jan Hubicka <jh@suse.cz>
4864
4865 PR middle-end/40043
4866 * except.c (copy_eh_region): Always set prev_try.
4867 (redirect_eh_edge_to_label): Find outer try.
4868 (foreach_reachable_handler): When looking for prev try
4869 handle case where previous try is not going to be taken.
4870
ad6c0864
MM
48712009-05-07 Michael Meissner <meissner@linux.vnet.ibm.com>
4872
4873 PR tree-optimization/40049
4874 * tree-vect-stmts.c (vectorizable_operation): If the machine has
4875 only vector/vector shifts, convert the type of the constant to the
4876 appropriate type to avoid building incorrect trees, which
4877 eventually have problems with garbage collection.
4878
c94f9067
JM
48792009-05-08 Joseph Myers <joseph@codesourcery.com>
4880
4881 * fold-const.c (fold_binary): Do not fold multiplication by 1 or
4882 -1 for complex floating-point types if honoring signed zeros.
4883
9187e02d
JH
48842009-05-08 Jan Hubicka <jh@suse.cz>
4885
20acb8a2
EB
4886 * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
4887 argument; handle correctly when profile is absent.
9187e02d
JH
4888 (build_cgraph_edges): Update.
4889 (rebuild_cgraph_edges): Update.
20acb8a2
EB
4890 * cgraph.c: Do not include varray.h.
4891 (cgraph_set_call_stmt_including_clones): New function.
4892 (cgraph_create_edge_including_clones): Likewise
4893 (cgraph_update_edges_for_call_stmt_node): New static cfunction.
9187e02d
JH
4894 (cgraph_update_edges_for_call_stmt): Handle clones.
4895 (cgraph_remove_node): Handle clone tree.
4896 (cgraph_remove_node_and_inline_clones): New function.
4897 (dump_cgraph_node): Dump clone tree.
4898 (cgraph_clone_node): Handle clone tree.
20acb8a2 4899 (clone_function_name): Bring here from tree-inline.c.
9187e02d 4900 (cgraph_create_virtual_clone): New function.
20acb8a2
EB
4901 * cgraph.h (ipa_replace_map): Move here from ipa.h.
4902 (cgraph_clone_info): New function.
9187e02d 4903 (strut cgraph_node): Add clone_info and new clone tree pointers.
20acb8a2
EB
4904 (cgraph_remove_node_and_inline_clones,
4905 cgraph_set_call_stmt_including_clones,
4906 cgraph_create_edge_including_clones,
4907 cgraph_create_virtual_clone): Declare.
9187e02d
JH
4908 (cgraph_function_versioning): Use VEC argument.
4909 (compute_call_stmt_bb_frequency): Update prototype.
4910 (cgraph_materialize_all_clones): New function.
4911 * ipa-cp.c (ipcp_update_cloned_node): Remove.
4912 (ipcp_create_replace_map): Update to VECtors.
4913 (ipcp_update_callgraph): Use virtual clones.
4914 (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
4915 (ipcp_update_profiling): Do not update local profiling.
4916 (ipcp_insert_stage): Use VECtors and virtual clones.
4917 * cgraphunit.c (verify_cgraph_node): Verify clone tree.
4918 (clone_of_p): New function.
4919 (cgraph_preserve_function_body_p): Use clone tree.
4920 (cgraph_optimize): Materialize clones.
4921 (cgraph_function_versioning): Update for VECtors.
4922 (save_inline_function_body): Use clone tree.
20acb8a2
EB
4923 (cgraph_materialize_clone): New function.
4924 (cgraph_materialize_all_clones): Likewise.
9187e02d
JH
4925 * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
4926 * ipa.c: Include gimple.h.
4927 (cgraph_remove_unreachable_nodes): Use clone tree.
20acb8a2
EB
4928 * ipa-prop.c (ipa_note_param_call): Update call to
4929 compute_call_stmt_bb_frequencycall.
9187e02d 4930 * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
20acb8a2 4931 * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
9187e02d
JH
4932 (copy_bb): Handle updating of clone tree; add new edge when new call
4933 appears.
4934 (expand_call_inline): Be strict about every call having edge.
4935 (clone_fn_id_num, clone_function_name): Move to cgraph.c.
4936 (delete_unreachable_blocks_update_callgraph): New function.
20acb8a2
EB
4937 (tree_function_versioning): Use VECtors; always remove unreachable
4938 blocks and fold conditionals.
4939 * tree-inline.h: Do not include varray.h.
9187e02d
JH
4940 (tree_function_versioning): Remove.
4941 * Makefile.in (GTFILES): Remove tree-inline.c
4942 * passes.c (do_per_function): Do only functions having body.
20acb8a2
EB
4943 * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
4944 tree.
9187e02d 4945
9b86d6bb
L
49462009-05-08 H.J. Lu <hongjiu.lu@intel.com>
4947 Andrew Morrow <acm@google.com>
4948
4949 PR c/36892
4950 * c-common.c (c_common_attribute_table): Permit deprecated
4951 attribute to take an optional argument.
4952 (handle_deprecated_attribute): If the optional argument to
4953 __attribute__((deprecated)) is not a string ignore the attribute
4954 and emit a warning.
4955
4956 * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
4957 * c-typeck.c (build_component_ref): Likewise.
4958 (build_external_ref): Likewise.
4959
4960 * toplev.c (warn_deprecated_use): Add an attribute argument.
4961 Emit the message associated with __attribute__((deprecated)).
4962
4963 * toplev.h (warn_deprecated_use): Updated.
4964
4965 * doc/extend.texi: Document new optional parameter to
4966 __attribute__((deprecated))
4967
82ad047f
ME
49682009-05-08 Michael Eager <eager@eagercon.com>
4969
4970 * config/rs6000/rs6000.md (*movdf_softfloat32): replace
4971 !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
4972
788d3075
RG
49732009-05-08 Richard Guenther <rguenther@suse.de>
4974
4975 PR tree-optimization/40062
4976 * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
4977 Avoid exponential behavior.
4978
00952e97
PB
49792009-05-08 Paolo Bonzini <bonzini@gnu.org>
4980
4981 PR rtl-optimization/33928
4982 PR 26854
4983 * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
4984 process_uses, build_single_def_use_links): New.
4985 (update_df): Update use_def_ref.
4986 (forward_propagate_into): Use get_def_for_use instead of use-def
4987 chains.
4988 (fwprop_init): Call build_single_def_use_links and let it initialize
4989 dataflow.
4990 (fwprop_done): Free use_def_ref.
4991 (fwprop_addr): Eliminate duplicate call to df_set_flags.
4992 * df-problems.c (df_rd_simulate_artificial_defs_at_top,
4993 df_rd_simulate_one_insn): New.
4994 (df_rd_bb_local_compute_process_def): Update head comment.
4995 (df_chain_create_bb): Use the new RD simulation functions.
4996 * df.h (df_rd_simulate_artificial_defs_at_top,
4997 df_rd_simulate_one_insn): New.
4998 * opts.c (decode_options): Enable fwprop at -O1.
4999 * doc/invoke.texi (-fforward-propagate): Document this.
5000
2ca862e9
JM
50012009-05-08 Joseph Myers <joseph@codesourcery.com>
5002
5003 PR c/24581
5004 * c-typeck.c (build_binary_op): Handle arithmetic between one real
5005 and one complex operand specially.
5006 * tree-complex.c (some_nonzerop): Do not identify a real value as
5007 zero if flag_signed_zeros.
5008
3e807ffc
PB
50092009-05-08 Paolo Bonzini <bonzini@gnu.org>
5010
5011 PR rtl-optimization/33928
7925c06c 5012 * loop-invariant.c (record_use): Fix && vs. || mishap.
3e807ffc 5013
1bfdbb29
PB
50142009-05-08 Paolo Bonzini <bonzini@gnu.org>
5015
5016 PR rtl-optimization/33928
e913423f
EB
5017 * loop-invariant.c (struct use): Add addr_use_p.
5018 (struct def): Add n_addr_uses.
5019 (struct invariant): Add cheap_address.
5020 (create_new_invariant): Set cheap_address.
5021 (record_use): Accept df_ref. Set addr_use_p and update n_addr_uses.
5022 (record_uses): Pass df_ref to record_use.
5023 (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
5024 used only as such.
1bfdbb29 5025
702cb2a0
KK
50262009-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
5027
5028 * config/sh/sh.c: Do not include c-pragma.h.
5029
5e8df753
AP
50302009-05-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
5031
5032 * config/spu/spu.c: Remove include of c-common.h.
5033
6ec637a4
JJ
50342009-05-07 Janis Johnson <janis187@us.ibm.com>
5035
5036 PR c/39037
5037 * c-common.h (mark_valid_location_for_stdc_pragma,
5038 valid_location_for_stdc_pragma_p, set_float_const_decimal64,
5039 clear_float_const_decimal64, float_const_decimal64_p): New.
5040 * c.opt (Wunsuffixed-float-constants): New.
5041 * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
5042 unsuffixed float constant, handle new warning.
5043 * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
5044 * c-decl.c (c_scope): New flag float_const_decimal64.
5045 (set_float_const_decimal64, clear_float_const_decimal64,
5046 float_const_decimal64_p): New.
5047 (push_scope): Set new flag.
5048 * c-parser.c (c_parser_translation_unit): Mark when it's valid
5049 to use STDC pragmas.
5050 (c_parser_external_declaration): Ditto.
5051 (c_parser_compound_statement_nostart): Ditto.
5052 * c-pragma.c (valid_location_for_stdc_pragma,
5053 mark_valid_location_for_stdc_pragma,
5054 valid_location_for_stdc_pragma_p, handle_stdc_pragma,
5055 handle_pragma_float_const_decimal64): New.
5056 (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
5057 * cp/semantics.c (valid_location_for_stdc_pragma_p,
5058 set_float_const_decimal64, clear_float_const_decimal64,
5059 float_const_decimal64_p): New dummy functions.
5060 * doc/extend.texi (Decimal Float): Remove statement that the
5061 pragma, and suffix for double constants, are not supported.
5062 * doc/invoke.texi (Warning Options): List new option.
5063 (-Wunsuffixed-float-constants): New.
5064
45b9b2e9
SB
50652009-05-08 Steven Bosscher <steven@gcc.gnu.org>
5066
5067 * config/i386/i386.c: Do not include c-common.h.
5068
e71da632
MH
50692009-05-07 Mark Heffernan <meheff@google.com>
5070
5071 * doc/invoke.texi (Debugging Options): Document change of debugging
5072 dump location.
e913423f 5073 * opts.c (decode_options): Make dump_base_name relative to
e71da632
MH
5074 aux_base_name directory.
5075
fe4c7bc6
HS
50762009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
5077
5078 * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
5079 * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
5080
3b3e44eb
RAE
50812009-05-07 Rafael Avila de Espindola <espindola@google.com>
5082
5083 * Makefile.in (install-plugin): Simplify a bit.
5084
fac41238
PB
50852009-05-07 Paolo Bonzini <bonzini@gnu.org>
5086
5087 * Makefile.in (OBJS-common): Add regcprop.o.
5088 (regcprop.o): New.
5089 * timevar.def (TV_CPROP_REGISTERS): New.
5090 * regrename.c (regrename_optimize): Return 0.
5091 (rest_of_handle_regrename): Delete.
5092 (pass_rename_registers): Point to regrename_optimize.
5093 (struct value_data_entry, struct value_data,
5094 kill_value_one_regno, kill_value_regno, kill_value,
5095 set_value_regno, init_value_data, kill_clobbered_value,
5096 kill_set_value, kill_autoinc_value, copy_value,
5097 mode_change_ok, maybe_mode_change, find_oldest_value_reg,
5098 replace_oldest_value_reg, replace_oldest_value_addr,
5099 replace_oldest_value_mem, copyprop_hardreg_forward_1,
5100 debug_value_data, validate_value_data): Move...
5101 * regcprop.c: ... here.
5102 (rest_of_handle_cprop): Delete.
5103 (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
5104
472e0df9
JJ
51052009-05-07 Jakub Jelinek <jakub@redhat.com>
5106
5107 PR middle-end/40057
5108 * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
5109 GEN_INT for 1 << bitnum.
5110 (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
5111 build_int_cst_type.
5112
0d50d55a
UB
51132009-05-07 Uros Bizjak <ubizjak@gmail.com>
5114
5115 * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
7925c06c 5116 Remove wrong description of "nand" operation.
0d50d55a 5117
22f597f1
RG
51182009-05-06 Richard Guenther <rguenther@suse.de>
5119 Adam Nemet <anemet@caviumnetworks.com>
5120
5121 * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
5122 comment. Add that if LHS is not a gimple register, then RHS1 has
5123 to be a single object (GIMPLE_SINGLE_RHS).
5124
641cac0b
AN
51252009-05-06 Adam Nemet <anemet@caviumnetworks.com>
5126
5127 * expr.c (get_def_for_expr): Move it up in the file.
5128 (store_field): When expanding a bit-field store, look at the
5129 defining gimple stmt for the masking conversion.
5130
5a5c6435
JJ
51312009-05-06 Janis Johnson <janis187@us.ibm.com>
5132
5133 PR middle-end/39986
5134 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
5135 decode_decimal64, encode_decimal128, decode_decimal128): Avoid
5136 32-bit memcpy into long.
5137
96474f36
JJ
51382009-05-06 Jakub Jelinek <jakub@redhat.com>
5139
5140 * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
5141 (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
5142 new_reg_loc_descr.
5143 (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
5144 instead of appending DW_OP_deref*.
5145
529ff441
MM
51462009-05-06 Michael Matz <matz@suse.de>
5147
5148 PR middle-end/40021
5149 * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
5150 (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
5151
9419a9fd
RAE
51522009-05-06 Rafael Avila de Espindola <espindola@google.com>
5153
5154 * Makefile.in (install-plugin): Fix srcdir handling.
5155
fff1894c
AB
51562009-05-06 Andrey Belevantsev <abel@ispras.ru>
5157
5158 * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
5159 when processing for not_regs_needed bitmap.
5160 * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
5161 handle TARGET_MEM_REF in lhs. Check TMR_BASE for NULL while
5162 handling it for rhs.
5163
700ae70c
L
51642009-05-06 H.J. Lu <hongjiu.lu@intel.com>
5165
ab3426a7 5166 * config/i386/i386.md (unnamed inc/dec peephole): Use
aa016ff7 5167 optimize_insn_for_size_p instead of optimize_size.
700ae70c
L
5168 * config/i386/predicates.md (incdec_operand): Likewise.
5169 (aligned_operand): Likewise.
5170 * config/i386/sse.md (divv8sf3): Likewise.
5171 (sqrtv8sf2): Likewise.
5172
67341fb5
L
51732009-05-06 H.J. Lu <hongjiu.lu@intel.com>
5174
5175 * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
5176
5177 * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
5178
87946f42
L
51792009-05-06 H.J. Lu <hongjiu.lu@intel.com>
5180
5181 * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
5182 ssemodesuffixf2c with avxmodesuffixf2c.
5183
1202aec1
JM
51842009-05-06 Joseph Myers <joseph@codesourcery.com>
5185
5186 PR c/40032
aa016ff7 5187 * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
1202aec1 5188
6e57a01d
JJ
51892009-05-05 Jakub Jelinek <jakub@redhat.com>
5190
5191 * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
5192 (struct tree_base): Adjust spacing for 8 bit boundaries.
5193 (struct tree_decl_common): Add decl_by_reference_flag bit.
5194 (DECL_BY_REFERENCE): Adjust.
5195 * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
5196 print DECL_BY_REFERENCE bit.
5197 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
5198 * dwarf2out.c (loc_by_reference, gen_decl_die): Check
5199 DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
5200 (gen_variable_die): Likewise. Check TREE_PRIVATE/TREE_PROTECTED
5201 unconditionally.
5202
32f579f6
JJ
5203 PR middle-end/39666
5204 * gimplify.c (gimplify_switch_expr): If case labels cover the whole
5205 range of the type, but default label is missing, add it with one
5206 of the existing labels instead of adding a new label for it.
5207
617ab743
JM
52082009-05-05 Joseph Myers <joseph@codesourcery.com>
5209
5210 * dwarf.h: Remove.
5211
bf016de8
RAE
52122009-05-05 Rafael Avila de Espindola <espindola@google.com>
5213
5214 * Makefile.in (enable_plugin, plugin_includedir): New.
5215 (install): Depend on install-plugin.
5216 (PLUGIN_HEADERS): New.
5217 (install-plugin): New.
5218 * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
5219
7f8fdb9f
RG
52202009-05-05 Richard Guenther <rguenther@suse.de>
5221
5222 PR tree-optimization/40022
5223 * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
5224 the only vuse.
5225 (phivn_valid_p): Fix tuplification error, simplify.
5226 (phiprop_insert_phi): Add dumps.
5227 (propagate_with_phi): Simplify.
5228
8d972839
RG
52292009-05-05 Richard Guenther <rguenther@suse.de>
5230
5231 PR middle-end/40023
aa016ff7 5232 * builtins.c (gimplify_va_arg_expr): Properly build the address.
8d972839 5233
66ba9b0b
SZ
52342009-05-05 Shujing Zhao <pearly.zhao@oracle.com>
5235
5236 * tree.h (strip_float_extensions): Remove duplicate declaration.
aa016ff7
UB
5237 (build_low_bits_mask, debug_fold_checksum, expand_function_end,
5238 expand_function_start, stack_protect_prologue, stack_protect_epilogue,
5239 block_ultimate_origin): Rearrange the declarations line to match the
5240 comment that indicates the .c file which the functions are defined.
5241 (dwarf2out_*, set_decl_rtl): Add comment.
5242 (get_base_address): Adjust comment.
5243 (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
5244 declarations line and add comment.
5245 (is_builtin_name): Add blank after function name, for clarity.
66ba9b0b 5246
4f1e4960
JM
52472009-05-04 Joseph Myers <joseph@codesourcery.com>
5248
5249 * attribs.c (decl_attributes): Use %qE for identifiers in
5250 diagnostics.
5251 * cgraphunit.c (verify_cgraph_node): Translate function names to
5252 locale character set in diagnostics.
5253 * coverage.c (get_coverage_counts): Use %qE for identifiers in
5254 diagnostics.
5255 * doc/invoke.texi (-finstrument-functions-exclude-function-list):
5256 Document that functions are named in UTF-8.
5257 * expr.c (expand_expr_real_1): Translate function names to locale
5258 character set in diagnostics.
5259 * gimplify.c (omp_notice_variable, omp_is_private,
5260 gimplify_scan_omp_clauses): Use %qE for identifiers in
5261 diagnostics.
5262 * langhooks.c (lhd_print_error_function): Translate function names
5263 to locale character set.
5264 * langhooks.h (decl_printable_name): Document that return value is
5265 in internal character set.
5266 * stmt.c: Include pretty-print.h
5267 (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
5268 diagnostics.
5269 (resolve_operand_name_1): Translate named operand name to locale
5270 character set.
5271 * stor-layout.c (finalize_record_size): Use %qE for identifiers in
5272 diagnostics.
5273 * toplev.c (announce_function): Translate function names to locale
5274 character set.
5275 (warn_deprecated_use): Use %qE for identifiers in diagnostics.
5276 (default_tree_printer): Use pp_identifier or translate identifiers
5277 to locale character set. Mark "<anonymous>" for translation.
5278 * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
5279 for identifiers in diagnostics.
5280 * tree.c (handle_dll_attribute): Use %qE for identifiers in
5281 diagnostics.
5282 * varasm.c (output_constructor): Use %qE for identifiers in
5283 diagnostics.
5284
40540e68
RAE
52852009-05-04 Rafael Avila de Espindola <espindola@google.com>
5286
5287 * configure.ac: use ` ` instead of $()
5288 * configure: Regenerate.
5289
33fc884c
BE
52902009-05-05 Ben Elliston <bje@au.ibm.com>
5291
5292 * config/pa/linux-atomic.c: Eliminate conditional include of
5293 errno.h on non-LP64 systems to simplify build requirements.
5294
88388a52
JM
52952009-05-04 Joseph Myers <joseph@codesourcery.com>
5296
5297 * c-common.c (handle_mode_attribute): Use %qE for identifiers in
5298 diagnostics.
5299 * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
5300 and pass value to identifier_to_locale.
5301 (warn_variable_length_array): Make name a tree.
5302 (grokdeclarator): Separate diagnostic texts for named and unnamed
5303 declarators. Use %qE for named declarators.
5304 * c-parser.c (c_lex_one_token): Use %qE for identifiers in
5305 diagnostics.
5306 * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
5307 identifiers in diagnostics.
5308 * c-typeck.c (push_member_name, start_init): Pass identifiers to
5309 identifier_to_locale. Mark "anonymous" strings for translation.
5310
960c5c79
ME
53112009-05-04 Michael Eager <eager@eagercon.com>
5312
5313 * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
aa016ff7 5314 address for DImode/DFmode only if double-precision FP regs.
960c5c79 5315
d083fbba
ME
53162009-05-04 Michael Eager <eager@eagercon.com>
5317
5318 * config/rs6000/rs6000.c (rs6000_libcall_value): Add
5319 TARGET_SINGLE_FLOAT check.
5320
c3ba8d32
ME
53212009-05-04 Michael Eager <eager@eagercon.com>
5322
5323 * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
5324
edce9f18
ME
53252009-05-04 Michael Eager <eager@eagercon.com>
5326
5327 * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
5328 * config/rs6000/t-xilinx: New
5329
506d7b68
PB
53302009-05-04 Paolo Bonzini <bonzini@gnu.org>
5331
e913423f 5332 * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
506d7b68
PB
5333 * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
5334 * gcc/explow.c (memory_address): Use target hook.
5335 * gcc/targhooks.c (default_legitimize_address): New.
5336 * gcc/targhooks.h (default_legitimize_address): New.
5337 * gcc/target.h (legitimize_address): New.
5338 * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
5339 (TARGET_INITIALIZER): Include it.
5340 * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
5341
5342 * config/bfin/bfin-protos.h (legitimize_address): Remove.
5343 * config/bfin/bfin.c (legitimize_address): Remove.
5344 * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
aa016ff7
UB
5345 * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
5346 Remove.
506d7b68
PB
5347 * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
5348 * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
5349
5350 * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
5351 THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
5352 * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
5353 * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
5354 * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
5355 * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
5356 * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
5357 * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
5358 * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
5359 * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
5360 * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
5361 * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
5362 * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
5363 * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
5364 * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
5365 * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
5366 * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
5367 * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
5368 * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
5369 * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
5370 * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
5371 * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
5372 * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
5373
5374 * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
5375 * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
5376 * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
5377 * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
5378 * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
5379 * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
5380 * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
5381 * gcc/config/arm/arm-protos.h (arm_legitimize_address,
5382 (thumb_legitimize_address): Delete.
5383 * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
5384 * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
5385 * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
5386 * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
5387 * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
aa016ff7
UB
5388 * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
5389 Delete.
5390 * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
5391 Delete.
506d7b68
PB
5392
5393 * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
5394 * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
5395 * config/m32r/m32r.c (m32r_legitimize_address): New.
5396 * config/m68k/m68k.c (m68k_legitimize_address): New.
5397 * config/score/score.c (score_legitimize_address): Standardize.
5398 * config/score/score3.c (score3_legitimize_address): Standardize.
5399 * config/score/score3.h (score3_legitimize_address): Adjust.
5400 * config/score/score7.c (score7_legitimize_address): Standardize.
5401 * config/score/score7.h (score7_legitimize_address): Adjust.
5402 * config/sh/sh.c (sh_legitimize_address): New.
5403 * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
5404
5405 * gcc/config/s390/s390.c (legitimize_address): Rename to...
5406 (s390_legitimize_address): ... this.
5407 * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
5408 (sparc_legitimize_address): ... this.
5409 * gcc/config/i386/i386.c (legitimize_address): Rename to...
5410 (ix86_legitimize_address): ... this.
5411 * gcc/config/avr/avr.c (legitimize_address): Rename to...
5412 (avr_legitimize_address): ... this.
5413 * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
5414 (mn10300_legitimize_address): ... this.
5415 * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
5416 (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
5417 (alpha_expand_mov): Adjust call.
5418
5419 * config/frv/frv.c (frv_legitimize_address): Return x on failure.
5420 * config/spu/spu.c (spu_legitimize_address): Likewise.
5421 * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
5422 * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
5423
a3af5087
JM
54242009-05-04 Joseph Myers <joseph@codesourcery.com>
5425
5426 * intl.c (locale_encoding, locale_utf8): New.
5427 (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
5428 * intl.h (locale_encoding, locale_utf8): Declare.
5429 * pretty-print.c: Include ggc.h. Include iconv.h if HAVE_ICONV.
5430 (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
5431 New.
5432 * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
5433 argument.
5434 (pp_tree_identifier): Define to call pp_base_tree_identifier.
5435 (pp_base_tree_identifier): Declare as function.
5436 (identifier_to_locale): Declare.
5437 * Makefile.in (pretty-print.o): Update dependencies.
aa016ff7 5438 * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
a3af5087 5439
ea5cd5f1
RG
54402009-05-04 Richard Guenther <rguenther@suse.de>
5441
5442 PR middle-end/40015
5443 * builtins.c (fold_builtin_memory_op): Do not decay to element
5444 type if the size matches the whole array.
5445
ddc2690a
KH
54462009-05-04 Kazu Hirata <kazu@codesourcery.com>
5447
5448 * expmed.c (synth_mult): When trying out a shift, pass the result
5449 of a signed shift.
5450
ef268d34
KH
54512009-05-04 Kazu Hirata <kazu@codesourcery.com>
5452
5453 * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
5454 (shiftsub1_cost): New.
5455 (init_expmed): Compute shiftsub1_cost.
5456 (synth_mult): Optimize multiplications by constants of the form
5457 -(2^^m-1) for some constant positive integer m.
5458
255d3827
RG
54592009-05-03 Richard Guenther <rguenther@suse.de>
5460
5461 PR c/39983
5462 * c-typeck.c (array_to_pointer_conversion): Do not built
5463 ADDR_EXPRs of arrays of pointer-to-element type.
5464 * c-gimplify.c (c_gimplify_expr): Revert change fixing
5465 up wrong ADDR_EXPRs after-the-fact.
5466 * c-common.c (strict_aliasing_warning): Strip pointer
5467 conversions for obtaining the original type.
5468 * builtins.c (fold_builtin_memset): Handle array types.
5469 (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
5470 and array types
5471
16c33770
RG
54722009-05-03 Richard Guenther <rguenther@suse.de>
5473
5474 PR middle-end/23329
5475 * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
5476 Do not lose casts from array types with unknown extent to array
5477 types with known extent.
5478 * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
5479 alias set compatibility.
5480
62a67c94
MLI
54812009-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
5482
5483 * flags.h (extra_warnings): Delete.
5484 * toplev.c (process_options): Handle Wuninitialized here.
5485 * opts.c (extra_warnings): Delete.
5486 (set_Wextra): Delete.
5487 (common_handle_option): -Wextra can be handled automatically.
5488 * c-opts.c (c_common_handle_option): Delete obsolete code.
5489 (c_common_post_options): Simplify comment.
5490 * common.opt (W): Add Var.
5491 (Wextra): Add Var.
5492 (Wuninitialized): Initialize to -1.
5493
8c7926c4
AN
54942009-05-03 Adam Nemet <anemet@caviumnetworks.com>
5495 Richard Guenther <rguenther@suse.de>
5496
5497 * expr.c (get_def_for_expr): New function.
5498 (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
5499 SSA rather than trees.
5500 <MULT_EXPR>: Likewise. Use subexp0 and subexp1 instead of
5501 TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
5502
fa5da7de
JM
55032009-05-03 Joseph Myers <joseph@codesourcery.com>
5504
5505 * c-common.c (reswords): Add _Imaginary.
5506 * c-common.c (enum rid): Add RID_IMAGINARY.
5507
2ddd5020
PB
55082009-05-03 Paolo Bonzini <bonzini@gnu.org>
5509
5510 * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
5511 Patch by Richard Guenther.
5512
aea88c05
AS
55132009-05-03 Anatoly Sokolov <aesok@post.ru>
5514
5515 * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
5516 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
5517 * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
5518 * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
5519 * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
5520 * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
5521 * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
5522 * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
5523 * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
5524 * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
5525 * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
5526 * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
5527 * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
5528 * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
5529 * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
5530 * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
5531 * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
5532 * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
5533
85e59f3a
RG
55342009-05-02 Richard Guenther <rguenther@suse.de>
5535
5536 PR tree-optimization/39940
5537 * tree-ssa-pre.c (eliminate): Make sure we may propagate before
5538 doing so.
5539
4636b850
RG
55402009-05-02 Richard Guenther <rguenther@suse.de>
5541
5542 PR middle-end/40001
5543 * tree-ssa.c (execute_update_addresses_taken): Properly check
5544 if we can mark a variable DECL_GIMPLE_REG_P.
5545 * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
5546 back to the end of the function.
5547 (is_gimple_reg_type): Remove complex type special casing.
5548 * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
5549 if not optimizing.
5550
5e10cb5a
BE
55512009-05-02 Ben Elliston <bje@au.ibm.com>
5552
5553 * doc/collect2.texi (Collect2): Document search path behaviour
5554 when configured with --with-ld.
5555
048bf48b
JH
55562009-05-02 Jan Hubicka <jh@suse.cz>
5557
5558 * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
5559 parameter; update callers.
aa016ff7
UB
5560 (coalesce_cost_edge): EH edges are costier because they needs
5561 splitting even if not critical and even more costier when there are
5562 multiple EH predecestors.
048bf48b 5563
d5c5f9ab
JH
55642009-05-02 Jan Hubicka <jh@suse.cz>
5565
5566 * except.c (remove_eh_handler_and_replace): Handle updating after
5567 removing TRY blocks.
5568
2ed1959a
EB
55692009-05-02 Eric Botcazou <ebotcazou@adacore.com>
5570
5571 * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
5572
d363a7e7
SB
55732009-05-02 Steven Bosscher <steven@gcc.gnu.org>
5574
5575 * varasm.c: Do not include c-pragma.h.
5576 * attribs.c: Do not incude c-common.h.
5577
9c3d55b4
MM
55782009-05-01 Michael Matz <matz@suse.de>
5579
5580 * calls.c (initialize_argument_information): Handle SSA names like
5581 decls with a non MEM_P DECL_RTL.
5582
ea264ca5
SB
55832009-05-01 Steven Bosscher <steven@gcc.gnu.org>
5584
5585 * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
5586 * ipa-utils.c: Likewise.
5587 * ipa-type-escape.c: Likewise.
5588 * cgraphunit.c Do not include c-common.h.
5589 * ipa-pure-const.c: Likewise.
5590 * tree-if-conv.c: Likewise.
5591 * matrix-reorg.c: Do not include c-common.h and c-tree.h.
5592 * ipa-struct-reorg.c: Likewise.
5593 * tree-nomudflap.c: Likewise.
5594 * tree-ssa-structalias.c: Likewise.
5595
6c5d4d1a
SB
55962009-05-01 Steven Bosscher <steven@gcc.gnu.org>
5597
5598 * store-motion.c: Many cleanups to make this pass a first-class
5599 citizen instead of an appendix to gcse load motion. Add TODO list
5600 to make this pass faster/cleaner/better.
5601
5602 (struct ls_expr): Post gcse.c-split cleanups.
5603 Rename to st_expr. Rename "loads" field to "antic_stores". Rename
5604 "stores" field to "avail_stores".
5605 (pre_ldst_mems): Rename to store_motion_mems.
5606 (pre_ldst_table): Rename to store_motion_mems_table.
5607 (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
5608 (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
5609 (ldst_entry): Rename to st_expr_entry, update users.
5610 (free_ldst_entry): Rename to free_st_expr_entry, update users.
5611 (free_ldst_mems): Rename to free_store_motion_mems, update users.
aa016ff7
UB
5612 (enumerate_ldsts): Rename to enumerate_store_motion_mems,
5613 update caller.
6c5d4d1a
SB
5614 (first_ls_expr): Rename to first_st_expr, update users.
5615 (next_ls_expr): Rename to next_st_expr, update users.
5616 (print_ldst_list): Rename to print_store_motion_mems. Print names of
5617 fields properly for store motion instead of names inherited from load
5618 motion in gcse.c.
5619 (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
5620 (LAST_AVAIL_CHECK_FAILURE): Explain what this is. Undefine when we
5621 are done with it.
5622
5623 (ae_kill): Rename to st_kill, update users.
5624 (ae_gen): Rename to st_avloc, update users.
5625 (transp): Rename to st_transp, update users.
5626 (pre_insert_map): Rename to st_insert_map, update users.
5627 (pre_delete_map): Rename to st_delete_map, update users.
5628 (insert_store, build_store_vectors, free_store_memory,
5629 one_store_motion_pass): Update for abovementioned changes.
5630
5631 (gcse_subst_count, gcse_create_count): Remove.
5632 (one_store_motion_pass): New statistics counters "n_stores_deleted"
5633 and "n_stores_created", local variables.
5634
5635 (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
5636 use for_each_rtx.
5637
5638 (regvec, compute_store_table_current_insn): Remove.
5639 (reg_set_info, reg_clear_last_set): Remove.
5640 (compute_store_table): Use DF caches instead of local dataflow
5641 solvers.
5642
b02cec6e
JM
56432009-05-01 Joseph Myers <joseph@codesourcery.com>
5644
5645 * c-objc-common.c (c_tree_printer): Print identifiers with
5646 pp_identifier, not pp_string. Mark "({anonymous})" for
5647 translation.
5648 * c-pretty-print.c (pp_c_ws_string): New.
5649 (pp_c_cv_qualifier, pp_c_type_specifier,
5650 pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
5651 pp_c_storage_class_specifier, pp_c_function_specifier,
5652 pp_c_attributes, pp_c_bool_constant, pp_c_constant,
5653 pp_c_primary_expression, pp_c_postfix_expression,
5654 pp_c_unary_expression, pp_c_shift_expression,
5655 pp_c_relational_expression, pp_c_equality_expression,
5656 pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
5657 use pp_string and pp_c_ws_string in place of pp_identifier and
5658 pp_c_identifier for non-identifiers. Mark English strings for
5659 translation.
5660 * c-pretty-print.h (pp_c_ws_string): Declare.
5661
cd533689
PP
56622009-04-30 Paul Pluzhnikov <ppluzhnikov@google.com>
5663 Roland McGrath <roland@redhat.com>
5664
aa016ff7 5665 * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
cd533689
PP
5666 (ENABLE_LD_BUILDID): New configuration option.
5667 * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
5668 (LINK_BUILDID_SPEC): New macro.
5669 (init_spec): If defined, prepend it between LINK_EH_SPEC and
5670 link_spec.
5671 * doc/install.texi: Document --enable-linker-build-id option.
5672 * configure: Rebuild.
5673 * config.in: Rebuild.
5674
ba6adec4
AN
56752009-04-30 Adam Nemet <anemet@caviumnetworks.com>
5676
5677 * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
5678 MIPS_GP_SAVE_AREA_SIZE): Define new macros.
5679 (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD. Use
5680 MIPS_GP_SAVE_AREA_SIZE.
5681 * config/mips/mips.c (struct mips_frame_info): Update comment
5682 before arg_pointer_offset and hard_frame_pointer_offset.
5683 (mips_compute_frame_info): Update diagram before function: to
5684 correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
5685 indicate the position of frame_pointer_rtx with -fstack-protector and
5686 to show args_size. Don't allocate cprestore area for leaf functions
5687 if FRAME_GROWS_DOWNWARD. Use MIPS_GP_SAVE_AREA_SIZE to set
5688 cprestore_size.
5689 (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
5690
48f5b722
MM
56912009-04-30 Michael Matz <matz@suse.de>
5692
ba6adec4
AN
5693 PR tree-optimization/39955
5694 * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
48f5b722 5695
b65d6744
DK
56962009-04-30 Dave Korn <dave.korn.cygwin@gmail.com>
5697
5698 * ira.c (setup_cover_and_important_classes): Use safe macro
5699 REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
5700 directly.
5701 * genpreds.c (write_tm_preds_h): Output suitable definition of
5702 REG_CLASS_FOR_CONSTRAINT.
5703
f136c8ae
RAE
57042009-04-30 Rafael Avila de Espindola <espindola@google.com>
5705
5706 * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
5707 instead of an int.
5708 * bitmap.c (bitmap_descriptor): Likewise.
5709 * ggc-common.c (loc_descriptor): Likewise.
5710 * varray.c (varray_descriptor): Likewise.
5711 * vec.c (vec_descriptor): Likewise.
5712
43fcece8 57132009-04-30 Eric Botcazou <ebotcazou@adacore.com>
35debead
EB
5714
5715 * Makefile.in (dce.o): Add $(EXCEPT_H).
5716 * dce.c: Include except.h and delete redundant vector definitions.
5717 (deletable_insn_p): Return false for non-call insns that can throw
5718 if DF is running.
5719
df35c271
SB
57202009-04-30 Steven Bosscher <steven@gcc.gnu.org>
5721
5722 * gcse.c (ae_gen): Remove.
5723 (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
5724 and make non-static function to make it available in store-motion.c.
5725 Update call sites with search-and-replace.
5726 (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
5727 extract_mentioned_regs, extract_mentioned_regs_helper,
5728 find_moveable_store, compute_store_table, load_kills_store, find_loads,
5729 store_killed_in_insn, store_killed_after, store_killed_before,
5730 build_store_vectors, insert_insn_start_basic_block, insert-store,
5731 remove_reachable_equiv_notes, replace_store_insn, delete_store,
5732 free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
5733 execute_rtl_store_motion, pass_rtl_store_motion): Move to...
5734 * store-motion.c: ...new file. Also copy data structures from gcse.c
5735 and clean up to remove parts not used by store motion.
5736 * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
5737 * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
5738
f711a87a
RR
57392009-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5740
5741 PR target/38571
5742 * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
5743 when optimizing for size.
5744
fa5ed76e
HPN
57452009-04-30 Hans-Peter Nilsson <hp@axis.com>
5746
5747 * gcse.c (gcse_constant_p): Fix typo in last change.
5748
0acbbdb0
RAE
57492009-04-30 Rafael Avila de Espindola <espindola@google.com>
5750
5751 * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
5752
82f5c05d
AK
57532009-04-30 Andreas Krebbel <krebbel1@de.ibm.com>
5754
5755 * gcse.c (gcse_constant_p): Make sure the constant is sharable.
5756
6d8f135b
JW
57572009-04-29 James E. Wilson <wilson@codesourcery.com>
5758
5759 * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
5760 CONST_HIGH_PART result.
5761
c21ca196
AS
57622009-04-29 Anatoly Sokolov <aesok@post.ru>
5763
5764 * config/avr/avr.c (initial_elimination_offset): Rename to
5765 avr_initial_elimination_offset.
5766 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
5767 change return type to bool.
5768 (avr_can_eliminate): New function.
5769 * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
5770 (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
5771 (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
0d50d55a 5772 * config/avr/avr-protos.h (initial_elimination_offset): Rename to
c21ca196
AS
5773 avr_initial_elimination_offset.
5774 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
5775 (avr_initial_elimination_offset): Define.
5776
2a34bece 57772009-04-29 Eric Botcazou <ebotcazou@adacore.com>
aa016ff7 5778 Steven Bosscher <steven@gcc.gnu.org>
2a34bece
EB
5779
5780 PR rtl-optimization/39938
5781 * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
5782 * cfgrtl.c: Include insn-attr.h.
5783 (rest_of_pass_free_cfg): New function.
5784 (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
5785 * resource.c (init_resource_info): Remove call to df_analyze.
5786
5dc7911e
RG
57872009-04-29 Richard Guenther <rguenther@suse.de>
5788
5789 PR target/39943
5790 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
5791 allow conversion to signed integers.
5792
1fe479fd
RG
57932009-04-29 Richard Guenther <rguenther@suse.de>
5794
5795 * tree-cfg.c (verify_gimple_assign_binary): Allow vector
5796 shifts of floating point vectors if the shift amount is
5797 a constant multiple of the element size.
5798
8e001680
AK
57992009-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
5800 Michael Matz <matz@suse.de>
5801
5802 PR middle-end/39927
5803 PR bootstrap/39929
5804 * tree-outof-ssa.c (emit_partition_copy): New function.
5805 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
5806 insert_part_to_rtx_on_edge): Perform the partition base var
5807 copy using emit_partition_copy.
5808 (insert_value_copy_on_edge): Convert constants to the right mode.
5809 (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
5810 (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
5811
e50e3081
BS
58122009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
5813
5814 * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
5815 scan backwards to try to find a constant to initialize it.
5816
4e5d521b
BS
5817 * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
5818 insn before the loop_end instruction, don't look past labels.
5819
7c90021d
RG
58202009-04-29 Richard Guenther <rguenther@suse.de>
5821
5822 PR middle-end/39937
5823 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
5824 loose type conversions.
5825 (forward_propagate_addr_expr): Fix tuplification bug. Remove
5826 stmts only if there are no uses of its definition.
5827
97a988bc
BS
58282009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
5829
5830 * config/bfin/bfin.h (splitting_loops): Declare.
5831 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
5832 Reorder bit definitions to be ascending.
5833 (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
5834 * config/bfin/bfin.c (splitting_loops): New variable.
5835 (bfin_cpus): Add WA_LOAD_LCREGS as needed.
5836 (struct loop_info): Remove members INIT and LOOP_INIT.
5837 (bfin_optimize_loop): Don't set them. Reorder the code that generates
aa016ff7
UB
5838 the LSETUP sequence. Allow LC to be loaded from any register, but
5839 also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
97a988bc
BS
5840 (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
5841 set to 1.
5842 * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
5843 of reload_completed.
aa016ff7 5844
97a988bc
BS
5845 From Jie Zhang:
5846 * config/bfin/bfin.md (movsi_insn): Refine constraints.
5847
0c463e16
RAE
58482009-04-29 Rafael Avila de Espindola <espindola@google.com>
5849
5850 * Makefile.in (PLUGIN_VERSION_H): New.
5851 (OBJS-common): Remove plugin-version.o.
5852 (plugin.o): Depend on (PLUGIN_VERSION_H).
5853 (plugin-version.o): Remove.
5854 * configure: Regenerate
5855 * configure.ac: Create plugin-version.h.
5856 * gcc-plugin.h (plugin_gcc_version): Remove.
5857 (plugin_default_version_check): Change signature.
5858 * plugin-version.c: Remove.
5859 * plugin.c: Include plugin-version.h.
5860 (str_plugin_gcc_version_name): Remove.
5861 (try_init_one_plugin): Pass gcc version to plugin_init.
5862 (plugin_default_version_check): Both gcc and plugin versions are now
5863 arguments.
5864
307e7eab
BS
58652009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
5866
5867 * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
5868 problematic last insns. Test for TYPE_CALL rather than CALL_P.
aa016ff7
UB
5869 Remove special case testing for last insn of inner loops. Don't fail
5870 if the loop ends with a jump, emit an extra nop instead.
307e7eab 5871
c5d96723
BS
5872 * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
5873 DREGS rather than comparing directly. Remove code that tries to
5874 account for latencies.
5875
de0b4ad5
RG
58762009-04-29 Richard Guenther <rguenther@suse.de>
5877
5878 PR tree-optimization/39941
5879 * tree-ssa-pre.c (eliminate): Schedule update-ssa after
5880 eliminating an indirect call.
5881
3a19701a
RG
58822009-04-29 Richard Guenther <rguenther@suse.de>
5883
5884 * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
5885 parameter. Allow invariants as base if !require_lvalue.
5886 (verify_gimple_assign_single): Adjust.
5887
a0a31d1e
BS
58882009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
5889
5890 * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
5891 (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
aa016ff7
UB
5892 ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
5893 ssubhi3, ssaddhi3_parts and sssubhi3_parts.
a0a31d1e
BS
5894 (flag_mulhi3_parts): Produce a HImode output rather than trying to set
5895 a VEC_SELECT.
aa016ff7
UB
5896 * config/bfin/bfin.c (bfin_expand_builtin,
5897 case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
a0a31d1e 5898
795bd26a
RG
58992009-04-28 Richard Guenther <rguenther@suse.de>
5900
5901 * tree-vect-loop.c (get_initial_def_for_induction): Use
5902 correct types for pointer increment.
5903
04be270f
KG
59042009-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5905
5906 * toplev.c (print_version): Update GMP version string calculation.
5907
e1a3b85c
EB
59082009-04-28 Eric Botcazou <ebotcazou@adacore.com>
5909
5910 PR rtl-optimization/39938
5911 * resource.c (init_resource_info): Add call to df_analyze.
5912
8224166e
UB
59132009-04-28 Uros Bizjak <ubizjak@gmail.com>
5914
5915 * config/alpha/alpha.md (usegp): Cast the result of
5916 alpha_find_lo_sum_using_gp to enum attr_usegp.
5917 * config/alpha/alpha.c (override_options): Remove end-of-structure
5918 marker element from cpu_table. Use array size of cpu_table to handle
5919 -mcpu and -mtune options.
5920 (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
5921
c5f0fe67
JM
59222009-04-28 Joseph Myers <joseph@codesourcery.com>
5923
5924 * config.gcc (powerpc*-*-* | rs6000-*-*): Add
5925 rs6000/option-defaults.h to tm_file. Support cpu_32, cpu_64,
5926 tune_32 and tune_64.
5927 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
5928 support on PowerPC.
5929 * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
5930 * config/rs6000/option-defaults.h: ... here. New file.
5931 (OPT_64, OPT_32): Define.
5932 (MASK_64BIT): Define to 0 if not already defined.
5933 (OPT_ARCH64, OPT_ARCH32): Define.
5934 (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
5935 and tune_64.
5936
0c48a567
RR
59372009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5938
5939 * config/arm/arm.c (arm_override_options): Emit error on using
5940 fpa with AAPCS.
5941
f1028b9d
UB
59422009-04-28 Uros Bizjak <ubizjak@gmail.com>
5943
5944 PR rtl-optimization/39914
5945 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
5946 registers for allocnos created from user-defined variables only
5947 when not optimizing.
5948
e0dd989a
RG
59492009-04-28 Richard Guenther <rguenther@suse.de>
5950
5951 PR middle-end/39937
5952 * fold-const.c (fold_binary): Use distribute_real_division only
5953 on float types.
5954
9a17c91d
SE
59552009-04-28 Steve Ellcey <sje@cup.hp.com>
5956
5957 * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
5958 add hpux-stdint.h to tm_file.
5959 (hppa[12]*-*-hpux11*): Ditto.
5960 (ia64*-*-hpux*): Ditto.
5961 * config/hpux-stdint.h: New.
60839f5d 5962 * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
9a17c91d 5963 __STDC_EXT__ for all compiles.
60839f5d
EB
5964 * config/pa/pa-hpux.h: Ditto.
5965 * config/pa/pa-hpux10.h: Ditto.
5966 * config/pa/pa-hpux11.h: Ditto.
9a17c91d 5967
af04e659
CM
59682009-04-28 Catherine Moore <clm@codesourcery.com>
5969
5970 * debug.h (set_name): Add comment.
5971
04ef80ce
AP
59722009-04-28 Andrew Pinski <pinskia@gmail.com>
5973
5974 PR target/39929
5975 * config/darwin.c (machopic_gen_offset): Check
5976 currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
5977 * config/arm/arm.c (require_pic_register): Likewise.
5978
65ad77af
PB
59792009-04-28 Paolo Bonzini <bonzini@gnu.org>
5980
8224166e
UB
5981 * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
5982 m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
5983 m32c_promote_prototypes): Delete.
65ad77af 5984
1b15a008
MM
59852009-04-28 Michael Matz <matz@suse.de>
5986
5987 PR middle-end/39922
5988 * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
5989 constants.
5990
7569a6cc
RG
59912009-04-28 Richard Guenther <rguenther@suse.de>
5992
f1028b9d 5993 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
7569a6cc 5994
ead204d9
RR
59952009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5996
5997 * config/arm/arm-cores.def: Add support for arm1156t2f-s.
5998 * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
5999 * config/arm/arm-tune.md: Regenerate.
6000
f2c45f08 60012009-04-28 Alexander Monakov <amonakov@ispras.ru>
60839f5d 6002
f2c45f08
AM
6003 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
6004 block if there are complex incoming edges.
6005 (sel_merge_blocks): Remove useless assert.
6006 (sel_redirect_edge_and_branch): Check that edge was redirected.
6007 * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
6008 (sel_find_rgns): Delete declaration.
6009 * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
6010 the region when it is not a preheader.
6011
7a00d767
UB
60122009-04-28 Uros Bizjak <ubizjak@gmail.com>
6013
6014 PR c/39323
6015 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
6016
448ee662
RG
60172009-04-28 Richard Guenther <rguenther@suse.de>
6018
6019 * tree.h (SSA_NAME_VALUE): Remove.
6020 (struct tree_ssa_name): Remove value_handle member.
6021 * tree-vrp.c (execute_vrp): Initialize/free the value-handle
6022 array for jump threading.
6023 * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
6024 SSA_NAME_VALUEs.
6025 * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
6026 * tree-flow.h (threadedge_initialize_values): Declare.
6027 (threadedge_finalize_values): Likewise.
6028 * tree-ssa-threadedge.c (ssa_name_values): New global variable.
6029 (SSA_NAME_VALUE): Define.
6030 (threadedge_initialize_values): New function.
6031 (threadedge_finalize_values): Likewise.
6032 * tree-ssa-dom.c (ssa_name_values): New global variable.
6033 (SSA_NAME_VALUE): Define.
f1028b9d 6034 (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
448ee662 6035
8644a673
IR
60362009-04-28 Ira Rosen <irar@il.ibm.com>
6037
6038 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
6039 Use REPORT_VECTORIZED_LOCATIONS instead
6040 REPORT_VECTORIZED_LOOPS.
6041 * tree-vectorizer.c (vect_verbosity_level): Make static.
6042 (vect_loop_location): Rename to vect_location.
6043 (vect_set_verbosity_level): Update comment.
6044 (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
6045 and vect_location.
6046 (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
6047 and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
6048 instead REPORT_UNVECTORIZED_LOOPS.
fbdf817d
UB
6049 * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
6050 and vect_loop_def to vect_external_def and vect_internal_def.
8644a673 6051 (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
7a00d767 6052 and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and
8644a673
IR
6053 REPORT_UNVECTORIZED_LOCATIONS.
6054 (enum vect_relevant): Update comment. Rename vect_unused_in_loop
6055 and vect_used_in_loop and to vect_unused_in_scope and
6056 vect_used_in_scope.
6057 (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
6058 (vect_verbosity_level): Remove declaration.
6059 (vect_analyze_operations): Likewise.
6060 (vect_analyze_stmt): Declare.
6061 * tree-vect-loop.c (vect_determine_vectorization_factor): Use
6062 REPORT_UNVECTORIZED_LOCATIONS.
6063 (vect_get_loop_niters): Fix indentation.
6064 (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
6065 (vect_analyze_loop_operations): New function.
6066 (vect_analyze_loop): Call vect_analyze_loop_operations instead of
6067 vect_analyze_operations.
6068 (vect_is_simple_reduction): Use new names.
6069 (vectorizable_live_operation, vect_transform_loop): Likewise.
fbdf817d
UB
6070 * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
6071 to specify whether the data references can be a part of interleaving
6072 chain.
8644a673
IR
6073 (vect_analyze_data_ref_dependence): Use new names.
6074 (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
6075 (vect_create_addr_base_for_vector_ref): Remove redundant code.
6076 * tree-vect-patterns.c (widened_name_p): Use new names.
6077 (vect_recog_dot_prod_pattern): Likewise.
6078 * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
6079 (process_use, vect_mark_stmts_to_be_vectorized,
6080 vect_model_simple_cost, vect_model_store_cost,
6081 vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
6082 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
6083 vectorizable_operation, vectorizable_type_demotion,
6084 vectorizable_type_promotion, vectorizable_store, vectorizable_load,
6085 vectorizable_condition): Likewise.
6086 (vect_analyze_operations): Split into vect_analyze_loop_operations
6087 and ...
6088 (vect_analyze_stmt): ... new function.
6089 (new_stmt_vec_info): Use new names.
6090 (vect_is_simple_use): Use new names and fix comment.
6091 * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
6092 (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
6093
b91322f2
UB
60942009-04-28 Uros Bizjak <ubizjak@gmail.com>
6095
6096 PR target/39911
6097 * config/i386/i386.c (print_operand) ['Z']: Handle floating point
6098 and integer modes for x87 operands. Do not ICE for unsupported size,
6099 generate error instead. Generate error for unsupported operand types.
6100 ['z']: Do not handle HImode memory operands specially. Warning
6101 for floating-point operands. Fallthru to 'Z' for unsupported operand
6102 types. Do not ICE for unsupported size, generate error instead.
6103 (output_387_binary_op): Use %Z to output operands.
6104 (output_fp_compare): Ditto.
6105 (output_387_reg_move): Ditto.
6106
b2ed71b6
BE
61072009-04-28 Ben Elliston <bje@au.ibm.com>
6108
6109 PR c++/35652
6110 Revert:
6111
6112 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6113
6114 * builtins.c (c_strlen): Do not warn here.
6115 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
6116 * c-common.c (pointer_int_sum): Take an explicit location.
6117 Warn about offsets out of bounds.
6118 * c-common.h (pointer_int_sum): Adjust declaration.
6119
81f40b79
ILT
61202009-04-27 Ian Lance Taylor <iant@google.com>
6121
6122 * collect2.c (is_ctor_dtor): Change type of ret field in struct
6123 names to symkind.
6124 * dce.c (run_fast_df_dce): Change type of old_flags to int.
6125 * df-core.c (df_set_flags): Change return type to int. Change
6126 type of old_flags to int.
6127 (df_clear_flags): Likewise.
6128 * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
6129 (df_get_conditional_uses): Likewise.
6130 * df.h (df_set_flags, df_clear_flags): Update declarations.
6131 * dwarf2out.c (struct indirect_string_node): Change type of form
6132 field to enum dwarf_form.
6133 (AT_string_form): Change return type to enum dwarf_form.
6134 * fixed-value.c (fixed_compare): Add cast to enum type.
6135 * fwprop.c (update_df): Change 0 to VOIDmode.
6136 * gensupport.c: Change 0 to UNKNOWN.
6137 * gimple.h (gimple_cond_code): Add cast to enum type.
6138 * haifa-sched.c (reemit_notes): Add cast to enum type.
6139 * hooks.c (hook_int_void_no_regs): Remove function.
6140 * hooks.h (hook_int_void_no_regs): Remove declaration.
6141 * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
7a00d767 6142 * predict.c (combine_predictions_for_insn): Add casts to enum type.
81f40b79
ILT
6143 * real.c (real_arithmetic): Add cast to enum type.
6144 (real_compare): Likewise.
6145 * target.h (struct gcc_target): Change return type of
6146 branch_target_register_class to enum reg_class.
6147 * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
6148 default_branch_target_register_class.
7a00d767 6149 * targhooks.c (default_branch_target_register_class): New function.
81f40b79 6150 * targhooks.h (default_branch_target_register_class): Declare.
7a00d767 6151 * tree-data-ref.c (print_direction_vector): Add cast to enum type.
81f40b79
ILT
6152 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
6153 cast to int.
6154 * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
6155 ERROR_MARK.
6156 * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
6157 vect_uninitialized_def. Change 0 to ERROR_MARK.
6158 * tree-vect-stmts.c (supportable_widening_operation): Don't
6159 initialize icode1 and icode2.
7a00d767 6160 * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
81f40b79
ILT
6161 * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
6162 and to STD_C89.
6163 (cmn_err_flag_specs): Change 0 to STD_C89.
6164 (cmn_err_char_table): Likewise.
6165 * config/arm/arm.c (get_arm_condition_code): Change type of code
6166 to enum arm_cond_code.
6167 (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
6168 (IWMMXT_BUILTIN2): Likewise.
6169 (neon_builtin_type_bits): Don't define typedef.
6170 (neon_builtin_datum): Change type of bits field to int.
6171 (arm_expand_neon_args): Add cast to enum type.
6172 * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
6173 TLS_MODEL_NONE.
6174 * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN. Add
6175 casts to enum type.
6176 * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
6177 MIPS_FP_COND_f.
6178 * config/mips/mips.md (jal_macro): Return enum constant.
6179 (single_insn): Likewise.
6180 * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
6181 CODE_FOR_nothing.
6182 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
6183 casts to enum type.
6184 * config/s390/s390.c (s390_tune_flags): Change type to int.
6185 (s390_arch_flags): Likewise.
7a00d767 6186 (s390_handle_arch_option): Change flags field of struct pta to int.
81f40b79
ILT
6187 * config/s390/s390.h (s390_tune_flags): Update declaration.
6188 (s390_arch_flags): Likewise.
6189 * config/sh/sh.c (prepare_move_operands): Compare
6190 tls_symbolic_operand result with enum constant.
6191 (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
6192 (sh_expand_prologue): Add cast to enum type.
6193 (sh_expand_epilogue): Likewise.
6194 (tls_symbolic_operand): Change return type to enum tls_model.
6195 (fpscr_set_from_mem): Add cast to enum type.
6196 (legitimize_pic_address): Compare tls_symbolic_operand result with
6197 enum constant.
6198 (sh_target_reg_class): Change return type to enum reg_class.
6199 * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
6200 PROCESSOR_xxx.
7a00d767
UB
6201 * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
6202 * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
81f40b79
ILT
6203 * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
6204 (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
6205 (delayed_branch, tls_call_delay): Likewise.
6206 (eligible_for_sibcall_delay): Likewise.
6207 (eligible_for_return_delay): Likewise.
6208 * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
6209 (spu_expand_builtin_1): Likewise.
6210
6211 * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
6212 for all types of conversions.
6213 (output_init_element): Issue -Wc++-compat warning if needed when
6214 initializing a bitfield with enum type.
6215 * c-parser.c (c_parser_expression): Set original_type to
6216 original_type of right hand operand of comman operator.
6217
e4ae5e77
RW
62182009-04-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6219
6220 * doc/c-tree.texi (Types, Functions, Expression trees): Fix
6221 grammar nits.
7a00d767 6222 * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
e4ae5e77
RW
6223 * doc/cpp.texi (Standard Predefined Macros)
6224 (Implementation-defined behavior): Likewise.
7a00d767 6225 * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
e4ae5e77
RW
6226 * doc/gimple.texi (GIMPLE Exception Handling)
6227 (@code{GIMPLE_ASSIGN}): Likewise.
7a00d767 6228 * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
e4ae5e77
RW
6229 * doc/invoke.texi (Warning Options, Optimize Options)
6230 (AVR Options, Darwin Options): Likewise.
6231 (Optimize Options): Reformulate -fwhole-program description.
6232 * doc/loop.texi (Lambda): Likewise.
6233 * doc/md.texi (Output Template, Define Constraints)
6234 (Standard Names, Insn Splitting): Likewise.
6235 * doc/options.texi (Option properties): Likewise.
6236 * doc/passes.texi (Tree-SSA passes): Likewise.
6237 * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
6238 * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
6239 (File Names and DBX): Likewise.
6240 * doc/trouble.texi (Incompatibilities): Likewise.
6241
1883802f 62422009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
6e37f6d4
TS
6243
6244 * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
6245 instruction is correct.
6246
1883802f 62472009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
5345cf68
TS
6248
6249 Allow non-constant arguments to conversion intrinsics.
6250 * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
6251 * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
6252 * spu.c (print_operand): Handle 'v' and 'w'.
6253 (exp2_immediate_p, spu_gen_exp2): Define.
6254 * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
6255 spu_convtf_1): Update parameter descriptions.
7a00d767 6256 * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
5345cf68
TS
6257 * constraints.md ('v', 'w'): New.
6258 * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
6259 Remove.
6260 (i2f, I2F): New define_mode_attr.
6261 (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
6262 floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
6263 fixuns_truncv4sfv4si2): Update to use mode attribute.
6264 (float<mode><i2f>2_mul, float<mode><i2f>2_div,
6265 fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
6266 floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
6267 patterns for combine.
6268
5f39ad47
SB
62692009-04-27 Steven Bosscher <steven@gcc.gnu.org>
6270
6271 * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
6272 (cprop, hoist, pre, store_motion): New debug counters.
6273 * tree-pass.h (pass_tracer): Move to list of gimple passes, it
6274 is not an RTL pass anymore.
6275 (pass_profiling): Remove extern decl for pass removed in 2005.
6276 (pass_gcse, pass_jump_bypass): Remove.
6277 * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
6278 to 0 for clean state.
6279 * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
6280 * cse.c (gate_handle_cse_after_global_opts,
6281 rest_of_handle_cse_after_global_opts): New functions.
6282 (pass_cse_after_global_opts): New pass, does local CSE.
6283 * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
6284 (TV_CPROP): New timevar.
6285 * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
6286 (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
6287 (gcse_main, recompute_all_luids): Remove.
6288 (compute_hash_table_work): Call max_reg_num instead of reading
6289 max_gcse_regno.
6290 (cprop_jump): Don't set run_jump_opt_after_gcse.
6291 (constprop_register): Always allow to alter jumps.
6292 (cprop_insn): Likewise.
6293 (do_local_cprop): Likewise.
6294 (local_cprop_pass): Likewise. Return non-zero if something changed.
6295 (cprop): Remove function, fold interesting bits into one_cprop_pass.
6296 (find_implicit_sets): Add note about missed optimization opportunity.
6297 (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
6298 pass_rtl_cprop execute function.
6299 Don't bother tracking the pass number, each pass gets its own dumpfile
6300 now anyway.
6301 Always allow to alter jumpsand bypass jumps.
6302 (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
6303 will just find no suitable set.
6304 (pre_edge_insert): Fix dumping, this function is for PRE only.
6305 (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
6306 pass_rtl_pre execute function.
6307 (hoist_code): Return non-zero if something changed. Keep track of
6308 substitutions and insertions for statistics gathering similar to PRE.
6309 (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
6310 called from the pass_rtl_hoist execute function. Show pass statistics.
6311 (compute_store_table): Use max_reg_num directly instead of using the
6312 formerly global max_gcse_regno.
6313 (build_store_vectors): Likewise.
6314 (replace_store_insn): Fix dumping.
6315 (store_motion): Rename to ...
6316 (one_store_motion_pass): ... this. Rewrite to be "the" STORE_MOTION
6317 pass, called from the pass_rtl_store_motion execute function. Keep
6318 track of substitutions and insertions for statistics gathering similar
6319 to PRE.
6320 (bypass_jumps): Remove, fold interesting bits into ...
6321 (one_cprop_pass): ... this. Rewrite to be "the" CPROP pass, called
6322 from the pass_rtl_cprop execute function.
6323 (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
6324 pass_jump_bypass): Remove.
6325 (gate_handle_gcse, rest_of_handle_gcse): Remove.
6326 (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
6327 (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
6328 (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
6329 (gate_rtl_store_motion, execute_rtl_store_motion,
6330 pass_rtl_store_motion): New.
6331 * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
6332 make it clear that -fcse-skip-blocks is a no-op for backward compat.
6333 * passes.c (init_optimization_passes): Remove pass_gcse and
6334 pass_jump_bypass. Schedule cprop, pre, hoist, cprop, store_motion,
6335 and cse_after_global_opts in place of pass_gcse. Schedule cprop
6336 instead of pass_jump_bypass.
6337
c685de4a
RG
63382009-04-27 Richard Guenther <rguenther@suse.de>
6339
6340 PR middle-end/39928
6341 * gimplify.c (gimplify_expr): If we are required to create
6342 a temporary make sure it ends up as register.
6343
72d41f29
L
63442009-04-27 H.J. Lu <hongjiu.lu@intel.com>
6345
6346 PR target/39903
6347 * config/i386/i386.c (construct_container): Don't call
6348 gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
6349 X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
6350
e97809c6
MM
63512009-04-27 Michael Matz <matz@suse.de>
6352
6353 * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
6354 (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
6355 * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
6356 (dump_replaceable_exprs): Take a bitmap.
6357 * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
6358 array.
6359 (expand_gimple_basic_block): Likewise.
6360 * tree-ssa-ter.c (struct temp_expr_table_d): Make
6361 replaceable_expressions member a bitmap.
6362 (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
6363 (mark_replaceable): Likewise.
6364 (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
6365 * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
6366
211ca15c
RG
63672009-04-27 Richard Guenther <rguenther@suse.de>
6368
6369 * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
6370 (verify_stmts): Dispatch to gimple/type verification code.
6371 * tree-inline.c (remap_gimple_op_r): Work around C++ FE
6372 issue with call argument types.
6373
fca5f3d1
MM
63742009-04-27 Michael Matz <matz@suse.de>
6375
6376 * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
6377 (init_update_ssa, delete_update_ssa, update_ssa): Remove references
6378 to above.
6379
a1fa3e79 63802009-04-27 Richard Sandiford <rdsandiford@googlemail.com>
8224166e 6381 Eric Botcazou <ebotcazou@adacore.com>
a1fa3e79
EB
6382
6383 * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
6384 a label's basic block.
6385 (mark_target_live_regs): Tidy and rework obsolete comments.
6386 Change back DF problem to LIVE. If a label starts a basic block,
6387 assume that all registers that used to be live then still are.
6388 (init_resource_info): If a label starts a basic block, set its
6389 BLOCK_FOR_INSN accordingly.
6390 (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
6391
33b223c0
RG
63922009-04-27 Richard Guenther <rguenther@suse.de>
6393
6394 * tree-flow-inline.h (function_ann): Remove.
6395 (get_function_ann): Likewise.
6396 * tree-dfa.c (create_function_ann): Remove.
6397 * tree-flow.h (struct static_var_ann_d): Remove.
6398 (struct function_ann_d): Likewise.
6399 (union tree_ann_d): Remove fdecl member.
6400 (function_ann_t): Remove.
6401 (function_ann, get_function_ann, create_function_ann): Remove
6402 declarations.
6403
e3136fa2
UB
64042009-04-27 Uros Bizjak <ubizjak@gmail.com>
6405
6406 * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
6407
f87c9042
JH
64082009-04-27 Jan Hubicka <jh@suse.cz>
6409
6410 * ipa-pure-const.c (struct funct_state_d): New fields
6411 state_previously_known, looping_previously_known; remove
6412 state_set_in_source.
6413 (analyze_function): Use new fields.
6414 (propagate): Avoid assumption that state_set_in_source imply
6415 nonlooping.
6416
6417 * tree-ssa-loop-niter.c (finite_loop_p): New function.
6418 * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
6419 * cfgloop.h (finite_loop_p): Declare.
6420
33abd718
MM
64212009-04-26 Michael Matz <matz@suse.de>
6422
e3136fa2 6423 * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
33abd718 6424
ddc34084
MM
64252009-04-26 Michael Matz <matz@suse.de>
6426
6427 * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
6428 pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
6429 * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
6430 pass_mark_used_blocks): Remove.
6431 * tree-optimize.c (pass_free_datastructures,
6432 execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
6433 * passes.c (init_optimization_passes): Don't call
6434 pass_mark_used_blocks, remove dead code.
6435
1fec7ed4
L
64362009-04-26 H.J. Lu <hongjiu.lu@intel.com>
6437
6438 * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
6439 * tree-ssa-live.h (register_ssa_partition): Likewise.
6440
4e3825db
MM
64412009-04-26 Michael Matz <matz@suse.de>
6442
6443 Expand from SSA.
6444 * builtins.c (fold_builtin_next_arg): Handle SSA names.
6445 * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
6446 * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
6447 SSA names.
6448 (compare_pairs): Swap cost comparison.
6449 (coalesce_ssa_name): Don't use change_partition_var.
6450 * tree-nrv.c (struct nrv_data): Add modified member.
6451 (finalize_nrv_r): Set it.
6452 (tree_nrv): Use it to update statements.
6453 (pass_nrv): Require PROP_ssa.
6454 * tree-mudflap.c (mf_decl_cache_locals,
6455 mf_build_check_statement_for): Use make_rename_temp.
6456 (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
6457 * alias.c (find_base_decl): Handle SSA names.
6458 * emit-rtl (set_reg_attrs_for_parm): Make non-static.
6459 (component_ref_for_mem_expr): Don't leak SSA names into RTL.
6460 * rtl.h (set_reg_attrs_for_parm): Declare.
6461 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
6462 to "optimized", remove unused locals at finish.
6463 (execute_free_datastructures): Make global, call
6464 delete_tree_cfg_annotations.
6465 (execute_free_cfg_annotations): Don't call
6466 delete_tree_cfg_annotations.
6467
6468 * ssaexpand.h: New file.
6469 * expr.c (toplevel): Include ssaexpand.h.
e3136fa2 6470 (expand_assignment): Handle SSA names the same as register variables.
4e3825db
MM
6471 (expand_expr_real_1): Expand SSA names.
6472 * cfgexpand.c (toplevel): Include ssaexpand.h.
6473 (SA): New global variable.
6474 (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
6475 (SSAVAR): New macro.
6476 (set_rtl): New helper function.
6477 (add_stack_var): Deal with SSA names, use set_rtl.
6478 (expand_one_stack_var_at): Likewise.
6479 (expand_one_stack_var): Deal with SSA names.
6480 (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
6481 before unique numbers.
6482 (expand_stack_vars): Use set_rtl.
6483 (expand_one_var): Accept SSA names, add asserts for them, feed them
6484 to above subroutines.
6485 (expand_used_vars): Expand all partitions (without default defs),
6486 then only the local decls (ignoring those expanded already).
6487 (expand_gimple_cond): Remove edges when jumpif() expands an
6488 unconditional jump.
6489 (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
6490 or remove abnormal edges. Ignore insns setting the LHS of a TERed
6491 SSA name.
6492 (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
6493 members of SA; deal with PARM_DECL partitions here; expand
6494 all PHI nodes, free tree datastructures and SA. Commit instructions
6495 on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
6496 (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
6497 info and statements at start, collect garbage at finish.
6498 * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
6499 (VAR_ANN_PARTITION) Remove.
6500 (change_partition_var): Don't declare.
6501 (partition_to_var): Always return SSA names.
6502 (var_to_partition): Only accept SSA names.
6503 (register_ssa_partition): Only check argument.
6504 * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
6505 member.
6506 (delete_var_map): Don't free it.
6507 (var_union): Only accept SSA names, simplify.
6508 (partition_view_init): Mark only useful SSA names as used.
6509 (partition_view_fini): Only deal with SSA names.
6510 (change_partition_var): Remove.
6511 (dump_var_map): Use ssa_name instead of partition_to_var member.
6512 * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
6513 basic blocks.
6514 * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
6515 (struct _elim_graph): New member const_dests; nodes member vector of
6516 ints.
6517 (set_location_for_edge): New static helper.
6518 (create_temp): Remove.
6519 (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
e3136fa2 6520 insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
4e3825db
MM
6521 (new_elim_graph): Allocate const_dests member.
6522 (clean_elim_graph): Truncate const_dests member.
6523 (delete_elim_graph): Free const_dests member.
6524 (elim_graph_size): Adapt to new type of nodes member.
6525 (elim_graph_add_node): Likewise.
6526 (eliminate_name): Likewise.
6527 (eliminate_build): Don't take basic block argument, deal only with
6528 partition numbers, not variables.
6529 (get_temp_reg): New static helper.
6530 (elim_create): Use it, deal with RTL temporaries instead of trees.
6531 (eliminate_phi): Adjust all calls to new signature.
6532 (assign_vars, replace_use_variable, replace_def_variable): Remove.
6533 (rewrite_trees): Only do checking.
6534 (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
6535 (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
6536 init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
6537 contains_tree_r, MAX_STMTS_IN_LATCH,
6538 process_single_block_loop_latch, analyze_edges_for_bb,
6539 perform_edge_inserts): Remove.
6540 (expand_phi_nodes): New global function.
6541 (remove_ssa_form): Take ssaexpand parameter. Don't call removed
6542 functions, initialize new parameter, remember partitions having a
6543 default def.
6544 (finish_out_of_ssa): New global function.
6545 (rewrite_out_of_ssa): Make global. Adjust call to remove_ssa_form,
6546 don't reset in_ssa_p here, don't disable TER when mudflap.
6547 (pass_del_ssa): Remove.
6548 * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
6549 partition members.
6550 (execute_free_datastructures): Declare.
6551 * Makefile.in (SSAEXPAND_H): New variable.
6552 (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
6553 * basic-block.h (commit_one_edge_insertion): Declare.
6554 * passes.c (init_optimization_passes): Move pass_nrv and
6555 pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
6556 pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
6557 * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
6558 (redirect_branch_edge): Deal with super block when expanding, split
6559 out jump patching itself into ...
6560 (patch_jump_insn): ... here, new static helper.
6561
17c665a9
MM
65622009-04-26 Michael Matz <matz@suse.de>
6563
6564 * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
6565 beyond num_ssa_names.
6566 * tree-ssa-ter.c (free_temp_expr_table): Likewise.
6567 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
6568
92061771
JJ
65692009-04-26 Jakub Jelinek <jakub@redhat.com>
6570
ce372372
JJ
6571 PR inline-asm/39543
6572 * fwprop.c (forward_propagate_asm): New function.
6573 (forward_propagate_and_simplify): Propagate also into __asm, if it
6574 doesn't increase the number of referenced registers.
6575
92061771
JJ
6576 PR c/39889
6577 * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
6578
65792009-04-26 Jakub Jelinek <jakub@redhat.com>
77f2a970
JJ
6580
6581 * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
6582 note_nonlocal_vla_type for nonlocal VLAs.
6583 (note_nonlocal_vla_type, note_nonlocal_block_vlas,
6584 contains_remapped_vars, remap_vla_decls): New functions.
6585 (convert_nonlocal_reference_stmt): If not optimizing, call
6586 note_nonlocal_block_vlas on GIMPLE_BIND block vars.
6587 (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
6588 if it wasn't found in var_map.
6589 (finalize_nesting_tree_1): Call remap_vla_decls. If outermost
6590 GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
6591 to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
6592 declare_vars.
6593 * gimplify.c (nonlocal_vlas): New variable.
6594 (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
6595 referenced VLAs.
6596 (gimplify_body): Create and destroy nonlocal_vlas.
a9548ddf 6597
4561e242
JJ
6598 * dwarf2out.c (loc_descr_plus_const): New function.
6599 (build_cfa_aligned_loc, tls_mem_loc_descriptor,
6600 mem_loc_descriptor, loc_descriptor_from_tree_1,
6601 descr_info_loc, gen_variable_die): Use it.
6602
a9548ddf
JJ
6603 * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
6604 !TREE_STATIC VAR_DECLs.
6605 * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
6606 DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
6607 (gen_variable_die): Likewise. Don't look at TREE_PRIVATE if
6608 DECL_BY_REFERENCE is valid.
6609 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
6610 for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
6611 * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
6612 Copy DECL_BY_REFERENCE.
6613 (struct nesting_copy_body_data): New type.
6614 (nesting_copy_decl): New function.
6615 (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
6616 if they have variable length.
6617
10555d08
MM
66182009-04-26 Michael Matz <matz@suse.de>
6619
6620 * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
6621 mark new temporaries for renaming.
6622
e11187cc
JM
66232009-04-26 Joseph Myers <joseph@codesourcery.com>
6624
6625 PR c/39581
6626 * c-decl.c (global_bindings_p): Return negative value.
6627 (c_variable_size): New. Based on variable_size from
6628 stor-layout.c.
6629 (grokdeclarator): Call c_variable_size not variable_size.
6630
f6a51d31
UB
66312009-04-26 Uros Bizjak <ubizjak@gmail.com>
6632
6633 * config/i386/i386.c (print_operand) ['z']: Fix typo.
6634
4b97723d
KT
66352009-04-26 Kai Tietz <kai.tietz@onevision.com>
6636
6637 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
6638 Redefine it to just use mingw/include.
6639 (ASM_SPEC): Rules for -m32 and -m64.
6640 (LINK_SPEC): Use Likewise.
6641 (SPEC_32): New define.
6642 (SPEC_64): Likewise.
6643 (SUB_LINK_SPEC): Likewise.
6644 (MULTILIB_DEFAULTS): New define.
6645 * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
6646 Add multilib options.
6647 (MULTILIB_DIRNAMES): Likewise.
6648 (MULTILIB_OSDIRNAMES): Likewise.
6649 (LIBGCC): Likewise.
6650 (INSTALL_LIBGCC): Likewise.
6651
991d6621
JM
66522009-04-26 Joseph Myers <joseph@codesourcery.com>
6653
6654 PR c/39556
6655 * c-tree.h (enum c_inline_static_type): New.
6656 (record_inline_static): Declare.
6657 * c-decl.c (struct c_inline_static, c_inline_statics,
6658 record_inline_static, check_inline_statics): New.
6659 (pop_file_scope): Call check_inline_statics.
6660 (start_decl): Call record_inline_static instead of pedwarning
6661 directly for static in inline function.
6662 * c-typeck.c (build_external_ref): Call record_inline_static
6663 instead of pedwarning directly for static referenced in inline
6664 function.
6665
4a81774c
SB
66662009-04-26 Steven Bosscher <steven@gcc.gnu.org>
6667
6668 * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
6669 not new but only being rescanned.
6670 * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
6671 reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
6672 alloc_reg_set_mem, free_reg_set_mem, record_one_set,
6673 record_set_info, compute_set, grealloc): Remove.
6674 (recompute_all_luids): New function.
6675 (gcse_main): Don't compute sets, and don't do related memory
6676 allocations/free-ing. If something changed before the end of the
6677 pass, update LUIDs using recompute_all_luids.
6678 (alloc_gcse_mem): Don't compute LUIDs. Don't allocate reg_set memory.
6679 (free_gcse_mem): Don't free it either.
6680 (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
6681 Use the df insn LUIDs.
6682 (load_killed_in_block): Likewise.
6683 (compute_hash_table_work): Don't compute reg_set_in_block.
6684 (compute_transp): Use DF_REG_DEF_CHAINs.
6685 (local_cprop_pass): Don't use compute_sets and related functions.
6686 (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
6687 Use get_max_uid() instead of max_cuid.
6688 (insert_insn_end_basic_block, pre_insert_copy_insn,
6689 update_ld_motion_stores): Don't try to
6690 keep reg_set tables up to date.
6691 (pre_insert_copies): Use df insn LUIDs.
6692 (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
6693 (reg_set_info): Don't use extra bitmap argument.
6694 (compute_store_table): Don't compute reg_set_in_block. Use DF scan
6695 information to compute regs_set_in_block.
6696 (free_store_memory, store_motion): Don't nullify reg_set_in_block.
6697 (bypass_jumps): Don't use compute_sets and friends.
6698
e8f99a9d
RW
66992009-04-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6700
6701 PR testsuite/39710
6702 * opts.c (undocumented_msg): Do not leave blank even with
6703 ENABLE_CHECKING.
6704
6895bac8
JM
67052009-04-25 Joseph Myers <joseph@codesourcery.com>
6706
6707 * c-decl.c (build_enumerator): Allow values folding to integer
6708 constants but not integer constant expressions with a pedwarn if
6709 pedantic.
6710
24070fcb
JM
67112009-04-25 Joseph Myers <joseph@codesourcery.com>
6712
6713 PR c/39582
6714 * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
6715 with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
6716 type is an integer constant.
6717
d6d89aa1
UB
67182009-04-25 Uros Bizjak <ubizjak@gmail.com>
6719
6720 PR target/39897
6721 * config/i386/i386.c (print_operand) ['z']: Revert handling of
6722 HImode operands.
6723
92f6fd0b
JM
67242009-04-25 Joseph Myers <joseph@codesourcery.com>
6725
6726 PR c/39564
6727 * c-decl.c (grokdeclarator): Diagnose declarations of functions
6728 with variably modified return type and no storage class
6729 specifiers, except for the case of nested functions. Distinguish
6730 extern declarations of functions with variably modified return
6731 types from those of objects with variably modified types.
6732
a3710436
JH
67332009-04-25 Jan Hubicka <jh@suse.cz>
6734
6735 * tree.c (list_equal_p): New function.
6736 * tree.h (list_equal_p): Declare.
6737 * coretypes.h (edge_def, edge, const_edge, basic_block_def
6738 basic_block_def, basic_block, const_basic_block): New.
6739 * tree-eh.c (make_eh_edge): EH edges are not abnormal.
6740 (redirect_eh_edge): New function.
6741 (make_eh_edge_update_phi): EH edges are not abnormal.
6742 * except.c: Include tree-flow.h.
6743 (list_match): New function.
6744 (eh_region_replaceable_by_p): New function.
6745 (replace_region): New function.
6746 (hash_type_list): New function.
6747 (hash_eh_region): New function.
6748 (eh_regions_equal_p): New function.
6749 (merge_peers): New function.
6750 (remove_unreachable_regions): Verify EH tree when checking;
6751 merge peers.
6752 (copy_eh_region_1): New function.
6753 (copy_eh_region): New function.
6754 (push_reachable_handler): New function.
6755 (build_post_landing_pads, dw2_build_landing_pads): Be ready for
6756 regions without label but with live RESX.
6757 * except.h (redirect_eh_edge_to_label): New.
6758 * tree-flow.h (redirect_eh_edge): New.
6759 * coretypes.h (edge_def, edge, const_edge, basic_block_def
6760 basic_block_def, basic_block, const_basic_block): Remove.
6761 * Makefile.in (except.o): Add dependency on tree-flow.h
6762 * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
6763 * basic-block.h (edge, const_edge, basic_block, const_basic_block):
6764 Remove.
6765
3764d512
EB
67662009-04-25 Eric Botcazou <ebotcazou@adacore.com>
6767
6768 PR bootstrap/39645
6769 * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
6770 on the destination of memcpy.
6771
1c62e8f2
PB
67722009-04-25 Paolo Bonzini <bonzini@gnu.org>
6773
6774 * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
6775 REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
6776 REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
6777
496a4ef5
JH
67782009-04-25 Jan Hubicka <jh@suse.cz>
6779
6780 * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
6781 (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
6782 to be reached by different label than left.
6783 (update_eh_edges): Update comment; remove edge_to_remove if possible
6784 and return true if suceeded.
6785 (cleanup_empty_eh): Accept sharing map; handle shared regions.
6786 (cleanup_eh): Compute sharing map.
6787 * except.c (remove_eh_handler_and_replace): Add argument if we should
6788 update regions.
6789 (remove_unreachable_regions): Update for label sharing.
6790 (label_to_region_map): Likewise.
6791 (get_next_region_sharing_label): New function.
6792 (remove_eh_handler_and_replace): Add update_catch_try parameter; update
6793 prev_try pointers.
6794 (remove_eh_handler): Update.
6795 (remove_eh_region_and_replace_by_outer_of): New function.
6796 * except.h (struct eh_region): Add next_region_sharing_label.
6797 (remove_eh_region_and_replace_by_outer_of,
6798 get_next_region_sharing_label): Declare.
6799 * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
6800
68012009-04-25 Jan Hubicka <jh@suse.cz>
6802
6803 * tree-cfg.c (split_critical_edges): Split also edges where we can't
6804 insert code even if they are not critical.
6805
68062009-04-25 Jan Hubicka <jh@suse.cz>
6807
6808 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
6809 (gimple_can_remove_branch_p): EH edges won't remove branch by
6810 redirection.
6811 * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
6812 updating of non-abnormal EH edges.
6813 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
6814 (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
6815 (split_critical_edges): Split also edges where emitting code on them
6816 will lead to splitting later.
6817
a3a5e3d1
UB
68182009-04-25 Uros Bizjak <ubizjak@gmail.com>
6819 H.J. Lu <hongjiu.lu@intel.com>
6820
6821 PR target/39590
6822 * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
6823 the configured assembler supports fildq and fistpq mnemonics.
6824 (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
6825 * configure: Regenerated.
6826 * config.in: Ditto.
6827
6828 * config/i386/i386.c (print_operand): Handle 'Z'.
6829 ['z']: Remove handling of special fild/fist suffixes.
6830 (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
6831 * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
6832 suffix of fild insn.
6833 (*floatsi<mode>2_vector_mixed): Ditto.
6834 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
6835 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
6836 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
6837 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
6838 * config/i386/gas.h (GAS_MNEMONICS): Remove.
6839
23750d7f
BE
68402009-04-25 Ben Elliston <bje@au.ibm.com>
6841
6842 * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
6843 the source of a set operation.
6844
e6ff3083
AS
68452009-04-25 Anatoly Sokolov <aesok@post.ru>
6846
6847 * target.h (struct gcc_target): Add case_values_threshold field.
6848 * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
6849 (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
6850 * targhooks.c (default_case_values_threshold): New function.
6851 * targhooks.h (default_case_values_threshold): Declare function.
6852 * stmt.c (expand_case): Use case_values_threshold target hook.
6853 * expr.h (case_values_threshold): Remove declartation.
6854 * expr.c (case_values_threshold): Remove function.
6855 * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
6856
6857 * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
6858 * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
6859 (avr_case_values_threshold): Declare as static.
6860 * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
6861
6862 * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
6863 * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
6864 (mn10300_case_values_threshold): New function.
6865
569c72fc
L
68662009-04-24 H.J. Lu <hongjiu.lu@intel.com>
6867
6868 * ira.c (setup_cover_and_important_classes): Add enum cast.
6869
ff3cb468
VM
68702009-04-24 Vladimir Makarov <vmakarov@redhat.com>
6871
6872 * genpreds.c (write_enum_constraint_num): Output definition of
6873 CONSTRAINT_NUM_DEFINED_P macro.
6874 * ira.c (setup_cover_and_important_classes): Use
6875 CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
6876
4f7be849
DD
68772009-04-24 DJ Delorie <dj@redhat.com>
6878
6879 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
6880 __SH2A_SINGLE_ONLY__ also.
6881
735b94a7
SE
68822009-04-24 Steve Ellcey <sje@cup.hp.com>
6883
6884 * config/ia64/ia64.md (movfs_internal): Allow flt constants.
6885 (movdf_internal): Ditto.
6886 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
6887 SFmode and DFmode constants.
6888 (ia64_print_operand): Add 'G' format for printing
6889 floating point constants.
6890
77a30264
RG
68912009-04-24 Richard Guenther <rguenther@suse.de>
6892
6893 * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
6894 from unsigned additions.
6895
2b6da65c
JM
68962009-04-24 Joseph Myers <joseph@codesourcery.com>
6897
6898 * c-typeck.c (set_init_index): Allow array designators that are
6899 not integer constant expressions with a pedwarn if pedantic.
6900
f5a17c43
BS
69012009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
6902
6903 * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
6904 zero if no overlap in nonzero bits between the operands.
6905
32e8bb8e
ILT
69062009-04-24 Ian Lance Taylor <iant@google.com>
6907
6908 * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
6909 (record_dead_and_set_regs): Likewise.
6910 * df.h (struct df_mw_hardreg): Change flags field to int.
6911 (struct df_base_ref): Likewise.
6912 (struct df): Change changeable_flags field to int.
6913 * df-scan.c (df_defs_record): Change clobber_flags to int.
6914 * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
6915 constants rather than #define macros.
6916 (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
6917 (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
6918 (enum dwarf_calling_convention): Likewise.
6919 (enum dwarf_line_number_x_ops): Likewise.
6920 (enum dwarf_call_frame_info): Likewise.
6921 (enum dwarf_source_language): Likewise.
6922 * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
6923 (add_calling_convention_attribute): Likewise.
a3a5e3d1
UB
6924 * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
6925 (combine_comparisons): Change compcode to int. Add cast to enum type.
32e8bb8e
ILT
6926 * genrecog.c (maybe_both_true_2): Change c to int.
6927 (write_switch): Likewise. Add cast to enum type.
6928 * gimplify.c (gimplify_omp_for): Handle return values from
6929 gimplify_expr using MIN rather than bitwise or.
6930 (gimplify_expr): Add cast to enum type.
6931 * ipa-prop.c (update_jump_functions_after_inlining): Change
6932 IPA_BOTTOM to IPA_JF_UNKNOWN.
a3a5e3d1
UB
6933 * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
6934 Add casts to enum type.
32e8bb8e
ILT
6935 (setup_cover_and_important_classes): Change cl to int. Add casts
6936 to enum type.
6937 (setup_class_translate): Change cl and mode to int.
6938 (ira_init_once): Change mode to int.
6939 (free_register_move_costs): Likewise.
6940 (setup_prohibited_mode_move_regs): Add casts to enum type.
6941 * langhooks.c (add_builtin_function_common): Rework assertion that
6942 value fits bitfield.
6943 * mcf.c (add_fixup_edge): Change type parameter to edge_type.
6944 * omega.c (omega_do_elimination): Avoid math on enum types.
6945 * optabs.c (expand_vec_shift_expr): Remove casts to int.
6946 * opts.c (set_debug_level): Change 2 to enum constant. Use new
6947 int local to handle integral_argment value.
6948 * regmove.c (try_auto_increment): Change PUT_MODE to
6949 PUT_REG_NOTE_KIND.
6950 * reload.c (push_secondary_reload): Add casts to enum type.
6951 (secondary_reload_class, find_valid_class): Likewise.
6952 * reload1.c (emit_input_reload_insns): Likewise.
6953 * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
6954 * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
6955 * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
6956 constant.
6957 * tree.c (build_common_builtin_nodes): Add casts to enum type.
6958 * tree-complex.c (complex_lattice_t): Typedef to int rather than
6959 enum type.
6960 (expand_complex_libcall): Add casts to enum type.
6961 * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
6962 * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
6963 with ERROR_MARK, not NUM_TREE_CODES.
6964 (vect_create_epilog_for_reduction): Likewise.
6965 (vectorizable_reduction): Don't initialize epiloc_reduc_code.
a3a5e3d1 6966 When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
32e8bb8e
ILT
6967 * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
6968 enum machine_mode.
6969 * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
6970 vect_unused_in_loop. Change 0 to loop_vect.
a3a5e3d1 6971 * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
32e8bb8e
ILT
6972 * var-tracking.c (get_init_value): Change return type to enum
6973 var_init_status.
6974 * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
6975 * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
6976 arm_fp_model.
6977 (arm_override_options): Add casts to enum type.
6978 (arm_emit_tls_decoration): Likewise.
6979 * config/i386/i386.c (ix86_function_specific_restore): Add casts
6980 to enum type.
6981 * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
6982 * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
6983 * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
6984 enum type.
6985 * config/s390/s390.c (code_for_builtin_64): Change to array of
6986 enum insn_code.
6987 (code_for_builtin_31): Likewise.
6988 (s390_expand_builtin): Change code_for_builtin to enum insn_code
6989 const *.
6990 * config/sparc/sparc.c (sparc_override_options): Change value
6991 field in struct code_model to enum cmodel. In initializer change
6992 0 to NULL and add cast to enum type.
6993
6994 * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
6995 Change all callers. Issue a -Wc++-compat warning using
6996 lhs_origtype if necessary.
6997 (convert_for_assignment): Issue -Wc++-compat warnings about
6998 invalid conversions to enum type on assignment.
6999 * c-common.h (build_modify_expr): Update declaration.
7000
ac4fc08a
NC
70012009-04-24 Nick Clifton <nickc@redhat.com>
7002
7003 * config/iq2000/iq2000.c (function_arg): Handle TImode values.
7004 (function_arg_advance): Likewise.
7005 * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
7006 5th alternative.
7007
f22e891a
AK
70082009-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
7009
7010 * config/s390/constraints.md ('I', 'J'): Fix condition.
7011
ad58aabe
DN
70122009-04-24 Diego Novillo <dnovillo@google.com>
7013
7014 * gengtype-parse.c (parse_error): Add newline after message.
7015
879a4a01
L
70162009-04-24 H.J. Lu <hongjiu.lu@intel.com>
7017
7018 * config/i386/sse.md (avxmodesuffixs): Removed.
7019 (*avx_pinsr<avxmodesuffixs>): Renamed to ...
7020 (*avx_pinsr<ssevecsize>): This.
7021
f63426af
BS
70222009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
7023
7024 * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
7025 follow chains of regs with a single definition, and allow expressions
7026 that are function_invariant_p.
ce72fe6c 7027 (simple_rhs_p): Allow expressions that are function_invariant_p.
f63426af 7028
30349c74
PB
70292009-04-24 Paolo Bonzini <bonzini@gnu.org>
7030
7031 PR middle-end/39867
7032 * fold-const.c (fold_cond_expr_with_comparison): When folding
7033 > and >= to MAX, make sure the MAX uses the same type as the
7034 comparison's operands.
7035
8d8256c1
NC
70362009-04-24 Nick Clifton <nickc@redhat.com>
7037
7038 * config/frv/frv.c (frv_frame_access): Do not use reg+reg
7039 addressing for DImode accesses.
7040 (frv_print_operand_address): Handle PLUS case.
a3a5e3d1 7041 * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
8d8256c1 7042
6216f94e
JJ
70432009-04-24 Jakub Jelinek <jakub@redhat.com>
7044
7045 PR rtl-optimization/39794
7046 * alias.c (canon_true_dependence): Add x_addr argument.
7047 * rtl.h (canon_true_dependence): Adjust prototype.
7048 * cse.c (check_dependence): Adjust canon_true_dependence callers.
7049 * cselib.c (cselib_invalidate_mem): Likewise.
7050 * gcse.c (compute_transp): Likewise.
7051 * dse.c (scan_reads_nospill): Likewise.
7052 (record_store, check_mem_read_rtx): Likewise. For non-const-or-frame
7053 addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
7054 canon_base_addr of the group, plus optional offset.
7055 (struct group_info): Rename canon_base_mem to
7056 canon_base_addr.
7057 (get_group_info): Set canon_base_addr to canon_rtx of base, not
7058 canon_rtx of base_mem.
7059
6de7a512
PB
70602009-04-23 Paolo Bonzini <bonzini@gnu.org>
7061
7062 * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
7063 Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
7064
4a3a2376
UW
70652009-04-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7066
7067 * config/spu/spu-builtins.h: Delete file.
7068
7069 * config/spu/spu.h (enum spu_builtin_type): Move here from
7070 spu-builtins.h.
7071 (struct spu_builtin_description): Likewise. Add GTY marker.
7072 Do not use enum spu_function_code or enum insn_code.
7073 (spu_builtins): Add extern declaration.
7074
7075 * config/spu/spu.c: Do not include "spu-builtins.h".
7076 (enum spu_function_code, enum spu_builtin_type_index,
7077 V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
7078 V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
7079 unsigned_V8HI_type_node, unsigned_V4SI_type_node,
7080 unsigned_V2DI_type_node): Move here from spu-builtins.h.
7081 (spu_builtin_types): Make static. Add GTY marker.
7082 (spu_builtins): Add extern declaration with GTY marker.
7083 Include "gt-spu.h".
7084
7085 * config/spu/spu-c.c: Do not include "spu-builtins.h".
7086 (spu_resolve_overloaded_builtin): Do not use spu_function_code.
7087 Check programmatically whether all parameters are scalar.
7088
7089 * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
7090
bbaba73f
EB
70912009-04-23 Eric Botcazou <ebotcazou@adacore.com>
7092
7093 * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
7094 assignment from the constructor either if the target is volatile.
7095
ee93c1c6
DJ
70962009-04-23 Daniel Jacobowitz <dan@codesourcery.com>
7097
7098 * config/arm/arm.md (insv): Do not share operands[0].
7099
b2f21330
NS
71002009-04-23 Nathan Sidwell <nathan@codesourcery.com>
7101
7102 * config/vxlib-tls.c (active_tls_threads): Delete.
7103 (delete_hook_installed): New.
7104 (tls_delete_hook): Don't delete the delete hook.
7105 (tls_destructor): Delete it here.
7106 (__gthread_set_specific): Adjust installing the delete hook.
7107 (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
7108 __gthread_leave_tsd_dtor_context.
7109
4782dfa7
RAE
71102009-04-23 Rafael Avila de Espindola <espindola@google.com>
7111
7112 * c-format.c (gcc_tdiag_char_table): Add support for %E.
7113
bf758008
UB
71142009-04-23 Uros Bizjak <ubizjak@gmail.com>
7115
7116 * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
7117 enum type.
7118 (alpha_rtx_costs): Ditto.
7119 (emit_unlikely_jump): Use add_reg_note.
7120 (emit_frame_store_1): Ditto.
7121 (alpha_expand_prologue): Ditto.
7122 (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
7123 * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
7124
7323a100
NC
71252009-04-23 Nick Clifton <nickc@redhat.com>
7126
7127 * config/v850/v850.md (epilogue): Remove suppressed code.
7128 (return): Rename to return_simple and remove test of frame size.
7129 * config/v850/v850.c (expand_epilogue): Rename call to gen_return
7130 to gen_return_simple.
7131
360032ba
JY
71322009-04-22 Jing Yu <jingyu@google.com>
7133
7134 PR testsuite/39781
7135 * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
7136
53650abe
AP
71372009-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
7138
7139 PR C/31499
7140 * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
7141 and RECORD_TYPE/UNION_TYPE. When outputing the actual element and the
7142 value is a VECTOR_CST, the element type is the element type of the
7143 vector.
7144
89043e8a
DD
71452009-04-22 DJ Delorie <dj@redhat.com>
7146
7147 * config/m32c/m32c.h: Update GTY annotations to new syntax.
7148
023f059b
JJ
71492009-04-22 Jakub Jelinek <jakub@redhat.com>
7150
7151 * alias.c (find_base_term): Move around LO_SUM case, so that
7152 CONST falls through into PLUS/MINUS handling.
7153
2c0eba5a
JJ
7154 PR c/39855
7155 * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
7156 into 0, use omit_one_operand.
7157
9a461028
BE
71582009-04-23 Ben Elliston <bje@au.ibm.com>
7159
7160 * config/rs6000/linux-unwind.h (get_regs): Remove type
7161 puns. Change the type of `pc' to an array of unsigned ints and
7162 update all users. Constify frame24.
7163
653e2568
DD
71642009-04-22 DJ Delorie <dj@redhat.com>
7165
7166 * config/m32c/m32c.c (m32c_special_page_vector_p): Move
7167 declarations before code.
7168 (current_function_special_page_vector): Likewise.
7169 (m32c_expand_insv): Silence a warning.
7170
60839f5d 71712009-04-21 Taras Glek <tglek@mozilla.com>
d1b38208
TG
7172
7173 * alias.c: Update GTY annotations to new syntax.
7174 * basic-block.h: Likewise.
7175 * bitmap.h: Likewise.
7176 * c-common.h: Likewise.
7177 * c-decl.c: Likewise.
7178 * c-parser.c: Likewise.
7179 * c-pragma.c: Likewise.
7180 * c-tree.h: Likewise.
7181 * cfgloop.h: Likewise.
7182 * cgraph.h: Likewise.
7183 * config/alpha/alpha.c: Likewise.
7184 * config/arm/arm.h: Likewise.
7185 * config/avr/avr.h: Likewise.
7186 * config/bfin/bfin.c: Likewise.
7187 * config/cris/cris.c: Likewise.
7188 * config/darwin.c: Likewise.
7189 * config/frv/frv.c: Likewise.
7190 * config/i386/i386.c: Likewise.
7191 * config/i386/i386.h: Likewise.
7192 * config/i386/winnt.c: Likewise.
7193 * config/ia64/ia64.h: Likewise.
7194 * config/iq2000/iq2000.c: Likewise.
7195 * config/mips/mips.c: Likewise.
7196 * config/mmix/mmix.h: Likewise.
7197 * config/pa/pa.c: Likewise.
7198 * config/pa/pa.h: Likewise.
7199 * config/rs6000/rs6000.c: Likewise.
7200 * config/s390/s390.c: Likewise.
7201 * config/sparc/sparc.c: Likewise.
7202 * config/xtensa/xtensa.c: Likewise.
7203 * cselib.h: Likewise.
7204 * dbxout.c: Likewise.
7205 * dwarf2out.c: Likewise.
7206 * except.c: Likewise.
7207 * except.h: Likewise.
7208 * fixed-value.h: Likewise.
7209 * function.c: Likewise.
7210 * function.h: Likewise.
7211 * gimple.h: Likewise.
7212 * integrate.c: Likewise.
7213 * optabs.c: Likewise.
7214 * output.h: Likewise.
7215 * real.h: Likewise.
7216 * rtl.h: Likewise.
7217 * stringpool.c: Likewise.
7218 * tree-data-ref.c: Likewise.
7219 * tree-flow.h: Likewise.
7220 * tree-scalar-evolution.c: Likewise.
7221 * tree-ssa-address.c: Likewise.
7222 * tree-ssa-alias.h: Likewise.
7223 * tree-ssa-operands.h: Likewise.
7224 * tree.c: Likewise.
7225 * tree.h: Likewise.
7226 * varasm.c: Likewise.
7227 * varray.h: Likewise.
7228 * vec.h: Likewise.
bf758008 7229 * coretypes.h: Do not define GTY macro if it is already defined.
d1b38208
TG
7230 * doc/gty.texi: Update GTY documentation to new syntax.
7231 * gengtype-lex.l: Enforce attribute-like syntax for GTY
7232 annotations on structs.
7233 * gengtype-parse.c: Likewise.
7234
a123d175
MH
72352009-04-22 Mark Heffernan <meheff@google.com>
7236
bf758008 7237 * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
a123d175 7238
4c7c486a
KH
72392009-04-22 Kazu Hirata <kazu@codesourcery.com>
7240
7241 * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
7242 where appropriate.
7243
6e782a29
KH
72442009-04-22 Kazu Hirata <kazu@codesourcery.com>
7245
7246 * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
7247 the same as a PLUS without a shift. Increase the cost of a
7248 CONST_INT in MULT.
7249
38d2336a
MLI
72502009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7251
7252 * Makefile.in: Update dependencies.
bf758008 7253 * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
38d2336a
MLI
7254 * errors.h: Remove bogus comment about compatibility.
7255 (warning): Update declaration.
7256 * genautomata.c: Update all calls to warning.
7257 * gimple.c: Do not include errors.h. Include toplev.h.
7258 * tree-ssa-structalias.c: Do not include errors.h.
7259 * omega.c: Likewise.
7260 * tree-ssa-reassoc.c: Likewise.
7261 * config/spu/spu-c.c: Likewise.
7262 * config/spu/t-spu-elf: Update dependencies.
7263
aea4deba
RG
72642009-04-22 Richard Guenther <rguenther@suse.de>
7265
7266 PR tree-optimization/39824
7267 * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
7268 make sure the types are compatible.
7269
cfc93532
MLI
72702009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7271
7272 PR c++/14875
7273 * c-common.c (c_parse_error): Take a token_flags parameter.
7274 Use token_type for the token type instead.
7275 Pass token_flags to cpp_type2name.
7276 * c-common.h (c_parse_error): Update declaration.
7277 * c-parser.c (c_parser_error): Pass 0 as token flags.
7278
8632d02a
AB
72792009-04-22 Andrey Belevantsev <abel@ispras.ru>
7280
7281 PR rtl-optimization/39580
7282 * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert.
7283
4c33221c
UW
72842009-04-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7285
7286 * function.c (expand_function_end): Do not emit a jump to the "naked"
7287 return label for fall-through returns.
7288 * except.c (sjlj_emit_function_exit): Always place the call to the
7289 unregister function at the location installed by expand_function_end.
7290
9925bce0
RG
72912009-04-22 Richard Guenther <rguenther@suse.de>
7292
7293 PR tree-optimization/39845
7294 * tree-switch-conversion.c (build_arrays): Add new referenced vars.
7295 (gen_inbound_check): Likewise.
7296
24a40b35
NS
72972009-04-22 Nathan Sidwell <nathan@codesourcery.com>
7298
7299 * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
7300 padding for PPC.
7301 (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
7302 * config/vxlib.c (__gthread_once): Add race guard for PPC.
7303
6c34a092
PB
73042009-04-22 Paolo Bonzini <bonzini@gnu.org>
7305
7306 * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
7307 sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
7308 shift counts to avoid out-of-bounds array accesses.
7309
baa48dfa
PB
73102009-04-22 Paolo Bonzini <bonzini@gnu.org>
7311
7312 * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
7313 (Pmode): Move above.
7314
7d83f4f5
UB
73152009-04-22 Uros Bizjak <ubizjak@gmail.com>
7316
7317 * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
7318 NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
7319 GET_CODE macro. Use IN_RANGE macro where appropriate.
7320 * config/alpha/alpha.h: Ditto.
7321 * config/alpha/alpha.md: Ditto.
7322 * config/alpha/constraints.md: Ditto.
7323 * config/alpha/predicates.md: Ditto.
7324
3ad606bc
PB
73252009-04-22 Paolo Bonzini <bonzini@gnu.org>
7326
7327 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
7328 * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7329 * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7330 * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7331 * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7332 * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7333 * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7334 * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7335 * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7336 * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7337 * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7338 * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7339 * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7340 * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7341 * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7342 * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7343 * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7344 * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7345 * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7346 * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7347 * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7348 * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7349 * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7350 * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7351 * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7352 * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7353 * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7354
3cabd6d1
LB
73552009-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
7356
7357 * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
7358 references from comments.
7359 * cfgbuild.c: (count_basic_blocks): Delete.
7360 (find_basic_blocks_1): Delete.
7361 (find_basic_blocks): Delete.
7362 * except.c (finish_eh_generation): Make static. Move comment from
7d83f4f5 7363 except.h here. Remove find_basic_blocks references from comments.
3cabd6d1
LB
7364 * except.h (finish_eh_generation): Delete.
7365 * basic-block.h (find_basic_blocks): Delete.
7366 * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
7367
270d1bcd
DK
73682009-04-22 Dave Korn <dave.korn.cygwin@gmail.com>
7369
7370 * sdbout.c (sdbout_symbol): Pass VOIDmode to eliminate_regs.
7371 (sdbout_parms): Likewise.
7372
b757d36f
KK
73732009-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
7374
7375 * config/sh/sh.c (prepare_cbranch_operands): Use
7376 LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
7377 (expand_cbranchdi4): Likewise.
7378 (from_compare): Add cast to enum type.
7379 (expand_cbranchsi4): Use add_reg_note.
7380 (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
7381 (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
7382 (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
7383 (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
7384 * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
7385 instead of CODE_FOR_nothing.
7386 (cbranchdi4): Likewise. Fix the order of arguments for
7387 gen_rtx_fmt_ee.
7388 (push_fpscr): Use add_reg_note.
7389 (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
7390 reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
7391
ad41bd84
JM
73922009-04-21 Joseph Myers <joseph@codesourcery.com>
7393
7394 * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
7395 ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
7396 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
7397 ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
7398 ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
7399 FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
7400 config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
7401 config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
7402 config/alpha/x-vms, config/arc/t-arc,
7403 config/arm/README-interworking, config/arm/arm-c.c,
7404 config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
7405 config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
7406 config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
7407 config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
7408 config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
7409 config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
7410 config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
7411 config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
7412 config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
7413 config/cris/t-elfmulti, config/crx/t-crx,
7414 config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
7415 config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
7416 config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
7417 config/h8300/t-h8300, config/i386/athlon.md,
7418 config/i386/darwin-libgcc.10.4.ver,
7419 config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
7420 config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
7421 config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
7422 config/i386/t-linux64, config/i386/t-nwld,
7423 config/i386/t-rtems-i386, config/i386/t-sol2-10,
7424 config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
7425 config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
7426 config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
7427 config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
7428 config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
7429 config/iq2000/t-iq2000, config/libgcc-glibc.ver,
7430 config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
7431 config/m32r/t-m32r, config/m68hc11/t-m68hc11,
7432 config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
7433 config/m68k/t-uclinux, config/mcore/t-mcore,
7434 config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
7435 config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
7436 config/mips/crtn.asm, config/mips/irix-crti.asm,
7437 config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
7438 config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
7439 config/mips/mips-fixed.md, config/mips/sb1.md,
7440 config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
7441 config/mips/t-iris6, config/mips/t-isa3264,
7442 config/mips/t-libgcc-mips16, config/mips/t-linux64,
7443 config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
7444 config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
7445 config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
7446 config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
7447 config/mn10300/t-linux, config/mn10300/t-mn10300,
7448 config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
7449 config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
7450 config/picochip/libgccExtras/clzsi2.asm,
7451 config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
7452 config/rs6000/darwin-libgcc.10.4.ver,
7453 config/rs6000/darwin-libgcc.10.5.ver,
7454 config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
7455 config/rs6000/t-aix43, config/rs6000/t-aix52,
7456 config/rs6000/t-darwin, config/rs6000/t-fprules,
7457 config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
7458 config/rs6000/t-lynx, config/rs6000/t-netbsd,
7459 config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
7460 config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
7461 config/rs6000/t-rtems, config/rs6000/t-spe,
7462 config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
7463 config/score/t-score-elf, config/sh/divcost-analysis,
7464 config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
7465 config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
7466 config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
7467 config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
7468 config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
7469 config/stormy16/stormy-abi, config/stormy16/t-stormy16,
7470 config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
7471 config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
7472 config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
7473 config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
7474 config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
7475 gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
7476 java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
7477 limitx.h, version.c, xcoff.h: Add copyright and license notices.
7478 * config/h8300/genmova.sh: Include copyright and license notices
7479 in generated output.
7480 * config/h8300/mova.md: Regenerate.
7481 * doc/install.texi2html: Include word "Copyright" in copyright
7482 notice and use name "Free Software Foundation, Inc.".
7483 * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
7484 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
7485 ChangeLog-2007, ChangeLog-2008: Correct dates.
7486
ca80e52b
EB
74872009-04-21 Eric Botcazou <ebotcazou@adacore.com>
7488
7489 * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
7490 NE_EXPR operations as well.
7491 * c-parser.c (c_parser_condition): Do not set location information on
7492 the condition.
7493 (c_parser_conditional_expression): Likewise.
7494 (c_parser_binary_expression): Set location information on operators.
7495 * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
7496 TRUTH_NOT_EXPR has been folded.
7497 * fold-const.c (fold_truth_not_expr): Copy location information from
7498 the incoming expression to the outgoing one.
7499 * gimplify.c (shortcut_cond_r): Add locus parameter. Pass it to
7500 recursive calls on the LHS of the operator but pass that of the
7501 operator to recursive calls on the RHS of the operator. Set it
7502 on the COND_EXPR.
7503 (shortcut_cond_expr): Set the locus of the operator on the second
7504 COND_EXPR and that of the expression on the first in degenerate cases.
7505 Pass the locus of the expression to calls to shortcut_cond_r.
7506 Set the locus of the 'then' block on the associated jump, if any.
7507 (gimplify_boolean_expr): Add locus parameter. Set it on the COND_EXPR.
7508 (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
7509 expression to call to gimplify_boolean_expr.
7510
35091630
KT
75112009-04-21 Kai Tietz <kai.tietz@onevision.com>
7512
7513 * config.gcc: Add additional configuration for
7514 i686-w64-mingw* and x86_64-w64-mingw* triplet.
7515 * config/i386/mingw-w64.h: New mingw-w64 specific header.
7516 (CPP_SPEC): Redefine for allowing -municode option.
7517 (STARTFILE_SPEC): Likewise.
7518 * config/i386/t-mingw-w64: New.
7519 * config/i386/mingw-w64.opt: New.
7520 (municode): Add new target option.
7521 * doc/invoke.texi (municode): Add documentation for new option.
7522
0267afc4
ILT
75232009-04-21 Ian Lance Taylor <iant@google.com>
7524
7525 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
7526 Correct test for number of arguments.
7527 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
7528
2ba9daa7
AS
75292009-04-21 Andreas Schwab <schwab@linux-m68k.org>
7530
7531 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
7532 argument of emit_library_call.
7533
ad8a1ac0
RG
75342009-04-21 Richard Guenther <rguenther@suse.de>
7535
7536 PR middle-end/39829
7537 * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
7538 inside VIEW_CONVERT_EXPRs.
7539
7156c8ab
MJ
75402009-04-21 Martin Jambor <mjambor@suse.cz>
7541
7542 * tree-switch-conversion.c (build_constructors): Split a long line.
7543 (constructor_contains_same_values_p): New function.
7d83f4f5
UB
7544 (build_one_array): Create assigns of constants if possible, do not
7545 call mark_sym_for_renaming, call update_stmt.
7156c8ab
MJ
7546 (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
7547 make_rename_temp. Do not call mark_symbols_for_renaming, call
7548 update_stmt.
7549 (gen_def_assigns): Do not call mark_symbols_for_renaming or
7550 find_new_referenced_vars, call update_stmt.
7551 (gen_inbound_check): Use create_tmp_var and create ssa names manually
7552 instead of calling make_rename_temp. Do not call
7553 find_new_referenced_vars or mark_symbols_for_renaming, call
7554 update_stmt.
7555
2970ccb3
RG
75562009-04-21 Richard Guenther <rguenther@suse.de>
7557
7558 PR tree-optimization/39827
7d83f4f5 7559 * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
2970ccb3
RG
7560 (tree_ssa_phiprop): Pass the correct array size.
7561
47f402d1
UB
75622009-04-21 Uros Bizjak <ubizjak@gmail.com>
7563
7564 * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
7565
1e4ae551
MLI
75662009-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
7567
7568 PR 16202
7569 * c-typeck.c (lvalue_p): Move declaration ...
7570 * c-common.h (lvalue_p): ... to here.
7571 * c-common.c (candidate_equal_p): New.
7572 (add_tlist): Use it.
7573 (merge_tlist): Use it.
7574 (warn_for_collisions_1): Likewise.
7575 (warning_candidate_p): Accept more candidates.
7576 (verify_tree): A warning candidate can be an expression. Use
7577 candidate_equal_p.
7578
244609a6
BE
75792009-04-21 Ben Elliston <bje@au.ibm.com>
7580
7581 PR target/5267
7582 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
7583 for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
7584 options. Remove -mcall-solaris documentation.
7585
9c650d90
MLI
75862009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7587
7588 PR c++/13358
7589 * doc/invoke.texi (-Wlong-long): Update description.
7590 * c-lex (interpret_integer): Only warn if there was no previous
7591 overflow and -Wlong-long is enabled.
7592 * c-decl.c (declspecs_add_type): Drop redundant flags.
7593 * c.opt (Wlong-long): Init to -1.
7594 * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
7595 and front-end warn_long_long. Wlong-long only depends on other
7596 flags if it is uninitialized.
7597 * c-parser.c (disable_extension_diagnostics): warn_long_long is
7598 the same for CPP and FE.
7599 (restore_extension_diagnostics): Likewise.
7600
bbbbb16a
ILT
76012009-04-20 Ian Lance Taylor <iant@google.com>
7602
7603 Fix enum conversions which are invalid in C++:
47f402d1
UB
7604 * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
7605 * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
7606 * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
7607 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
47f402d1 7608 * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
bbbbb16a 7609 (dbxout_parms): Likewise.
47f402d1 7610 * df-core.c (df_set_flags): Change changeable_flags parameter to int.
bbbbb16a
ILT
7611 (df_clear_flags): Likewise.
7612 * df-problems.c (df_rd_bb_local_compute_process_def): Change
7613 top_flag parameter to int.
7614 (df_chain_create_bb_process_use): Likewise.
47f402d1
UB
7615 (df_chain_add_problem): Change chain_flags parameter to unsigned int.
7616 Remove cast.
bbbbb16a
ILT
7617 * df-scan.c (df_ref_create): Change ref_flags parameter to int.
7618 (df_ref_create_structure, df_def_record_1): Likewise.
7619 (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
7620 (df_notes_rescan): Change 0 to VOIDmode in function call.
7621 (df_get_call_refs, df_insn_refs_collect): Likewise.
7622 (df_bb_regs_collect): Likewise.
7623 (df_entry_block_defs_collect): Likewise.
7624 (df_exit_block_uses_collect): Likewise.
7625 * df.h: Update declarations.
7626 * double-int.c (double_int_divmod): Add cast to enum type.
7627 * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
7628 * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
7629 (based_loc_descr): Likewise.
7630 (loc_descriptor_from_tree_1): Change first_op and second_op to
7631 enum dwarf_location_atom. Add cast to enum type.
7632 * expmed.c (init_expmed): Change 0 to SET in function call.
47f402d1 7633 * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
7634 (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
7635 (do_store_flag): Likewise.
7636 * fixed-value.h (struct fixed_value): Change mode to enum
7637 machine_mode.
47f402d1 7638 * function.c (assign_parms): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
7639 * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
7640 function call.
7641 (insert_insn_decl, insert_decl, insert_state): Likewise.
7642 (automata_list_finish): Likewise.
7643 * genrecog.c (process_define_predicate): Add cast to enum type.
7644 * gensupport.c (init_predicate_table): Add cast to enum type.
7645 * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
7646 function call.
7647 (gimple_build_call_1, gimple_build_label): Likewise.
7648 (gimple_build_goto, gimple_build_asm_1): Likewise.
7649 (gimple_build_switch_1, gimple_build_cdt): Likewise.
47f402d1 7650 * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
bbbbb16a
ILT
7651 (enum fallback): Rename from enum fallback_t.
7652 (fallback_t): Typedef as int.
7653 * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
7654 GSI_SAME_STMT in function call.
7655 * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
7656 enum type.
7657 (setup_reg_class_relations): Likewise.
47f402d1 7658 (setup_reg_class_nregs): Change cl to int. Add casts to enum type.
bbbbb16a
ILT
7659 (setup_prohibited_class_mode_regs): Add cast to enum type.
7660 (setup_prohibited_mode_move_regs): Likewise.
47f402d1 7661 * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
bbbbb16a
ILT
7662 (record_address_regs): Change i to enum reg_class.
7663 * lists.c (alloc_EXPR_LIST): Add cast to enum type.
7664 * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
7665 (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
7666 (GET_MODE_2XWIDER_MODE): Likewise.
7667 (GET_CLASS_NARROWEST_MODE): Likewise.
7668 * omp-low.c (expand_omp_for): Add cast to enum type.
7669 * optabs.c (debug_optab_libfuncs): Add casts to enum type.
7670 * opts.c (enable_warning_as_error): Change kind to diagostic_t.
7671 * postreload.c (reload_cse_simplify_operands): Change rclass local
7672 to enum reg_class.
7673 * predict.c (combine_predictions_for_insn): Change best_predictor
7674 and predictor to enum br_predictor.
7675 (combine_predictions_for_bb): Likewise.
7676 (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
7677 use SET_PREDICT_EXPR_OUTCOME.
47f402d1 7678 * real.c (real_arithmetic): Change icode to code in function call.
bbbbb16a
ILT
7679 * reginfo.c (init_move_cost): Add casts to enum type.
7680 (init_reg_sets_1, init_fake_stack_mems): Likewise.
7681 * regmove.c (regclass_compatible_p): Change class0 and class1 to
7682 enum reg_class.
7683 * reload.c (find_valid_class): Add casts to enum type.
7684 (push_reload): Change 0 to NO_REGS in function call.
7685 (find_reloads): Change this_alternative to array of enum
7686 reg_class. Remove some now-unnecessary casts.
7687 (make_memloc): Change 0 to VOIDmode in function call.
7688 * reload1.c (reload): Change 0 to VOIDmode in function call.
7689 (eliminate_regs_1, elimination_effects): Likewise.
7690 (eliminate_regs_in_insn): Likewise.
7691 (emit_input_reload_insns): Add cast to enum type.
7692 (delete_output_reload): Change 0 to VOIDmode in function call.
7693 * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
7694 to enum type in function call.
7695 * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
7696 (SET_PREDICT_EXPR_OUTCOME): Define.
47f402d1 7697 * tree-dump.c (get_dump_file_info): Change phase parameter to int.
bbbbb16a
ILT
7698 (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
7699 (dump_initialized_p, dump_flag_name, dump_end): Likewise.
7700 (dump_function): Likewise.
7701 * tree-dump.h: Update declarations.
7702 * tree-pass.h: Update declarations.
7703 * varasm.c (assemble_integer): Change mclass to enum mode_class.
7704 * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
7705 enum type.
7706 (arm_rtx_costs_1): Correct parenthesization.
7707 (arm_rtx_costs): Add casts to enum type.
7708 (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
7709 (vfp_emit_fstmd): Use add_rg_note.
7710 (emit_multi_reg_push, emit_sfm): Likewise.
7711 (thumb_set_frame_pointer): Likewise.
7712 (arm_expand_prologue): Likewise.
7713 (arm_regno_class): Change return type to enum reg_class.
7714 (thumb1_expand_prologue): Use add_reg_note.
7715 * config/arm/arm-protos.h (arm_regno_class): Update declaration.
7716 * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
7717 in function call.
7718 * config/arm/gentune.sh: Add cast to enum type.
7719 * config/arm/arm-tune.md: Rebuild.
7720 * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
7721 (ix86_split_fp_branch, predict_jump): Likewise.
7722 (ix86_expand_multi_arg_builtin): Change sub_code from enum
7723 insn_code to enum rtx_code.
7724 (ix86_builtin_vectorized_function): Add cast to enum type.
7725 * config/i386/i386.md (truncdfsf2): Change slot to enum
7726 ix86_stack_slot.
7727 (truncxf<mode>2, isinf<mode>2): Likewise.
7728 * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
7729 enum type.
7730 * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
7731 (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
7732 (insert_bundle_state): Change 1 to INSERT in function call.
7733 (ia64_add_bundle_selector_before): Likewise.
7734 * config/ia64/ia64.md (cpu attr): Add cast to enum type.
7735 (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
7736 (restore_stack_nonlocal): Likewise.
7737 * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
7738 function call.
7739 * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
7740 function call.
7741 (mips_rtx_costs): Likewise.
7742 (mips_override_options): Add casts to enum type.
7743 * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
7744 in function call.
7745 * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
7746 (store_reg, set_reg_plus_d): Likewise.
7747 (hppa_expand_prologue, hppa_profile_hook): Likewise.
7748 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
7749 cast to enum type.
7750 (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
7751 function call.
7752 (emit_unlikely_jump): Use add_reg_note.
7753 (rs6000_emit_allocate_stack): Likewise.
7754 (rs6000_frame_related, rs6000_emit_prologue): Likewise.
7755 (output_toc): Change 1 to INSERT in function call.
7756 (output_profile_hook): Change 0 to LCT_NORMAL in function call.
7757 (rs6000_initialize_trampoline): Likewise.
7758 (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
7759 function call.
7760 * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
7761 (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
7762 (s390_expand_setmem, s390_expand_cmpmem): Likewise.
7763 (save_gprs): Use add_reg_note.
7764 (s390_emit_prologue): Likewise.
47f402d1 7765 (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
7766 * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
7767 (sparc_fold_builtin): Add cast to enum type.
7768 * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
7769 enum insn_code.
7770 (spu_expand_prologue): Use add_reg_note.
47f402d1 7771 (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
7772
77732009-04-20 Ian Lance Taylor <iant@google.com>
7774
7775 * c-parser.c (c_parser_attributes): Change VEC back to tree list.
7776 (c_parser_postfix_expression_after_primary): Get VEC for list of
7777 arguments. Get original types of arguments. Call
7778 build_function_call_vec.
7779 (cached_expr_list_1, cached_expr_list_2): New static variables.
7780 (c_parser_expr_list): Change return type to VEC *. Add
7781 p_orig_types parameter. Change all callers.
7782 (c_parser_release_expr): New static function.
7783 (c_parser_vec_to_tree_list): New static function.
7784 * c-typeck.c (build_function_call): Rewrite to build a VEC and
7785 call build_function_call_vec.
7786 (build_function_call_vec): New function, based on old
7787 build_function_call.
7788 (convert_arguments): Remove nargs and argarray parameters. Change
7789 values to a VEC. Add origtypes parameter.
47f402d1 7790 (build_modify_expr): Add rhs_origtype parameter. Change all callers.
bbbbb16a
ILT
7791 (convert_for_assignment): Add origtype parameter. Change all
7792 callers. If warn_cxx_compat, check for conversion to an enum
7793 type when calling a function.
7794 (store_init_value): Add origtype parameter. Change all callers.
7795 (digest_init): Likewise.
7796 (struct init_node): Add origtype field.
7797 (add_pending_init): Add origtype parameter. Change all callers.
7798 (output_init_element): Likewise.
7799 (output_pending_init_elements): Pass origtype from init_node to
7800 output_init_element.
f28a61ab 7801 (process_init_element): Pass origtype from c_expr to
bbbbb16a
ILT
7802 output_init_element.
7803 (c_finish_return): Add origtype parameter. Change all callers.
7804 * c-common.c (sync_resolve_size): Change params to VEC *. Change
7805 caller.
7806 (sync_resolve_params): Likewise.
47f402d1 7807 (sync_resolve_return): Change params to first_param. Change caller.
bbbbb16a 7808 (resolve_overloaded_builtins): Change params to VEC *. Change
47f402d1 7809 callers. Save first parameter around call to build_function_call_vec.
bbbbb16a
ILT
7810 * c-decl.c (finish_decl): Add origtype parameter. Change all
7811 callers. Call build_function_call_vec rather than
7812 build_function_call for cleanup.
7813 * c-tree.h: Update declarations.
7814 * c-common.h: Update declarations.
7815 * stub-objc.c (objc_rewrite_function_call): Change parameter from
7816 params to first_param.
7817 * target.h (struct gcc_target): Change resolve_overloaded_builtin
7818 params parameter from tree to void *.
7819 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
7820 Change arglist parameter to have type void *, and to be a pointer
7821 to a VEC.
7822 * config/rs6000/rs6000-protos.h
7823 (altivec_resolve_overloaded_builtin): Update declaration.
7824 * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
7825 fnargs parameter to have type void *, and to be a pointer to a
7826 VEC. Call build_function_call_vec instead of
7827 build_function_call.
47f402d1 7828 * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
bbbbb16a 7829
6ff078d4 78302009-04-20 Joey Ye <joey.ye@intel.com>
60839f5d 7831 Xuepeng Guo <xuepeng.guo@intel.com>
6ff078d4
JY
7832 H.J. Lu <hongjiu.lu@intel.com>
7833
7834 * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
7835
7836 * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
7837 (IX86_LEA_PRIORITY): Likewise.
7838 (distance_non_agu_define): New function.
7839 (distance_agu_use): Likewise.
7840 (ix86_lea_for_add_ok): Likewise.
7841 (ix86_dep_by_shift_count): Likewise.
7842
7843 * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
7844 should split for LEA.
7845
7846 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
7847 function.
7848 (ix86_dep_by_shift_count): Likewise.
7849
87a5b4cc
RG
78502009-04-20 Richard Guenther <rguenther@suse.de>
7851
7852 * expr.c (handled_component_p): Move ...
7853 * tree.h (handled_component_p): ... here.
7854 * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
7855 ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
7856 and REALPART_EXPR to be in one group.
7857
438c239d
RG
78582009-04-20 Richard Guenther <rguenther@suse.de>
7859
7860 * basic-block.h (get_all_dominated_blocks): Declare.
7861 * dominance.c (get_all_dominated_blocks): New function.
7862 * tree-cfg.c (get_all_dominated_blocks): Remove.
7863 (remove_edge_and_dominated_blocks): Adjust.
7864 * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
7865 (tree_ssa_phiprop): ... here. Use get_all_dominated_blocks
7866 instead of recursing.
7867
fed5ae11
DK
78682009-04-20 Doug Kwan <dougkwan@google.com>
7869
7870 * cgraph.h (cgraph_node_ptr): New type for vector functions.
7871 (struct cgraph_node_set_def): New type.
7872 (cgraph_node_set) New type. Also declare vector functions.
7873 (struct cgraph_node_set_element_def): New type.
7874 (cgraph_node_set_element): Ditto.
7875 (cgraph_node_set_iterator): New iterator type.
7876 (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
7877 cgraph_node_set_remove, dump_cgraph_node_set,
7878 debug_cgraph_node_set): New prototypes.
7879 (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
7880 cgraph_node_set_size): New inlines.
7881 * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
7882 including cgraph.h.
7883 (struct ipa_opt_pass): Add struct cgraph_node_set_def
7884 argument to function 'write_summary'.
7885 * ipa.c: Include ggc.h.
7886 (hash_cgraph_node_set_element,
7887 eq_cgraph_node_set_element, cgraph_node_set_new,
7888 cgraph_node_set_add, cgraph_node_set_remove,
7889 cgraph_node_set_find, dump_cgraph_node_set,
7890 debug_cgraph_node_set): New functions.
7891 * Makefile.in (ipa.o): Add dependency on GGC_H.
7892
c4551b28
IR
78932009-04-20 Ira Rosen <irar@il.ibm.com>
7894
7895 PR tree-optimization/39675
2ba9daa7 7896 * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
47f402d1
UB
7897 check of the return code of vect_schedule_slp. Check that
7898 stmt_vec_info still exists for the statement, before checking its
7899 vectorization type.
c4551b28 7900
21a495fb
MM
79012009-04-20 Michael Matz <matz@suse.de>
7902
7903 * Makefile.in (generated_files): Take out $(simple_generated_c).
7904
8e208874
DK
79052009-04-19 Dave Korn <dave.korn.cygwin@gmail.com>
7906
7907 * config/i386/cygwin-stdint.h (INTPTR_TYPE): Remove "long".
7908 (UINTPTR_TYPE): Likewise.
7909
a45e580b
JM
79102009-04-19 Joseph Myers <joseph@codesourcery.com>
7911
7912 PR c/37481
7913 * c-typeck.c (digest_init): Check for initializing an array with a
7914 string literal.
7915
20845d35
JM
79162009-04-19 Joseph Myers <joseph@codesourcery.com>
7917
7918 PR c/19771
7919 * c-semantics.c (pop_stmt_list): Propagate
7920 STATEMENT_LIST_HAS_LABEL to parent statement list.
7921
28143fdd
AN
79222009-04-19 Adam Nemet <anemet@caviumnetworks.com>
7923
7924 * config/mips/mips.h (mips_tune_attr): New macro.
7925 * config/mips/mips.md (cpu): Use it.
7926
da377db9
JM
79272009-04-19 Joseph Myers <joseph@codesourcery.com>
7928
7929 PR c/38243
7930 * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
7931 declaring a tag.
7932
3baf459d
DN
79332009-04-19 Diego Novillo <dnovillo@google.com>
7934
7935 * toplev.c (compile_file): Move call to coverage_finish ...
7936 * cgraphunit.c (ipa_passes): ... here.
7937 Call cgraph_process_new_functions.
7938 * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
7939 * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
7940
b6fa5b01
JH
79412009-04-19 Jan Hubicka <jh@suse.cz>
7942
47f402d1
UB
7943 * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
7944 cfun.
b6fa5b01
JH
7945 (dump_cgraph_node): Dump can throw external flag.
7946 * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
7947
ca409efd
MLI
79482009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
7949
7950 PR c/32061
7951 PR c++/36954
7952 * doc/invoke.texi: Add -Wlogical-op to -Wextra.
7953 * common.opt (Wlogical-op): Move from here...
7954 * c.opt (Wlogical-op): ... to here.
7955 * c-typeck.c (parser_build_binary_op): Update call to
7956 warn_logical_operator.
7957 * c-opts.c (c_common_post_options): Enable warn_logical_op with
7958 extra_warnings.
7959 * c-common.c (warn_logical_op): Update.
7960 * c-common.h (warn_logical_op): Update declaration.
7961
9db4cdd3
EB
79622009-04-19 Eric Botcazou <ebotcazou@adacore.com>
7963
7964 * tree.c (protected_set_expr_location): Fix formatting.
7965
f37acdf9
JM
79662009-04-18 Joseph Myers <joseph@codesourcery.com>
7967
7968 PR c/27676
7969 * c-typeck.c (readonly_warning): new.
7970 (build_unary_op, build_modify_expr): Use readonly_warning for
7971 storing into something readonly but not const-qualified.
7972
2b4b7036
JM
79732009-04-18 Joseph Myers <joseph@codesourcery.com>
7974
7975 PR c/22367
7976 * c-typeck.c (build_unary_op): Check for taking address of
7977 expression of type void.
7978
3ce62965
JM
79792009-04-18 Joseph Myers <joseph@codesourcery.com>
7980
7981 PR c/35210
7982 * c-typeck.c (build_function_call): Check for calling a function
7983 with qualified void return types. Call require_complete_type when
7984 generating a trap.
7985
2505c5ed
JH
79862009-04-18 Jan Hubicka <jh@suse.cz>
7987
7988 * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
7989 Set nothrow flag.
7990 * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
7991 can_throw_external flag.
7992 * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
7993 * ipa-pure-const.c (ignore_edge): New function.
7994 (propagate): Compute order for NOTHROW computation; set NOTHROWs
7995 only over can_throw_external edges.
7996 (local_pure_const): Add nothrow flag.
7997 * ipa-utils.c (searchc): Add ignore_edge callback.
7998 (ipa_utils_reduced_inorder): Add ignore_edge callback.
7999 * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
8000 (set_nothrow_function_flags): Update cgraph.
8001 * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
8002
2586ba4b
RG
80032009-04-18 Richard Guenther <rguenther@suse.de>
8004
8005 PR middle-end/39804
8006 * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
8007 (fold_stmt): ... this and ...
8008 (fold_stmt_inplace): ... this.
8009 (fold_stmt_1): Fold references in calls and asms.
8010 * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
8011
1eefab17
KH
80122009-04-18 Kazu Hirata <kazu@codesourcery.com>
8013
8014 * tree-vrp.c (ssa_name_nonzero_p): Remove.
8015 * tree.h: Remove the prototype for ssa_name_nonzero_p.
8016
aa424b01
KH
80172009-04-18 Kazu Hirata <kazu@codesourcery.com>
8018
8019 * tree.c (function_args_count): Remove.
8020 * tree.h: Remove the prototype for function_args_count.
8021
613a896b
KH
80222009-04-18 Kazu Hirata <kazu@codesourcery.com>
8023
8024 * tree-iterator.c (expr_only): Remove.
8025 * tree.h: Remove the prototype for expr_only.
8026
579e694c
KH
80272009-04-18 Kazu Hirata <kazu@codesourcery.com>
8028
8029 * reginfo.c (cannot_change_mode_set_regs): Remove.
8030 * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
8031
ee7e3ad3
AS
80322009-04-08 Anatoly Sokolov <aesok@post.ru>
8033
8034 * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
8035 whether operands 0 and 1 overlaps.
8036
92ef7fb1
MLI
80372009-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
8038
8039 PR middle-end/36902
8040 * tree-vrp.c (check_array_ref): Pass a location_t instead of a
8041 pointer. Use warning_at instead of warning.
8042 (search_for_addr_array): Likewise.
8043 (check_array_bounds): Likewise.
8044 (check_all_array_refs): Check that the incoming edge is not in the
8045 list of edges to be removed.
8046 (check_all_array_refs): Avoid the temporal pointer.
8047 (vrp_visit_cond_stmt): Fix typo.
8048 (simplify_switch_using_ranges): Handle the case where the switch
8049 index is an integer constant.
8050
0e097268
AN
80512009-04-18 Adam Nemet <anemet@caviumnetworks.com>
8052
8053 * config/mips/mips.c (mips_final_postscan_insn): Make it static.
8054
c782f1dd
KH
80552009-04-18 Kazu Hirata <kazu@codesourcery.com>
8056
8057 * doc/extend.texi, doc/invoke.texi: Fix typos.
8058
668fb0e8
CC
80592009-04-17 Cary Coutant <ccoutant@google.com>
8060
8061 * tree-flow-inline.h (get_lineno): Fix inverted test.
8062
4d4014c1
DN
80632009-04-17 Diego Novillo <dnovillo@google.com>
8064
8065 * tree-ssa-pre.c (create_expression_by_pieces): Remove
8066 assertion for AVAIL_OUT.
8067
2984e1b6
MF
80682009-04-17 Mike Frysinger <vapier@gentoo.org>
8069
8070 PR target/38627
8071 * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
8072 * config/sh/linux-atomic.asm: Likewise.
8073
9994a182
DN
80742009-04-17 Diego Novillo <dnovillo@google.com>
8075
8076 * except.c (debug_eh_tree): New.
8077 (struct eh_region, struct eh_status): Move ...
8078 * except.h: ... here.
8079 (add_type_for_runtime): Declare extern.
8080 (lookup_type_for_runtime): Likewise.
8081 (debug_eh_tree): Declare.
8082 * Makefile.in (GTFILES): List except.h before except.c
8083
07485407
DN
80842009-04-17 Diego Novillo <dnovillo@google.com>
8085
47f402d1 8086 * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
07485407
DN
8087 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
8088 * tree-dfa.c (find_referenced_vars_in): Factor out of ...
8089 (find_vars_r): ... here.
8090 * tree-flow.h (find_referenced_vars_in): Declare.
8091 * tree-ssa-pre.c (create_expression_by_pieces): Assert
8092 that AVAIL_OUT exists for BLOCK.
8093 * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
8094 (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
8095 (tree-parloops.o): Likewise.
8096
4e53d196
SB
80972009-04-17 Simon Baldwin <simonb@google.com>
8098
8099 * toplev.c (default_tree_printer): Add handling for %E format.
8100
413d3aa8
DN
81012009-04-17 Diego Novillo <dnovillo@google.com>
8102
47f402d1
UB
8103 * tree-pretty-print.c (dump_generic_node): Add break after
8104 TREE_BINFO handler. Handle COMPLEX_TYPE, REAL_TYPE and
8105 FIXED_POINT_TYPE. Handle NULL TREE_TYPEs. Handle METHOD_TYPE and
8106 FUNCTION_TYPE together. Call print_struct_decl when printing
8107 structures and TDF_SLIM is not given.
413d3aa8
DN
8108 (print_struct_decl): Fix logic for detecting recursion.
8109
5a691e98
RAE
81102009-04-17 Rafael Avila de Espindola <espindola@google.com>
8111
8112 PR 31567
8113 * gcc.c (create_at_file): New.
8114 (compile_input_file_p): New.
8115 (do_spec_1): Use @args files for %i. Use create_at_file for %o.
8116 * main.c (main): Update call to toplev_main.
8117 * toplev.c (toplev_main): Change signature. Call expandargv.
8118 * toplev.h (toplev_main): Change signature.
8119
9eacf7a6
EB
81202009-04-17 Eric Botcazou <ebotcazou@adacore.com>
8121
8122 * dwarf2out.c (field_byte_offset): Use the type size as the field size
8123 if the latter is not constant.
8124
58298177
DE
81252009-04-17 David Edelsohn <edelsohn@gnu.org>
8126
8127 * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
8128
5b4c43d7
EB
81292009-04-17 Eric Botcazou <ebotcazou@adacore.com>
8130
8131 * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
8132 * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
8133
b51605c4
RG
81342009-04-17 Richard Guenther <rguenther@suse.de>
8135
8136 * tree-ssa-structalias.c (get_constraint_for_component_ref):
8137 Handle component references view-converting an invariant address.
8138
9e3be889
AN
81392009-04-17 Adam Nemet <anemet@caviumnetworks.com>
8140
8141 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
8142 TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
8143 TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
8144 TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
8145 Use @deftypevr rather than @deftypevar.
8146
7c3e9dc3
RG
81472009-04-17 Richard Guenther <rguenther@suse.de>
8148
47f402d1 8149 * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
7c3e9dc3
RG
8150 (get_prop_source_stmt): Likewise.
8151 (can_propagate_from): Likewise.
8152
aca600aa
AS
81532009-04-17 Andrew Stubbs <ams@codesourcery.com>
8154
8155 * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
8156 TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
8157 (--with-multilib-list): Add default value.
8158 * configure: Regenerate.
8159 * Makefile.in (TM_ENDIAN_CONFIG): Define.
8160 (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
8161 * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
8162 TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
8163 Don't add default cpu to multilib list unnecessarily, but do enable
8164 the relevant compiler option..
8165 Add support for --with-multilib-list=<blank> and
8166 --with-multilib-list=!<somelib> to supress unwanted multilibs.
8167 * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
8168 (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
8169 (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
8170 TM_MULTILIB_CONFIG.
8171 (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
8172 (MULTILIB_OSDIRNAMES): New variable.
8173 * config/sh/t-1e: Delete file.
8174 * config/sh/t-mlib-sh1: Delete file.
8175 * config/sh/t-mlib-sh2: Delete file.
8176 * config/sh/t-mlib-sh2a: Delete file.
8177 * config/sh/t-mlib-sh2a-nofpu: Delete file.
8178 * config/sh/t-mlib-sh2a-single: Delete file.
8179 * config/sh/t-mlib-sh2a-single-only: Delete file.
8180 * config/sh/t-mlib-sh2e: Delete file.
8181 * config/sh/t-mlib-sh3e: Delete file.
8182 * config/sh/t-mlib-sh4: Delete file.
8183 * config/sh/t-mlib-sh4-nofpu: Delete file.
8184 * config/sh/t-mlib-sh4-single: Delete file.
8185 * config/sh/t-mlib-sh4-single-only: Delete file.
8186 * config/sh/t-mlib-sh4a: Delete file.
8187 * config/sh/t-mlib-sh4a-nofpu: Delete file.
8188 * config/sh/t-mlib-sh4a-single: Delete file.
8189 * config/sh/t-mlib-sh4a-single-only: Delete file.
8190 * config/sh/t-mlib-sh4al: Delete file.
8191 * config/sh/t-mlib-sh5-32media: Delete file.
8192 * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
8193 * config/sh/t-mlib-sh5-64media: Delete file.
8194 * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
8195 * config/sh/t-mlib-sh5-compact: Delete file.
8196 * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
8197 * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
8198 * doc/install.texi (Options specification): Add
8199 --with-multilib-list and --with-endian.
8200
cf8aba7f
RAE
82012009-04-17 Rafael Avila de Espindola <espindola@google.com>
8202
8203 * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
8204 REVISION_c.
8205 (OBJS-common): Add plugin-version.o.
8206 (plugin-version.o): New.
8207 * gcc-plugin.h (plugin_gcc_version): New.
8208 (plugin_default_version_check): New.
8209 (plugin_init_func, plugin_init): Add version argument.
8210 * plugin-version.c: New.
8211 * plugin.c (str_plugin_gcc_version_name): New.
8212 (try_init_one_plugin): Read plugin_gcc_version from the plugin and
8213 pass it to the init function.
8214 (plugin_default_version_check): New.
8215
61e20b90
RG
82162009-04-17 Richard Guenther <rguenther@suse.de>
8217
8218 * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
8219 for decl-vs-decl disambiguation.
8220
90c6fd8a
AK
82212009-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
8222
8223 * config/s390/s390.h (s390_tune_attr): New macro definition.
8224 * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
8225
9fe9fe04
RG
82262009-04-17 Richard Guenther <rguenther@suse.de>
8227
8228 * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
8229 (fold_stmt_r): Likewise.
8230 (maybe_fold_reference): New function.
8231 (fold_gimple_assign): Handle cases fold_stmt_r did.
8232 (fold_stmt): Do not use fold_stmt_r.
8233 (fold_stmt_inplace): Likewise.
8234
7e673273
RG
82352009-04-17 Richard Guenther <rguenther@suse.de>
8236
8237 * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
8238 (record_equivalences_from_stmt): Remove useless checks and
8239 simplifications.
8240 * tree-ssa-pre.c (eliminate): Avoid converting a constant if
8241 the type is already suitable.
8242
fabf2749
PB
82432009-04-17 Paolo Bonzini <bonzini@gnu.org>
8244
8245 * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
8246
68f7b061
UB
82472009-04-17 Uros Bizjak <ubizjak@gmail.com>
8248
8249 * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
8250 (CMPtype): Define as __gcc_CMPtype.
8251
532bfb0a
AJ
82522009-04-17 Aurelien Jarno <aurelien@aurel32.net>
8253
8254 * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
8255 for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
8256
e3ac77ff
RG
82572009-04-17 Richard Guenther <rguenther@suse.de>
8258
8259 PR tree-optimization/39746
8260 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
8261 special-casing for builtins and static variable use/def.
8262 (call_may_clobber_ref_p_1): Likewise.
8263
7072a650
ILT
82642009-04-16 Ian Lance Taylor <iant@google.com>
8265
8266 * df.h: Include "timevar.h".
8267 (struct df_problem): Change tv_id field to timevar_id_t.
8268 * tree-pass.h: Include "timevar.h".
8269 (struct opt_pass): Change tv_id field to timevar_id_t.
8270 * timevar.h (timevar_id_t): Define TV_NONE.
8271 * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
8272 TV_NONE rather than tv_id != 0.
8273 (execute_one_pass): Likewise.
8274 * Makefile.in (DF_H): Add $(TIMEVAR_H).
8275 (TREE_PASS_H): Define. Change all instances of tree-pass.h in
8276 dependencies to $(TREE_PASS_H).
8277 * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
8278 to TV_NONE.
8279 (pass_branch_target_load_optimize2): Likewise.
8280 * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
8281 (pass_outof_cfg_layout_mode): Likewise.
8282 * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
8283 (pass_rebuild_cgraph_edges): Likewise.
8284 (pass_remove_cgraph_callee_edges): Likewise.
8285 * df-core.c (pass_df_initialize_opt): Likewise.
8286 (pass_df_initialize_no_opt): Likewise.
8287 (pass_df_finish): Likewise.
8288 * emit-rtl.c (pass_unshare_all_rtl): Likewise.
8289 * except.c (pass_set_nothrow_function_flags): Likewise.
8290 (pass_convert_to_eh_region_ranges): Likewise.
8291 * final.c (pass_compute_alignments): Likewise.
8292 * function.c (pass_instantiate_virtual_regs): Likewise.
8293 (pass_init_function): Likewise.
8294 (pass_leaf_regs): Likewise.
8295 (pass_match_asm_constraints): Likewise.
8296 * gimple-low.c (pass_lower_cf): Likewise.
8297 (pass_mark_used_blocks): Likewise.
8298 * init-regs.c (pass_initialize_regs): Likewise.
8299 * integrate.c (pass_initial_value_sets): Likewise.
8300 * ira.c (pass_ira): Likewise.
8301 * jump.c (pass_cleanup_barriers): Likewise.
8302 * omp-low.c (pass_expand_omp): Likewise.
8303 (pass_lower_omp): Likewise.
8304 * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
8305 * recog.c (pass_split_all_insns): Likewise.
8306 (pass_split_after_reload): Likewise.
8307 (pass_split_before_regstack): Likewise.
8308 (pass_split_before_sched2): Likewise.
8309 (pass_split_for_shorten_branches): Likewise.
8310 * reginfo.c (pass_reginfo_init): Likewise.
8311 (pass_subregs_of_mode_init): Likewise.
8312 (pass_subregs_of_mode_finish): Likewise.
8313 * passes.c (pass_postreload): Likewise.
8314 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
8315 * tree-cfg.c (pass_remove_useless_stmts): Likewise.
8316 (pass_warn_function_return): Likewise.
8317 (pass_warn_function_noreturn): Likewise.
8318 * tree-complex.c (pass_lower_complex): Likewise.
8319 (pass_lower_complex_O0): Likewise.
8320 * tree-if-conv.c (pass_if_conversion): Likewise.
8321 * tree-into-ssa.c (pass_build_ssa): Likewise.
8322 * tree-mudflap.c (pass_mudflap_1): Likewise.
8323 (pass_mudflap_2): Likewise.
8324 * tree-nomudflap.c (pass_mudflap_1): Likewise.
8325 (pass_mudflap_2): Likewise.
8326 * tree-nrv.c (pass_return_slot): Likewise.
8327 * tree-object-size.c (pass_object_sizes): Likewise.
8328 * tree-optimize.c (pass_all_optimizations): Likewise.
8329 (pass_early_local_passes): Likewise.
8330 (pass_all_early_optimizations): Likewise.
8331 (pass_cleanup_cfg): Likewise.
8332 (pass_cleanup_cfg_post_optimizing): Likewise.
8333 (pass_free_datastructures): Likewise.
8334 (pass_free_cfg_annotations): Likewise.
8335 (pass_fixup_cfg): Likewise.
8336 (pass_init_datastructures): Likewise.
8337 * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
8338 (pass_late_warn_uninitialized): Likewise.
8339 (pass_update_address_taken): Likewise.
8340 * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
8341 * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
8342 (pass_cse_sincos): Likewise.
8343 (pass_convert_to_rsqrt): Likewise.
8344 * tree-ssa-structalias.c (pass_build_alias): Likewise.
8345 * tree-stdarg.c (pass_stdarg): Likewise.
8346 * tree-tailcall.c (pass_tail_recursion): Likewise.
8347 (pass_tail_calls): Likewise.
8348 * tree-vect-generic.c (pass_lower_vector): Likewise.
8349 (pass_lower_vector_ssa): Likewise.
8350 * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
8351
0051ef59
JM
83522009-04-16 Joseph Myers <joseph@codesourcery.com>
8353
8354 * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
8355 XLR entry.
8356 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
8357 Handle -march=xlr.
8358 * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
8359 logical and signext.
8360
b3f8558a
KK
83612009-04-16 Kaz Kojima <kkojima@gcc.gnu.org>
8362
8363 PR target/39767
8364 * config/sh/predicates.md (arith_operand): Check if the operand
8365 of TRUNCATE is a REG.
8366
f57597d9
KH
83672009-04-16 Kazu Hirata <kazu@codesourcery.com>
8368
8369 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
8370 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
8371
b172d063
KH
83722009-04-16 Kazu Hirata <kazu@codesourcery.com>
8373
8374 * tree-iterator.c (tsi_split_statement_list_after,
8375 tsi_split_statement_list_before): Remove.
8376 * tree-iterator.h: Remove the prototypes for
532bfb0a 8377 tsi_split_statement_list_after and tsi_split_statement_list_before.
b172d063 8378
78fe4f1f
KH
83792009-04-16 Kazu Hirata <kazu@codesourcery.com>
8380
8381 * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
8382 * tree-ssa-propagate.h: Remove the prototype for
8383 stmt_makes_single_load.
8384
43dd3201
KH
83852009-04-16 Kazu Hirata <kazu@codesourcery.com>
8386
8387 * emit-rtl.c (set_mem_attrs_from_reg): Remove.
8388 * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
8389
4252a4aa
KH
83902009-04-16 Kazu Hirata <kazu@codesourcery.com>
8391
8392 * tree-iterator.c (EXPR_LAST_BODY): Remove.
8393
bfb69968
KH
83942009-04-16 Kazu Hirata <kazu@codesourcery.com>
8395
8396 * except.c (eh_region_outer_p): Remove.
8397 * except.h: Remove the prototype for eh_region_outer_p.
8398
c7db7fa5
KH
83992009-04-16 Kazu Hirata <kazu@codesourcery.com>
8400
8401 * function.c (current_function_assembler_name): Remove.
8402 * function.h: Remove the prototype for
8403 current_function_assembler_name.
8404
efc0b2bd
ILT
84052009-04-16 Ian Lance Taylor <iant@google.com>
8406
532bfb0a 8407 * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
efc0b2bd
ILT
8408 (add_reg_note): Call alloc_reg_note.
8409 * rtl.h (alloc_reg_note): Declare.
8410 * combine.c (try_combine): Use alloc_reg_note.
8411 (recog_for_combine, move_deaths): Likewise.
8412 (distribute_notes): Use alloc_reg_note and add_reg_note.
8413 * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
8414 * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
8415 * reload1.c (eliminate_regs_1): Use alloc_reg_note.
8416
6080348f
VM
84172009-04-16 Vladimir Makarov <vmakarov@redhat.com>
8418
8419 PR rtl-optimization/39762
8420 * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
8421 ira_may_move_out_cost): Add comments about way of their usage.
532bfb0a 8422 (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
2ba9daa7 8423
6080348f
VM
8424 * ira-conflicts.c (process_regs_for_copy): Use function
8425 ira_get_register_move_cost instead of global
8426 ira_register_move_cost.
8427
8428 * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
8429 color_pass, move_spill_restore, update_curr_costs): Ditto.
8430
8431 * ira-lives.c (process_single_reg_class_operands): Ditto.
8432
8433 * ira-emit.c (emit_move_list): Ditto.
8434
8435 * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
8436 (record_reg_classes): Ditto. Use functions
8437 ira_get_register_move_cost and ira_get_may_move_cost instead of
8438 global vars ira_register_move_cost, ira_may_move_out_cost and
8439 ira_may_move_in_cost.
8440 (record_address_regs): Don't call ira_init_register_move_cost.
8441 Use function ira_get_may_move_cost instead of global
8442 ira_may_move_in_cost.
8443 (process_bb_node_for_hard_reg_moves): Use function
532bfb0a 8444 ira_get_register_move_cost instead of global ira_register_move_cost.
6080348f 8445 (ira_costs): Don't call ira_init_register_move_cost.
2ba9daa7 8446
646bea10
RG
84472009-04-16 Richard Guenther <rguenther@suse.de>
8448
8449 * tree-cfg.c (verify_gimple_assign_binary):
8450 Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
8451 * ipa-struct-reorg.c (gen_size): Fold the built expressions.
8452 (create_general_new_stmt): Note that this function is broken.
8453
02e819ff
RAE
84542009-04-16 Rafael Avila de Espindola <espindola@google.com>
8455
8456 * common.opt (fhelp): Add Var(help_flag).
8457 * gcc-plugin.h (plugin_info): Add help.
8458 * plugin.c (plugin_name_args): Add help.
8459 (register_plugin_info): Set plugin->help.
8460 (print_help_one_plugin): New.
8461 (print_plugins_help): New.
8462 * plugin.h (print_plugins_help): New.
8463 * toplev.c (toplev_main): Call print_plugins_help if needed.
8464
ccacdf06
RG
84652009-04-16 Richard Guenther <rguenther@suse.de>
8466
8467 * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
8468 (gimple_ior_addresses_taken_1): New function.
8469 (gimple_ior_addresses_taken): Likewise.
8470 * gimple.h (struct gimple_statement_with_ops_base): Remove
8471 addresses_taken member.
8472 (gimple_ior_addresses_taken): Declare.
8473 (gimple_addresses_taken, gimple_addresses_taken_ptr,
8474 gimple_set_addresses_taken): Remove.
8475 * ipa-reference.c (mark_address): New function.
8476 (scan_stmt_for_static_refs): Use it for marking addresses taken.
8477 * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
8478 (mark_address_taken): ... this. Just set TREE_ADDRESSABLE.
8479 (gimple_add_to_addresses_taken): Remove.
8480 (get_tmr_operands): Call mark_address_taken.
8481 (get_asm_expr_operands): Likewise.
8482 (get_expr_operands): Likewise.
8483 (build_ssa_operands): Do not clear the addresses_taken bitmap.
8484 (free_stmt_operands): Do not free it.
8485 * tree-ssa.c (delete_tree_ssa): Likewise.
8486 (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
8487
346ef3fa
RG
84882009-04-16 Richard Guenther <rguenther@suse.de>
8489
8490 * gimple.h (walk_stmt_load_store_addr_ops): Declare.
8491 (walk_stmt_load_store_ops): Likewise.
8492 * gimple.c (get_base_loadstore): New function.
8493 (walk_stmt_load_store_addr_ops): Likewise.
8494 (walk_stmt_load_store_ops): Likewise.
8495 * ipa-pure-const.c (check_op): Simplify.
8496 (check_load, check_store): New functions.
8497 (check_stmt): Use walk_stmt_load_store_ops.
8498 * ipa-reference.c (mark_load): Adjust signature.
8499 (mark_store): Likewise.
8500 (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
8501
44e9f006
RAE
85022009-04-16 Rafael Avila de Espindola <espindola@google.com>
8503
8504 * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
8505 (plugin_info): New.
8506 * opts.c (common_handle_option): Don't call print_version.
8507 * plugin.c (plugin_name_args): Add version.
8508 (register_plugin_info): New.
8509 (register_callback): Handle PLUGIN_INFO.
8510 (try_init_one_plugin): New.
8511 (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
8512 if failed to init.
8513 (finalize_one_plugin): New.
8514 (finalize_plugins): New.
8515 (print_one_plugin): New.
8516 (print_plugins_versions): New.
8517 * plugin.h (print_plugins_versions): New.
8518 (finalize_plugins): New.
8519 * toplev.c (compile_file): Don't call initialize_plugins.
8520 (print_version): Call print_plugins_versions.
8521 (toplev_main): Call initialize_plugins. Print version if needed.
8522 Call finalize_plugins.
8523
41fd0f9b
RAE
85242009-04-16 Rafael Avila de Espindola <espindola@google.com>
8525
8526 * common.opt (fversion): New.
8527 * gcc.c (print_version): New.
8528 (process_command): Don't print the version. Just set print_version.
8529 (main): Print version. Call subprocesses if print_version and
8530 verbose_flag are set.
8531 * opts.c (common_handle_option): Handle OPT_fversion.
8532
550918ca 85332009-04-16 Richard Guenther <rguenther@suse.de>
532bfb0a 8534 Ira Rosen <irar@il.ibm.com>
550918ca
RG
8535
8536 PR tree-optimization/39698
8537 * tree-vect-loop.c (get_initial_def_for_reduction): Use the
8538 type of the reduction variable. Only generate the def if
8539 it is needed.
8540
8541 * omp-low.c (expand_omp_for_generic): When converting to a pointer
8542 make sure to first convert to an integer of the same precision.
8543 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
8544 the type of the evolution correctly in computing the new
8545 induction variable base.
8546
54634841
RG
85472009-04-16 Richard Guenther <rguenther@suse.de>
8548
8549 PR middle-end/39625
8550 * tree-cfg.c (make_blocks): Split statements with to-be
8551 abnormal SSA names on the lhs.
8552
b6fc2cdb
PB
85532009-04-16 Paolo Bonzini <bonzini@gnu.org>
8554
8555 * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
8556 Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
8557 * c-typeck.c (really_start_incremental_init): Likewise.
8558 * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
8559 (TARGET_INITIALIZER): Remove it.
8560 * target.h (struct target): Remove vector_opaque_p.
8561 * tree.c (build_opaque_vector_type): New.
8562 * tree.h (TYPE_VECTOR_OPAQUE): New.
8563 (build_opaque_vector_type): Declare.
8564 * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
8565 * config/rs6000/rs6000.c (build_opaque_vector_type,
8566 rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
8567 (rs6000_init_builtins): Use build_opaque_vector_type for
8568 opaque_V4SI_type_node.
8569
a417cdd9
CM
85702009-04-15 Catherine Moore <clm@codesourcery.com>
8571
532bfb0a
AJ
8572 * debug.h (set_name): Declare.
8573 * dwarf2out.c (dwarf2out_set_name): Declare.
8574 (dwarf2_debug_hooks): Add set_name.
8575 (find_AT_string): New.
8576 (add_AT_string): Call find_AT_string.
8577 (dwarf2out_set_name): New.
8578 * cp/decl.c (grokdeclarator): Call set_name.
8579 * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
8580 * debug.c (do_nothing_debug_hooks): Likewise.
8581 * dbxout.c (dbx_debug_hooks): Likewise.
8582 * sdbout.c (sdb_debug_hooks): Likewise.
a417cdd9 8583
60839f5d 85842009-04-15 Michael Eager <eager@eagercon.com>
2c5cac98 8585
532bfb0a
AJ
8586 * config/rs6000/rs6000.c (rs6000_function_value): Set function return
8587 reg for single-precision FPU.
8588 * config/rs6000/rs6000.md (movsi_internal1): Only for
8589 !TARGET_SINGLE_FPU.
8590 (movsi_internal1_single): New. Add pattern to move SI values to/from
2c5cac98
ME
8591 single-precision FP regs.
8592
ada39f0b
RG
85932009-04-15 Richard Guenther <rguenther@suse.de>
8594
8595 * omp-low.c (lower_rec_input_clauses): Build correct address
8596 expressions.
8597 (expand_omp_for_generic): Fix multiplication type.
532bfb0a 8598 * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
ada39f0b
RG
8599 (generate_memset_zero): Fix types.
8600 * tree-profile.c (prepare_instrumented_value): Correctly
8601 widen a pointer.
8602
6866c6e8
ILT
86032009-04-15 Ian Lance Taylor <iant@google.com>
8604
8605 * c.opt (Wenum-compare): Enable for C and Objc. Initialize to -1.
8606 * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
8607 for -Wall and for -Wc++-compat.
8608 (c_common_post_options): For C++, set warn_enum_compare if not
8609 already set.
8610 * c-tree.h (struct c_expr): Add field original_type.
8611 (build_external_ref): Update declaration.
8612 * c-parser.c (c_parser_braced_init): Set original_type.
8613 (c_parser_initelt): Likewise.
8614 (c_parser_expr_no_commas): Likewise.
8615 (c_parser_conditional_expression): Likewise.
8616 (c_parser_cast_expression): Likewise.
8617 (c_parser_unary_expression): Likewise. Pull setting of
8618 original_code to top of function.
8619 (c_parser_sizeof_expression): Set original_type.
8620 (c_parser_alignof_expression): Likewise.
8621 (c_parser_postfix_expression): Likewise. Pull setting of
8622 original_code to top of function.
532bfb0a 8623 (c_parser_postfix_expression_after_paren_type): Set original_type.
6866c6e8
ILT
8624 (c_parser_postfix_expression_after_primary): Likewise.
8625 (c_parser_expression): Likewise.
8626 * c-typeck.c (build_external_ref): Add type parameter. Change all
8627 callers.
8628 (c_expr_sizeof_expr): Set original_type field.
8629 (parser_build_unary_op): Likewise.
8630 (parser_build_binary_op): Likewise. Optionally warn about
8631 comparisons of enums of different types.
8632 (digest_init): Set original_type field.
8633 (really_start_incremental_init): Likewise.
8634 (push_init_level, pop_init_level): Likewise.
8635 * doc/invoke.texi (Warning Options): -Wenum-compare now
8636 supported in C.
8637
f116fecf
RG
86382009-04-15 Richard Guenther <rguenther@suse.de>
8639
8640 * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
8641 out a necessary conversion.
8642 * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
8643 names we didn't value number.
8644 * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
8645
25e20805
RG
86462009-04-15 Richard Guenther <rguenther@suse.de>
8647
8648 PR tree-optimization/39764
8649 * tree-ssa-ccp.c (get_value): Canonicalize value with
8650 canonicalize_float_value.
8651
90cc3676
JH
86522009-04-15 Jan Hubicka <jh@suse.cz>
8653
8654 * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
8655 Wrong version of patch.
8656
6d14c006
JH
86572009-04-15 Jan Hubicka <jh@suse.cz>
8658
8659 * builtins.def (va_start, va_end, va_copy): Mark nothrow.
8660
5afaa917
NS
86612009-04-15 Nathan Sidwell <nathan@codesourcery.com>
8662
8663 * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
8664 our distinct integral and vector types.
8665
3b482fca
RAE
86662009-04-15 Rafael Avila de Espindola <espindola@google.com>
8667
8668 * class.c (build_vtbl_ref_1): Remove call to assemble_external.
8669 * init.c (build_vtbl_address): Remove call to assemble_external.
8670
6cd1d2e2
DJ
86712009-04-14 Daniel Jacobowitz <dan@codesourcery.com>
8672
8673 * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
8674 output for other floating point modes.
8675
dab71827
DN
86762009-04-14 Diego Novillo <dnovillo@google.com>
8677
8678 * diagnostic.c (diagnostic_report_diagnostic): Do not
8679 warn about loaded plugins for DK_ERROR and DK_WARNING.
8680 * c-decl.c (declspecs_add_type): Move call to
8681 invoke_plugin_callbacks ...
8682 * c-parser.c (c_parser_declspecs): ... here.
8683 * plugin.c (dump_active_plugins): Tidy output.
8684
68a607d8
DN
86852009-04-14 Diego Novillo <dnovillo@google.com>
8686 Le-Chun Wu <lcwu@google.com>
8687
8688 * configure.ac: Add --enable-plugin support.
8689 Define ENABLE_PLUGIN and PLUGINLIBS when specified.
8690 * Makefile.in (PLUGIN_H): Define.
8691 Export ENABLE_PLUGIN and GMPINC to site.exp.
8692 Add PLUGINLIBS to link command.
8693 Add/modify dependencies for plugin.o and files including plugin.h.
8694 (plugin.o): New.
8695 * config.in: Regenerate.
2ba9daa7 8696
68a607d8
DN
8697 * opts.c (common_handle_option): Handle OPT_fplugin_ and
8698 OPT_fplugin_arg_.
8699
87002009-04-14 Le-Chun Wu <lcwu@google.com>
8701
8702 * tree-pass.h (register_one_dump_file): Add a prototype for
8703 register_one_dump_file.
8704 * toplev.c (compile_file): Call initialize_plugins.
8705 (do_compile): Call invoke_plugin_callbacks.
8706 (toplev_main): Call invoke_plugin_callbacks.
8707 * common.opt: Add -fplugin= and -fplugin-arg-.
8708 * gcc-plugin.h: New public header file for plugins to include.
8709 * plugin.c: New source file.
8710 * plugin.h: New internal header file.
8711 * passes.c (register_one_dump_file): Make it external.
2ba9daa7 8712
68a607d8
DN
8713 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
8714
87152009-04-14 Diego Novillo <dnovillo@google.com>
8716
8717 * doc/plugins.texi: New.
8718 * doc/gccint.texi: Add reference to Plugins chapter.
8719 * doc/invoke.texi: Document -fplugin and -fplugin-arg
8720 * diagnostic.c (diagnostic_report_diagnostic): Warn about
8721 loaded plugins, if any.
8722 * timevar.def (TV_PLUGIN_INIT): Define.
8723 (TV_PLUGIN_RUN): Define.
8724 * plugin.c: Include timevar.h
8725 (plugins_active_p): New.
8726 (dump_active_plugins): New.
8727 (debug_active_plugins): New.
8728
50617257
JM
87292009-04-14 Joseph Myers <joseph@codesourcery.com>
8730
8731 * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
8732 library paths.
8733 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
8734
b32f6fff
KH
87352009-04-14 Kazu Hirata <kazu@codesourcery.com>
8736
8737 * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
8738 the same as a minus without a shift.
8739
85d04fa2
NC
87402009-04-14 Nick Clifton <nickc@redhat.com>
8741
8742 * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
8743 comparisons with small integers will always produce a short
8744 branch.
8745
e495a0c8
RAE
87462009-04-14 Rafael Avila de Espindola <espindola@google.com>
8747
8748 Merge:
e495a0c8
RAE
8749 2008-12-19 Diego Novillo <dnovillo@google.com>
8750
532bfb0a 8751 * cgraph.c (dump_cgraph_node): Show memory address of NODE.
e495a0c8 8752
ad41bd84 87532009-04-14 Richard Guenther <rguenther@suse.de>
587aa063
RG
8754
8755 * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
8756 verification.
8757 (verify_gimple_assign_binary): Likewise. Handle shifts and
8758 rotates correctly.
8759 (verify_gimple_phi): Print the mismatched argument position.
8760 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
8761 Fix types.
8762 (vect_update_init_of_dr): Likewise.
8763 * matrix-reorg.c (transform_access_sites): Do what the
8764 comment suggests.
8765 * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
8766
60839f5d 87672009-04-13 Michael Eager <eager@eagercon.com>
9eca1774
ME
8768
8769 * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
8770 _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
8771 * config/rs6000/xilinx.h: New. Spec for powerpc-xilinx-eabi
2ba9daa7 8772 * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
9eca1774
ME
8773 remove duplicate config
8774
b0e2d008
DR
87752009-04-13 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
8776
8777 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
8778 file_name:line_number type locator of the call site.
2ba9daa7 8779
1244a8b7
VM
87802009-04-13 Vladimir Makarov <vmakarov@redhat.com>
8781
8782 * genautomata.c: Put blank after comma.
8783 (automaton_decls): New.
8784 (struct unit_usage): Add comments to member next.
8785 (store_alt_unit_usage): Keep the list ordered.
8786 (unit_present_on_list_p, equal_alternatives_p): New.
8787 (check_regexp_units_distribution): Check units distribution
8788 correctness correctly.
8789 (main): Don't write automata if error is found. Return correct
8790 exit code.
2ba9daa7 8791
1244a8b7
VM
8792 * config/m68k/cf.md (cfv4_ds): Remove.
8793 (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
8794 cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
8795
8796 * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
8797 power4-load-ext, power4-store, power4-store-update,
8798 power4-fpstore, power4-fpstore-update, power4-two, power4-three,
8799 power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
8800 power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
8801 power4-sqrt, power4-isync): Modify reservation to make correct
8802 unit distribution to automata.
8803
8804 * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
8805 power5-store-update, power5-two, power5-three, power5-lmul,
8806 power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
2ba9daa7 8807
f7dd1864
AN
88082009-04-13 Adam Nemet <anemet@caviumnetworks.com>
8809
8810 * except.c (pass_set_nothrow_function_flags): Set name and add
8811 TODO_dump_func.
8812 (set_nothrow_function_flags): Mention in the dump file when
8813 changing a function to nothrow.
8814
59a1171f
OS
88152009-04-13 Ozkan Sezer <sezeroz@gmail.com>
8816
8817 PR/39066
8818 * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
8819 instead of unsigned long.
8820
934c2060
RR
88212009-04-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8822
f7dd1864
AN
8823 * config/arm/arm.c (return_used_this_function): Remove.
8824 (arm_output_function_prologue): Remove use of
934c2060 8825 return_used_this_function.
f7dd1864 8826 (output_return_instruction): Replace use of
934c2060
RR
8827 return_used_this_function
8828 by cfun->machine->return_used_this_function.
f7dd1864
AN
8829 (arm_output_epilogue): Likewise.
8830 (arm_output_function_epilogue): Likewise.
8831 (thumb_unexpanded_epilogue): Likewise.
8832 * config/arm/arm.h (struct machine_function):
934c2060 8833 New member return_used_this_function.
f7dd1864 8834
ae5cc016
MM
88352009-04-12 Mark Mitchell <mark@codesourcery.com>
8836
8837 * doc/install.texi: Correct description of default directory for
8838 --with-gxx-include-dir.
8839
a0ce68df 88402009-04-12 Eric Botcazou <ebotcazou@adacore.com>
849d624b
EB
8841
8842 * fold-const.c (build_range_check): Properly deal with enumeral and
8843 boolean base types.
8844
3906a4a1
SB
88452009-04-12 Steven Bosscher <steven@gcc.gnu.org>
8846
8847 * doc/invoke.texi (max_gcse_passes): Remove documentation.
8848 * params.def (PARAM_MAX_GCSE_PASSES): Remove.
8849 * params.h (MAX_GCSE_PASSES): Remove.
8850 * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
8851 in sequence. Remove ability to run multiple passes.
8852 (bypass_jumps): Report run as third CPROP pass.
8853
efaadb93
AN
88542009-04-12 Adam Nemet <anemet@caviumnetworks.com>
8855
8856 PR middle-end/39651
8857 * except.c (can_throw_external): Look at each insn in a SEQUENCE
8858 when deciding whether the whole SEQUENCE can throw.
8859
4c48007b
UB
88602009-04-12 Uros Bizjak <ubizjak@gmail.com>
8861
8862 PR target/39740
8863 * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
8864 offseted label references.
8865
b4104018
JH
88662009-04-11 Jan Hubicka <jh@suse.cz>
8867
8868 * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
8869
32848948
RG
88702009-04-11 Richard Guenther <rguenther@suse.de>
8871
8872 PR middle-end/39732
8873 * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
8874 return variables as TREE_ADDRESSABLE.
8875
8810712e
RG
88762009-04-11 Richard Guenther <rguenther@suse.de>
8877
8878 PR tree-optimization/39713
8879 * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
8880 reference trees have SSA_NAME operands.
8881
fa78c0c1
RG
88822009-04-11 Richard Guenther <rguenther@suse.de>
8883
8884 PR c/39712
8885 * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
8886 address expressions.
8887
4d722130
DK
88882009-04-11 Dave Korn <dave.korn.cygwin@gmail.com>
8889
8890 * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE): Update to
8891 match changes in Cygwin 1.7
8892 (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
8893 UINT_FAST16_TYPE, UINT_FAST32_TYPE): Likewise.
8894
567a90f5
PB
88952009-04-10 Paolo Bonzini <bonzini@gnu.org>
8896
8897 PR tree-optimization/39701
8898 * doc/invoke.texi (Optimization Options): Document change in
8899 meaning and initialization of -fdelete-null-pointer-checks.
8900
1ad2f450
L
89012009-04-10 H.J. Lu <hongjiu.lu@intel.com>
8902
8903 PR middle-end/39701
8904 * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
8905
8906 * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
8907 here.
8908
8909 * doc/invoke.texi: Update -fdelete-null-pointer-checks.
8910
1afc5373
CF
89112009-04-10 Chao-ying Fu <fu@mips.com>
8912
8913 * doc/tm.texi (Instruction Output): Document
8914 TARGET_ASM_FINAL_POSTSCAN_INSN.
8915 * target.h (final_postscan_insn): New field in asm_out.
8916 * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
8917 (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
8918 * final.c (final_scan_insn): Call
8919 targetm.asm_out.final_postscan_insn after outputting
8920 an asm macro and a normal instruction.
8921
8922 * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
8923 * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
8924 * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
8925 (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
8926 (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
8927
4d35e75c
PB
89282009-04-10 Paolo Bonzini <bonzini@gnu.org>
8929
8930 PR middle-end/39701
1ad2f450
L
8931 * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
8932 variables as non-NULL even with -fdelete-null-pointer-checks.
4d35e75c 8933
62c49b83
L
89342009-04-10 H.J. Lu <hongjiu.lu@intel.com>
8935
8936 * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
8937
80558628
L
89382009-04-09 H.J. Lu <hongjiu.lu@intel.com>
8939
8940 PR target/39678
8941 * config/i386/i386.c (classify_argument): Handle SCmode with
8942 (bit_offset % 64) != 0.
8943
8c70d28b
SL
89442009-04-09 Sandra Loosemore <sandra@codesourcery.com>
8945
8946 * doc/invoke.texi (Optimize Options): Add cross-reference to
8947 -Q --help=optimizers examples.
8948
e1ff19bf
BE
89492009-04-10 Ben Elliston <bje@au.ibm.com>
8950
8951 PR target/36800
8952 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
8953 regalign for the reg == fpr and TDmode case.
8954
52daca75
DA
89552009-04-09 David Ayers <ayers@fsfe.org>
8956
8957 PR objc/29200
8958 * objc/objc-act.c (warn_with_method): Remove helper function.
8959 (check_duplicates): Call warning and inform directly.
8960 (really_start_method): Likewise.
8961
b45f0e58
PB
89622009-04-09 Paolo Bonzini <bonzini@gnu.org>
8963
8964 * expmed.c (expand_divmod): Always use a comparison for a division
8965 by a large unsigned integer.
8966
1ad2f450
L
8967 * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
8968 for things others than variables or functions as nonzero.
b45f0e58 8969
748086b7
JJ
89702009-04-09 Nick Clifton <nickc@redhat.com>
8971
8972 * unwind-compat.c: Change copyright header to refer to version
8973 3 of the GNU General Public License with version 3.1 of the
8974 GCC Runtime Library Exception and to point readers at the
7a715bba 8975 COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
748086b7
JJ
8976 * config/alpha/crtfastmath.c: Likewise.
8977 * config/alpha/linux-unwind.h: Likewise.
8978 * config/alpha/qrnnd.asm: Likewise.
8979 * config/alpha/vms-crt0-64.c: Likewise.
8980 * config/alpha/vms-crt0.c: Likewise.
8981 * config/alpha/vms-dwarf2.asm: Likewise.
8982 * config/alpha/vms-dwarf2eh.asm: Likewise.
8983 * config/alpha/vms-psxcrt0-64.c: Likewise.
8984 * config/alpha/vms-psxcrt0.c: Likewise.
8985 * config/alpha/vms_tramp.asm: Likewise.
8986 * config/arc/initfini.c: Likewise.
8987 * config/arc/lib1funcs.asm: Likewise.
8988 * config/arm/bpabi-v6m.S: Likewise.
8989 * config/arm/bpabi.S: Likewise.
8990 * config/arm/bpabi.c: Likewise.
8991 * config/arm/crti.asm: Likewise.
8992 * config/arm/crtn.asm: Likewise.
8993 * config/arm/ieee754-df.S: Likewise.
8994 * config/arm/ieee754-sf.S: Likewise.
8995 * config/arm/lib1funcs.asm: Likewise.
8996 * config/arm/libunwind.S: Likewise.
8997 * config/arm/linux-atomic.c: Likewise.
8998 * config/arm/mmintrin.h: Likewise.
8999 * config/arm/pr-support.c: Likewise.
9000 * config/arm/unaligned-funcs.c: Likewise.
9001 * config/arm/unwind-arm.c: Likewise.
9002 * config/arm/unwind-arm.h: Likewise.
9003 * config/avr/libgcc.S: Likewise.
9004 * config/bfin/crti.s: Likewise.
9005 * config/bfin/crtlibid.s: Likewise.
9006 * config/bfin/crtn.s: Likewise.
9007 * config/bfin/lib1funcs.asm: Likewise.
9008 * config/bfin/linux-unwind.h: Likewise.
9009 * config/cris/arit.c: Likewise.
9010 * config/cris/cris_abi_symbol.c: Likewise.
9011 * config/darwin-64.c: Likewise.
9012 * config/darwin-crt2.c: Likewise.
9013 * config/darwin-crt3.c: Likewise.
9014 * config/darwin.h: Likewise.
9015 * config/dbxelf.h: Likewise.
9016 * config/dfp-bit.c: Likewise.
9017 * config/dfp-bit.h: Likewise.
9018 * config/elfos.h: Likewise.
9019 * config/fixed-bit.c: Likewise.
9020 * config/fixed-bit.h: Likewise.
9021 * config/fp-bit.c: Likewise.
9022 * config/fp-bit.h: Likewise.
9023 * config/fr30/crti.asm: Likewise.
9024 * config/fr30/crtn.asm: Likewise.
9025 * config/fr30/lib1funcs.asm: Likewise.
9026 * config/freebsd-spec.h: Likewise.
9027 * config/frv/cmovd.c: Likewise.
9028 * config/frv/cmovh.c: Likewise.
9029 * config/frv/cmovw.c: Likewise.
9030 * config/frv/frvbegin.c: Likewise.
9031 * config/frv/frvend.c: Likewise.
9032 * config/frv/lib1funcs.asm: Likewise.
9033 * config/glibc-stdint.h: Likewise.
9034 * config/h8300/clzhi2.c: Likewise.
9035 * config/h8300/crti.asm: Likewise.
9036 * config/h8300/crtn.asm: Likewise.
9037 * config/h8300/ctzhi2.c: Likewise.
9038 * config/h8300/fixunssfsi.c: Likewise.
9039 * config/h8300/lib1funcs.asm: Likewise.
9040 * config/h8300/parityhi2.c: Likewise.
9041 * config/h8300/popcounthi2.c: Likewise.
9042 * config/i386/ammintrin.h: Likewise.
9043 * config/i386/att.h: Likewise.
9044 * config/i386/avxintrin.h: Likewise.
9045 * config/i386/biarch64.h: Likewise.
9046 * config/i386/bmmintrin.h: Likewise.
9047 * config/i386/cpuid.h: Likewise.
9048 * config/i386/cross-stdarg.h: Likewise.
9049 * config/i386/crtfastmath.c: Likewise.
9050 * config/i386/crtprec.c: Likewise.
9051 * config/i386/cygming-crtbegin.c: Likewise.
9052 * config/i386/cygming-crtend.c: Likewise.
9053 * config/i386/cygwin.asm: Likewise.
9054 * config/i386/emmintrin.h: Likewise.
9055 * config/i386/gmm_malloc.h: Likewise.
9056 * config/i386/gthr-win32.c: Likewise.
9057 * config/i386/i386.h: Likewise.
9058 * config/i386/immintrin.h: Likewise.
9059 * config/i386/linux-unwind.h: Likewise.
9060 * config/i386/linux64.h: Likewise.
9061 * config/i386/mm3dnow.h: Likewise.
9062 * config/i386/mmintrin-common.h: Likewise.
9063 * config/i386/mmintrin.h: Likewise.
9064 * config/i386/nmmintrin.h: Likewise.
9065 * config/i386/pmm_malloc.h: Likewise.
9066 * config/i386/pmmintrin.h: Likewise.
9067 * config/i386/smmintrin.h: Likewise.
9068 * config/i386/sol2-c1.asm: Likewise.
9069 * config/i386/sol2-ci.asm: Likewise.
9070 * config/i386/sol2-cn.asm: Likewise.
9071 * config/i386/sol2-gc1.asm: Likewise.
9072 * config/i386/tmmintrin.h: Likewise.
9073 * config/i386/unix.h: Likewise.
9074 * config/i386/w32-unwind.h: Likewise.
9075 * config/i386/wmmintrin.h: Likewise.
9076 * config/i386/x86-64.h: Likewise.
9077 * config/i386/x86intrin.h: Likewise.
9078 * config/i386/xmmintrin.h: Likewise.
9079 * config/ia64/crtbegin.asm: Likewise.
9080 * config/ia64/crtend.asm: Likewise.
9081 * config/ia64/crtfastmath.c: Likewise.
9082 * config/ia64/crti.asm: Likewise.
9083 * config/ia64/crtn.asm: Likewise.
9084 * config/ia64/fde-glibc.c: Likewise.
9085 * config/ia64/lib1funcs.asm: Likewise.
9086 * config/ia64/linux-unwind.h: Likewise.
9087 * config/ia64/quadlib.c: Likewise.
9088 * config/ia64/unwind-ia64.c: Likewise.
9089 * config/linux.h: Likewise.
9090 * config/m32c/m32c-lib1.S: Likewise.
9091 * config/m32c/m32c-lib2-trapv.c: Likewise.
9092 * config/m32c/m32c-lib2.c: Likewise.
9093 * config/m32r/initfini.c: Likewise.
9094 * config/m68hc11/larith.asm: Likewise.
9095 * config/m68hc11/m68hc11-crt0.S: Likewise.
9096 * config/m68k/cf.md: Likewise.
9097 * config/m68k/crti.s: Likewise.
9098 * config/m68k/crtn.s: Likewise.
9099 * config/m68k/lb1sf68.asm: Likewise.
9100 * config/m68k/linux-unwind.h: Likewise.
9101 * config/mcore/crti.asm: Likewise.
9102 * config/mcore/crtn.asm: Likewise.
9103 * config/mcore/lib1.asm: Likewise.
9104 * config/mips/linux-unwind.h: Likewise.
9105 * config/mips/loongson.h: Likewise.
9106 * config/mips/mips16.S: Likewise.
9107 * config/mmix/crti.asm: Likewise.
9108 * config/mmix/crtn.asm: Likewise.
9109 * config/pa/fptr.c: Likewise.
9110 * config/pa/hpux-unwind.h: Likewise.
9111 * config/pa/lib2funcs.asm: Likewise.
9112 * config/pa/linux-atomic.c: Likewise.
9113 * config/pa/linux-unwind.h: Likewise.
9114 * config/pa/milli64.S: Likewise.
9115 * config/pa/quadlib.c: Likewise.
9116 * config/pa/stublib.c: Likewise.
9117 * config/picochip/libgccExtras/adddi3.asm: Likewise.
9118 * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
9119 * config/picochip/libgccExtras/ashlsi3.c: Likewise.
9120 * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
9121 * config/picochip/libgccExtras/ashrsi3.c: Likewise.
9122 * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
9123 * config/picochip/libgccExtras/divmod15.asm: Likewise.
9124 * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
9125 * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
9126 * config/picochip/libgccExtras/longjmp.asm: Likewise.
9127 * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
9128 * config/picochip/libgccExtras/lshrsi3.c: Likewise.
9129 * config/picochip/libgccExtras/parityhi2.asm: Likewise.
9130 * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
9131 * config/picochip/libgccExtras/setjmp.asm: Likewise.
9132 * config/picochip/libgccExtras/subdi3.asm: Likewise.
9133 * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
9134 * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
9135 * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
9136 * config/rs6000/750cl.h: Likewise.
9137 * config/rs6000/altivec.h: Likewise.
9138 * config/rs6000/biarch64.h: Likewise.
9139 * config/rs6000/crtresfpr.asm: Likewise.
9140 * config/rs6000/crtresgpr.asm: Likewise.
9141 * config/rs6000/crtresxfpr.asm: Likewise.
9142 * config/rs6000/crtresxgpr.asm: Likewise.
9143 * config/rs6000/crtsavfpr.asm: Likewise.
9144 * config/rs6000/crtsavgpr.asm: Likewise.
9145 * config/rs6000/darwin-asm.h: Likewise.
9146 * config/rs6000/darwin-fallback.c: Likewise.
9147 * config/rs6000/darwin-fpsave.asm: Likewise.
9148 * config/rs6000/darwin-ldouble.c: Likewise.
9149 * config/rs6000/darwin-tramp.asm: Likewise.
9150 * config/rs6000/darwin-unwind.h: Likewise.
9151 * config/rs6000/darwin-vecsave.asm: Likewise.
9152 * config/rs6000/darwin-world.asm: Likewise.
9153 * config/rs6000/e500crtres32gpr.asm: Likewise.
9154 * config/rs6000/e500crtres64gpr.asm: Likewise.
9155 * config/rs6000/e500crtres64gprctr.asm: Likewise.
9156 * config/rs6000/e500crtrest32gpr.asm: Likewise.
9157 * config/rs6000/e500crtrest64gpr.asm: Likewise.
9158 * config/rs6000/e500crtresx32gpr.asm: Likewise.
9159 * config/rs6000/e500crtresx64gpr.asm: Likewise.
9160 * config/rs6000/e500crtsav32gpr.asm: Likewise.
9161 * config/rs6000/e500crtsav64gpr.asm: Likewise.
9162 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
9163 * config/rs6000/e500crtsavg32gpr.asm: Likewise.
9164 * config/rs6000/e500crtsavg64gpr.asm: Likewise.
9165 * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
9166 * config/rs6000/eabi-ci.asm: Likewise.
9167 * config/rs6000/eabi-cn.asm: Likewise.
9168 * config/rs6000/eabi.asm: Likewise.
9169 * config/rs6000/linux-unwind.h: Likewise.
9170 * config/rs6000/linux64.h: Likewise.
9171 * config/rs6000/paired.h: Likewise.
9172 * config/rs6000/paired.md: Likewise.
9173 * config/rs6000/ppc64-fp.c: Likewise.
9174 * config/rs6000/ppu_intrinsics.h: Likewise.
9175 * config/rs6000/rs6000.h: Likewise.
9176 * config/rs6000/si2vmx.h: Likewise.
9177 * config/rs6000/sol-ci.asm: Likewise.
9178 * config/rs6000/sol-cn.asm: Likewise.
9179 * config/rs6000/spe.h: Likewise.
9180 * config/rs6000/spu2vmx.h: Likewise.
9181 * config/rs6000/sysv4.h: Likewise.
9182 * config/rs6000/tramp.asm: Likewise.
9183 * config/rs6000/vec_types.h: Likewise.
9184 * config/s390/linux-unwind.h: Likewise.
9185 * config/s390/tpf-unwind.h: Likewise.
9186 * config/score/crti.asm: Likewise.
9187 * config/score/crtn.asm: Likewise.
9188 * config/sh/crt1.asm: Likewise.
9189 * config/sh/crti.asm: Likewise.
9190 * config/sh/crtn.asm: Likewise.
9191 * config/sh/divtab-sh4-300.c: Likewise.
9192 * config/sh/divtab-sh4.c: Likewise.
9193 * config/sh/divtab.c: Likewise.
9194 * config/sh/lib1funcs-4-300.asm: Likewise.
9195 * config/sh/lib1funcs-Os-4-200.asm: Likewise.
9196 * config/sh/lib1funcs.asm: Likewise.
9197 * config/sh/lib1funcs.h: Likewise.
9198 * config/sh/linux-atomic.asm: Likewise.
9199 * config/sh/linux-unwind.h: Likewise.
9200 * config/sh/shmedia.h: Likewise.
9201 * config/sh/sshmedia.h: Likewise.
9202 * config/sh/ushmedia.h: Likewise.
9203 * config/sparc/crtfastmath.c: Likewise.
9204 * config/sparc/linux-unwind.h: Likewise.
9205 * config/sparc/sol2-c1.asm: Likewise.
9206 * config/sparc/sol2-ci.asm: Likewise.
9207 * config/sparc/sol2-cn.asm: Likewise.
9208 * config/spu/divmodti4.c: Likewise.
9209 * config/spu/divv2df3.c: Likewise.
9210 * config/spu/float_disf.c: Likewise.
9211 * config/spu/float_unsdidf.c: Likewise.
9212 * config/spu/float_unsdisf.c: Likewise.
9213 * config/spu/float_unssidf.c: Likewise.
9214 * config/spu/mfc_multi_tag_release.c: Likewise.
9215 * config/spu/mfc_multi_tag_reserve.c: Likewise.
9216 * config/spu/mfc_tag_release.c: Likewise.
9217 * config/spu/mfc_tag_reserve.c: Likewise.
9218 * config/spu/mfc_tag_table.c: Likewise.
9219 * config/spu/multi3.c: Likewise.
9220 * config/spu/spu_internals.h: Likewise.
9221 * config/spu/spu_intrinsics.h: Likewise.
9222 * config/spu/spu_mfcio.h: Likewise.
9223 * config/spu/vec_types.h: Likewise.
9224 * config/spu/vmx2spu.h: Likewise.
9225 * config/stormy16/stormy16-lib2.c: Likewise.
9226 * config/svr4.h: Likewise.
9227 * config/sync.c: Likewise.
9228 * config/v850/lib1funcs.asm: Likewise.
9229 * config/vxlib-tls.c: Likewise.
9230 * config/vxlib.c: Likewise.
9231 * config/vxworks-dummy.h: Likewise.
9232 * config/xtensa/crti.asm: Likewise.
9233 * config/xtensa/crtn.asm: Likewise.
9234 * config/xtensa/ieee754-df.S: Likewise.
9235 * config/xtensa/ieee754-sf.S: Likewise.
9236 * config/xtensa/lib1funcs.asm: Likewise.
9237 * config/xtensa/lib2funcs.S: Likewise.
9238 * config/xtensa/linux-unwind.h: Likewise.
9239 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
9240 * config/xtensa/unwind-dw2-xtensa.h: Likewise.
9241 * coretypes.h: Likewise.
9242 * crtstuff.c: Likewise.
9243 * defaults.h: Likewise.
9244 * dwarf2.h: Likewise.
9245 * emutls.c: Likewise.
9246 * gbl-ctors.h: Likewise.
9247 * gcov-io.h: Likewise.
9248 * ginclude/float.h: Likewise.
9249 * ginclude/iso646.h: Likewise.
9250 * ginclude/stdarg.h: Likewise.
9251 * ginclude/stdbool.h: Likewise.
9252 * ginclude/stddef.h: Likewise.
9253 * ginclude/stdfix.h: Likewise.
9254 * ginclude/stdint-gcc.h: Likewise.
9255 * ginclude/tgmath.h: Likewise.
9256 * gthr-aix.h: Likewise.
9257 * gthr-dce.h: Likewise.
9258 * gthr-gnat.c: Likewise.
9259 * gthr-gnat.h: Likewise.
9260 * gthr-lynx.h: Likewise.
9261 * gthr-mipssde.h: Likewise.
9262 * gthr-nks.h: Likewise.
9263 * gthr-posix.c: Likewise.
9264 * gthr-posix.h: Likewise.
9265 * gthr-posix95.h: Likewise.
9266 * gthr-rtems.h: Likewise.
9267 * gthr-single.h: Likewise.
9268 * gthr-solaris.h: Likewise.
9269 * gthr-tpf.h: Likewise.
9270 * gthr-vxworks.h: Likewise.
9271 * gthr-win32.h: Likewise.
9272 * gthr.h: Likewise.
9273 * libgcc2.c: Likewise.
9274 * libgcc2.h: Likewise.
9275 * libgcov.c: Likewise.
9276 * tsystem.h: Likewise.
9277 * typeclass.h: Likewise.
9278 * unwind-c.c: Likewise.
9279 * unwind-compat.h: Likewise.
9280 * unwind-dw2-fde-compat.c: Likewise.
9281 * unwind-dw2-fde-darwin.c: Likewise.
9282 * unwind-dw2-fde-glibc.c: Likewise.
9283 * unwind-dw2-fde.c: Likewise.
9284 * unwind-dw2-fde.h: Likewise.
9285 * unwind-dw2.c: Likewise.
9286 * unwind-dw2.h: Likewise.
9287 * unwind-generic.h: Likewise.
9288 * unwind-pe.h: Likewise.
9289 * unwind-sjlj.c: Likewise.
9290 * unwind.inc: Likewise.
9291 * config/arm/neon-gen.ml: Change generated copyright header to
9292 refer to version 3 of the GNU General Public License with
9293 version 3.1 of the GCC Runtime Library Exception and to point
9294 readers at the COPYING3 and COPYING3.RUNTIME files and the
9295 FSF's license web page.
9296 * config/arm/arm_neon.h: Regenerate.
9297
92982009-04-09 Jakub Jelinek <jakub@redhat.com>
9299
9300 * config/cris/cris.md: Change copyright header to refer to version
9301 3 of the GNU General Public License.
9302 * doc/install.texi2html: Change copyright header to refer to version
9303 3 of the GNU General Public License and to point readers at the
9304 COPYING3 file and the FSF's license web page.
9305 * config/vax/linux.h: Likewise.
9306
4a77c72b
PB
93072009-04-09 Paolo Bonzini <bonzini@gnu.org>
9308
1ad2f450
L
9309 * config/i386/i386.md (cmpcc): New.
9310 * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
9311 (sync_compare_and_swap_cc*): Delete.
9312
9313 * config/s390/s390.c (s390_compare_emitted): Remove.
9314 (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
9315 s390_compare_emitted used to be handled. Assert that modes match.
9316 (s390_emit_compare_and_swap): Use s390_emit_compare, do not
9317 refer to sync_compare_and_swap_ccsi.
9318 * config/s390/s390.h (s390_compare_emitted): Remove.
9319 * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
9320 instead of s390_compare_emitted.
9321 (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
9322 instead of s390_compare_emitted.
9323 * config/s390/s390.md (cmpcc): New.
9324 (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
9325 CC_REGNUM, do not pretend it's set.
9326 (sync_compare_and_swap_cc*): Delete.
9327 * config/s390/predicates.md (cc_reg_operand): New.
9328
9329 * expr.c (sync_compare_and_swap_cc): Delete.
9330 * optabs.h (sync_compare_and_swap_cc): Delete.
9331 * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
9332 is being used with can_compare_p.
9333 (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
9334 (find_cc_set): New.
9335 (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
9336 look for a MODE_CC set instead. Use emit_store_flag.
9337 (expand_compare_and_swap_loop): Likewise, with some additional
9338 complication to avoid a force_reg when useless. Use
9339 emit_cmp_and_jump_insns.
9340 * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
9341 * doc/md.texi (sync_compare_and_swap_cc): Merge with
9342 sync_compare_and_swap documentation.
4a77c72b 9343
0c0efb33
JH
93442009-04-09 Jan Hubicka <jh@suse.cz>
9345
9346 * except.c (find_prev_try): Break out from ....
9347 (duplicate_eh_regions): ... here; properly update prev_try pointers
9348 when duplication part of tree.
9349 (dump_eh_tree): Improve dumping.
9350 (verify_eh_region): New.
9351 (verify_eh_tree): Use it.
9352
22a65a54
RG
93532009-04-06 Richard Guenther <rguenther@suse.de>
9354
9355 * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
9356 &ARRAY addresses by adjusting their types and prepending
9357 a conversion.
9358 * tree-cfg.c (verify_gimple_assign_single): Verify that
9359 addresses are correct.
9360
f76968e6
RG
93612009-04-09 Richard Guenther <rguenther@suse.de>
9362
9363 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
9364 indices into an array reference if possible.
9365 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
9366 Fold POINTER_PLUS_EXPR statements with invariant address.
9367
c90c5fb5
AM
93682009-04-09 Alan Modra <amodra@bigpond.net.au>
9369
9370 PR target/39634
9371 * config.gcc (powerpc64-*-linux*): Always build biarch.
9372
17cede2e
JM
93732009-04-09 Joseph Myers <joseph@codesourcery.com>
9374
9375 PR c/39613
9376 * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
9377 it and pedwarn if this results in an INTEGER_CST.
9378
a3337ea2
KG
93792009-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9380
9381 * doc/install.texi: Update minimum GMP version. Remove obsolete
9382 text in MPFR section.
9383
ce9ba79b
JJ
93842009-04-08 Jakub Jelinek <jakub@redhat.com>
9385
9386 * dwarf2out.c (class_scope_p): New static inline.
9387 (class_or_namespace_scope_p): Use it.
9388 (gen_variable_die): Use DW_TAG_member tag for static data member
9389 declarations instead of DW_TAG_variable.
9390
4f0ae266
JJ
9391 PR middle-end/39573
9392 * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
9393 variables.
9394
d27f0ddc
RG
93952009-04-08 Richard Guenther <rguenther@suse.de>
9396
9397 * tree-ssa-sccvn.c (valueize_refs): Do not continue to
9398 valueize random data.
9399
557cc596
DE
94002009-04-08 David Edelsohn <edelsohn@gnu.org>
9401
9402 * config.gcc (aix tm_file): Add aix-stdint.h.
9403 (aix tm clause use_gcc_stdint): Set to wrap.
9404 * config/rs6000/aix-stdint.h: New file.
2ba9daa7 9405
75ccc1e7
RG
94062009-04-08 Richard Guenther <rguenther@suse.de>
9407
9408 PR middle-end/36291
9409 * tree-dfa.c (add_referenced_var): Do not recurse into
9410 global initializers.
9411 * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
9412 exposed variables.
9413 (fold_const_aggregate_ref): Likewise.
9414
c6963675
PB
94152009-04-08 Paolo Bonzini <bonzini@gnu.org>
9416
6c44cf79
L
9417 * recog.c (ordered_comparison_operator): New.
9418 * gensupport.c (std_preds): Add it.
c6963675
PB
9419 * doc/md.texi (Machine-Independent Predicates): Document it.
9420
6d07ad98
JH
94212009-04-08 Jan Hubicka <jh@suse.cz>
9422
9423 * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
9424 * function.h (rtl_eh): Remove exception_handler_label_map.
9425 * except.c (ehl_hash, ehl_eq, add_ehl_entry,
9426 remove_exception_handler_label, for_each_eh_label_1): Remove.
9427 (rtl_remove_unreachable_regions): Remove.
9428 (convert_from_eh_region_ranges): Do not remove unreachable regions.
9429 (find_exception_handler_labels): Don't build the hashtable.
9430 (maybe_remove_eh_handler): Remove.
9431 (for_each_eh_label): Rewrite to walk the tree.
9432 (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
9433 * except.h (maybe_remove_eh_handler): Remove.
9434 * passes.c (init_optimization_passes): Schedule second EH cleanup
9435 before out-of-ssa.
9436 * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
9437 cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
9438
7ddf71e3
PB
94392009-04-08 Paolo Bonzini <bonzini@gnu.org>
9440
9441 * genoutput.c (validate_optab_operands): New.
9442 (gen_insn, gen_expand): Call it.
9443
9444 * genflags.c (gen_insn): Detect misused iterators.
9445 (main): Pass line_no to gen_insn, exit with status 1 on error.
9446
9447 * genextract.c (line_no): Make global.
9448 (VEC_safe_set_locstr): Change assertion to error message.
9449 (main): Exit with status 1 on error.
9450
4d84fe7c
JM
94512009-04-08 Joseph Myers <joseph@codesourcery.com>
9452
9453 PR c/39614
9454 PR c/39673
9455 * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
9456 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
9457 EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
9458 * c-convert.c (convert): Do not call fold on results of conversion
9459 functions when the result is a C_MAYBE_CONST_EXPR.
9460 * c-parser.c (c_parser_postfix_expression): Do not fold condition
9461 of __builtin_choose_expr.
9462 * c-typeck.c (remove_c_maybe_const_expr): New.
9463 (build_unary_op, build_conditional_expr, build_compound_expr,
9464 build_binary_op, c_objc_common_truthvalue_conversion): Call
9465 remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
9466 integer operands.
9467
60839f5d 94682009-04-08 Bingfeng Mei <bmei@broadcom.com>
d1d1c602 9469
2ba9daa7 9470 * fold-const.c (const_binop): Combine two VECTOR_CST under operation
6c44cf79 9471 CODE to produce a new one. Add a prototype to use fold_convert_const
d1d1c602 9472
8e481a2c
DS
94732009-04-08 Danny Smith <dannysmith@users.sourceforge.net>
9474
9475 PR bootstrap/39660
9476 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
9477 mix declarations and code.
9478
ee618c17
BE
94792009-04-08 Ben Elliston <bje@au.ibm.com>
9480
9481 * gcc.c: Replace `CC' with `GCC' throughout.
9482
f2a758a2
L
94832009-04-07 H.J. Lu <hongjiu.lu@intel.com>
9484
9485 * doc/invoke.texi: Document Atom support.
9486
6ea2bd47
JM
94872009-04-07 Jason Merrill <jason@redhat.com>
9488
9489 PR c++/25185
9490 * c-common.h, c-common.c: Add flag_pretty_templates.
9491 * c-opts.c (c_common_handle_option): Set it.
9492 * c.opt: Add -fno-pretty-templates.
9493 * doc/invoke.texi (C++ Dialect Options): Likewise.
9494
fcb82ab0
UB
94952009-04-07 Uros Bizjak <ubizjak@gmail.com>
9496
9497 * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
9498 (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
9499 (ia64_expand_builtin): Likewise.
9500
dc5e7298
MJ
95012009-04-07 Martin Jambor <mjambor@suse.cz>
9502
9503 * tree-ssa-alias.c (refs_may_alias_p_1): Check for
9504 is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
9505 ADDR_EXPRS are include too.
9506
0609b355
RG
95072009-04-07 Richard Guenther <rguenther@suse.de>
9508
9509 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
9510 decls are only used if passes as parameters or if they are
9511 local statics and the call is not to a builtin.
9512 (call_may_clobber_ref_p_1): Likewise.
9513
d8e535fa
PB
95142009-04-07 Paolo Bonzini <bonzini@gnu.org>
9515
9516 * expr.c (do_store_flag): Remove last argument. Simplify code
9517 to avoid duplication of tests already done by can_compare_p.
9518 (expand_expr_real_1): Adjust caller.
9519
c3c64f50
PB
95202009-04-07 Paolo Bonzini <bonzini@gnu.org>
9521
fcb82ab0
UB
9522 * optabs.c (can_compare_p): Test the predicate of a
9523 cbranch and cstore pattern.
c3c64f50 9524
9a53bc17
PB
95252009-04-07 Paolo Bonzini <bonzini@gnu.org>
9526
fcb82ab0
UB
9527 * expr.c (convert_move): Use emit_store_flag instead of
9528 "emulating" it.
9a53bc17 9529
67b8f1c1
PB
95302009-04-07 Paolo Bonzini <bonzini@gnu.org>
9531
fcb82ab0
UB
9532 * config/i386/i386.c (ix86_compare_emitted): Remove.
9533 (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
9534 ix86_compare_op0 like ix86_compare_emitted used to be handled.
9535 * config/i386/i386.h (ix86_compare_emitted): Remove.
9536 * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
9537 instead of ix86_compare_emitted.
9538 * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
67b8f1c1 9539
44509946
AS
95402009-04-07 Andrew Stubbs <ams@codesourcery.com>
9541
9542 * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
9543 Add t-sysroot-suffix to tmake_file.
9544 * config/print-sysroot-suffix.sh: New file.
9545 * config/t-sysroot-suffix: New file.
9546
ca22d882
BE
95472009-04-07 Ben Elliston <bje@au.ibm.com>
9548
9549 * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
9550 as the latter produces a warning when the target does not support
9551 infinity.
9552
95aac11b
BE
95532009-04-07 Ben Elliston <bje@au.ibm.com>
9554
9555 * dfp.c: Replace type punning assignments with memcpy throughout.
9556 * Makefile.in (dfp.o-warn): Remove.
2ba9daa7 9557
633dd061
AM
95582009-04-07 Alan Modra <amodra@bigpond.net.au>
9559
9560 PR target/39634
9561 * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
9562 Include soft-fp/t-softfp after rs6000/t-linux64.
9563
fe0a25ec
EB
95642009-04-06 Eric Botcazou <ebotcazou@adacore.com>
9565
9566 * stor-layout.c (set_sizetype): Use the full precision of their
9567 machine mode for bitsize types.
9568
0c011bc3
L
95692009-04-06 H.J. Lu <hongjiu.lu@intel.com>
9570
9571 * config/i386/i386.md: Revert 2 accidental checkins.
9572
b6837b94 95732009-04-06 Joey Ye <joey.ye@intel.com>
60839f5d 9574 Xuepeng Guo <xuepeng.guo@intel.com>
b6837b94
JY
9575 H.J. Lu <hongjiu.lu@intel.com>
9576
9577 Atom pipeline model, tuning and insn selection.
9578 * config.gcc (atom): Add atom config options and target.
9579
9580 * config/i386/atom.md: New.
9581
9582 * config/i386/i386.c (atom_cost): New cost.
9583 (m_ATOM): New macro flag.
9584 (initial_ix86_tune_features): Set m_ATOM.
9585 (x86_accumulate_outgoing_args): Likewise.
9586 (x86_arch_always_fancy_math_387): Likewise.
9587 (processor_target): Add Atom cost.
9588 (cpu_names): Add Atom cpu name.
9589 (override_options): Set Atom ISA.
9590 (ix86_issue_rate): New case PROCESSOR_ATOM.
9591 (ix86_adjust_cost): Likewise.
9592
9593 * config/i386/i386.h (TARGET_ATOM): New target macro.
9594 (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
9595 (TARGET_OPT_AGU): New target option.
9596 (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
9597 (processor_type): Add PROCESSOR_ATOM.
9598
9599 * config/i386/i386.md (cpu): Add new value "atom".
9600 (use_carry, movu): New attr.
9601 (atom.md): Include atom.md.
9602 (adddi3_carry_rex64): Set attr "use_carry".
9603 (addqi3_carry): Likewise.
9604 (addhi3_carry): Likewise.
9605 (addsi3_carry): Likewise.
9606 (*addsi3_carry_zext): Likewise.
9607 (subdi3_carry_rex64): Likewise.
9608 (subqi3_carry): Likewise.
9609 (subhi3_carry): Likewise.
9610 (subsi3_carry): Likewise.
9611 (x86_movdicc_0_m1_rex64): Likewise.
9612 (*x86_movdicc_0_m1_se): Likewise.
9613 (x86_movsicc_0_m1): Likewise.
9614 (*x86_movsicc_0_m1_se): Likewise.
9615 (*adddi_1_rex64): Emit add insn as much as possible.
9616 (*addsi_1): Likewise.
9617 (return_internal): Set atom_unit.
9618 (return_internal_long): Likewise.
9619 (return_pop_internal): Likewise.
9620 (*rcpsf2_sse): Set atom_sse_attr attr.
9621 (*qrt<mode>2_sse): Likewise.
9622 (*prefetch_sse): Likewise.
9623
9624 * config/i386/i386-c.c (ix86_target_macros_internal): New case
9625 PROCESSOR_ATOM.
9626 (ix86_target_macros_internal): Likewise.
9627
9628 * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
9629 (*prefetch_sse_rex): Likewise.
9630 (sse_rcpv4sf2): Likewise.
9631 (sse_vmrcpv4sf2): Likewise.
9632 (sse_sqrtv4sf2): Likewise.
9633 (<sse>_vmsqrt<mode>2): Likewise.
9634 (sse_ldmxcsr): Likewise.
9635 (sse_stmxcsr): Likewise.
9636 (*sse_sfence): Likewise.
9637 (sse2_clflush): Likewise.
9638 (*sse2_mfence): Likewise.
9639 (*sse2_lfence): Likewise.
9640 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
9641 (<sse>_movup<ssemodesuffixf2c>): Likewise.
9642 (avx_movdqu<avxmodesuffix>): Likewise.
9643 (avx_lddqu<avxmodesuffix>): Likewise.
9644 (sse2_movntv2di): Change attr "type" to "ssemov".
9645 (sse2_movntsi): Likewise.
9646 (rsqrtv8sf2): Change attr "type" to "sseadd".
9647 (sse3_addsubv2df3): Set attr "atom_unit".
9648 (sse3_h<plusminus_insn>v4sf3): Likewise.
9649 (*sse2_pmaddwd): Likewise.
9650 (*vec_extractv2di_1_rex64): Likewise.
9651 (*vec_extractv2di_1_avx): Likewise.
9652 (sse2_psadbw): Likewise.
9653 (ssse3_phaddwv8hi3): Likewise.
9654 (ssse3_phaddwv4hi3): Likewise.
9655 (ssse3_phadddv4si3): Likewise.
9656 (ssse3_phadddv2si3): Likewise.
9657 (ssse3_phaddswv8hi3): Likewise.
9658 (ssse3_phaddswv4hi3): Likewise.
9659 (ssse3_phsubwv8hi3): Likewise.
9660 (ssse3_phsubwv4hi3): Likewise.
9661 (ssse3_phsubdv4si3): Likewise.
9662 (ssse3_phsubdv2si3): Likewise.
9663 (ssse3_phsubswv8hi3): Likewise.
9664 (ssse3_phsubswv4hi3): Likewise.
9665 (ssse3_pmaddubsw128): Likewise.
9666 (sse3_pmaddubsw: Likewise.
9667 (ssse3_palignrti): Likewise.
9668 (ssse3_palignrdi): Likewise.
9669
53e350d3
GP
96702009-04-06 Gerald Pfeifer <gerald@pfeifer.com>
9671
9672 * doc/install.texi (Specific): Fix two cross-references to MinGW.
9673
439ef907
RG
96742009-04-06 Richard Guenther <rguenther@suse.de>
9675
9676 PR tree-optimization/28868
9677 * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
9678 of which PHI results we inserted.
9679 (insert_into_preds_of_block): Record inserted PHIs.
9680 (eliminate): Eliminate redundant PHI nodes.
9681 (init_pre): Init inserted_phi_names.
9682
4bad83f5
RG
96832009-04-06 Richard Guenther <rguenther@suse.de>
9684
9685 PR tree-optimization/39643
9686 * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
9687 IMAGPART_EXPRs of complex constants.
9688 (execute_fold_all_builtins): If we folded a call queue
9689 TODO_update_address_taken.
9690
570c4247
JH
96912009-04-06 Jan Hubicka <jh@suse.cz>
9692
9693 PR middle-end/39659
9694 * except.c (remove_unreachable_regions): Propagate may_contain_throw
9695 flag.
9696
a460d7a1
AS
96972009-04-06 Andrew Stubbs <ams@codesourcery.com>
9698
9699 * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
9700 delay slot.
9701 (ic_invalidate_array): Likewise.
9702
60839f5d 97032009-04-06 Hariharan Sandanagobalane <hariharan@picochip.com>
6bdf8c2e
HS
9704
9705 * calls.c (emit_library_call_value_1): Fix a problem with parameter
9706 alignment for library calls.
9707
7d253f6e
DS
97082009-04-06 Danny Smith <dannysmith@users.sourceforge.net>
9709
9710 * config.gcc (mingw32 tm_file): Add mingw-stdint.h.
9711 (mingw32 tm clause use_gcc_stdint): Set to wrap.
9712 * config/i386/mingw-stdint.h: New file.
9713
941c3614
RB
97142009-04-05 Richard Guenther <rguenther@suse.de>
9715
9716 PR tree-optimization/39648
9717 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
9718 our &A vs. &A[0] IL deficiencies.
9719
12633413
JH
97202009-04-04 Jan Hubicka <jh@suse.cz>
9721
941c3614
RB
9722 * except.c (sjlj_find_directly_reachable_regions): Be ready for
9723 removed toplevel regions.
12633413
JH
9724 (sjlj_mark_call_sites): Likewise.
9725
bb2aaded
DK
97262009-04-04 Dave Korn <dave.korn.cygwin@gmail.com>
9727
9728 * config.gcc (cygwin tm_file): Add cygwin-stdint.h.
9729 (cygwin tm clause use_gcc_stdint): Set to wrap.
9730 * config/i386/cygwin-stdint.h: New file.
9731
86290011
RG
97322009-04-04 Richard Guenther <rguenther@suse.de>
9733
9734 * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
9735 * tree-ssa-copy.c (init_copy_prop): Do not propagate through
9736 single-argument PHIs if we are in loop-closed SSA form.
9737 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
9738 for the pre-condition.
9739 (slpeel_tree_peel_loop_to_edge): Likewise.
9740 (vect_build_loop_niters): Take an optional sequence to append stmts.
9741 (vect_generate_tmps_on_preheader): Likewise.
9742 (vect_do_peeling_for_loop_bound): Take extra guards for the
9743 pre-condition.
9744 (vect_do_peeling_for_alignment): Adjust. Unconditionally apply
9745 the cost model check.
9746 (vect_loop_versioning): Take stmt and stmt list to put pre-condition
7a715bba 9747 guards if we are going to peel. Do not apply versioning in that case.
86290011
RG
9748 * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
9749 (vect_do_peeling_for_loop_bound): Likewise.
9750 * tree-vect-loop.c (vect_transform_loop): If we are peeling for
9751 loop bound only record extra pre-conditions, do not apply loop
9752 versioning.
9753
5eeeac64
RG
97542009-04-04 Richard Guenther <rguenther@suse.de>
9755
9756 * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
9757 renaming code.
9758
1ff7d06b
JH
97592009-04-04 Jan Hubicka <jh@suse.cz>
9760
9761 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
9762 last_basic_block for size of bb->index indexed array.
9763 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
9764 compute_out, link_btr_uses, build_btr_def_use_webs,
9765 build_btr_def_use_webs, migrate_btr_defs): Likewise.
9766
14925fcd
JH
97672009-04-04 Jan Hubicka <jh@suse.cz>
9768
9769 * except.c (remove_eh_handler_and_replace): Break out from ...
9770 (remove_eh_handler): ... here.
9771 (bring_to_root): New function.
9772 (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
9773 handled ones, bring others to root of tree.
9774
4e6d1743
JH
97752009-04-04 Jan Hubicka <jh@suse.cz>
9776
4cb735f7
JH
9777 * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
9778 (all_phis_safe_to_merge): New function.
9779 (update_info): New structure.
9780 (make_eh_edge_and_update_phi, update_eh_edges): New functions.
9781 (cleanup_empty_eh): Update SSA if possible.
4e6d1743 9782
c6803d43
RG
97832009-04-04 Richard Guenther <rguenther@suse.de>
9784
9785 * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
9786 * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
9787 (append_vuse): Likewise.
9788
54f5943c
JJ
97892009-04-04 Jakub Jelinek <jakub@redhat.com>
9790
9791 * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
9792 * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
9793 instead of REG_UNSAVED for DW_CFA_undefined.
9794 (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
9795 (uw_update_context): If RA column is REG_UNDEFINED, mark it as
9796 outermost frame.
9797
aad2bccb
RE
97982009-04-04 Richard Earnshaw <rearnsha@arm.com>
9799
9800 PR target/39501
9801 * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
9802 * testsuite/gcc.c-torture/execute/pr39501.c: New file.
9803 * testsuite/gcc.c-torture/execute/pr39501.x: New file.
9804
aa7069aa
RG
98052009-04-04 Richard Guenther <rguenther@suse.de>
9806
9807 PR tree-optimization/8781
9808 PR tree-optimization/37892
9809 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
9810 * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
9811 (valueize_refs): Call it for *& valueizations.
9812 (shared_reference_ops_from_ref): Rename to ...
9813 (valueize_shared_reference_ops_from_ref): ... this and valueize.
9814 (shared_reference_ops_from_call): Rename to ...
9815 (valueize_shared_reference_ops_from_call): ... this and valueize.
9816 (vn_reference_lookup): Update.
9817 (visit_reference_op_call): Likewise.
9818 * tree-ssa-pre.c (phi_translate_1): Fold *&.
9819 (eliminate): Value-replace the call address in call statements.
9820
cd15ad3e
RG
98212009-04-04 Richard Guenther <rguenther@suse.de>
9822
9823 PR tree-optimization/39636
9824 * tree-ssa-forwprop.c
9825 (forward_propagate_addr_into_variable_array_index): Check for
9826 GIMPLE_ASSIGN before accessing the rhs code.
9827
462f3262
JM
98282009-04-03 Jason Merrill <jason@redhat.com>
9829
9830 * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
9831
6adb807e
SE
98322009-04-03 Steve Ellcey <sje@cup.hp.com>
9833
9834 * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
9835 truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
9836 fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
9837 floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
9838 fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
9839 smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
9840 divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
9841 umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
9842 *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
9843 *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
9844 adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
9845 smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
9846 *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
9847 *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
9848 sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
9849 Use fr_reg_or_fp01_operand instead of fr_register_operand
9850
9851 * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
9852 recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
9853 divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
9854
174b3107
VM
98552009-04-03 Vladimir Makarov <vmakarov@redhat.com>
9856
b844e5d8
L
9857 PR rtl-optimization/39607
9858 PR rtl-optimization/39631
7a715bba
UB
9859
9860 Revert:
2ba9daa7 9861
174b3107
VM
9862 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
9863 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
9864 instead of DF_LR_OUT.
9865 * ira-lives.c (process_bb_node_lives): Ditto.
9866 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
9867 instead of DF_LR_{OUT,IN}.
9868 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
9869 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
9870
535b544a
SB
98712009-04-03 Steven Bosscher <steven@gcc.gnu.org>
9872
9873 * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
9874 (execute_lower_omp): Always run but take the short way out if -fopenmp
9875 is not given.
9876 (gate_lower_omp): Remove, forcing the pass manager to always run the
9877 pass and always set PROP_gimple_lomp.
9878 (pass_lower_omp): Remove gate function.
9879 * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
9880 PROP_trees. Instead, require it.
9881 * ipa-cp.c (pass_ipa_cp): Likewise.
9882 * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
9883 (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
9884 * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
9885 and PROP_gimple_leh.
9886
5006671f
RG
98872009-04-03 Richard Guenther <rguenther@suse.de>
9888
9889 PR middle-end/13146
9890 PR tree-optimization/23940
9891 PR tree-optimization/33237
9892 PR middle-end/33974
9893 PR middle-end/34093
9894 PR tree-optimization/36201
9895 PR tree-optimization/36230
9896 PR tree-optimization/38049
9897 PR tree-optimization/38207
9898 PR tree-optimization/38230
9899 PR tree-optimization/38301
9900 PR tree-optimization/38585
9901 PR middle-end/38895
9902 PR tree-optimization/38985
9903 PR tree-optimization/39299
9904 * tree-ssa-structalias.h: Remove.
9905 * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
9906 (NULL_DEF_OPERAND_P): Make of type def_operand_p.
9907 (struct vuse_element_d): Remove.
9908 (struct vuse_vec_d): Likewise.
9909 (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
9910 VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
9911 SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
9912 VUSE_ELEMENT_VAR): Likewise.
9913 (struct voptype_d): Likewise.
9914 (NUM_VOP_FREE_BUCKETS): Likewise.
9915 (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
9916 (struct stmt_operands_d): Remove.
9917 (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
9918 VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
9919 VDEF_NUM, VDEF_VECT): Likewise.
9920 (copy_virtual_operands): Remove.
9921 (operand_build_cmp): Likewise.
9922 (create_ssa_artificial_load_stmt): Likewise.
9923 (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
9924 (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
9925 vuse_index and mayuse_index members. Pack and move done and iter_type
9926 members to the front.
9927 (SSA_OP_VMAYUSE): Remove.
9928 (SSA_OP_VIRTUAL_USES): Adjust.
9929 (FOR_EACH_SSA_VDEF_OPERAND): Remove.
9930 (unlink_stmt_vdef): Declare.
9931 (add_to_addressable_set): Remove.
9932 * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
9933 (vrp_visit_stmt): Likewise.
9934 * doc/tree-ssa.texi (Alias analysis): Update.
9935 * doc/invoke.texi (max-aliased-vops): Remove docs.
9936 (avg-aliased-vops): Likewise.
9937 * tree-into-ssa.c (syms_to_rename): Remove.
9938 (need_to_update_vops_p): Likewise.
9939 (need_to_initialize_update_ssa_p): Rename to ...
9940 (update_ssa_initialized_fn): ... this. Track function we are
9941 initialized for.
9942 (symbol_marked_for_renaming): Simplify.
9943 (add_new_name_mapping): Do not set need_to_update_vops_p.
9944 (dump_currdefs): Use SYMS_TO_RENAME.
9945 (rewrite_update_stmt): Always walk all uses/defs.
9946 (dump_update_ssa): Adjust.
9947 (init_update_ssa): Take function argument. Track what we are
9948 initialized for.
9949 (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
9950 (create_new_def_for): Initialize for cfun, assert we are initialized
9951 for cfun.
9952 (mark_sym_for_renaming): Simplify.
9953 (mark_set_for_renaming): Do not initialize update-ssa.
9954 (need_ssa_update_p): Simplify. Take function argument.
9955 (name_mappings_registered_p): Assert we ask for the correct function.
9956 (name_registered_for_update_p): Likewise.
9957 (ssa_names_to_replace): Likewise.
9958 (release_ssa_name_after_update_ssa): Likewise.
9959 (update_ssa): Likewise. Use SYMS_TO_RENAME.
9960 (dump_decl_set): Do not print a newline.
9961 (debug_decl_set): Do it here.
9962 (dump_update_ssa): And here.
9963 * tree-ssa-loop-im.c (move_computations): Adjust.
9964 (movement_possibility): Likewise.
9965 (determine_max_movement): Likewise.
9966 (gather_mem_refs_stmt): Likewise.
9967 * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
9968 or NAME_MEMORY_TAG.
9969 * tree-complex.c (update_all_vops): Remove.
9970 (expand_complex_move): Adjust.
9971 * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
9972 Simplify test for memory referencing statement. Exclude
9973 non-invariant ADDR_EXPRs.
9974 * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
9975 * tree-loop-distribution.c (generate_memset_zero): Adjust.
9976 (rdg_flag_uses): Likewise.
9977 * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
9978 related code.
9979 (tree_optimize_tail_calls_1): Also split the
9980 edge from the entry block if we have degenerate PHI nodes in
9981 the first basic block.
9982 * tree.c (init_ttree): Remove memory-tag related code.
9983 (tree_code_size): Likewise.
9984 (tree_node_structure): Likewise.
9985 (build7_stat): Re-write to be build6_stat.
9986 * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
9987 (SSA_VAR_P): Adjust.
9988 (struct tree_memory_tag): Remove.
9989 (struct tree_memory_partition_tag): Likewise.
9990 (union tree_node): Adjust.
9991 (build7): Re-write to be build6.
9992 * tree-pass.h (pass_reset_cc_flags): Remove.
9993 (TODO_update_address_taken): New flag.
9994 (pass_simple_dse): Remove.
9995 * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
9996 * params.h (MAX_ALIASED_VOPS): Remove.
9997 (AVG_ALIASED_VOPS): Likewise.
9998 * omp-low.c (expand_omp_taskreg): Update SSA form.
9999 * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
10000 aliases the lhs in a copy stmt.
10001 * tree-ssa-dse.c (struct address_walk_data): Remove.
10002 (memory_ssa_name_same): Likewise.
10003 (memory_address_same): Likewise.
10004 (get_kill_of_stmt_lhs): Likewise.
10005 (dse_possible_dead_store_p): Simplify, use the oracle. Handle
10006 unused stores. Look through PHI nodes into post-dominated regions.
10007 (dse_optimize_stmt): Simplify. Properly remove stores.
10008 (tree_ssa_dse): Compute dominators.
10009 (execute_simple_dse): Remove.
10010 (pass_simple_dse): Likewise.
10011 * ipa-reference.c (scan_stmt_for_static_refs): Open-code
10012 gimple_loaded_syms and gimple_stored_syms computation.
10013 * toplev.c (dump_memory_report): Dump alias and pta stats.
10014 * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
10015 (vn_reference_eq): Likewise.
10016 (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
10017 copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
10018 valueize_vuses): Remove.
10019 (get_def_ref_stmt_vuses): Simplify. Rename to ...
10020 (get_def_ref_stmt_vuse): ... this.
10021 (vn_reference_lookup_2): New function.
10022 (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
10023 walking equivalent vuses. Simplify.
10024 (vn_reference_lookup): Likewise.
10025 (vn_reference_insert): Likewise.
10026 (vn_reference_insert_pieces): Likewise.
10027 (visit_reference_op_call): Simplify.
10028 (visit_reference_op_load): Likewise.
10029 (visit_reference_op_store): Likewise.
10030 (init_scc_vn): Remove shared_lookup_vuses initialization.
10031 (free_scc_vn): Remove shared_lookup_vuses freeing.
10032 (sort_vuses, sort_vuses_heap): Remove.
10033 (get_ref_from_reference_ops): Export.
10034 * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
10035 vector with single vuse pointer.
10036 (vn_reference_lookup_pieces, vn_reference_lookup,
10037 vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
10038 (shared_vuses_from_stmt): Remove.
10039 (get_ref_from_reference_ops): Declare.
10040 * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
10041 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
10042 memory-tag related code.
10043 * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
10044 (likely_value): Add comment, skip static-chain of call statements.
10045 (surely_varying_stmt_p): Adjust.
10046 (gimplify_and_update_call_from_tree): Likewise.
10047 (execute_fold_all_builtins): Do not rebuild alias info.
10048 (gimplify_and_update_call_from_tree): Properly update VOPs.
10049 * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
10050 (copy_ref_info): Remove memory-tag related code.
10051 * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
10052 * ipa-pure-const.c (check_decl): Remove memory-tag related code.
10053 (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
10054 computation.
10055 * tree-ssa-dom.c (gimple_p): Remove typedef.
10056 (eliminate_redundant_computations): Adjust.
10057 (record_equivalences_from_stmt): Likewise.
10058 (avail_expr_hash): Likewise.
10059 (avail_expr_eq): Likewise.
7a715bba 10060 * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
5006671f
RG
10061 (stmt_makes_single_load): Likewise.
10062 (stmt_makes_single_store): Likewise.
10063 * tree-ssa-alias.c: Rewrite completely.
10064 (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
10065 debug_mem_sym_stats, dump_mem_sym_stats_for_var,
10066 debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
10067 delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
10068 dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
10069 Remove public functions.
10070 (pass_reset_cc_flags): Remove.
10071 (pass_build_alias): Move ...
10072 * tree-ssa-structalias.c (pass_build_alias): ... here.
10073 * tree-ssa-alias.c (may_be_aliased): Move ...
10074 * tree-flow-inline.h (may_be_aliased): ... here.
10075 tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
10076 count_uses_and_derefs): Move ...
10077 * gimple.c: ... here.
10078 * gimple.h (count_uses_and_derefs): Declare.
10079 * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
10080 ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
10081 same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
10082 indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
10083 ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
10084 call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
10085 get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
10086 New functions.
10087 * tree-dfa.c (refs_may_alias_p): Move ...
10088 * tree-ssa-alias.c (refs_may_alias_p): ... here. Extend.
10089 * tree-ssa-alias.h: New file.
10090 * tree-ssa-sink.c (is_hidden_global_store): Adjust.
10091 (statement_sink_location): Likewise.
10092 * opts.c (decode_options): Do not adjust max-aliased-vops or
10093 avg-aliased-vops values.
10094 * timevar.def (TV_TREE_MAY_ALIAS): Remove.
10095 (TV_CALL_CLOBBER): Likewise.
10096 (TV_FLOW_SENSITIVE): Likewise.
10097 (TV_FLOW_INSENSITIVE): Likewise.
10098 (TV_MEMORY_PARTITIONING): Likewise.
10099 (TV_ALIAS_STMT_WALK): New timevar.
10100 * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
10101 * tree-ssa-address.c (create_mem_ref_raw): Use build6.
10102 (get_address_description): Remove memory-tag related code.
10103 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
10104 * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
10105 * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
10106 and immediate uses in statements. Document.
10107 * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
10108 (dump_symbols): Remove.
10109 (dump_gimple_mem_ops): Do not dump loaded or stored syms.
10110 * alias.c (get_deref_alias_set): New function split out from ...
10111 (get_alias_set): ... here.
10112 * alias.h (get_deref_alias_set): Declare.
10113 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
10114 type parameter. Remove restrict pointer handling. Create a
10115 ref-all pointer in case type-based alias sets do not conflict.
10116 (vect_analyze_data_refs): Remove SMT related code.
10117 * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
10118 (vectorizable_load): Likewise.
10119 * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
10120 (DR_SYMBOL_TAG, DR_VOPS): Remove.
10121 * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
10122 Ignore vops and SMTs.
10123 (dr_analyze_alias): Likewise..
10124 (free_data_ref): Likewise.
10125 (create_data_ref): Likewise.
10126 (analyze_all_data_dependences): Likewise.
10127 (get_references_in_stmt): Adjust.
10128 * tree-flow-inline.h (gimple_aliases_computed_p,
10129 gimple_addressable_vars, gimple_call_clobbered_vars,
10130 gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
10131 factoring_name_p, mark_call_clobbered, clear_call_clobbered,
10132 compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
10133 gimple_mem_ref_stats): Remove.
10134 (gimple_vop): New function.
10135 (op_iter_next_use): Remove vuses and mayuses cases.
10136 (op_iter_next_def): Remove vdefs case.
10137 (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
10138 (clear_and_done_ssa_iter): Do not set removed fields.
10139 (op_iter_init): Likewise. Skip vuse and/or vdef if requested.
10140 Assert we are not iterating over vuses or vdefs if not also
10141 iterating over uses or defs.
10142 (op_iter_init_use): Likewise.
10143 (op_iter_init_def): Likewise.
10144 (op_iter_next_vdef): Remove.
10145 (op_iter_next_mustdef): Likewise.
10146 (op_iter_init_vdef): Likewise.
10147 (compare_ssa_operands_equal): Likewise.
10148 (link_use_stmts_after): Handle vuse operand.
10149 (is_call_used): Use is_call_clobbered.
10150 (is_call_clobbered): Global variables are always call clobbered,
10151 query the call-clobbers bitmap.
10152 (mark_call_clobbered): Ignore global variables.
10153 (clear_call_clobbered): Likewise.
10154 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
10155 virtual operands sanity check.
10156 * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
10157 Remove.
10158 (TARGET_MEM_REF): Remove TMR_TAG operand.
10159 * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
10160 Remove call-clobber related code.
10161 (remove_referenced_var): Likewise. Do not clear mpt or symbol_mem_tag.
10162 (dump_variable): Do not dump SMTs, memory stats, may-aliases or
10163 partitions or escape reason.
10164 (get_single_def_stmt, get_single_def_stmt_from_phi,
10165 get_single_def_stmt_with_phi): Remove.
10166 (dump_referenced_vars): Tidy.
10167 (get_ref_base_and_extent): Allow bare decls.
10168 (collect_dfa_stats): Adjust.
10169 * graphite.c (rename_variables_in_stmt): Adjust.
10170 (graphite_copy_stmts_from_block): Likewise.
10171 (translate_clast): Likewise.
10172 * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
10173 (EXPR_DIES): New.
10174 (translate_vuse_through_block): Use the oracle.
10175 (phi_translate_1): Adjust.
10176 (value_dies_in_block_x): Use the oracle. Cache the outcome
10177 in EXPR_DIES.
10178 (valid_in_sets): Check if the VUSE for
10179 a REFERENCE is available.
10180 (eliminate): Do not remove stmts during elimination,
10181 instead queue and remove them afterwards.
10182 (do_pre): Do not rebuild alias info.
10183 (pass_pre): Run TODO_rebuild_alias before PRE.
10184 * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
10185 * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
10186 (mark_all_v_defs_stmt): Remove.
10187 (mark_all_v_defs_seq): Adjust.
10188 (sra_replace): Likewise.
10189 (scalarize_use): Likewise.
10190 (scalarize_copy): Likewise.
10191 (scalarize_init): Likewise.
10192 (scalarize_ldst): Likewise.
10193 (todoflags): Remove.
10194 (tree_sra): Do not rebuild alias info.
10195 (tree_sra_early): Adjust.
10196 (pass_sra): Run TODO_update_address_taken before SRA.
10197 * tree-predcom.c (set_alias_info): Remove.
10198 (prepare_initializers_chain): Do not call it.
10199 (mark_virtual_ops_for_renaming): Adjust.
10200 (mark_virtual_ops_for_renaming_list): Remove.
10201 (initialize_root_vars): Adjust.
10202 (initialize_root_vars_lm): Likewise.
10203 (prepare_initializers_chain): Likewise.
10204 * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
10205 (may_propagate_copy_into_stmt): Likewise.
10206 (merge_alias_info): Do nothing for now.
10207 (propagate_tree_value_into_stmt): Adjust.
10208 (stmt_may_generate_copy): Likewise.
10209 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
10210 not mark symbols for renaming.
10211 (forward_propagate_addr_expr): Match up push/pop_stmt_changes
10212 with the same statement, make sure to update the new pointed-to one.
10213 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
10214 call statements, do not mark symbols for renaming.
10215 (mark_operand_necessary): Dump something.
10216 (ref_may_be_aliased): New function.
10217 (mark_aliased_reaching_defs_necessary_1): New helper function.
10218 (mark_aliased_reaching_defs_necessary): Likewise.
10219 (mark_all_reaching_defs_necessary_1): Likewise.
10220 (mark_all_reaching_defs_necessary): Likewise.
10221 (propagate_necessity): Do not process virtual PHIs. For
10222 non-aliased loads mark all reaching definitions as necessary.
10223 For aliased loads and stores mark the immediate dominating
10224 aliased clobbers as necessary.
10225 (visited): New global static.
10226 (perform_tree_ssa_dce): Free visited bitmap after propagating
10227 necessity.
10228 (remove_dead_phis): Perform simple dead virtual PHI removal.
10229 (remove_dead_stmt): Properly unlink virtual operands when
10230 removing stores.
10231 (eliminate_unnecessary_stmts): Schedule PHI removal after
10232 stmt removal.
10233 * tree-ssa-ter.c (is_replaceable_p): Adjust.
10234 (process_replaceable): Likewise.
10235 (find_replaceable_in_bb): Likewise.
10236 * tree-ssa.c (verify_ssa_name): Verify all VOPs are
10237 based on the single gimple vop.
10238 (verify_flow_insensitive_alias_info): Remove.
10239 (verify_flow_sensitive_alias_info): Likewise.
10240 (verify_call_clobbering): Likewise.
10241 (verify_memory_partitions): Likewise.
10242 (verify_alias_info): Likewise.
10243 (verify_ssa): Adjust..
10244 (execute_update_addresses_taken): Export. Update SSA
10245 manually. Optimize only when optimizing. Use a local bitmap.
10246 (pass_update_address_taken): Remove TODO_update_ssa, add
10247 TODO_dump_func.
10248 (pass_update_address_taken): Just use TODO_update_address_taken.
10249 (init_tree_ssa): Do not initialize addressable_vars.
10250 (verify_ssa): Verify new VUSE / VDEF properties.
10251 Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
10252 Do not call verify_alias_info.
10253 (delete_tree_ssa): Clear the VUSE, VDEF operands.
10254 Do not free the loaded and stored syms bitmaps. Reset the escaped
10255 and callused solutions. Do not free addressable_vars.
10256 Remove memory-tag related code.
10257 (warn_uninitialized_var): Aliases are always available.
10258 * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
10259 * lambda-code.c (can_put_in_inner_loop): Adjust.
10260 (can_put_after_inner_loop): Likewise.
10261 (perfect_nestify): Likewise.
10262 * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
10263 (vect_gen_widened_results_half): Remove CALL_EXPR handling.
10264 (vectorizable_conversion): Do not mark symbols for renaming.
10265 * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
10266 (expand_call_inline): Unlink the calls virtual operands before
10267 replacing it.
10268 (tree_function_versioning): Do not call update_ssa if we are not
10269 updating clones. Simplify.
10270 * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
10271 (propagate_with_phi): Likewise..
10272 * tree-outof-ssa.c (create_temp): Remove memory tag and call
10273 clobber code. Assert we are not aliased or global.
10274 * tree-flow.h: Include tree-ssa-alias.h
10275 (enum escape_type): Remove.
10276 (struct mem_sym_stats_d): Likewise.
10277 (struct mem_ref_stats_d): Likewise.
10278 (struct gimple_df): Add vop member. Remove global_var,
10279 call_clobbered_vars, call_used_vars, addressable_vars,
10280 aliases_compted_p and mem_ref_stats members. Add syms_to_rename,
10281 escaped and callused members.
10282 (struct ptr_info_def): Remove all members, add points-to solution
10283 member pt.
10284 (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
10285 call_clobbered, escape_mask, mpt and symbol_mem_tag members.
10286 * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
10287 (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
10288 (tree-ssa-alias.o): Likewise.
10289 (toplev.o): Add tree-ssa-alias.h
10290 (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
10291 * gimple.c (gimple_set_bb): Fix off-by-one error.
10292 (is_gimple_reg): Do not handle memory tags.
10293 (gimple_copy): Also copy virtual operands.
10294 Delay updating the statement. Do not reset loaded and stored syms.
10295 (gimple_set_stored_syms): Remove.
10296 (gimple_set_loaded_syms): Likewise.
10297 (gimple_call_copy_skip_args): Copy the virtual operands
10298 and mark the new statement modified.
10299 * tree-ssa-structalias.c (may_alias_p): Remove.
10300 (set_uids_in_ptset): Take the alias set to prune with as
10301 parameter. Fold in the alias test of may_alias_p.
10302 (compute_points_to_sets): Compute whether a ptr is dereferenced
10303 in a local sbitmap.
10304 (process_constraint): Deal with &ANYTHING on the lhs, reject all
10305 other ADDRESSOF constraints on the lhs.
10306 (get_constraint_for_component_ref): Assert that we don't get
10307 ADDRESSOF constraints from the base of the reference.
10308 Properly generate UNKNOWN_OFFSET for DEREF if needed.
10309 (struct variable_info): Remove collapsed_to member.
10310 (get_varinfo_fc): Remove.
10311 (new_var_info): Do not set collapsed_to.
10312 (dump_constraint): Do not follow cycles.
10313 (dump_constraint_graph): Likewise.
10314 (build_pred_graph): Likewise.
10315 (build_succ_graph): Likewise.
10316 (rewrite_constraints): Likewise.
10317 (do_simple_structure_copy): Remove.
10318 (do_rhs_deref_structure_copy): Remove.
10319 (do_lhs_deref_structure_copy): Remove.
10320 (collapse_rest_of_var): Remove.
10321 (do_structure_copy): Re-implement.
10322 (pta_stats): New global variable.
10323 (dump_pta_stats): New function.
10324 (struct constraint_expr): Make offset signed.
10325 (UNKNOWN_OFFSET): Define special value.
10326 (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
10327 (solution_set_expand): New helper function split out from ...
10328 (do_sd_constraint): ... here.
10329 (solution_set_add): Handle UNKNOWN_OFFSET. Handle negative offsets.
10330 (do_ds_constraint): Likewise.
10331 (do_sd_constraint): Likewise. Do not special-case ESCAPED = *ESCAPED
10332 and CALLUSED = *CALLUSED.
10333 (set_union_with_increment): Make inc argument signed.
10334 (type_safe): Remove.
10335 (get_constraint_for_ptr_offset): Handle unknown and negative
10336 constant offsets.
10337 (first_vi_for_offset): Handle offsets before start. Bail
10338 out early for offsets beyond the variable extent.
10339 (first_or_preceding_vi_for_offset): New function.
10340 (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
10341 Together with ESCAPED = *ESCAPED this properly computes reachability.
10342 (find_what_var_points_to): New function.
10343 (find_what_p_points_to): Implement in terms of find_what_var_points_to.
10344 (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
10345 pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
10346 pt_solutions_intersect): New functions.
10347 (compute_call_used_vars): Remove.
10348 (compute_may_aliases): New main entry into PTA computation.
10349 * gimple.h (gimple_p): New typedef.
10350 (struct gimple_statement_base): Remove references_memory_p.
10351 (struct gimple_statement_with_memory_ops_base): Remove
10352 vdef_ops, vuse_ops, stores and loads members. Add vdef and vuse
10353 members.
10354 (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
10355 gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
10356 gimple_set_references_memory): Remove.
10357 (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
10358 gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
10359 New functions.
10360 * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
10361 (verify_expr): Allow RESULT_DECL.
10362 (gimple_duplicate_bb): Do not copy virtual operands.
10363 (gimple_duplicate_sese_region): Adjust.
10364 (gimple_duplicate_sese_tail): Likewise.
10365 (mark_virtual_ops_in_region): Remove.
10366 (move_sese_region_to_fn): Do not call it.
10367 * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
10368 and pass_simple_dse.
10369 (execute_function_todo): Handle TODO_update_address_taken,
10370 call execute_update_addresses_taken for TODO_rebuild_alias.
10371 (execute_todo): Adjust.
10372 (execute_one_pass): Init dump files early.
10373 * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
10374 call-clobbered.
10375 (create_general_new_stmt): Clear vops.
10376 * tree-ssa-reassoc.c (get_rank): Adjust.
10377 * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
10378 symbols for renaming.
10379 * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
10380 (PARAM_AVG_ALIASED_VOPS): Likewise.
10381 * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
10382 (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
7a715bba 10383 * tree-ssa-operands.c: Simplify for new virtual operand representation.
5006671f
RG
10384 (operand_build_cmp, copy_virtual_operands,
10385 create_ssa_artificial_load_stmt, add_to_addressable_set,
10386 gimple_add_to_addresses_taken): Remove public functions.
10387 (unlink_stmt_vdef): New function.
10388
457d1d00
AM
103892009-04-03 Alan Modra <amodra@bigpond.net.au>
10390
10391 * config.gcc (powerpc-*-linux*): Merge variants.
10392
e19da24c 103932009-04-02 Chao-ying Fu <fu@mips.com>
60839f5d 10394 James Grosbach <james.grosbach@microchip.com>
e19da24c
CF
10395
10396 * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
10397 num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
10398 cop0_sp_offset.
10399 (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
10400 keep_interrupts_masked_p, use_debug_exception_return_p.
10401 (mips_attribute_table): Add interrupt, use_shadow_register_set,
10402 keep_interrupts_masked, use_debug_exception_return.
10403 (mips_interrupt_type_p, mips_use_shadow_register_set_p,
10404 mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
10405 New functions.
10406 (mips_function_ok_for_sibcall): Return false for interrupt handlers.
10407 (mips_print_operand): Process COP0 registers to print $0 .. $31
10408 correctly for GAS to process.
10409 (mips_interrupt_extra_call_saved_reg_p): New function.
10410 (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
10411 extra registers.
10412 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
10413 (mips_compute_frame_info): Add supports for interrupt context that
10414 includes doubleword accumulators and COP0 registers.
10415 (mips_for_each_saved_acc): New function.
10416 (mips_for_each_saved_gpr_and_fpr): Change the function name from
10417 mips_for_each_saved_reg.
10418 (mips_save_reg): Save accumulators.
10419 (mips_kernel_reg_p): A new for_each_rtx callback.
10420 (mips_expand_prologue): Support interrupt handlers.
10421 (mips_restore_reg): Restore accumulators.
10422 (mips_expand_epilogue): Support interrupt handlers.
10423 (mips_can_use_return_insn): Return false for interrupt handlers.
10424 (mips_epilogue_uses): New function.
10425 * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
10426 UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
10427 (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
10428 cop0_move): New instructions.
10429 * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
10430 * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
10431 defines.
10432 (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
10433 New defines.
10434 (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
10435 (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
10436 interrupt handlers, we use K0 as the temporary register.
10437 (EPILOGUE_USES): Change to a function call.
10438 * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
10439 handlers, we use K0 as the temporary register.
2ba9daa7 10440
e19da24c
CF
10441 * doc/extend.texi (Function Attributes): Document interrupt,
10442 use_shadow_register_set, keep_interrupts_masked,
10443 use_debug_exception_return for MIPS attributes.
10444
aa1ca044
AM
104452009-04-03 Alan Modra <amodra@bigpond.net.au>
10446
10447 * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
10448 Remove a number of t-files from tmake_file.
10449 * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
10450 * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
10451 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
10452 target_prototype, not TARGET_PROTOTYPE.
10453 (LINK_OS_GNU_SPEC): Define.
10454 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
10455 and darwin-ldoubdle.c.
10456
14fdc613
MM
104572009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
10458
10459 PR driver/39293
10460 * gcc.c (save_temps_flag): Add support for -save-temps=obj.
10461 (cpp_options): Ditto.
10462 (default_compilers): Ditto.
10463 (display_help): Ditto.
10464 (process_command): Ditto.
10465 (do_spec_1): Ditto.
10466 (set_input): Use lbasename instead of duplicate code.
10467 (save_temps_prefix): New static for -save-temps=obj.
10468 (save_temps_length): Ditto.
2ba9daa7 10469
14fdc613
MM
10470 * doc/invoke.texi (-save-temps=obj): Document new variant to
10471 -save-temps switch.
10472
d3aa398e
JL
104732009-04-02 Jeff Law <law@redhat.com>
10474
10475 * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
10476 variable.
10477
83f0ccb8
L
104782009-04-02 H.J. Lu <hongjiu.lu@intel.com>
10479
10480 * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
10481 * configure: Regenerated.
10482
dcb6e951
RAE
104832009-04-02 Rafael Avila de Espindola <espindola@google.com>
10484
10485 * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
10486 share the argument list.
10487
d85478c2
RAE
104882009-04-02 Rafael Avila de Espindola <espindola@google.com>
10489
10490 Merge
10491
10492 2009-02-12 Diego Novillo <dnovillo@google.com>
10493
83f0ccb8
L
10494 * varpool.c (debug_varpool): New.
10495 * cgraph.h (debug_varpool): Declare.
d85478c2 10496
34f42a49
JH
104972009-04-02 Jan Hubicka <jh@suse.cz>
10498
10499 * passes.c (init_optimization_passes): Remove two copies of ehcleanup
10500 pass.
10501
a4747b4a
L
105022009-04-02 H.J. Lu <hongjiu.lu@intel.com>
10503
10504 * config/i386/i386.c (ix86_abi): Move initialization to ...
10505 (override_options): Here.
10506
63a9de54
CB
105072009-04-02 Christian Bruel <christian.bruel@st.com>
10508
10509 * config/sh/sh.c (sh_dwarf_register_span): New function.
10510 (TARGET_DWARF_REGISTER_SPAN): Define.
10511 * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
2ba9daa7 10512
2f0fa28e
IR
105132009-04-02 Ira Rosen <irar@il.ibm.com>
10514
10515 PR tree-optimization/39595
2ba9daa7 10516 * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
2f0fa28e
IR
10517 interleaved loads group is not greater than the SLP group size.
10518
bbf7ce11
RAE
105192009-04-02 Rafael Avila de Espindola <espindola@google.com>
10520
10521 * builtins.c (is_builtin_name): New.
10522 (called_as_built_in): Use is_builtin_name.
10523 * tree.h (is_builtin_name): New.
10524 * varasm.c (incorporeal_function_p): Use is_builtin_name
10525
47e4dfcf
AS
105262009-04-02 Andrew Stubbs <ams@codesourcery.com>
10527
10528 * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
10529
d0940d56
DS
105302009-04-02 Dodji Seketeli <dodji@redhat.com>
10531
10532 PR c++/26693
532bfb0a 10533 * c-decl.c (clone_underlying_type): Move this ...
d0940d56
DS
10534 * c-common.c (set_underlying_type): ... here.
10535 Also, make sure the function properly sets TYPE_STUB_DECL() on
10536 the newly created typedef variant type.
10537 * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
7a715bba
UB
10538 * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
10539 points.
d0940d56 10540
bf1cbdc6
RG
105412009-04-02 Richard Guenther <rguenther@suse.de>
10542
10543 PR tree-optimization/37221
10544 * tree-flow.h (degenerate_phi_result): Declare.
10545 * tree-ssa-dom.c (degenerate_phi_result): Export.
10546 * tree-scalar-evolution.c (analyze_initial_condition): If
10547 the initial condition is defined by a degenerate PHI node
10548 use the degenerate value.
10549
87cfb32c
EB
105502009-04-01 Eric Botcazou <ebotcazou@adacore.com>
10551
10552 PR rtl-optimization/39588
10553 * combine.c (merge_outer_ops): Do not set the constant when this
10554 is not necessary.
10555 (simplify_shift_const_1): Do not modify it either in this case.
10556
bbb6eae8
SB
105572009-04-01 Steven Bosscher <steven@gcc.gnu.org>
10558
10559 * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
10560 tuning is deprecated if -mtune value is set to an Itanium1 variant.
10561
839a3b8a
JJ
105622009-04-01 Janis Johnson <janis187@us.ibm.com>
10563
10564 PR c/29027
10565 * c-lex.c (interpret_float): Default (no suffix) is double.
10566
667e8acb
XDL
105672009-04-1 Xinliang David Li <davidxl@google.com>
10568
10569 * config/i386/i386.c (legitimate_constant_p): Recognize
10570 all one vector constant.
10571
60839f5d 105722009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10573
60839f5d 10574 * config/vax/vax.c: Add #includes to silence warnings.
c4e75102
MT
10575 Change #include order to silence two warnings.
10576
60839f5d 105772009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10578
60839f5d 10579 * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
c4e75102
MT
10580 (ASM_SPEC): Pass -k to the assembler for PIC code.
10581
60839f5d 105822009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10583
60839f5d
EB
10584 * config.gcc: Add vax-*-linux* to the switch.
10585 * config/vax/linux.h: New file. (TARGET_VERSION,
c4e75102
MT
10586 TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
10587
60839f5d 105882009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10589
60839f5d 10590 * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
c4e75102 10591 Use predicate macros instead of GET_CODE() == foo.
60839f5d 10592 * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
c4e75102
MT
10593 ashlsi3, rotrsi3, <unnamed>): Likewise.
10594
60839f5d 105952009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10596
60839f5d 10597 * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
c4e75102 10598 jbbccihi, jbbccisi): Remova trailing whitespace.
60839f5d
EB
10599 * config/vax/constraints.md: Likewise.
10600 * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
10601 * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
10602 * config/vax/predicates.md: Likewise.
10603 * config/vax/vax.c (print_operand_address, vax_output_int_move,
c4e75102 10604 vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
60839f5d
EB
10605 * config/vax/vax.h: Likewise.
10606 * config/vax/vax.md (nonlocal_goto): Likewise.
c4e75102 10607
60839f5d 106082009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10609
60839f5d 10610 * config/vax/vax.c (vax_float_literal, vax_output_int_move)
c4e75102
MT
10611 (indirectable_address_p, adjacent_operands_p): Add spaces around
10612 braces.
60839f5d 10613 * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
c4e75102 10614
60839f5d 106152009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10616
60839f5d 10617 * config/vax/vax.c (legitimate_constant_address_p,
c4e75102
MT
10618 legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
10619 index_term_p, reg_plus_index_p, legitimate_address_p,
10620 vax_mode_dependent_address_p): Update comments to match functions
10621 modified by the recent int->bool conversion.
10622
60839f5d 106232009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10624
60839f5d
EB
10625 * config/vax/builtins.md: Update copyright message.
10626 * config/vax/constraints.md: Likewise.
10627 * config/vax/netbsd-elf.h: Likewise.
10628 * config/vax/predicates.md: Likewise.
10629 * config/vax/vax-protos.h: Likewise.
10630 * config/vax/vax.c: Likewise.
10631 * config/vax/vax.h: Likewise.
10632 * config/vax/vax.md: Likewise.
10633 * config/vax/vax.opt: Likewise.
c4e75102 10634
60839f5d 106352009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10636
60839f5d 10637 * config/vax/builtins.md (ffssi2, ffssi2_internal,
c4e75102 10638 sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
60839f5d
EB
10639 * config/vax/constraints.md (B, R): Likewise.
10640 * config/vax/predicates.md (external_memory_operand,
c4e75102 10641 nonimmediate_addsub_di_operand): Likewise.
60839f5d
EB
10642 * config/vax/vax.c (vax_output_int_add): Likewise.
10643 * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
c4e75102
MT
10644 untyped_call): Likewise.
10645
60839f5d 106462009-04-01 Matt Thomas <matt@3am-software.com>
c4e75102 10647
7a715bba
UB
10648 * config/vax/predicates.md: New file.
10649 (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
c4e75102
MT
10650 external_const_operand, nonsymbolic_operand, external_memory_operand,
10651 indirect_memory_operand, indexed_memory_operand,
10652 illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
10653 nonimmediate_addsub_di_operand, general_addsub_di_operand): New
10654 predicate.
7a715bba
UB
10655 * config/vax/constraints.md: New file.
10656 (Z0, U06, U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
10657 New constraint.
10658 * config/vax/builtins.md: New file.
10659 (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
10660 jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
10661 jbbccisi): Define.
c4e75102
MT
10662 * config/vax/vax.opt (mqmath): Add option.
10663 * config/vax/vax.md (isfx): Extend with DI.
10664 (VAXintQH, VAXintQHSD): Define.
10665 (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
10666 mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
10667 and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
10668 one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
10669 (movdi): Update constraints and use vax_output_int_move().
10670 (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
10671 movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
10672 pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
10673 nonlocal_goto): New.
10674 (mov<mode>): Extend accepted operand types.
10675 (subdi3_old): Rename from subdi3, change update constraints and use
10676 a new implementation.
60839f5d 10677 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
c4e75102
MT
10678 (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
10679 MOVE_RATIO, CLEAR_RATIO): Define.
10680 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
10681 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
10682 (PRINT_OPERAND): Redefine using a function instead of inlined code.
60839f5d 10683 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
c4e75102
MT
10684 (split_quadword_operands): Make static and really allow variable
10685 splitting.
10686 (print_operand_address): Update for PIC generation.
10687 (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
10688 indexable_address_p, fixup_mathdi_operand,
10689 vax_expand_addsub_di_operands, adjacent_operands_p): New.
10690 (vax_float_literal, legitimate_constant_p,
10691 indirectable_constant_address_p, index_term_p,
10692 reg_plus_index_p): Return bool instead of int.
10693 (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
10694 where needed.
10695 (vax_output_int_move, vax_output_int_add): Extend to allow PIC
10696 generation.
10697 (vax_output_conditional_branch): Indent.
10698 (legitimate_constant_address_p, indirectable_constant_address_p,
10699 indirectable_address_p, nonindexed_address_p, legitimate_address_p,
10700 vax_mode_dependent_address_p): Return bool instead of int, update for
10701 PIC generation.
10702 * config/vax/vax-protos.h (legitimate_constant_address_p,
10703 legitimate_constant_p, legitimate_address_p,
10704 vax_mode_dependent_address_p): Change declaration to bool.
10705 (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
10706 vax_expand_addsub_di_operands, vax_output_int_subtract,
10707 vax_output_movmemsi): Declare.
10708 (split_quadword_operands, vax_float_literal): Delete declaration.
10709 * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
10710 * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
10711 VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
10712 ASM_OUTPUT_DWARF_PCREL): Define.
10713 (ASM_SPEC): Change definition to allow PIC generation.
10714
9332c6eb
L
107152009-04-01 Steve Ellcey <sje@cup.hp.com>
10716
10717 * doc/sourcebuild.texi: Update front-end requirements.
10718
d93e052c
JJ
107192009-04-01 Jakub Jelinek <jakub@redhat.com>
10720
10721 PR target/39226
10722 * config/rs6000/rs6000.md (andsi3_internal5_nomc,
10723 anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
10724 (booldi3_internal3): Use boolean_or_operator instead of
10725 boolean_operator.
10726
6ccb2a4a
JM
107272009-04-01 Joseph Myers <joseph@codesourcery.com>
10728
10729 PR c/39605
10730 * c-decl.c (grokdeclarator): Pedwarn for file-scope array
10731 declarator whose size is not an integer constant expression but
10732 folds to an integer constant, then treat it as a constant
10733 subsequently.
10734
299b87f8
RG
107352009-04-01 Richard Guenther <rguenther@suse.de>
10736
10737 * fold-const.c (fold_plusminus_mult_expr): Do not fold
10738 i * 4 + 2 to (i * 2 + 1) * 2.
10739
b85eb797
JJ
107402009-04-01 Jakub Jelinek <jakub@redhat.com>
10741
10742 PR c/37772
10743 * c-parser.c (c_parser_asm_statement): Skip until close paren and
10744 return if c_parser_asm_string_literal returned NULL.
10745
235e1fe8
NC
107462009-04-01 Nick Clifton <nickc@redhat.com>
10747
10748 * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
10749 already defined.
10750 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
10751 * config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the
10752 other typedefs to avoid conflicts with libgcc2.c. Define labels
10753 to gain 16-bit bit-manipulation functions from libgcc2.c and then
10754 include it.
10755 * config/m32c/m32c-lib2-trapv.c: New file. Define labels
10756 to gain 16-bit trapping arithmetic functions from libgcc2.c and
10757 then include it.
10758
d6868399
RAE
107592009-04-01 Rafael Avila de Espindola <espindola@google.com>
10760
7a715bba
UB
10761 * varasm.c (default_function_rodata_section): Declare DOT as
10762 const char*.
d6868399 10763
73d21f56 107642009-04-01 Kai Tietz <kai.tietz@onevision.com>
60839f5d 10765 Andrey Galkin <agalkin@hypercom.com>
73d21f56
KT
10766
10767 PR/39492
10768 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
10769 Make object_name unique for each process.
10770
03742a9b
JJ
107712009-04-01 Jakub Jelinek <jakub@redhat.com>
10772
10773 PR other/39591
10774 * omp-low.c (remove_exit_barrier): Don't optimize if there are any
10775 addressable variables in the parallel that could go out of scope while
10776 running queued tasks.
10777
4223ff5f
AS
107782009-04-01 Anatoly Sokolov <aesok@post.ru>
10779
10780 * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
10781 (CASE_VALUES_THRESHOLD): Redefine.
10782 * config/avr/avr.c (avr_override_options): Remove initialization of
10783 avr_case_values_threshold variable.
10784 (avr_case_values_threshold): Remove variable. Add new function.
10785 * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
10786 * config/avr/avr.opt (mno-tablejump): Remove option.
10787 * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
10788
e893f6f3
DD
107892009-04-01 DJ Delorie <dj@redhat.com>
10790
10791 * varasm.c (default_function_rodata_section): Don't assume
10792 anything about where the first '.' in the section name is.
10793
b246d100
AM
107942009-04-01 Alan Modra <amodra@bigpond.net.au>
10795
10796 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
10797 rs6000_emit_stack_tie.
10798
d3e37a9e
ILT
107992009-03-31 Ian Lance Taylor <iant@google.com>
10800
10801 * tree-eh.c (tree_remove_unreachable_handlers): Compare
10802 gimple_code with GIMPLE_RESX, not RESX.
10803
c1b61fca
JM
108042009-03-31 Joseph Myers <joseph@codesourcery.com>
10805
10806 * c-common.c (c_get_ident): New.
7a715bba 10807 (c_common_nodes_and_builtins): Call it for type names that may be NULL.
c1b61fca 10808
c2d2ad48
BE
108092009-04-01 Ben Elliston <bje@au.ibm.com>
10810
10811 * config/rs6000/sysv4.opt (msdata): Improve option description.
10812
13d1a6e7
SE
108132009-03-31 Steve Ellcey <sje@cup.hp.com>
10814
10815 * config/ia64/ia64.md (divsf3_internal_lat): Remove.
10816 (divdf3_internal_lat): Remove.
10817 (divxf3_internal_lat): Remove.
10818 (divxf3_internal_thr): Remove.
10819 (divxf): Use divxf3_internal.
10820 * config/ia64/div.md (divsf3_internal_lat): New.
10821 (divdf3_internal_lat): New.
10822 (divxf3_internal): New.
10823
207bf79d
JM
108242009-03-31 Joseph Myers <joseph@codesourcery.com>
10825
10826 PR c/448
10827 * Makefile.in (USE_GCC_STDINT): Define.
10828 (stmp-int-hdrs): Install stdint.h if applicable.
10829 * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
10830 if known.
10831 (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
10832 (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
10833 UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
10834 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
10835 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
10836 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
10837 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
10838 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
10839 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
10840 (c_common_nodes_and_builtins): Initialize
10841 underlying_wchar_type_node. Do not initialize
10842 signed_wchar_type_node or unsigned_wchar_type_node. Initialize
10843 nodes for new types.
10844 (c_stddef_cpp_builtins): Define macros for new types.
10845 * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
10846 Remove.
10847 (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
10848 CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
10849 CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
10850 CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
10851 CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
10852 CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
10853 CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
10854 CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
10855 CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
10856 (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
10857 (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
10858 int16_type_node, int32_type_node, int64_type_node,
10859 uint8_type_node, uint16_type_node, c_uint32_type_node,
10860 c_uint64_type_node, int_least8_type_node, int_least16_type_node,
10861 int_least32_type_node, int_least64_type_node,
10862 uint_least8_type_node, uint_least16_type_node,
10863 uint_least32_type_node, uint_least64_type_node,
10864 int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
10865 int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
10866 uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
10867 uintptr_type_node): Define.
10868 * c-cppbuiltin.c (builtin_define_constants,
10869 builtin_define_type_minmax): New.
10870 (builtin_define_stdint_macros): Define more macros.
10871 (c_cpp_builtins): Define more limit macros.
10872 (type_suffix): New.
10873 (builtin_define_type_max): Define in terms of
10874 builtin_define_type_minmax. Remove is_long parameter. All
10875 callers changed.
10876 * config.gcc (use_gcc_stdint): Define.
10877 (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
10878 Add newlib-stdint.h for generic targets.
10879 * config/glibc-stdint.h, config/newlib-stdint.h,
10880 ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
10881 * config/m32c/m32c.h (UINTPTR_TYPE): Define.
10882 * config/score/score.h (UINTPTR_TYPE): Define.
10883 * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
10884 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
10885 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
10886 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
10887 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
10888 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
10889 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
10890 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
10891 * config/spu/spu.h (STDINT_LONG32): Define.
10892 * configure.ac (use_gcc_stdint): Substitute.
10893 * configure: Regenerate.
10894 * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
10895 __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
10896 __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
10897 __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
10898 __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
10899 __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
10900 __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
10901 __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
10902 __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
10903 __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
10904 __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
10905 __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
10906 __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
10907 __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
10908 __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
10909 __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
10910 __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
10911 __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
10912 __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
10913 __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
10914 __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
10915 * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
10916 INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
10917 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
10918 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
10919 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
10920 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
10921 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
10922 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
10923
ed853664
BS
109242009-03-31 Bernd Schmidt <bernd.schmidt@analog.com>
10925
10926 * loop-iv.c (suitable_set_for_replacement): Renamed from
10927 simplify_using_assignment; changed to return bool and to accept new
10928 args DEST and SRC. Return true iff we find a source/destination pair
10929 that can be used to make a replacement, and fill SRC and DEST if so.
10930 Remove arg ALTERED. Don't deal with altered regs here. All callers
10931 changed.
10932 (simplify_using_initial_values): Deal with altered regs here and track
10933 more precisely the effect they have on the validity of our expression.
10934
1569e190
BS
10935 * loop-iv.c (simplify_using_condition): A condition of the form
10936 (EQ REG CONST) can be used to simply make a substitution.
10937 (simplify_using_initial_values): Keep track of conditions we have seen
10938 and keep using them to simplify new expressions, while applying the
10939 same substitutions to them as to the expression.
10940
1d1eb80c
BS
10941 * simplify-rtx.c (simplify_relational_operation_1): Simplify
10942 (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
10943 GEU/LTU reversed.
10944
28af33b0
BS
10945 * loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers
10946 changed. Use this when trying to improve the upper bound.
10947 Generate the comparison by using simplify_gen_relational.
10948
b30321cd
BS
10949 * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
10950
60081874
BS
10951 * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
10952 functions.
2ba9daa7 10953 (simplify_using_assignment, simplify_using_initial_values): Call
60081874
BS
10954 replace_in_expr to make replacements. Call replace_single_def_regs
10955 once on the initial version of the expression.
10956
bebc6e07
RR
109572009-03-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10958
fcb82ab0 10959 PR target/27237
bebc6e07 10960 * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
2ba9daa7 10961
6b12efe9
RG
109622009-03-31 Richard Guenther <rguenther@suse.de>
10963
10964 PR middle-end/31029
10965 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
10966 equality comparisons. Fold C - X CMP X if C % 2 == 1.
10967
108f6c2f
RG
109682009-03-31 Richard Guenther <rguenther@suse.de>
10969
10970 * tree.h (div_if_zero_remainder): Declare.
10971 * fold-const.c (div_if_zero_remainder): Export.
10972 * tree-ssa-forwprop.c
10973 (forward_propagate_addr_into_variable_array_index): Handle
10974 constant array index addition outside of the variable index.
10975
8f612190
JM
109762009-03-31 Joseph Myers <joseph@codesourcery.com>
10977
10978 PR target/39592
10979 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
10980 define_splits, floatunssi<mode>2): Require x87 conversions from
10981 DImode to be permitted.
10982
47580d22
JM
109832009-03-31 Joseph Myers <joseph@codesourcery.com>
10984
10985 PR preprocessor/15638
10986 * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
10987
ba4d8f9d
RG
109882009-03-31 Richard Guenther <rguenther@suse.de>
10989
10990 PR middle-end/23401
10991 PR middle-end/27810
10992 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
10993 (struct tree_decl_with_vis): Remove gimple_formal_temp member.
10994 * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
10995 a separate statement.
10996 * gimplify.c (pop_gimplify_context): Remove formal temp handling.
10997 (lookup_tmp_var): Likewise.
10998 (is_gimple_formal_tmp_or_call_rhs): Remove.
10999 (is_gimple_reg_or_call_rhs): Rename to ...
11000 (is_gimple_reg_rhs_or_call): ... this.
11001 (is_gimple_mem_or_call_rhs): Rename to ...
11002 (is_gimple_mem_rhs_or_call): ... this.
11003 (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set
11004 DECL_GIMPLE_REG_P only if is_formal is true.
11005 (gimplify_compound_lval): Use is_gimple_reg. Remove workaround
11006 for non-proper post-modify expression gimplification.
11007 (gimplify_self_mod_expr): For post-modify expressions gimplify
11008 the lvalue to a minimal lvalue.
11009 (rhs_predicate_for): Remove formal temp case.
11010 (gimplify_modify_expr_rhs): Likewise.
11011 (gimplify_addr_expr): Use is_gimple_reg.
11012 (gimplify_expr): Remove formal temp cases.
11013 (gimple_regimplify_operands): Likewise.
11014 * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
11015 and FILTER_EXPR like constants.
11016 * gimple.c (walk_gimple_op): Fix val_only initialization, use
11017 is_gimple_reg.
11018 (is_gimple_formal_tmp_rhs): Remove.
11019 (is_gimple_reg_rhs): Remove special casing.
11020 (is_gimple_mem_rhs): Fix.
11021 (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
11022 (is_gimple_formal_tmp_var): Remove.
11023 (is_gimple_formal_tmp_reg): Likewise.
11024 (is_gimple_min_lval): Allow invariant component ref parts.
11025 * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
11026 is_gimple_formal_tmp_reg): Remove declarations.
11027 * tree-cfg.c (verify_expr): Verify that variables with address
11028 taken do not have DECL_GIMPLE_REG_P set.
11029 * tree-mudflap.c (mf_build_check_statement_for): Use
11030 force_gimple_operand instead of gimplify_expr.
11031
8de9b877
AZ
110322009-03-31 Ayal Zaks <zaks@il.ibm.com>
11033
11034 * modulo-sched.c (sms_schedule_by_order): Pass the actual
11035 schedulable rows to compute_split_row.
11036
b5e3caf2
BE
110372009-03-31 Ben Elliston <bje@au.ibm.com>
11038
11039 PR target/31635
11040 * config/rs6000/rs6000.c (rs6000_handle_option): Handle
11041 OPT_mvrsave.
11042
9752c4ad
AM
110432009-03-31 Alan Modra <amodra@bigpond.net.au>
11044
11045 * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
11046 * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
11047 * configure: Regenerate.
11048 * config.in: Regenerate.
11049 * config/rs6000/rs6000.opt (mtls-markers): Add.
11050 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
11051 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
11052 (tls_ld_aix, tls_ld_sysv): Likewise.
11053 (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
11054 (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
11055
b597d1b6
AM
110562009-03-31 Alan Modra <amodra@bigpond.net.au>
11057
11058 * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
11059
a203a221
JH
110602009-03-30 Jan Hubicka <jh@suse.cz>
11061
b597d1b6
AM
11062 * tree-eh.c (make_eh_edges): Set probability 100% to first edge
11063 out of RESX.
11064 (tree_remove_unreachable_handlers): Cleanup EH predecestor
11065 detection and label handling.
a203a221 11066
5b0c0b2c
VM
110672009-03-30 Vladimir Makarov <vmakarov@redhat.com>
11068
11069 * ira-int.h (ira_allocno): Rename left_conflicts_num to
11070 left_conflicts_size.
11071 (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
11072 ALLOCNO_LEFT_CONFLICTS_SIZE.
11073
11074 * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
11075 remove_allocno_from_bucket_and_push,
11076 allocno_spill_priority_compare, push_allocnos_to_stack,
11077 setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
11078 instead of ALLOCNO_LEFT_CONFLICTS_NUM.
11079 (setup_allocno_left_conflicts_num): Ditto. Rename to
11080 setup_allocno_left_conflicts_size.
11081 (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
11082 instead of ALLOCNO_LEFT_CONFLICTS_NUM and
11083 setup_allocno_left_conflicts_size instead of
11084 setup_allocno_left_conflicts_num.
11085
11086 * ira-build.c (ira_create_allocno): Use
11087 ALLOCNO_LEFT_CONFLICTS_SIZE instead of
11088 ALLOCNO_LEFT_CONFLICTS_NUM.
2ba9daa7 11089
9a48a93f
VM
110902009-03-30 Vladimir Makarov <vmakarov@redhat.com>
11091
11092 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
11093 instead of DF_LR_OUT.
11094
11095 * ira-lives.c (process_bb_node_lives): Ditto.
11096
11097 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
11098 instead of DF_LR_{OUT,IN}.
11099
11100 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
11101
11102 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
11103
4c936d4f
JH
111042009-03-30 Jan Hubicka <jh@suse.cz>
11105
11106 * except.c (label_to_region_map): Fix thinko.
11107
f4d9f129
SE
111082009-03-30 Steve Ellcey <sje@cup.hp.com>
11109
11110 PR middle-end/38237
11111 * tree.h (tree_find_value): New declaration.
11112 * tree.c (tree_find_value): New function.
11113 * varasm.c (assemble_external): Avoid duplicate entries on lists.
11114
b3f27c15
JJ
111152009-03-30 Jakub Jelinek <jakub@redhat.com>
11116
11117 PR debug/39563
11118 * c-decl.c (struct c_binding): Add locus field.
11119 (bind): Add locus argument, set locus field from it.
11120 (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
11121 add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
11122 (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
11123 implicitly_declare, undeclared_variable, lookup_label,
11124 declare_label, c_make_fname_decl, c_builtin_function,
11125 c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
11126 bind callers.
11127
ad41bd84 111282009-03-30 H.J. Lu <hongjiu.lu@intel.com>
680e8a00
L
11129
11130 PR target/38781
11131 * config/i386/i386.c (classify_argument): Check total size of
11132 structure.
11133
133f9369
MJ
111342009-03-30 Martin Jambor <mjambor@suse.cz>
11135
11136 * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
11137 IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
11138 IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
11139 respectively.
11140
11141 * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
11142 seen_variable_array_ref while also traversing a union.
11143
11144 * tree-inline.c (optimize_inline_calls): Do not call
11145 cgraph_node_remove_callees.
11146 * cgraphbuild.c (remove_cgraph_callee_edges): New function.
11147 (pass_remove_cgraph_callee_edges): New variable.
11148 * passes.c (init_optimization_passes): Add
11149 pass_remove_cgraph_callee_edges after early inlining and before all
11150 late intraprocedural passes.
11151
11152 * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
11153
1190f2eb
PB
111542009-03-30 Paolo Bonzini <bonzini@gnu.org>
11155
11156 * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
11157 Fix typos in names.
11158
fedc1775
PB
111592009-03-30 Paolo Bonzini <bonzini@gnu.org>
11160
fcb82ab0
UB
11161 * combine.c (simplify_comparison): Use have_insn_for.
11162 * dojump.c (do_jump): Likewise.
fedc1775 11163
65c5ae8b
PB
111642009-03-30 Paolo Bonzini <bonzini@gnu.org>
11165
11166 * config/sparc/sparc.c (sparc_compare_emitted): Remove.
11167 (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
11168 sparc_compare_op0 like sparc_compare_emitted used to be handled.
11169 (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
11170 instead of sparc_compare_emitted.
11171 * config/sparc/sparc.h (sparc_compare_emitted): Remove.
11172 * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
11173 instead of sparc_compare_emitted.
11174
d25aa7ab
PB
111752009-03-30 Paolo Bonzini <bonzini@gnu.org>
11176
11177 * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
11178 enter/exit cfglayout mode.
11179 (pass_partition_block): Require it.
11180 * combine.c (find_single_use, reg_dead_at_p): Use CFG.
11181 (combine_instructions): Track basic blocks instead of labels.
11182 (update_cfg_for_uncondjump): New.
11183 (try_combine): Use it. Update jumps after rescanning.
11184 (pass_combine): Require PROP_cfglayout.
11185 * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
11186
9c9e26f5
PB
111872009-03-30 Paolo Bonzini <bonzini@gnu.org>
11188
fcb82ab0
UB
11189 * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
11190 Provide/destroy PROP_cfglayout respectively.
11191 * gcse.c (pass_jump_bypass, pass_gcse): Require it.
11192 * tree-pass.h (PROP_cfglayout): New.
9c9e26f5 11193
28ddeea1
PB
111942009-03-30 Paolo Bonzini <bonzini@gnu.org>
11195
11196 * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
11197 fold_convert_const_fixed_from_fixed,
11198 fold_convert_const_fixed_from_int,
11199 fold_convert_const_fixed_from_real, fold_negate_const): Do not
11200 set TREE_CONSTANT_OVERFLOW.
11201 * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
11202 * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
11203
ebfd146a
IR
112042009-03-30 Ira Rosen <irar@il.ibm.com>
11205
11206 * tree-vect-loop-manip.c: New file.
11207 * tree-vectorizer.c: Update documentation and included files.
11208 (vect_loop_location): Make extern.
11209 (rename_use_op): Move to tree-vect-loop-manip.c
2ba9daa7
AS
11210 (rename_variables_in_bb, rename_variables_in_loop,
11211 slpeel_update_phis_for_duplicate_loop,
ebfd146a
IR
11212 slpeel_update_phi_nodes_for_guard1,
11213 slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
11214 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
11215 slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
2ba9daa7 11216 set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
ebfd146a
IR
11217 find_loop_location): Likewise.
11218 (new_stmt_vec_info): Move to tree-vect-stmts.c.
11219 (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
11220 get_vectype_for_scalar_type, vect_is_simple_use,
11221 supportable_widening_operation, supportable_narrowing_operation):
11222 Likewise.
11223 (bb_in_loop_p): Move to tree-vect-loop.c.
2ba9daa7
AS
11224 (new_loop_vec_info, destroy_loop_vec_info,
11225 reduction_code_for_scalar_code, report_vect_op,
ebfd146a
IR
11226 vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
11227 (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
11228 (vect_supportable_dr_alignment): Likewise.
11229 * tree-vectorizer.h (tree-data-ref.h): Include.
11230 (vect_loop_location): Declare.
11231 Reorganize function declarations according to the new file structure.
11232 * tree-vect-loop.c: New file.
2ba9daa7 11233 * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
ebfd146a
IR
11234 tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
11235 * tree-vect-data-refs.c: New file.
11236 * tree-vect-patterns.c (timevar.h): Don't include.
11237 * tree-vect-stmts.c: New file.
2ba9daa7 11238 * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
ebfd146a 11239 tree-vect-slp.c, tree-vect-loop.c.
2ba9daa7
AS
11240 * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
11241 tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
ebfd146a
IR
11242 tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
11243 (tree-vect-analyze.o): Remove.
11244 (tree-vect-transform.o): Likewise.
11245 (tree-vect-data-refs.o): Add rule.
2ba9daa7 11246 (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
ebfd146a
IR
11247 tree-vect-slp.o): Likewise.
11248 (tree-vect-patterns.o): Remove redundant dependencies.
11249 (tree-vectorizer.o): Likewise.
11250 * tree-vect-slp.c: New file.
11251
40a1cfba
RW
112522009-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11253
11254 * optc-gen.awk: Warn if an option flag has multiple different
11255 help strings.
11256
a9a7a9a2
SP
112572009-03-30 Sebastian Pop <sebastian.pop@amd.com>
11258
11259 * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
11260 -floop-block): Document dependences on PPL, CLooG and Graphite.
11261
8ce94e44
JM
112622009-03-30 Joseph Myers <joseph@codesourcery.com>
11263
11264 PR rtl-optimization/323
11265 * c-common.c (c_fully_fold, convert_and_check,
11266 c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
11267 (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
11268 * c-common.def (EXCESS_PRECISION_EXPR): New.
11269 * c-cppbuiltin.c (builtin_define_float_constants): Define
11270 constants with enough digits for long double.
11271 * c-lex.c (interpret_float): Interpret constant with excess
11272 precision where appropriate.
11273 * c-opts.c (c_common_post_options): Set
11274 flag_excess_precision_cmdline. Give an error for
11275 -fexcess-precision=standard for C++ for processors where the
11276 option is significant.
11277 * c-parser.c (c_parser_conditional_expression): Handle excess
11278 precision in condition.
11279 * c-typeck.c (convert_arguments): Handle arguments with excess
11280 precision.
11281 (build_unary_op): Move excess precision outside operation.
11282 (build_conditional_expr): Likewise.
11283 (build_compound_expr): Likewise.
11284 (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
11285 (build_modify_expr): Handle excess precision in RHS.
11286 (convert_for_assignment): Handle excess precision in converted
11287 value.
11288 (digest_init, output_init_element, process_init_element): Handle
11289 excess precision in initializer.
11290 (c_finish_return): Handle excess precision in return value.
11291 (build_binary_op): Handle excess precision in operands and add
11292 excess precision as needed for operation.
11293 * common.opt (-fexcess-precision=): New option.
11294 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
11295 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
11296 For standard excess precision, output explicit conversion to and
11297 truncation from XFmode.
11298 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
11299 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
11300 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
11301 define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
11302 define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
11303 floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
11304 divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
11305 *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
11306 *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
11307 define_splits, sqrt<mode>2): Disable where appropriate for
11308 standard excess precision.
11309 * convert.c (convert_to_real): Do not shorten arithmetic to type
11310 for which excess precision would be used.
11311 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
11312 * doc/invoke.texi (-fexcess-precision=): Document option.
11313 (-mfpmath=): Correct index entry.
11314 * flags.h (enum excess_precision, flag_excess_precision_cmdline,
11315 flag_excess_precision): New.
11316 * langhooks.c (lhd_post_options): Set
11317 flag_excess_precision_cmdline.
11318 * opts.c (common_handle_option): Handle -fexcess-precision=.
11319 * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
11320 init_excess_precision): New.
11321 (lang_dependent_init_target): Call init_excess_precision.
11322 * tree.c (excess_precision_type): New.
11323 * tree.h (excess_precision_type): Declare.
11324
1e57bf47
JM
113252009-03-30 Joseph Myers <joseph@codesourcery.com>
11326
11327 PR c/35235
11328 * c-typeck.c (build_component_ref): Do not copy qualifiers from
11329 non-lvalue to component.
11330
148e4216
JM
113312009-03-29 Joseph Myers <joseph@codesourcery.com>
11332
11333 PR preprocessor/34695
11334 * Makefile.in (c-opts.o): Depend on c-tree.h.
11335 * c-common.c: Move down include of diagnostic.h.
11336 (done_lexing, c_cpp_error): New.
11337 * c-common.h (done_lexing): Declare.
11338 * c-decl.c (c_write_global_declarations): Don't check cpp_errors
11339 (parse_in).
11340 * c-opts.c: Include c-tree.h.
11341 (c_common_init_options): Set preprocessor error callback.
11342 (c_common_handle_option): Do not set preprocessor
11343 inhibit_warnings, warnings_are_errors, warn_system_headers,
11344 pedantic_errors or inhibit_warnings flags.
11345 (c_common_post_options): Do not check cpp_errors (parse_in).
11346 (c_common_finish): Do not output dependencies if there were
11347 errors. Do not check return value of cpp_finish.
11348 * c-ppoutput.c (pp_file_change): Set input_location.
11349 * c-tree.h (c_cpp_error): Declare.
11350 * diagnostic.c (diagnostic_set_info_translated): Also initialize
11351 override_column.
11352 (diagnostic_build_prefix): Check override_column.
11353 * diagnostic.h (diagnostic_info): Add override_column field.
11354 (diagnostic_override_column): Define.
11355
2ec5deb5
PB
113562009-03-28 Paolo Bonzini <bonzini@gnu.org>
11357
ba20e309
UB
11358 * c-common.c (c_expand_expr, c_staticp): Remove.
11359 * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
11360 * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
11361 COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
11362 * c-gimplify.c (gimplify_compound_literal_expr,
11363 optimize_compound_literals_in_ctor): Remove.
11364 (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
11365 * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
11366 * c-semantics.c (emit_local_var): Remove.
11367
11368 * langhooks-def.h (lhd_expand_expr): Remove.
11369 * langhooks.c (lhd_expand_expr): Remove.
11370 * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
11371
11372 * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
11373 handling from c-semantics.c; don't call into langhook.
11374 (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
11375 * gimplify.c (gimplify_compound_literal_expr,
11376 optimize_compound_literals_in_ctor): Move from c-gimplify.c.
11377 (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
11378 (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
11379 as was done in c-gimplify.c.
11380 * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
11381 * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
11382 Move from c-common.h.
11383 * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
2ec5deb5
PB
11384
11385 * tree.c (staticp): Do not call langhook.
11386 * langhooks.c (lhd_staticp): Delete.
11387 * langhooks-def.h (lhd_staticp): Delete prototype.
11388 (LANG_HOOKS_STATICP): Delete.
11389 (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
11390
ba20e309
UB
11391 * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
11392 instead of DECL_STMTs.
2ec5deb5 11393
928c19bb
JM
113942009-03-29 Joseph Myers <joseph@codesourcery.com>
11395
11396 PR c/456
11397 PR c/5675
11398 PR c/19976
11399 PR c/29116
11400 PR c/31871
11401 PR c/35198
11402 * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
11403 void_type_node.
11404 (fold_call_expr): Return a NOP_EXPR from folding rather than the
11405 contained expression.
ba20e309 11406 * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
928c19bb
JM
11407 (c_common_truthvalue_conversion): Use c_save_expr. Do not fold
11408 conditional expressions for C.
11409 (decl_constant_value_for_optimization): Move from
ba20e309 11410 decl_constant_value_for_broken_optimization in c-typeck.c. Check
928c19bb
JM
11411 whether optimizing and that the expression is a VAR_DECL not of
11412 array type instead of doing such checks in the caller. Do not
11413 check pedantic. Call gcc_unreachable for C++.
11414 * c-common.def (C_MAYBE_CONST_EXPR): New.
11415 * c-common.h (c_fully_fold, c_save_expr,
11416 decl_constant_value_for_optimization): New prototypes.
11417 (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
11418 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
11419 EXPR_INT_CONST_OPERANDS): Define.
11420 * c-convert.c (convert): Strip nops from expression.
11421 * c-decl.c (groktypename): Take extra parameters expr and
11422 expr_const_operands. Update call to grokdeclarator.
11423 (start_decl): Update call to grokdeclarator. Add statement for
11424 expressions used in type of decl.
11425 (grokparm): Update call to grokdeclarator.
11426 (push_parm_decl): Update call to grokdeclarator.
11427 (build_compound_literal): Add parameter non_const and build a
11428 C_MAYBE_COSNT_EXPR if applicable.
11429 (grokdeclarator): Take extra parameters expr and
11430 expr_const_operands. Track expressions used in declaration
11431 specifiers and declarators. Fold array sizes and track whether
11432 they are constant expressions and whether they are integer
11433 constant expressions.
11434 (parser_xref_tag): Set expr and expr_const_operands fields in
11435 return value.
11436 (grokfield): Update call to grokdeclarator.
11437 (start_function): Update call to grokdeclarator.
11438 (build_null_declspecs): Set expr and expr_const_operands fields in
11439 return value.
11440 (declspecs_add_type): Handle expressions in typeof specifiers.
11441 * c-parser.c (c_parser_declspecs): Set expr and
11442 expr_const_operands fields for declaration specifiers.
11443 (c_parser_enum_specifier): Likewise.
11444 (c_parser_struct_or_union_specifier): Likewise.
11445 (c_parser_typeof_specifier): Likewise. Update call to
11446 groktypename. Fold expression as needed. Return expressions with
11447 type instead of adding statements.
11448 (c_parser_attributes): Update calls to c_parser_expr_list.
11449 (c_parser_statement_after_labels): Fold expression before passing
11450 to objc_build_throw_stmt.
11451 (c_parser_condition): Fold expression.
11452 (c_parser_asm_operands): Fold expression.
11453 (c_parser_conditional_expression): Use c_save_expr. Update call
11454 to build_conditional_expr.
11455 (c_parser_alignof_expression): Update call to groktypename.
11456 (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
11457 original_code. Fold expression argument of va_arg. Create
11458 C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
11459 argument to va_arg. Update calls to groktypename. Fold array
11460 index for offsetof. Verify that first argument to
11461 __builtin_choose_expr has integer type.
11462 (c_parser_postfix_expression_after_paren_type): Update calls to
11463 groktypename and build_compound_literal. Handle expressions with
11464 side effects in type name.
11465 (c_parser_postfix_expression_after_primary): Update call to
11466 c_parser_expr_list. Set original_code for calls to
11467 __builtin_constant_p.
11468 (c_parser_expr_list): Take extra parameter fold_p. Fold
11469 expressions if requested.
11470 (c_parser_objc_type_name): Update call to groktypename.
11471 (c_parser_objc_synchronized_statement): Fold expression.
11472 (c_parser_objc_receiver): Fold expression.
11473 (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
11474 (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
11475 c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
11476 * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
11477 (struct c_typespec): Add elements expr and expr_const_operands.
11478 (struct c_declspecs): Add elements expr and expr_const_operands.
11479 (groktypename, build_conditional_expr, build_compound_literal):
11480 Update prototypes.
11481 (in_late_binary_op): Declare.
11482 * c-typeck.c (note_integer_operands): New function.
11483 (in_late_binary_op): New variable.
11484 (decl_constant_value_for_broken_optimization): Move to c-common.c
11485 and rename to decl_constant_value_for_optimization.
11486 (default_function_array_conversion): Do not strip nops.
11487 (default_conversion): Do not call
11488 decl_constant_value_for_broken_optimization.
11489 (build_array_ref): Do not fold result.
11490 (c_expr_sizeof_expr): Fold operand. Use C_MAYBE_CONST_EXPR for
11491 result when operand is a VLA.
11492 (c_expr_sizeof_type): Update call to groktypename. Handle
11493 expressions included in type name. Use C_MAYBE_CONST_EXPR for
11494 result when operand names a VLA type.
11495 (build_function_call): Update call to build_compound_literal.
11496 Only fold result for calls to __builtin_* functions. Strip
11497 NOP_EXPR from INTEGER_CST returned from such functions. Fold
11498 the function designator.
11499 (convert_arguments): Fold arguments. Update call to
11500 convert_for_assignment.
11501 (build_unary_op): Handle increment and decrement of
11502 C_MAYBE_CONST_EXPR. Move lvalue checks for increment and
11503 decrement earlier. Fold operand of increment and decrement.
11504 Handle address of C_MAYBE_CONST_EXPR. Only fold expression being
11505 built for integer operand. Wrap returns that are INTEGER_CSTs
11506 without being integer constant expressions or that have integer
11507 constant operands without being INTEGER_CSTs.
11508 (lvalue_p): Handle C_MAYBE_CONST_EXPR.
11509 (build_conditional_expr): Add operand ifexp_bcp. Track whether
11510 result is an integer constant expression or can be used in
11511 unevaluated parts of one and avoid folding and wrap as
11512 appropriate. Fold operands before possibly doing -Wsign-compare
11513 warnings.
11514 (build_compound_expr): Wrap result for C99 if operands can be used
11515 in integer constant expressions.
11516 (build_c_cast): Update call to digest_init. Do not ignore
11517 overflow from casting floating-point constants to integers. Wrap
11518 results that could be confused with integer constant expressions,
11519 null pointer constants or floating-point constants.
11520 (c_cast_expr): Update call to groktypename. Handle expressions
11521 included in type name.
11522 (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR. Fold
11523 lhs inside possible SAVE_EXPR. Fold RHS before assignment.
11524 Update calls to convert_for_assignment.
11525 (convert_for_assignment): Take new parameter
11526 null_pointer_constant. Do not strip nops or call
11527 decl_constant_value_for_broken_optimization. Set
11528 in_late_binary_op for conversions to boolean.
11529 (store_init_value): Update call to digest_init.
11530 (digest_init): Take new parameter null_pointer_constant. Do not
11531 call decl_constant_value_for_broken_optimization. pedwarn for
11532 initializers not constant expressions. Update calls to
11533 convert_for_assignment.
11534 (constructor_nonconst): New.
11535 (struct constructor_stack): Add nonconst element.
11536 (really_start_incremental_init, push_init_level, pop_init_level):
11537 Handle constructor_nonconst and nonconst element.
11538 (set_init_index): Call constant_expression_warning for array
11539 designators.
11540 (output_init_element): Fold value. Set constructor_nonconst as
11541 applicable. pedwarn for initializers not constant expressions.
11542 Update call to digest_init. Call constant_expression_warning
11543 where constant initializers are required.
11544 (process_init_element): Use c_save_expr.
11545 (c_finish_goto_ptr): Fold expression.
11546 (c_finish_return): Fold return value. Update call to
11547 convert_for_assignment.
11548 (c_start_case): Fold switch expression.
11549 (c_process_expr_stmt): Fold expression.
11550 (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
ba20e309 11551 ensure statement expression is not evaluated in constant expression.
928c19bb
JM
11552 (build_binary_op): Track whether results are integer constant
11553 expressions or may occur in such, disable folding and wrap results
11554 as applicable. Fold operands for -Wsign-compare warnings unless
11555 in_late_binary_op.
11556 (c_objc_common_truthvalue_conversion): Handle results folded to
11557 integer constants that are not integer constant expressions.
11558 * doc/extend.texi: Document when typeof operands are evaluated,
11559 that condition of __builtin_choose_expr is an integer constant
11560 expression, and more about use of __builtin_constant_p in
11561 initializers.
11562
5babbcc0
RG
115632009-03-29 Richard Guenther <rguenther@suse.de>
11564
11565 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
11566 propagate addresses of array references.
11567
0340f2ba
SB
115682009-03-29 Steven Bosscher <steven@gcc.gnu.org>
11569
11570 * regmove.c (perhaps_ends_bb_p): Remove.
11571 (optimize_reg_copy_1): Don't call perhaps_ends_bb_p. Get basic block
11572 from INSN and check that the main loop stays within that basic block.
11573 (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
11574 (regmove_forward_pass): Split out from regmove_optimize. Use
11575 FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
11576 (regmove_backward_pass): Split out from regmove_optimize. Use
11577 FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
11578 (regmove_optimize): Simplify.
11579
eeae74a1
L
115802009-03-29 H.J. Lu <hongjiu.lu@intel.com>
11581
11582 PR target/39545
11583 * config/i386/i386.c (classify_argument): Ignore flexible array
11584 member in struct and warn ABI change.
11585
a24078b2
L
115862009-03-29 H.J. Lu <hongjiu.lu@intel.com>
11587
11588 * config/i386/i386-protos.h (ix86_agi_dependent): New.
11589
11590 * config/i386/i386.c (ix86_agi_dependent): Rewrite.
11591 (ix86_adjust_cost): Updated.
11592
a8da523f
JH
115932009-03-29 Jan Hubicka <jh@suse.cz>
11594
11595 PR middle-end/28850
11596 * tree-pass.h (pass_cleanup_eh): New function.
11597 (remove_unreachable_regions): Break code handling RTL
11598 to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
11599 that can not be reached by runtime.
11600 (can_be_reached_by_runtime): New function.
11601 (label_to_region_map): New function.
11602 (num_eh_regions): New function.
11603 (rtl_remove_unreachable_regions): New function.
11604 (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
11605 (remove_eh_region): New function.
11606 * except.h: Include sbitmap and vecprim.
11607 (remove_eh_region, remove_unreachable_regions, label_to_region_map,
11608 num_eh_regions): Declare.
11609 * passes.c (init_optimization_passes): Schedule cleanup_eh.
ba20e309 11610 * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
a8da523f
JH
11611 * tree-eh.c (tree_remove_unreachable_handlers): New function.
11612 (tree_empty_eh_handler_p): New function.
11613 (cleanup_empty_eh): New function.
11614 (cleanup_eh): New function.
11615 (pass_cleanup_eh): New function.
11616
98f358e5
JH
116172009-03-29 Jan Hubicka <jh@suse.cz>
11618
11619 * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
11620 for removed regions.
11621
13a9fa44
JH
116222009-03-29 Jan Hubicka <jh@suse.cz>
11623
11624 * except.c (dump_eh_tree): Dump all datastructures.
11625
e38cf733
JH
116262009-03-29 Jan Hubicka <jh@suse.cz>
11627
11628 * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
11629 (duplicate_eh_regions_1): Likewise.
11630 (duplicate_eh_regions): Likewise; cleanup code gorwing the region
11631 vector; call EH verification.
11632 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
11633 Be ready for region being removed.
11634
12802c2b
JH
116352009-03-29 Jan Hubicka <jh@suse.cz>
11636
11637 * bitmap.c (bitmap_last_set_bit): New function.
11638 * bitmap.h (bitmap_last_set_bit): Declare.
11639
4ea80a41
DA
116402009-03-29 David Ayers <ayers@fsfe.org>
11641
11642 PR objc/27377
11643 * c-typeck.c (build_conditional_expr): Emit ObjC warnings
11644 by calling objc_compare_types and surpress warnings about
11645 incompatible C pointers that are compatible ObjC pointers.
2ba9daa7 11646
4ea80a41 116472009-03-29 Adam Nemet <anemet@caviumnetworks.com>
3dc9eaa6
AN
11648
11649 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
11650 call initialize_inline_failed.
11651 (initialize_inline_failed): Move it from here ...
11652 * cgraph.c (initialize_inline_failed): ... to here.
11653 (cgraph_create_edge): Call initialize_inline_failed rather than
11654 setting inline_failed directly.
11655
7fb0ee07
BE
116562009-03-29 Ben Elliston <bje@au.ibm.com>
11657
11658 PR target/32542
11659 * sysv4.opt (msdata): Improve comment.
11660 * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
11661 * sysv4.h (SVR4_ASM_SPEC): Likewise.
11662
0be77bf2
BE
116632009-03-29 Ben Elliston <bje@au.ibm.com>
11664
11665 PR target/30451
11666 * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
11667 load and store attributes.
11668
593812b6
BE
116692009-03-29 Ben Elliston <bje@au.ibm.com>
11670
11671 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
11672 (ix86_init_builtins): Add built-in function __builtin_huge_valq.
11673 (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
11674 * doc/extend.texi (X86 Built-in Functions): Add index entries for
11675 __builtin_infq and __builtin_huge_valq.
11676
8272d11d
AS
116772009-03-28 Anatoly Sokolov <aesok@post.ru>
11678
11679 * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
11680 atmega8m1 devices.
11681 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
11682 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
11683
74fe548b
XDL
116842009-03-28 Xinliang David Li <davidxl@google.com>
11685
2ba9daa7 11686 * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
74fe548b
XDL
11687 (do_dbg_cnt): New function.
11688
33977f81
JH
116892009-03-28 Jan Hubicka <jh@suse.cz>
11690
11691 Merge from pretty-ipa:
11692
11693 2009-03-27 Jan Hubicka <jh@suse.cz>
ba20e309 11694
33977f81
JH
11695 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
11696 * tree-pass.h (function_called_by_processed_nodes_p): Declare.
11697 * passes.c (function_called_by_processed_nodes_p): New.
11698 * ipa-pure-const.c (check_call): Fix handling of operands.
11699 (analyze_function): Dump debug output for skipped bodies.
11700 (local_pure_const): Use function_called_by_processed_nodes_p.
11701 * dwarf2out.c (reference_to_unused): Use output.
11702 * passes.c (do_per_function_toporder): Likewise.
11703
11704 2008-11-12 Jan Hubicka <jh@suse.cz>
11705
11706 * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
11707 * ipa-pure-const.c (funct_state_d): Add can throw field; make
11708 state_set_in_source enum
11709 (check_decl): Ignore memory tags; do not set fake looping flags;
11710 dump diagnostics.
11711 (check_operand, check_tree, check_rhs_var, check_lhs_var,
11712 get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
11713 (check_call, analyze_function): Rewrite.
11714 (check_stmt): New.
11715 (add_new_function): Update call of analyze_function.
11716 (generate_summary): Add call of analyze_function.
11717 (propagate): Propagate can_throw; handle state_set_in_source correctly.
11718 (local_pure_const): New function.
11719 (pass_local_pure_const): New pass.
11720 * ipa-inline.c (inline_transform): Set after_inlining.
11721 * tree-eh.c (stmt_can_throw_external): New.
11722 * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
11723 work with aliasing built.
11724 * tree-flow.h (stmt_can_throw_external): New.
11725 * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
11726 and local pure/const pass in early and late optimization queue.
ba20e309 11727
617f3897
MJ
117282009-03-28 Martin Jambor <mjambor@suse.cz>
11729
11730 * fold-const.c (get_pointer_modulus_and_residue): New parameter
11731 allow_func_align.
11732 (fold_binary): Allow function decl aligment consideration is the
11733 second argument is integer constant one.
11734 * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
11735 (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
11736 with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
11737
fe89fbc5
JH
117382009-03-28 Jan Hubicka <jh@suse.cz>
11739
11740 * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
11741 * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
11742 * function.h (rtl_data): Add nothrow flag.
11743 * except.c (set_nothrow_function_flags): Use crtl->nothrow;
11744 set DECL_NOTHROW for AVAILABLE functions.
11745
574872ff
JJ
117462009-03-28 Jakub Jelinek <jakub@redhat.com>
11747
b3bf8855
JJ
11748 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
11749 following vector keyword has expansion starting with pixel or bool
11750 keyword, expand vector to __vector and pixel or bool to __pixel or
11751 __bool.
11752
574872ff
JJ
11753 PR c++/39554
11754 * opts.c (warning_disallowed_functions, warn_disallowed_functions,
11755 warn_if_disallowed_function_p): Removed.
11756 (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
11757 * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
11758 warning_if_disallowed_function_p.
11759 * flags.h (warn_if_disallowed_function_p,
11760 warn_disallowed_functions): Removed.
11761 * common.opt (Wdisallowed-function-list=): Removed.
11762 * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
11763
b005da11
RG
117642009-03-28 Richard Guenther <rguenther@suse.de>
11765
11766 PR tree-optimization/38723
11767 * tree-ssa-pre.c (compute_avail): Add all default definitions to
11768 the entry block.
11769
1de812a6
JH
117702009-03-28 Jan Hubicka <jh@suse.cz>
11771
11772 * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
11773 test introduced by my previous patch.
11774
fbb789d4
RG
117752009-03-28 Richard Guenther <rguenther@suse.de>
11776
11777 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
11778 the PHIs value undefined.
11779
6f1873a1
JH
117802009-03-28 Jan Hubicka <jh@suse.cz>
11781
11782 * tree-pass.h (pass_fixup_cfg): New pass.
11783 * ipa-inline.c (inline_transform): Set
11784 always_inline_functions_inlined/after_inlining.
11785 * tree-optimize.c (execute_fixup_cfg): Do not set them here.
11786 (pass_fixup_cfg): New pass.
11787 * passes.c (init_optimization_passes): Add fixup_cfg.
11788
17021bc8
RG
117892009-03-28 Richard Guenther <rguenther@suse.de>
11790
11791 PR tree-optimization/38458
11792 * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
11793 argument use the arguments copy-of value.
11794
e8114fba
RG
117952009-03-28 Richard Guenther <rguenther@suse.de>
11796
11797 PR tree-optimization/38180
11798 * tree-ssa-ccp.c (get_default_value): Simplify.
11799 (likely_value): Likewise.
11800 (surely_varying_stmt_p): Properly handle VOP case.
11801 (ccp_initialize): Likewise.
11802 (ccp_fold): Handle propagating through *&.
11803 (fold_const_aggregate_ref): Also handle decls.
11804
257eb6e3
JH
118052009-03-28 Jan Hubicka <jh@suse.cz>
11806
11807 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
11808 * cgraph.h (cgraph_node): Likewise.
11809 * cgraphunit.c (cgraph_process_new_functions): Set process flag.
11810 (cgraph_reset_node): Use process flag.
11811 (cgraph_mark_functions_to_output): Likewise.
11812 (cgraph_expand_function): Likewise.
11813 (cgraph_expand_all_functions): Likewise.
11814 (cgraph_output_in_order): Likewise.
11815 * dwarf2out.c (reference_to_unused): Likewise.
11816 * passes.c do_per_function_toporder): Likewise.
11817
61a05df1
JH
118182009-03-28 Jan Hubicka <jh@suse.cz>
11819
11820 Bring from lto-branch:
ba20e309 11821
61a05df1
JH
11822 2008-09-03 Doug Kwan <dougkwan@google.com>
11823
11824 * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
11825 enums instead of reason strings.
11826 * cgraph.c (cgraph_create_edge): Same.
11827 (cgraph_inline_failed_string): New function.
11828 * cgraph.h (cgraph_inline_failed_t): New enum type.
11829 (cgraph_inline_failed_string): New prototype.
11830 (struct cgraph_edge): Change type of INLINED_FAILED from constant
11831 char pointer to cgraph_inline_failed_t.
11832 (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
11833 (cgraph_default_inline_p): Ditto.
60839f5d 11834 * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
61a05df1
JH
11835 to cgraph_inline_failed_t pointer.
11836 * cif-code.def: New file.
11837 * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
11838 reason string.
11839 (cgraph_check_inline_limits): Change type of REASON to pointer to
11840 cgraph_inline_failed_t. Replace reason strings with enums.
11841 (cgraph_default_inline_p): Ditto.
11842 (cgraph_recursive_inlining_p): Ditto.
11843 (update_caller_keys): Change type of FAILED_REASON to
11844 cgraph_inline_failed_t.
11845 (cgraph_set_inline_failed): Change type of REASON to pointer to
11846 cgraph_inline_failed_t. Call cgraph_inline_failed_string to
11847 convert enums to strings for text output.
11848 (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
11849 to be of type cgraph_inline_failed_t. Replace reason strings with
11850 enums. Call cgraph_inline_failed_string to covert enums
11851 to strings for text output.
11852 (cgraph_decide_inlining): Replace reason strings with enums.
11853 (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
11854 to cgraph_inline_failed_t type. Call cgraph_inline_failed_string
11855 for text output.
11856 * tree-inline.c (expand_call_inline): Change type of REASON
11857 to cgraph_inline_failed_t. Replace reason strings with enums.
11858 Call cgraph_inline_failed_string for text output.
11859 * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
11860 (cgraph.o): Ditto.
11861
144e8aac
JH
118622009-03-28 Jan Hubicka <jh@suse.cz>
11863
11864 * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
11865 cgraph_clone_node): Remove master clone handling.
11866 (cgraph_is_master_clone, cgraph_master_clone): Remove.
11867 * cgraph.h (master_clone): Remove.
11868 (cgraph_is_master_clone, cgraph_master_clone): Remove.
11869 * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
11870 (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
11871
4a371c8d
JH
118722009-03-28 Jan Hubicka <jh@suse.cz>
11873
11874 * cgraph.c (cgraph_function_body_availability): Functions declared
11875 inline are always safe to assume that it is not going to be replaced.
11876
6cdb0ee3
RG
118772009-03-28 Richard Guenther <rguenther@suse.de>
11878
11879 PR tree-optimization/38513
11880 * tree-ssa-pre.c (eliminate): Remove redundant stores.
11881 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
11882 EXC_PTR_EXPR and FILTER_EXPR.
11883 (get_ref_from_reference_ops): Likewise.
11884
8ca1fd76
RG
118852009-03-28 Richard Guenther <rguenther@suse.de>
11886
11887 PR tree-optimization/38968
11888 * tree-vect-analyze.c (vect_compute_data_ref_alignment):
11889 Use FLOOR_MOD_EXPR to compute misalignment.
11890
a254e44d
RG
118912009-03-28 Richard Guenther <rguenther@suse.de>
11892
11893 PR tree-optimization/37795
11894 * tree.h (combine_comparisons): Declare.
11895 * fold-const.c (combine_comparisons): Export.
11896 * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
11897 comparisons.
11898 (ifcombine_iforif): Use combine_comparisons.
11899
a8ee227c
JH
119002009-03-28 Jan Hubicka <jh@suse.cz>
11901
11902 * tree-eh.c (inlinable_call_p): New function.
11903 (make_eh_edges): Use it.
11904 (verify_eh_edges): Use it.
11905 (stmt_can_throw_external, stmt_can_throw_internal): Use it.
11906 * except.c (reachable_next_level): Add inlinable_function argument
11907 (sjlj_find_directly_reachable_regions): Update.
11908 (add_reachable_handler): Do not set saw_any_handlers.
11909 (reachable_next_level): Handle MUST_NOT_THROW more curefully.
11910 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
11911 Add new inlinable call parameter.
11912 (can_throw_internal, can_throw_external): Update.
11913 * except.h (can_throw_internal_1, can_throw_external_1,
11914 foreach_reachable_handler): Update declaration.
11915
52c0e446
JM
119162009-03-28 Joseph Myers <joseph@codesourcery.com>
11917
11918 * config/arm/t-arm-coff, config/h8300/coff.h,
11919 config/i386/i386-aout.h, config/i386/i386-coff.h,
11920 config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
11921 config/pdp11/2bsd.h, config/rs6000/aix41.h,
11922 config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
11923 fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
11924 scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
11925 sys-types.h: Remove.
11926 * Makefile.in: Remove protoize and fixproto support and references
11927 in comments.
11928 (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
11929 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
11930 Remove.
11931 (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
11932 (MOSTLYCLEANFILES): Remove protoize$(exeext) and
11933 unprotoize$(exeext).
11934 (rest.encap): Don't depend on $(STMP_FIXPROTO)
11935 (.PHONY): Don't depend on proto.
11936 (libgcc-support): Don't depend on $(STMP_FIXPROTO).
11937 (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
11938 protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
11939 deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
11940 build/gen-protos.o, build/scan.o, xsys-protos.h,
11941 build/fix-header$(build_exeext), build/fix-header.o,
11942 build/scan-decls.o, fixhdr.ready, stmp-fixproto,
11943 stmp-install-fixproto): Remove.
11944 (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
11945 SYSCALLS.c or fixproto files.
11946 (install-common): Don't install protoize.
11947 (install-headers-tar, install-headers-cpio, install-headers-cp):
11948 Don't depend on $(STMP_FIXPROTO).
11949 (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't
11950 install fixproto files or write out fixproto settings.
11951 (uninstall): Don't uninstall protoize.
11952 * config.gcc (use_fixproto): Remove.
11953 (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
11954 i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
11955 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
11956 * config/m32r/t-linux (STMP_FIXPROTO): Remove.
11957 * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
11958 * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
11959 * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
11960 * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
11961 * config/t-svr4 (FIXPROTO_DEFINES): Remove.
11962 * config/t-vxworks (STMP_FIXPROTO): Remove.
11963 * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
11964 STMP_FIXPROTO): Remove.
11965 * config.in, configure: Regenerate.
11966 * crtstuff.c (gid_t, uid_t): Don't undefine.
11967 * doc/install.texi: Change m68k-coff to m68k-elf in example.
11968 (arm-*-coff, arm-*-aout: Remove target entries.
11969 (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
11970 Remove mention of AIX 4.1.
11971 (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
11972 * doc/invoke.texi (Running Protoize): Remove.
11973 * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
11974 (Protoize Caveats): Remove.
11975 * tsystem.h: Update comments on headers assumed to exist.
11976
20a07f44
VM
119772009-03-27 Vladimir Makarov <vmakarov@redhat.com>
11978
11979 * genautomata.c: Add a new year to the copyright. Add a new
11980 reference.
11981 (struct insn_reserv_decl): Add comments for member bypass_list.
11982 (find_bypass): Remove.
11983 (insert_bypass): New.
11984 (process_decls): Use insert_bypass.
11985 (output_internal_insn_latency_func): Output all bypasses with the
11986 same input insn in one switch case.
11987
11988 * rtl.def (define_bypass): Describe bypass choice.
11989 * doc/md.texi (define_bypass): Ditto.
11990
3a0d06c1
RB
119912009-03-27 Richard Guenther <rguenther@suse.de>
11992
11993 * gimplify.c (mark_addressable): Export.
11994 * tree-flow.h (mark_addressable): Declare.
11995 * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
11996 * tree-ssa.c (verify_phi_args): Verify that address taken
11997 variables have TREE_ADDRESSABLE set.
11998
119992009-03-27 Richard Guenther <rguenther@suse.de>
12000
12001 * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
12002 (build_fold_addr_expr_with_type): ... this. Remove in_fold handling.
12003 Do not mark decls TREE_ADDRESSABLE.
12004 (build_fold_addr_expr): Adjust.
12005 (fold_addr_expr): Remove.
12006 (fold_unary): Use build_fold_addr_expr.
12007 (fold_comparison): Likewise.
12008 (split_address_to_core_and_offset): Likewise.
12009 * coverage.c (tree_coverage_counter_addr): Mark the array decl
12010 TREE_ADDRESSABLE.
12011 * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
12012 (gimplify_modify_expr_to_memcpy): Mark source and destination
12013 addressable.
12014 * omp-low.c (create_omp_child_function): Mark the object decl
12015 TREE_ADDRESSABLE.
12016 (lower_rec_input_clauses): Mark the var we take the address of
12017 TREE_ADDRESSABLE.
12018 (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
12019
2ac26e15
L
120202009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12021
12022 PR middle-end/39315
12023 * cfgexpand.c (expand_one_stack_var_at): Change alignment
12024 limit to MAX_SUPPORTED_STACK_ALIGNMENT.
12025
472c7fbd
RG
120262009-03-27 Richard Guenther <rguenther@suse.de>
12027
12028 PR tree-optimization/39120
12029 * tree-ssa-structalias.c (handle_rhs_call): Fill out return
12030 constraints.
12031 (handle_lhs_call): Process return constraints. Add escape
12032 constraints if necessary.
12033 (handle_const_call): Fill out return constraints. Make nested
12034 case more precise. Avoid consttmp if possible.
12035 (handle_pure_call): Fill out return constraints. Avoid
12036 callused if possible.
12037 (find_func_aliases): Simplify call handling.
12038
120392009-03-27 Richard Guenther <rguenther@suse.de>
12040
12041 PR tree-optimization/39120
12042 * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
12043 as a representative.
12044 (solve_graph): Do propagate CALLUSED.
12045 (handle_pure_call): Use a scalar constraint from CALLUSED for
12046 the return value.
12047 (find_what_p_points_to): CALLUSED shall not appear in poins-to
12048 solutions.
12049
d9223014
L
120502009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12051
12052 PR c/39323
12053 * c-common.c (handle_aligned_attribute): Properly check alignment
12054 overflow. Use (1U << i) instead of (1 << i).
12055
ba20e309 12056 * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
d9223014
L
12057
12058 * expr.h (get_mem_align_offset): Updated.
12059
12060 * tree.h (tree_decl_common): Change align to "unsigned int" and
12061 move it before pointer_alias_set.
12062
689b689c
L
120632009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12064 Jakub Jelinek <jakub@redhat.com>
12065
12066 PR target/38034
12067 * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
12068 gr_register_operand with gr_reg_or_0_operand.
12069 (cmpxchg_rel_di): Likewise.
12070 (sync_lock_test_and_set<mode>): Likewise.
12071
c619e982
L
120722009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12073
12074 * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
12075 (true_regnum): Likewise.
12076
12077 * rtlanal.c (subreg_info): Moved to ...
12078 * rtl.h (subreg_info): Here. New.
12079 (subreg_get_info): New.
12080
12081 * rtlanal.c (subreg_get_info): Make it extern.
12082
51212b32
L
120832009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12084
12085 PR target/39472
12086 * config/i386/i386.c (ix86_abi): New.
12087 (override_options): Handle -mabi=.
ba20e309 12088 (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
51212b32
L
12089 (ix86_call_abi_override): Likewise.
12090 (init_cumulative_args): Likewise.
12091 (function_arg_advance): Likewise.
12092 (function_arg_64): Likewise.
12093 (function_arg): Likewise.
12094 (ix86_pass_by_reference): Likewise.
12095 (ix86_function_value_regno_p): Likewise.
12096 (ix86_build_builtin_va_list_abi): Likewise.
12097 (setup_incoming_varargs_64): Likewise.
12098 (is_va_list_char_pointer): Likewise.
12099 (ix86_init_machine_status): Likewise.
ba20e309 12100 (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
51212b32
L
12101 (ix86_function_type_abi): Return enum calling_abi. Rewrite
12102 for 64bit. Replace DEFAULT_ABI with ix86_abi.
ba20e309 12103 (ix86_function_abi): Make it static and return enum calling_abi.
51212b32
L
12104 (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI
12105 with ix86_abi.
12106 (ix86_fn_abi_va_list): Updated.
12107
12108 * config/i386/i386.h (ix86_abi): New.
12109 (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
12110 (CONDITIONAL_REGISTER_USAGE): Likewise.
12111 (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
12112 (machine_function): Likewise.
12113
12114 * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
12115 with ix86_abi.
12116 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
12117 (STACK_BOUNDARY): Likewise.
12118 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
12119
12120 * config/i386/i386.opt (mabi=): New.
12121
12122 * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
12123 return enum calling_abi.
12124 (ix86_function_type_abi): Likewise.
12125 (ix86_function_abi): Removed.
12126
12127 * doc/invoke.texi: Document -mabi= option for x86.
12128
7338ea63
KG
121292009-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12130
12131 * builtins.c (real_dconstp): Delete.
12132 (fold_builtin_logarithm): Remove inaccurate log(e) special case.
12133
68599f33
DS
121342009-03-27 Dodji Seketeli <dodji@redhat.com>
12135 Jakub Jelinek <jakub@redhat.com>
12136
12137 PR debug/37959
12138 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
12139 (gen_subprogram_die): When a function is explicit, generate the
12140 DW_AT_explicit attribute.
12141 * langhooks.h (struct lang_hooks_for_decls): Add
12142 function_decl_explicit_p langhook.
12143 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
12144 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
12145
9f5e9983
JJ
121462009-03-27 Jakub Jelinek <jakub@redhat.com>
12147
64d7685c
JJ
12148 * builtins.c (fold_builtin_memory_op): Optimize memmove
12149 into memcpy if we can prove source and destination don't overlap.
12150
9f5e9983
JJ
12151 * tree-inline.c: Include gt-tree-inline.h.
12152 (clone_fn_id_num): New variable.
12153 (clone_function_name): New function.
12154 (tree_function_versioning): Use it.
12155 * Makefile.in (GTFILES): Add tree-inline.c.
12156
e54d52a8
MM
121572009-03-27 Mark Mitchell <mark@codesourcery.com>
12158
12159 * BASE-VER: Change to 4.5.0.
12160
e9d51dc6
XDL
121612009-03-27 Xinliang David Li <davidxl@google.com>
12162
12163 PR tree-optimization/39557
12164 * tree-ssa.c (warn_uninitialized_vars): free postdom info.
12165
4577cea1
XDL
121662009-03-27 Xinliang David Li <davidxl@google.com>
12167
12168 PR tree-optimization/39548
2ba9daa7 12169 * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
4577cea1
XDL
12170 candidate check.
12171
0f7464f4
L
121722009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12173
12174 * c-common.c (pointer_int_sum): Use %wd on return from
12175 tree_low_cst.
12176
a8847a7f
L
121772009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12178
12179 * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
12180 on return from tree_low_cst.
12181
b0957daf
AP
121822009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com>
12183
12184 PR c++/36799
ba20e309
UB
12185 * ginclude/stdarg.h (va_copy): Define also for
12186 __GXX_EXPERIMENTAL_CXX0X__.
b0957daf 12187
a5f805df
MLI
121882009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
12189
12190 PR c++/35652
12191 * builtins.h (c_strlen): Do not warn here.
12192 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
12193 * c-common.c (pointer_int_sum): Take an explicit location.
12194 Warn about offsets out of bounds.
12195 * c-common.h (pointer_int_sum): Adjust declaration.
12196
6f401211
RW
121972009-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12198
a5f805df
MLI
12199 * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
12200 markup glitch.
6f401211 12201
5a59b39e
JJ
122022009-03-26 Jakub Jelinek <jakub@redhat.com>
12203
12204 PR c++/39554
12205 * opts.c (warn_if_disallowed_function_p): Don't assume
12206 get_callee_fndecl must return non-NULL.
12207
d5f89b53
VM
122082009-03-26 Vladimir Makarov <vmakarov@redhat.com>
12209
12210 PR rtl-optimization/39522
12211 * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
12212 when reg_reloaded_valid is set.
12213
61238a79
UW
122142009-03-26 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12215
12216 * config/spu/divv2df3.c: New file.
12217 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
12218 (DPBIT_FUNCS): Filter out _div_df.
12219
03f8829b
BS
122202009-03-26 Bernd Schmidt <bernd.schmidt@analog.com>
12221
12222 * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
12223 a jump insn, count that jump in the distance to the loop start.
12224
9fdcdc74
KK
122252009-03-25 Kaz Kojima <kkojima@gcc.gnu.org>
12226
12227 PR target/39523
12228 * config/sh/sh.c (calc_live_regs): Fix condition for global
12229 registers except PIC_OFFSET_TABLE_REGNUM.
12230
46994828
KT
122312009-03-25 Kai Tietz <kai.tietz@onevision.com>
12232
12233 PR/39518
12234 * doc/invoke.texi (-mconsole): New.
12235 (-mcygwin): New.
12236 (-mno-cygwin): New.
12237 (-mdll): New.
12238 (-mnop-fun-dllimport): New.
12239 (-mthread): New.
12240 (-mwin32): New.
12241 (-mwindows): New.
12242 (sub section "i386 and x86-64 Windows Options"): New.
12243
60839f5d 122442009-03-25 Ralf Corsépius <ralf.corsepius@rtems.org>
370017b4
RC
12245
12246 * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
12247 * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
12248
ae560440
RG
122492009-03-25 Richard Guenther <rguenther@suse.de>
12250
12251 PR middle-end/39497
12252 * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
12253 of -Wno-error.
12254
cd510f15
AM
122552009-03-25 Andrey Belevantsev <abel@ispras.ru>
12256
12257 * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
12258 neither of haifa/selective schedulers are working.
12259
44ab0f0e
RW
122602009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12261
12262 * doc/invoke.texi (Debugging Options): Fix description of
12263 -fno-merge-debug-strings.
12264
ad9646c7
HPN
122652009-03-24 Hans-Peter Nilsson <hp@axis.com>
12266
e6142656
HPN
12267 * config/cris/libgcc.ver: New version-script.
12268 * config/cris/t-linux (SHLIB_MAPFILES): Use it.
12269
ad9646c7
HPN
12270 * configure.ac <GAS features, nop mnemonic>: Add pattern
12271 crisv32-*-* for "nop".
ba20e309 12272 <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
ad9646c7
HPN
12273 * configure: Regenerate.
12274
09ac4473
IR
122752009-03-24 Ira Rosen <irar@il.ibm.com>
12276
12277 PR tree-optimization/39529
12278 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
12279 mark_sym_for_renaming for the tag copied to the new vector
12280 pointer.
12281
d94a427e
AL
122822009-03-24 Arthur Loiret <aloiret@debian.org>
12283
ba20e309 12284 * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
d94a427e
AL
12285 * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
12286 EXTRA_SPEC_FUNCTIONS.
12287 (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
12288 * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
12289 * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
12290 -march and -mtune options.
12291
60839f5d 122922009-03-24 Ralf Corsépius <ralf.corsepius@rtems.org>
722d07aa
RC
12293
12294 * config/m68k/t-rtems: Add m5329 multilib.
12295
603f5959
DS
122962009-03-24 Dodji Seketeli <dodji@redhat.com>
12297 Jakub Jelinek <jakub@redhat.com>
12298
12299 PR debug/39524
12300 * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
12301 nodes.
12302
c5cdb03f
JJ
123032009-03-23 Jakub Jelinek <jakub@redhat.com>
12304
12305 PR c/39495
12306 * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
12307 instead of c_parser_expression_conv, if original_code isn't one of the
12308 4 allowed comparison codes, fail.
12309
3691626c
RG
123102009-03-23 Richard Guenther <rguenther@suse.de>
12311
12312 * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
12313 * tree.h (struct tree_type): Likewise.
12314 * reload.h (struct insn_chain): Likewise.
12315 * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
12316 * function.h (struct function): Likewise.
12317 * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
12318
88ccb72a
JJ
123192009-03-23 Jakub Jelinek <jakub@redhat.com>
12320
12321 PR tree-optimization/39516
12322 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
12323
60839f5d 123242009-03-23 Bingfeng Mei <bmei@broadcom.com>
a583a67e 12325
2ba9daa7 12326 * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
a583a67e
BM
12327 should be set true if BITS_PER_WORD of target is bigger than 32
12328
f82162f8
HPN
123292009-03-22 Hans-Peter Nilsson <hp@axis.com>
12330
12331 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
12332 Translate -B-options to -rpath-link. Correct existing
12333 rpath-link and conditionalize on !nostdlib.
12334
048fd785
RW
123352009-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12336
12337 * doc/extend.texi (Function Attributes, Variable Attributes):
12338 Fix typos.
12339 * doc/invoke.texi (Debugging Options, Optimize Options)
12340 (i386 and x86-64 Options, MCore Options): Likewise.
12341
6e75c1a9
JJ
123422009-03-20 Jakub Jelinek <jakub@redhat.com>
12343
12344 PR debug/37890
12345 * dwarf2out.c (gen_namespace_die): Add context_die argument and use
12346 it for block local namespace aliases.
12347 (gen_decl_die): Pass context_die to gen_namespace_die.
12348
ea1199ee
JJ
123492009-03-19 Jakub Jelinek <jakub@redhat.com>
12350
12351 PR c/39495
12352 * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
12353 minimum or maximum value.
12354
58929c10
AO
123552009-03-19 Alexandre Oliva <aoliva@redhat.com>
12356
12357 * reginfo.c (globalize_reg): Recompute derived reg sets.
12358
60839f5d 123592009-03-19 Ozkan Sezer <sezeroz@gmail.com>
234952b3
OS
12360
12361 PR target/39063
12362 * libgcc2.c (mprotect): Do not use signed arguments for
12363 VirtualProtect, use DWORD arguments. Also fix the 'may
12364 be used uninitialized' warning for the np variable.
12365
f57c2f04
JJ
123662009-03-19 Jakub Jelinek <jakub@redhat.com>
12367
12368 PR target/39496
12369 * config/i386/i386.c (ix86_function_regparm): Don't optimize local
12370 functions using regparm calling conventions when not optimizing.
12371 (ix86_function_sseregparm): Similarly for sseregparm calling
12372 conventions.
12373
9e517d61
LF
123742009-03-19 Li Feng <nemokingdom@gmail.com>
12375
12376 PR middle-end/39500
12377 * tree-data-ref.c (analyze_subscript_affine_affine): There is no
12378 dependence if the first conflict is after niter iterations.
12379
8ef20026
HPN
123802009-03-19 Hans-Peter Nilsson <hp@axis.com>
12381
12382 PR middle-end/38609
12383 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
12384 functions with dynamic stack-pointer adjustments.
12385
64e4a1a6
BE
123862009-03-19 Ben Elliston <bje@au.ibm.com>
12387
12388 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
12389 option; change to -msdata=data.
12390
9a0f3e86
RW
123912009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12392
12393 * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
12394 and -fopenmp.
12395
09bc5979
EB
123962009-03-18 Eric Botcazou <ebotcazou@adacore.com>
12397
12398 PR target/35180
12399 * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
12400
332459cd
SL
124012009-03-18 Sandra Loosemore <sandra@codesourcery.com>
12402
12403 * doc/invoke.texi (Code Gen Options): Expand discussion of
12404 -fno-common.
12405
8f5929e1
JJ
124062009-03-18 Jakub Jelinek <jakub@redhat.com>
12407
12408 * dse.c (struct group_info): Reorder fields for 64-bit hosts.
12409 * matrix-reorg.c (struct matrix_info): Likewise.
12410 * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
12411 * rtl.h (struct mem_attrs): Likewise.
12412 * df.h (struct df): Likewise.
12413 * tree-data-ref.h (struct data_dependence_relation): Likewise.
12414 * ira-int.h (struct ira_allocno): Likewise.
12415 * df-scan.c (struct df_collection_rec): Likewise.
12416 * ira.c (struct equivalence): Likewise.
12417 * function.c (struct temp_slot): Likewise.
12418 * cfgloop.h (struct loop): Likewise.
12419
d130d647
JJ
12420 PR debug/39485
12421 * function.c (use_register_for_decl): When not optimizing, disregard
12422 register keyword for variables with types containing methods.
12423
9968d233
SP
124242009-03-18 Sebastian Pop <sebastian.pop@amd.com>
12425
12426 PR middle-end/39447
12427 * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
12428 (is_simple_operand): Call contains_component_ref_p before calling data
12429 reference analysis that would fail on COMPONENT_REFs.
12430
12431 * tree-vrp.c (search_for_addr_array): Fix formatting.
12432
69484bfd
RG
124332009-03-18 Richard Guenther <rguenther@suse.de>
12434
12435 * tree-vect-transform.c (vect_loop_versioning): Fold the
12436 generated comparisons.
12437 * tree-vectorizer.c (set_prologue_iterations): Likewise.
12438 (slpeel_tree_peel_loop_to_edge): Likewise.
12439
66811228
RW
124402009-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12441
0631b69f
RW
12442 PR middle-end/37805
12443 * opts.c (print_specific_help): In addition to `undocumented',
12444 accept `separate' and `joined' flags if passed alone. Describe
12445 output by the first matched one of those.
12446 (common_handle_option): Skip over empty strings.
12447 * gcc.c (display_help): Fix help string for `--help='.
12448 * doc/invoke.texi (Option Summary, Overall Options): With
12449 `--help=', classes and qualifiers can both be repeated, but
12450 only the latter can be negated. One should not pass only
12451 negated qualifiers. Fix markup and examples.
12452
66811228
RW
12453 Revert
12454 2008-10-14 Jakub Jelinek <jakub@redhat.com>
12455 PR middle-end/37805
12456 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
12457 and -fhelp=separate.
12458
3c072c6b
JY
124592009-03-17 Jing Yu <jingyu@google.com>
12460
12461 PR middle-end/39378
80c65208
JY
12462 * function.h (struct rtl_data): Move is_thunk from here...
12463 (struct function): ...to here.
12464 * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
3c072c6b
JY
12465 * varasm.c (assemble_start_function): Change is_thunk from crtl to
12466 cfun.
80c65208
JY
12467 * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
12468 cfun.
12469 (alpha_does_function_need_gp, alpha_start_function): Likewise.
12470 (alpha_output_function_end_prologue): Likewise.
12471 (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
12472 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
12473 (rs6000_output_function_epilogue): Likewise.
12474 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
3c072c6b 12475
9ade279b
UB
124762009-03-17 Uros Bizjak <ubizjak@gmail.com>
12477
12478 PR target/39482
12479 * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
12480 from different units in a single alternative.
12481 (*truncdfsf_i387): Ditto.
12482 (*truncxfsf2_mixed): Ditto.
12483 (*truncxfdf2_mixed): Ditto.
12484
16e60c17
JJ
124852009-03-17 Jakub Jelinek <jakub@redhat.com>
12486
98381eb4
JJ
12487 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
12488 non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
12489
df5deb18
JJ
12490 PR debug/39474
12491 * tree-ssa-live.c (remove_unused_locals): Don't remove local
12492 unused non-artificial variables when not optimizing.
12493
a3f596ba
JJ
12494 PR debug/39471
12495 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
12496 DW_TAG_imported_module even if decl is IMPORTED_DECL with
12497 NAMESPACE_DECL in its DECL_INITIAL.
12498
6b2b8871
JJ
12499 PR middle-end/39443
12500 * optabs.c (set_user_assembler_libfunc): New function.
12501 * expr.h (set_user_assembler_libfunc): New prototype.
12502 * c-common.c: Include libfuncs.h.
12503 (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
12504 for memcmp, memset, memcpy, memmove and abort.
12505 * Makefile.in (c-common.o): Depend on libfuncs.h.
12506
16e60c17
JJ
12507 PR debug/39412
12508 * dwarf2out.c (gen_inlined_enumeration_type_die,
12509 gen_inlined_structure_type_die, gen_inlined_union_type_die,
12510 gen_tagged_type_instantiation_die): Removed.
12511 (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
12512 do nothing.
12513
4d936aca
JJ
125142009-03-17 Janis Johnson <janis187@us.ibm.com>
12515
12516 PR testsuite/38526
12517 * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
12518 its use.
12519 (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
12520 (check-parallel-%): Ditto.
12521 (check-consistency): Ditto.
12522
4e9b2e50
KT
125232009-03-17 Kai Tietz <kai.tietz@onevision.com>
12524
12525 * ipa-struct-reorg.c (create_general_new_stmt): Initialize
12526 local variable rhs by NULL_TREE.
12527
21440b2d
L
125282009-03-17 H.J. Lu <hongjiu.lu@intel.com>
12529
12530 PR target/39477
9ade279b 12531 * doc/extend.texi: Correct register behavior for regparm on Intel 386.
21440b2d 12532
d8905c6a
L
125332009-03-17 H.J. Lu <hongjiu.lu@intel.com>
12534
12535 PR target/39476
9ade279b 12536 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
d8905c6a
L
12537
125382009-03-17 H.J. Lu <hongjiu.lu@intel.com>
435a61d3
L
12539
12540 PR target/39473
12541 * config/i386/i386.c (ix86_expand_call): Check extra clobbers
12542 for ms->sysv ABI calls only in 64bit mode.
12543
12544 * config/i386/i386.md (untyped_call): Support 32bit.
12545
cdcabece
L
125462009-03-16 H.J. Lu <hongjiu.lu@intel.com>
12547
12548 * doc/extend.texi: Replace x86_65 with x86_64.
12549
97b4ba9f
JJ
125502009-03-16 Jakub Jelinek <jakub@redhat.com>
12551
12552 PR tree-optimization/39455
12553 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
12554 mismatches for POINTER_TYPE_P (type).
12555 (number_of_iterations_le): Likewise.
12556
60839f5d 125572009-03-16 Hariharan Sandanagobalane <hariharan@picochip.com>
83c191e1
HS
12558
12559 * config/picochip/picochip.c: Removed profiling support.
12560 * config/picochip/picochip.md: Removed profiling instruction.
12561 * config/picochip/picochip.h: Removed profiling builtin.
12562
f38095f3
JM
125632009-03-16 Joseph Myers <joseph@codesourcery.com>
12564
12565 * doc/install.texi (--with-host-libstdcxx): Document.
12566
2cb4817b
AS
125672009-03-14 Anatoly Sokolov <aesok@post.ru>
12568
12569 PR target/34299
12570 * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
12571 generate a warning if the function name does not begin with
12572 "__vector" and the function has either the 'signal' or 'interrupt'
12573 attribute, from here to ...
12574 (avr_declare_function_name): ...here. New function.
12575 * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
12576 * config/avr/avr-protos.h (avr_declare_function_name): Declare.
12577
39b2ac74
JJ
125782009-03-14 Jakub Jelinek <jakub@redhat.com>
12579
12580 PR bootstrap/39454
12581 * cse.c (fold_rtx): Don't modify original const_arg1 when
12582 canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
12583 separate variable instead.
12584 * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
12585 from out of range shift counts.
12586 (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
12587
ad41bd84 125882009-03-13 Catherine Moore <clm@codesourcery.com>
f7a82dee 12589
60839f5d 12590 * config/i386/x-mingw32 (host-mingw32.o): Replace
f7a82dee
CM
12591 diagnostic.h with $(DIAGNOSTIC_H).
12592
ad41bd84 125932009-03-12 Jakub Jelinek <jakub@redhat.com>
03a18198
JJ
12594
12595 PR target/39431
12596 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
12597 predicate.
12598 * config/i386/sync.md (sync_compare_and_swap<mode>,
12599 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
12600 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
12601 into a register.
12602 (sync_double_compare_and_swapdi_pic,
12603 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
12604 cmpxchg8b_pic_memory_operand instead of just memory_operand.
12605
122c59c7
L
126062009-03-12 H.J. Lu <hongjiu.lu@intel.com>
12607
12608 PR target/39445
9ade279b 12609 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
122c59c7 12610
cec8874f
L
126112009-03-12 H.J. Lu <hongjiu.lu@intel.com>
12612
12613 PR target/39327
12614 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
12615 (avx_addsubv4df3): Likewise.
12616 (*avx_addsubv4sf3): Likewise.
12617 (sse3_addsubv4sf3): Likewise.
12618
bbb52802
L
126192009-03-12 H.J. Lu <hongjiu.lu@intel.com>
12620
12621 PR target/38824
9ade279b 12622 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
bbb52802 12623
a812fb07
VM
126242009-03-12 Vladimir Makarov <vmakarov@redhat.com>
12625
12626 PR debug/39432
12627 * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
12628 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
12629 registers for allocnos created from user-defined variables.
12630
4caab5ba
UW
126312009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12632
12633 PR target/39181
12634 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
12635 of non-integer mode as well.
12636
498e51ca
AN
126372009-03-11 Adam Nemet <anemet@caviumnetworks.com>
12638
12639 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
12640 for functions for which the parameter types are unknown.
12641
9bfaf89d
JJ
126422009-03-11 Jakub Jelinek <jakub@redhat.com>
12643
12644 PR target/39137
9ade279b 12645 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
9bfaf89d
JJ
12646 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
12647 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
12648 * config/i386/i386.c (ix86_local_alignment): For
12649 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
12650 long long variables on the stack to avoid dynamic realignment.
12651 Allow the first argument to be a decl rather than type.
12652 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
12653
18a3bdcb
NC
126542009-03-11 Nick Clifton <nickc@redhat.com>
12655
12656 PR target/5362
40190a76
NC
12657 * config/mcore/mcore.opt: Remove deprecated m4align and m8align
12658 options.
12659 Add description to mno-lsim option.
12660 * config/mcore/mcore.h: Remove comment about deprecated m4align
12661 option.
12662 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
12663 * doc/invoke.texi: Add description of mno-lsim and
12664 mstack-increment options.
12665
18a3bdcb
NC
12666 * config/fr30/fr30.opt: Document the -mno-lsim option.
12667 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
12668 and -mno-lsim options.
12669
dc215785
UW
126702009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12671
12672 * fold-const.c (fold_comparison): Only call fold_inf_compare
12673 if the mode supports infinities.
12674
7716876b
JM
126752009-03-11 Jason Merrill <jason@redhat.com>
12676
12677 PR debug/39086
12678 * tree-nrv.c (tree_nrv): Don't do this optimization if the front
12679 end already did. Notice GIMPLE_CALL modifications of the result.
12680 Don't copy debug information from an ignored decl or a decl from
12681 another function.
12682
ddef83d2
RG
126832009-03-10 Richard Guenther <rguenther@suse.de>
12684 Nathan Froyd <froydnj@codesourcery.com>
12685
12686 PR middle-end/37850
9ade279b 12687 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
ddef83d2
RG
12688 (__divMODE3): Likewise.
12689
9a9ba8d9
JJ
126902009-03-09 Jakub Jelinek <jakub@redhat.com>
12691
12692 PR tree-optimization/39394
12693 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
12694 DECL_SIZE_UNIT of variable length FIELD_DECLs.
12695
929b7fc3
AK
126962009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12697
12698 * recog.c (verfiy_changes): Disallow renaming of hard regs in
12699 inline asms for register asm ("") declarations.
12700
1803581d
EB
127012009-03-09 Eric Botcazou <ebotcazou@adacore.com>
12702
12703 * fold-const.c (fold_unary): Fix comment.
12704
8454d27e
JH
127052009-03-07 Jan Hubicka <jh@suse.cz>
12706
12707 PR target/39361
969a5433
JJ
12708 * tree-inline.c (setup_one_parameter): Do replacement of const
12709 argument by constant in SSA form.
8454d27e 12710
3a695389
UW
127112009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12712
12713 PR middle-end/38028
12714 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
12715 determine alignment passed to assign_stack_local.
12716 (assign_parms_unsplit_complex): Likewise.
12717 * except.c (sjlj_build_landing_pads): Likewise.
12718
9f0e7885
JJ
127192009-03-06 Jakub Jelinek <jakub@redhat.com>
12720
65401a0b
JJ
12721 PR middle-end/39360
12722 * tree-flow.h (add_referenced_var): Return bool instead of void.
12723 * tree-dfa.c (add_referenced_var): Return result of
12724 referenced_var_check_and_insert call.
12725 * tree-inline.c (expand_call_inline): Call add_referenced_var instead
12726 of referenced_var_check_and_insert.
12727
9f0e7885 12728 PR debug/39372
9ade279b 12729 * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
9f0e7885
JJ
12730 (gen_variable_die): Emit DW_AT_location on abstract static variable's
12731 DIE, don't emit it if abstract origin already has it.
12732 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
12733 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
12734
3b664bd1
JBG
127352009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
12736
ba20e309 12737 * genpreds.c (needs_variable): Fix parentheses at variable name
3b664bd1
JBG
12738 detection.
12739 (write_tm_constrs_h): Indent generated code.
12740
d8f8ca80
RR
127412009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12742
12743 * doc/extend.texi (Function Attributes): Add documentation
12744 for isr attributes.
12745
6c3d550c
JJ
127462009-03-06 Jakub Jelinek <jakub@redhat.com>
12747
12748 PR debug/39387
12749 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
12750 take locus from its DECL_SOURCE_LOCATION instead of input_location.
12751
f9e96751
BS
127522009-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
12753
12754 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
12755 the loop as bad.
12756
ee0ee7e2
JJ
127572009-03-05 Jakub Jelinek <jakub@redhat.com>
12758
12759 PR debug/39379
12760 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
12761 with blocks containing IMPORTED_DECLs in BLOCK_VARS.
12762
6c6094f1
UB
127632009-03-05 Uros Bizjak <ubizjak@gmail.com>
12764
12765 * config/i386/i386.md (R8_REG, R9_REG): New constants.
12766 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
12767 constants instead of magic numbers.
12768 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
12769 (QI_REG_P): Ditto.
12770 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
12771 (x86_64_ms_abi_int_parameter_registers): Ditto.
12772 (x86_64_int_return_registers): Ditto.
09f8a8d3 12773 (ix86_maybe_switch_abi): Ditto.
6c6094f1
UB
12774 (ix86_expand_call): Ditto for clobbered_registers array.
12775 (ix86_hard_regno_mode_ok): Ditto.
12776 (x86_extended_QIreg_mentioned_p): Ditto.
12777
b267bd41
R
127782009-03-05 J"orn Rennecke <joern.rennecke@arc.com>
12779
6c6094f1 12780 PR tree-optimization/39349
1f3ad3f0
R
12781 * cse.c (cse_insn): Fix loop to stop at VOIDmode.
12782
b267bd41
R
12783 * combine.c (gen_lowpart_for_combine): Use omode when generating
12784 clobber.
12785
1242bc9d
R
127862009-03-04 J"orn Rennecke <joern.rennecke@arc.com>
12787
6c6094f1 12788 PR rtl-optimization/39235
1242bc9d
R
12789 * loop-iv.c (get_simple_loop_desc): Use XCNEW.
12790
48f03606
ZD
127912009-03-04 Zdenek Dvorak <ook@ucw.cz>
12792
12793 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
12794
b505e785
RG
127952009-03-04 Richard Guenther <rguenther@suse.de>
12796
12797 PR tree-optimization/39362
12798 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
12799 that occur in abnormal PHIs should be varying.
12800
f017bf5e
ZD
128012009-03-04 Zdenek Dvorak <ook@ucw.cz>
12802
12803 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
12804 Extend comments.
12805 (simple_iv): Take loop as an argument instead of statement.
12806 * tree-scalar-evolution.h (simple_iv): Declaration changed.
12807 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
12808 to simple_iv.
12809 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
12810 Ditto.
12811 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
12812 * matrix-reorg.c (analyze_transpose): Ditto.
12813 * tree-data-ref.c (dr_analyze_innermost): Ditto.
12814 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
12815 * tree-predcom.c (ref_at_iteration): Ditto.
12816 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
12817
6a66f28e
RG
128182009-03-04 Richard Guenther <rguenther@suse.de>
12819
12820 PR tree-optimization/39358
12821 * tree-ssa-structalias.c (do_sd_constraint): Fix check for
12822 escaped_id and callused_id.
12823 (solve_graph): Likewise.
12824
57e454ee
RG
128252009-03-04 Richard Guenther <rguenther@suse.de>
12826
12827 PR tree-optimization/39339
12828 * tree-sra.c (try_instantiate_multiple_fields): Make it
12829 no longer ICE on the above.
12830
a6fe9ed4
JM
128312009-03-03 Joseph Myers <joseph@codesourcery.com>
12832
12833 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
12834 that fits within Pmode.
12835
dc672951
SE
128362009-03-03 Steve Ellcey <sje@cup.hp.com>
12837
12838 PR middle-end/10109
12839 * tm.texi (LIBCALL_VALUE): Update description.
12840
8b9d598f
SE
128412009-03-03 Steve Ellcey <sje@cup.hp.com>
12842
12843 PR middle-end/34443
12844 * doc/extend.texi (section): Update description.
12845
13e4e36e
L
128462009-03-03 H.J. Lu <hongjiu.lu@intel.com>
12847
12848 PR middle-end/39345
12849 * tree-inline.c (remapped_type): New.
12850 (can_be_nonlocal): Call remapped_type instead of remap_type.
12851
067dd3c9
JJ
128522009-03-03 Jakub Jelinek <jakub@redhat.com>
12853
12854 PR fortran/39354
12855 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
12856 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
12857
9bd9f738
RG
128582009-03-03 Richard Guenther <rguenther@suse.de>
12859
12860 PR middle-end/39272
12861 * tree.c (tree_nonartificial_location): New function.
12862 * tree.h (tree_nonartificial_location): Declare.
12863 * builtins.c (expand_builtin_memory_chk): Provide location
12864 of the call location for artificial function pieces.
12865 (maybe_emit_chk_warning): Likewise.
12866 (maybe_emit_sprintf_chk_warning): Likewise.
12867 (maybe_emit_free_warning): Likewise.
12868 * expr.c (expand_expr_real_1): Likewise.
12869
f07049c8
JJ
128702009-03-03 Jakub Jelinek <jakub@redhat.com>
12871
12872 PR tree-optimization/39343
12873 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
12874 COMPONENT_REF t has ARRAY_TYPE.
12875
7d4fba4a
SP
128762009-03-02 Sebastian Pop <sebastian.pop@amd.com>
12877
12878 PR middle-end/39335
12879 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
12880 when the type precision of the induction variable should be
12881 larger than the type precision of nit.
12882 (gen_parallel_loop): Update use of canonicalize_loop_ivs.
12883 * graphite.c (graphite_loop_normal_form): Same.
12884 * tree-flow.h (canonicalize_loop_ivs): Update declaration.
12885
78168632
UB
128862009-03-02 Uros Bizjak <ubizjak@gmail.com>
12887
12888 * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
12889 (*call_1_rex64_ms_sysv): Use named constants instead of magic
6c6094f1 12890 numbers to describe clobbered registers.
78168632 12891 (*call_value_0_rex64_ms_sysv): Ditto.
6c6094f1
UB
12892 * config/i386/mmx.md (mmx_emms): Ditto.
12893 (mmx_femms): Ditto.
78168632 12894
63553059
RS
128952009-03-02 Richard Sandiford <rdsandiford@googlemail.com>
12896
12897 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
12898 of ABI_64.
12899
500a1f85
UW
129002009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12901
12902 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
12903 (spu_section_type_flags): New function.
12904
962aae34
UB
129052009-03-02 Uros Bizjak <ubizjak@gmail.com>
12906
12907 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
12908 reg_class_contents of FLOAT_REGS into a temporary.
12909
6dfb529c 129102009-03-02 Richard Guenther <rguenther@suse.de>
962aae34 12911 Ira Rosen <irar@il.ibm.com>
6dfb529c
RG
12912
12913 PR tree-optimization/39318
12914 * tree-vect-transform.c (vectorizable_call): Transfer the EH region
12915 information to the vectorized statement.
12916
6b5629db
UB
129172009-03-01 Uros Bizjak <ubizjak@gmail.com>
12918
434426d2
UB
12919 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
12920 variable. Use defined names instead of magic constants for REX SSE
12921 registers.
6b5629db 12922
14e5b285
RG
129232009-03-01 Richard Guenther <rguenther@suse.de>
12924
12925 PR tree-optimization/39331
12926 * omp-low.c (lower_send_shared_vars): Do not receive new
12927 values for the reference of DECL_BY_REFERENCE parms or results.
12928
526d73ab
JH
129292009-03-01 Jan Hubicka <jh@suse.cz>
12930
12931 PR debug/39267
12932 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
12933 BLOCK_NONLOCALIZED_VAR): New macros.
12934 (tree_block): Add nonlocalized_vars.
f4ea99bd
EB
12935 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
12936 gen_decl_die): Add origin argument. Allow generation of die with
12937 origin at hand only.
526d73ab 12938 (gen_member_die, gen_type_die_with_usage, force_decl_die,
f4ea99bd
EB
12939 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
12940 of gen_*.
526d73ab
JH
12941 (gen_block_die): Fix checking for unused blocks.
12942 (process_scope_var): Break out from .... ; work with origins only.
12943 (decls_for_scope) ... here; process nonlocalized list.
12944 (dwarf2out_ignore_block): Look for nonlocalized vars.
f4ea99bd
EB
12945 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
12946 vars.
526d73ab
JH
12947 (dump_scope_block): Dump them.
12948 * tree-inline.c (remap_decls): Handle nonlocalized vars.
12949 (remap_block): Likewise.
12950 (can_be_nonlocal): New predicate.
12951 (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
12952
7a9d3fe8
RW
129532009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12954
12955 * configure: Regenerate.
12956
b3cdf3cb
RW
129572009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12958
a16d1645 12959 * optc-gen.awk: No need to duplicate option flags twice.
9ade279b 12960 Reuse help texts for duplicate options which do not have any.
a16d1645 12961
1156c176
RW
12962 * gcc.c (display_help): Document --version.
12963
033505fc
RW
12964 * gcc.c (main): If print_help_list and verbose_flag, ensure
12965 driver output comes before subprocess output.
12966
4d077054
RW
12967 * optc-gen.awk: Assign all remaining fields to help string,
12968 space-separated, for multi-line help in *.opt.
12969
a072f1cf
RW
12970 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
12971 -Wno-pedantic-ms-format is for MinGW targets only.
12972
b3cdf3cb
RW
12973 * doc/options.texi (Option file format): Fix bad indentation,
12974 restoring dropped sentence.
12975
a3aadcc5
JH
129762009-02-28 Jan Hubicka <jh@suse.cz>
12977
12978 * tree-inline.c (tree_function_versioning): Output debug info.
12979
1cf5abb3
JH
129802009-02-28 Jan Hubicka <jh@suse.cz>
12981
12982 PR debug/39267
12983 * tree-inline.c (setup_one_parameter): Do not copy propagate
12984 arguments when not optimizing.
12985
c4d3f42f
L
129862009-02-28 H.J. Lu <hongjiu.lu@intel.com>
12987
12988 PR target/39327
12989 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
12990 (avx_addsubv4df3): Likewise.
12991 (*avx_addsubv4sf3): Likewise.
12992 (sse3_addsubv4sf3): Likewise.
12993 (*avx_addsubv2df3): Likewise.
12994 (sse3_addsubv2df3): Likewise.
12995 (avx_unpckhps256): Correct item selectors.
12996 (avx_unpcklps256): Likewise.
12997 (avx_unpckhpd256): Likewise.
12998 (avx_unpcklpd256): Likewise.
12999
eb50f5f4
JH
130002009-02-28 Jan Hubicka <jh@suse.cz>
13001
13002 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
13003 static vars.
13004 (copy_arguments_for_versioning): If var is declared don't declare it.
13005 (tree_function_versioning): First setup substitutions and then copy
13006 args.
13007
26140130
JH
130082009-02-27 Jan Hubicka <jh@suse.cz>
13009
13010 PR debug/39267
13011 * cgraph.h (varpool_output_debug_info): Remove.
13012 * cgraphunit.c (varpool_output_debug_info): Remove.
13013 * dwarf2out.c (deferred_locations_struct): New struct
13014 (deferred_locations): New type.
13015 (deferred_locations_list): New static var.
13016 (deffer_location): New function.
13017 (gen_variable_die): Use it.
13018 (decls_for_scope): Output info on local static vars.
13019 (dwarf2out_finish): Process deferred locations.
13020 * varpool.c (varpool_output_debug_info): Remove.
13021
cff7525f
JH
130222009-02-27 Jan Hubicka <jh@suse.cz>
13023
13024 PR debug/39267
13025 * tree.h (TREE_PROTECTED): Fix comment.
13026 (BLOCK_HANDLER_BLOCK): Remove.
13027 (struct tree_block): Remove handler_block add body_block.
13028 (inlined_function_outer_scope_p): New.
13029 (is_body_block): Remove.
13030 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
13031 * dwarf2out.c (is_inlined_entry_point): Remove.
13032 (add_high_low_attributes): Use inlined_function_outer_scope_p.
f10a1c6c
EB
13033 (gen_block_die): Use is_inlined_entry_point check. Remove body block
13034 code.
cff7525f
JH
13035 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
13036 * gimplify.c (gimplify_expr): Gimplify body blocks.
f10a1c6c
EB
13037 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
13038 block with multiple subblocks.
cff7525f
JH
13039 (dump_scope_block): Prettier output; dump more flags and info.
13040 (dump_scope_blocks): New.
13041 (remove_unused_locals): Use dump_scope_blocks.
13042 * tree-flow.h (dump_scope_blocks): Declare.
13043 * tree-cfg.c (execute_build_cfg): Dump scope blocks.
13044 * stmt.c (is_body_block): Remove.
13045 * tree-inline.c (remap_block): Copy BODY_BLOCK info.
13046 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
13047
c20993b9
SP
130482009-02-27 Sebastian Pop <sebastian.pop@amd.com>
13049
13050 PR middle-end/39308
2ba9daa7 13051 * graphite.c (graphite_loop_normal_form): Do not call
c20993b9
SP
13052 number_of_iterations_exit from a gcc_assert.
13053
e3cba5e5
AK
130542009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13055
60839f5d 13056 * config/s390/s390.c (s390_swap_cmp): Look for conditional
e3cba5e5
AK
13057 jumps if COND is NULL.
13058 (find_cond_jump): New function.
13059 (s390_z10_optimize_cmp): Handling for reg-reg compares added.
60839f5d 13060 * config/s390/s390.md: Remove z10_cobra attribute value.
e3cba5e5 13061
9dadeeb8
UB
130622009-02-26 Uros Bizjak <ubizjak@gmail.com>
13063
13064 * config/alpha/alpha.h (alpha_expand_mov): Return false if
13065 force_const_mem returns NULL_RTX.
13066
625d3251
EB
130672009-02-26 Jan Hubicka <jh@suse.cz>
13068
13069 PR debug/39267
13070 * cgraph.h (varpool_output_debug_info): Remove.
13071 * cgraphunit.c (varpool_output_debug_info): Remove.
13072 * dwarf2out.c (deferred_locations_struct): New struct
13073 (deferred_locations): New type.
13074 (deferred_locations_list): New static var.
13075 (deffer_location): New function.
13076 (gen_variable_die): Use it.
13077 (decls_for_scope): Output info on local static vars.
13078 (dwarf2out_finish): Process deferred locations.
13079 * varpool.c (varpool_output_debug_info): Remove.
13080
38432148 130812009-02-25 H.J. Lu <hongjiu.lu@intel.com>
8592acaf
L
13082
13083 PR rtl-optimization/39241
13084 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
13085 to subreg_offset_representable_p.
13086
62d049cf
PB
130872009-02-25 Paolo Bonzini <bonzini@gnu.org>
13088
13089 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
13090 execute function prototype. Get f and nregs from max_reg_num
13091 and get_insns. Remove the first backward pass as it's dead,
13092 guard the forward pass by flag_expensive_optimizations.
13093 (rest_of_handle_regmove): Delete.
13094 (pass_regmove): Replace it with regmove_optimize.
13095
f618d33e
MJ
130962009-02-25 Martin Jambor <mjambor@suse.cz>
13097
13098 PR tree-optimization/39259
13099 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
6c6094f1 13100 calls_alloca function flags.
f618d33e
MJ
13101 (copy_bb): Set calls_setjmp and alls_alloca function flags if such
13102 calls are detected.
13103
c8a05f7c
PB
131042009-02-25 Paolo Bonzini <bonzini@gnu.org>
13105
13106 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
13107 flags_set_1_rtx, flags_set_1_set): Delete.
13108 (regmove_optimize): Do not call mark_flags_life_zones.
13109
6d2538f5
JB
131102009-02-24 Julian Brown <julian@codesourcery.com>
13111
13112 PR target/35965
13113 * config/arm/arm.c (require_pic_register): Only set
13114 cfun->machine->pic_reg once per function.
13115
a2fa6772
SL
131162009-02-24 Sandra Loosemore <sandra@codesourcery.com>
13117
13118 * doc/invoke.texi (Link Options): Document an easier way to pass
9dadeeb8 13119 options that take arguments to the GNU linker using -Xlinker and -Wl.
a2fa6772 13120
5472de36
SE
131212009-02-24 Steve Ellcey <sje@cup.hp.com>
13122
13123 PR target/33785
13124 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
13125
844216f3
RG
131262009-02-24 Richard Guenther <rguenther@suse.de>
13127
13128 PR debug/39285
13129 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
13130
71adbef3 131312009-02-24 Richard Guenther <rguenther@suse.de>
8592acaf 13132 Zdenek Dvorak <ook@ucw.cz>
71adbef3
RG
13133
13134 PR tree-optimization/39233
13135 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
13136 from converting them to a generic type.
13137
f1a558e0
SP
131382009-02-23 Sebastian Pop <sebastian.pop@amd.com>
13139
13140 PR tree-optimization/39260
13141 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
13142 contains a condition with a real type.
13143 (build_scop_conditions_1): Conditions are always last_stmt of a bb.
13144
d8028f2c
JM
131452009-02-23 Jason Merrill <jason@redhat.com>
13146
13147 PR c++/38880
13148 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
13149 narrowing_initializer_constant_valid_p.
2ba9daa7 13150 (narrowing_initializer_constant_valid_p): Don't return
d8028f2c
JM
13151 null_pointer_node for adding a pointer to itself.
13152
9283b513
JH
131532009-02-23 Jan Hubicka <jh@suse.cz>
13154
13155 PR c/12245
9dadeeb8
UB
13156 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
13157 resizing.
9283b513 13158
61e04322
JH
131592009-02-23 Jan Hubicka <jh@suse.cz>
13160
9dadeeb8
UB
13161 PR tree-optimization/37709
13162 * tree.c (block_ultimate_origin): Move here from dwarf2out.
13163 * tree.h (block_ultimate_origin): Declare.
13164 * dwarf2out.c (block_ultimate_origin): Move to tree.c
61e04322
JH
13165 * tree-ssa-live.c (remove_unused_scope_block_p):
13166 Eliminate blocks containig no instructions nor live variables nor
13167 nested blocks.
13168 (dump_scope_block): New function.
13169 (remove_unused_locals): Enable removal of dead blocks by default;
9dadeeb8 13170 enable dumping at TDF_DETAILS.
61e04322 13171
38432148 131722009-02-21 H.J. Lu <hongjiu.lu@intel.com>
5339d3ea
L
13173
13174 * config/i386/i386.c (classify_argument): Don't allow COImode
13175 and OImode.
13176 (function_arg_advance_32): Don't allow OImode.
13177 (function_arg_32): Likewise.
13178 (function_value_32): Likewise.
13179 (return_in_memory_32): Likewise.
13180 (function_arg_64): Remove OImode comment.
13181
38432148 131822009-02-21 H.J. Lu <hongjiu.lu@intel.com>
f161e158
L
13183
13184 PR target/39261
13185 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
13186 ix86_expand_vector_set for V4DImode in 64bit mode only.
13187 (ix86_expand_vector_init_one_var): Likewise.
13188
dcd739a6
SP
131892009-02-21 Sebastian Pop <sebastian.pop@amd.com>
13190
13191 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
13192
6c3b938d
RS
131932009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
13194
8e361f23 13195 PR bootstrap/39257
6c3b938d
RS
13196 * loop-iv.c: Revert last change.
13197 * emit-rtl.c: Likewise.
13198
38432148 131992009-02-21 H.J. Lu <hongjiu.lu@intel.com>
4c64d3dd
L
13200
13201 PR target/39256
13202 * config/i386/i386.c (type_natural_mode): Remove an extra
13203 space in the warning message.
13204 (function_value_32): Handle 32-byte vector modes.
13205 (return_in_memory_32): Likewise.
13206
2ec62529
RS
132072009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
13208
13209 * loop-iv.c (truncate_value): New function.
13210 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
13211 of lowpart_subreg.
13212 (lowpart_subreg): Move to...
13213 * emit-rtl.c: ...here.
13214
ecb8c3cc 132152009-02-21 Danny Smith <dannysmith@users.sourceforge.net>
f814e489 13216
ecb8c3cc
DS
13217 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
13218 accidental and undocumented change at revision 140860.
13219
ae46a823
JM
132202009-02-21 Joseph Myers <joseph@codesourcery.com>
13221
13222 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
13223 take gimple_seq * arguments.
13224 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
13225 types_compatible_p langhook.
13226
07d8efe3 132272009-02-20 Mark Mitchell <mark@codesourcery.com>
f814e489 13228 Joseph Myers <joseph@codesourcery.com>
07d8efe3
MM
13229
13230 * config/arm/arm.c (arm_builtin_va_list): New function.
13231 (arm_expand_builtin_va_start): Likewise.
13232 (arm_gimplify_va_arg_expr): Likewise.
13233 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
13234 (TARGET_BUILD_BUILTIN_VA_START): Likewise.
13235 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
13236 (va_list_type): New variable.
13237 (arm_mangle_type): Mangle va_list_type appropriately.
13238
b1fb9f56
JJ
132392009-02-20 Jakub Jelinek <jakub@redhat.com>
13240
13241 PR middle-end/39157
13242 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
13243 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
13244 * params.def (loop-invariant-max-bbs-in-loop): New parameter.
13245 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
13246 parameter to 1000 for -O1 by default.
13247 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
13248 parameter.
13249 * loop-invariant.c: Include params.h.
13250 (move_loop_invariants): Don't call move_single_loop_invariants on
13251 very large loops.
13252
5bc0807c
JM
132532009-02-20 Jaka Mocnik <jaka@xlab.si>
13254
13255 * calls.c (emit_library_call_value_1): Use slot_offset instead of
13256 offset when calculating bounds for indexing stack_usage_map. Fixes
13257 a buffer overflow with certain target setups.
13258
c69cd1f5
JJ
132592009-02-20 Jakub Jelinek <jakub@redhat.com>
13260
13261 PR target/39240
13262 * calls.c (expand_call): Clear try_tail_call if caller and callee
13263 disagree in promotion of function return value.
13264
09812622
JJ
132652009-02-19 Jakub Jelinek <jakub@redhat.com>
13266
13267 PR target/39175
13268 * c-common.c (c_determine_visibility): If visibility changed and
13269 DECL_RTL has been already set, call make_decl_rtl to update symbol
13270 flags.
13271
68017cb4
L
132722009-02-19 H.J. Lu <hongjiu.lu@intel.com>
13273
13274 PR c++/39188
13275 * varasm.c (assemble_variable): Don't check DECL_NAME when
13276 globalizing a variable.
13277
ab4194da
JM
132782009-02-19 Joseph Myers <joseph@codesourcery.com>
13279
13280 PR c/38483
13281 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
13282 expression before any __builtin_trap call.
13283 * c-typeck.c (build_function_call): Convert and check function
13284 arguments before generating a call to a trap. Evaluate the
13285 function arguments before the trap.
13286
6b67572e
UB
132872009-02-19 Uros Bizjak <ubizjak@gmail.com>
13288
13289 PR target/39228
13290 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
13291 (UNSPEC_FXAM_MEM): New unspec.
13292 (fxam<mode>2_i387_with_temp): New insn and split pattern.
13293 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
13294 memory using fxam<mode>2_i387_with_temp to remove excess precision.
13295
9e39dba6
RG
132962009-02-19 Richard Guenther <rguenther@suse.de>
13297
13298 PR tree-optimization/39207
13299 PR tree-optimization/39074
13300 * tree-ssa-structalias.c (storedanything_id, var_storedanything,
13301 storedanything_tree): New.
13302 (do_ds_constraint): Simplify ANYTHING shortcutting. Update
6b67572e 13303 the STOREDANYTHING solution if the lhs solution contains ANYTHING.
9e39dba6
RG
13304 (build_succ_graph): Add edges from STOREDANYTHING to all
13305 non-direct nodes.
13306 (init_base_vars): Initialize STOREDANYTHING.
13307 (compute_points_to_sets): Free substitution info after
13308 building the succ graph.
13309 (ipa_pta_execute): Likewise.
13310
13311 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
13312 field.
13313 (do_ds_constraint): Do not add to special var or non-pointer
13314 field solutions.
13315 (type_could_have_pointers): Split out from ...
13316 (could_have_pointers): ... here. For arrays use the element type.
13317 (create_variable_info_for): Initialize may_have_pointers.
13318 (new_var_info): Likewise.
13319 (handle_lhs_call): Make the HEAP variable unknown-sized.
13320 (intra_create_variable_infos): Use a type with pointers for
13321 PARM_NOALIAS, make it unknown-sized.
13322
fd7b2603
L
133232009-02-18 H.J. Lu <hongjiu.lu@intel.com>
13324
13325 PR target/39224
6b67572e 13326 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
fd7b2603 13327
98b80692
JM
133282009-02-18 Jason Merrill <jason@redhat.com>
13329
13330 PR target/39179
13331 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
13332 value if DECL_EXTERNAL.
13333 * tree-sra.c (sra_walk_gimple_assign): Likewise.
13334 * target.h (gcc_target::binds_local_p): Clarify "module".
13335 * tree.h (TREE_PUBLIC): Clarify "module".
13336
0705d3f4
L
133372009-02-17 Xuepeng Guo <xuepeng.guo@intel.com>
13338
13339 PR target/38891
13340 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
13341 initialization for MS_ABI prior to the hunk of !TARGET_MMX.
13342
bce08d50
L
133432009-02-17 H.J. Lu <hongjiu.lu@intel.com>
13344
13345 PR target/39082
13346 * c.opt (Wabi): Support C and ObjC.
13347 (Wpsabi): New.
13348
13349 * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
13350
13351 * config/i386/i386.c (classify_argument): Warn once about the ABI
13352 change when passing union with long double.
13353
13354 * doc/invoke.texi: Update -Wabi for warning psABI changes.
13355
5600f233
JM
133562009-02-18 Joseph Myers <joseph@codesourcery.com>
13357
13358 PR c/35447
13359 * c-parser.c (c_parser_compound_statement): Always enter and leave
13360 a scope.
13361
8cd01fe6
JDA
133622009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13363
13364 PR target/34587
13365 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
13366
418df9d7
JJ
133672009-02-18 Jakub Jelinek <jakub@redhat.com>
13368
13369 PR tree-optimization/36922
13370 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
13371 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
13372 Likewise.
13373
082d2ebb
RS
133742009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
13375
13376 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
13377 to 0 for EABI64.
13378
17de576c
RS
133792009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
13380
13381 * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
13382
6d8d5435
RS
133832009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
13384
13385 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
13386 tree sharing.
13387
e69ff910
RB
133882009-02-17 Ruan Beihong <ruanbeihong@gmail.com>
13389 Richard Sandiford <rdsandiford@googlemail.com>
13390
13391 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
13392 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
13393 (loongson_biadd): ...this.
13394
6b24ee26
RG
133952009-02-17 Richard Guenther <rguenther@suse.de>
13396
13397 PR tree-optimization/39202
13398 * tree-ssa-structalias.c (do_structure_copy): Before collapsing
13399 a var make sure to follow existing collapses.
13400
91ab2c86
RG
134012009-02-17 Richard Guenther <rguenther@suse.de>
13402
13403 PR middle-end/39214
13404 * langhooks.c (lhd_print_error_function): Check for NULL block.
13405
73a63870
RG
134062009-02-17 Richard Guenther <rguenther@suse.de>
13407
13408 PR tree-optimization/39204
13409 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
13410 of the PHI arg.
13411
0e08f686
UB
134122009-02-17 Uros Bizjak <ubizjak@gmail.com>
13413
13414 * config/soft-fp/double.h: Update from glibc CVS.
13415
a60b7ddb
RG
134162009-02-17 Richard Guenther <rguenther@suse.de>
13417
13418 PR tree-optimization/39207
13419 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
13420 strict-aliasing warnings for pointers pointing to NULL.
13421
a47e20fd
JM
134222009-02-16 Joseph Myers <joseph@codesourcery.com>
13423
13424 PR c/35446
13425 * c-parser.c (c_parser_braced_init): Call pop_init_level when
13426 skipping until next close brace.
13427
50aab7dc
L
134282009-02-16 H.J. Lu <hongjiu.lu@intel.com>
13429
13430 PR target/37049
13431 * config/i386/i386.c (ix86_expand_push): Set memory alignment
13432 to function argument boundary.
13433
68e53db0
HS
134342009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com>
13435
13436 * config/picochip/picochip.md (lea_add): Allow any nonimmediate
13437 in the lea_add. Reload eventually constraints it properly.
0d50d55a 13438 * config/picochip/constraints.md: Remove the target constraint
68e53db0
HS
13439 "b", since it is not needed anymore.
13440
09e361bb
JJ
134412009-02-16 Jakub Jelinek <jakub@redhat.com>
13442
13443 * gthr-dce.h: Uglify function parameter and local variable names.
13444 * gthr-gnat.h: Likewise.
13445 * gthr-mipssde.h: Likewise.
13446 * gthr-nks.h: Likewise.
13447 * gthr-posix95.h: Likewise.
13448 * gthr-posix.h: Likewise.
13449 * gthr-rtems.h: Likewise.
13450 * gthr-single.h: Likewise.
13451 * gthr-solaris.h: Likewise.
13452 * gthr-tpf.h: Likewise.
13453 * gthr-vxworks.h: Likewise.
13454 * gthr-win32.h: Likewise.
13455
47f5a48f
L
134562009-02-15 H.J. Lu <hongjiu.lu@intel.com>
13457
13458 PR target/39196
13459 * config/i386/i386.md: Restrict the new peephole2 to move
13460 between MMX/SSE registers.
13461
68c9ab45
RG
134622009-02-15 Richard Guenther <rguenther@suse.de>
13463
13464 Revert
13465 2009-02-13 Richard Guenther <rguenther@suse.de>
13466
13467 * configure.ac: Enable LFS.
13468 * configure: Re-generate.
13469 * config.in: Likewise.
13470
d7815554
UW
134712009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13472
13473 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
13474 spu_srqwbyte, spu_srqwbytebc): Define.
13475 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
13476 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
13477 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
13478 "shrqby_<mode>"): New insn-and-split patterns.
13479 * config/spu/spu.c (expand_builtin_args): Determine and return
13480 number of operands using spu_builtin_description data.
13481 (spu_expand_builtin_1): Use it.
13482
c208436c
SE
134832009-02-13 Steve Ellcey <sje@cup.hp.com>
13484
13485 PR target/38056
13486 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
13487 TARGET_CONST_GP.
13488
c2e7ba7e
L
134892009-02-13 H.J. Lu <hongjiu.lu@intel.com>
13490
13491 PR target/39149
13492 * config/i386/i386.c (override_options): Correct warning
6c6094f1 13493 messages for -malign-loops, -malign-jumps and -malign-functions.
c2e7ba7e 13494
72f4e3a7
L
134952009-02-13 H.J. Lu <hongjiu.lu@intel.com>
13496
13497 PR target/39152
13498 * config/i386/i386.md: Restrict the new peephole2 to move
13499 between the general purpose registers.
13500
53f648e2
L
135012009-02-13 H.J. Lu <hongjiu.lu@intel.com>
13502
13503 PR target/39162
13504 * config/i386/i386.c (type_natural_mode): Add a new argument.
6b67572e 13505 Return the original mode and warn ABI change if vector size is 32byte.
53f648e2
L
13506 (function_arg_advance): Updated.
13507 (function_arg): Likewise.
13508 (ix86_function_value): Likewise.
13509 (ix86_return_in_memory): Likewise.
13510 (ix86_sol10_return_in_memory): Likewise.
13511 (ix86_gimplify_va_arg): Likewise.
13512 (function_arg_32): Don't warn ABX ABI change here.
13513 (function_arg_64): Likewise.
13514
38432148 135152009-02-13 Bernd Schmidt <bernd.schmidt@analog.com>
b1c92d54
BS
13516
13517 * loop-iv.c (implies_p): In the final case, test that operands 0
13518 of the two comparisons match.
13519
dd2139e7
BS
13520 * config/bfin/bfin.c (find_prev_insn_start): New function.
13521 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
13522 (find_next_insn_start): Move.
13523
601b3e1a
RG
135242009-02-13 Richard Guenther <rguenther@suse.de>
13525
13526 * configure.ac: Enable LFS.
13527 * configure: Re-generate.
13528 * config.in: Likewise.
13529
f007042e
JM
135302009-02-13 Joseph Myers <joseph@codesourcery.com>
13531
13532 PR c/35444
13533 * c-parser.c (c_parser_parms_list_declarator): Discard pending
13534 sizes on syntax error after some arguments have been parsed.
13535
3f238e8b
JJ
135362009-02-12 Jakub Jelinek <jakub@redhat.com>
13537
13538 * doc/invoke.texi (-fira): Remove.
13539
328e13b7
L
135402009-02-12 H.J. Lu <hongjiu.lu@intel.com>
13541
13542 * caller-save.c: Replace regclass.c with reginfo.c in comments.
13543 * recog.c: Likewise.
13544 * rtl.h: Likewise.
13545
c252db20
L
135462009-02-12 Uros Bizjak <ubizjak@gmail.com>
13547
13548 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
13549 (umul_ppmm): Likewise.
13550 (count_leading_zeros): Likewise.
13551 (count_trailing_zeros): Likewise.
13552 (UMUL_TIME): Likewise.
13553
135542009-02-12 H.J. Lu <hongjiu.lu@intel.com>
13555
ba181049
UB
13556 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
13557 soft-fp/t-softfp to tmake_file.
c252db20
L
13558
13559 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
ba181049
UB
13560 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
13561 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
13562 IA64_BUILTIN_INFQ]: New.
c252db20
L
13563 (ia64_init_builtins): Initialize __builtin_infq,
13564 __builtin_fabsq and __builtin_copysignq if not HPUX.
13565 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
13566 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
13567
13568 * config/ia64/lib1funcs.asm (__divtf3): Define only if
13569 SHARED is defined.
13570 (__fixtfti): Likewise.
13571 (__fixunstfti): Likewise.
13572 (__floattitf): Likewise.
13573
13574 * config/ia64/libgcc-glibc.ver: New.
13575 * config/ia64/t-fprules-softfp: Likewise.
13576 * config/ia64/sfp-machine.h: Likewise.
13577
13578 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
13579 (LIBGCC2_TF_CEXT): Likewise.
13580 (TF_SIZE): Likewise.
13581 (TARGET_INIT_LIBFUNCS): Likewise.
13582
ba181049 13583 * config/ia64/t-glibc (SHLINB_MAPFILES):
6b67572e 13584 Add $(srcdir)/config/ia64/libgcc-glibc.ver.
c252db20 13585
f13eae6a
L
135862009-02-12 H.J. Lu <hongjiu.lu@intel.com>
13587
13588 * config/i386/i386.c (construct_container): Rewrite processing
13589 BLKmode with X86_64_SSE_CLASS.
13590
12019aec
L
135912009-02-12 Paolo Bonzini <bonzini@gnu.org>
13592
13593 PR target/39152
13594 * config/i386/i386.md: Replace simplify_replace_rtx with
13595 replace_rtx in the new peephole2.
13596
28c11eb3
NS
135972009-02-12 Nathan Sidwell <nathan@codesourcery.com>
13598
13599 * doc/invoke.texi (Optimize Options): Stop claiming inlining and
13600 loop unrolling do not happen at -O2.
13601
c7b94907
MM
136022009-02-12 Michael Matz <matz@suse.de>
13603
13604 * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
13605
61e98967
JJ
136062009-02-12 Jakub Jelinek <jakub@redhat.com>
13607
13608 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
13609 for -g3.
13610
a2a237b5
BE
136112009-02-12 Ben Elliston <bje@au.ibm.com>
13612
13613 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
13614 patterns when updating the back chain. Missed in the 2009-02-10
13615 change.
13616
853eda8d
JJ
136172009-02-11 Janis Johnson <janis187@us.ibm.com>
13618
13619 * doc/extend.texi (Decimal Floating Types): Update identifier of
13620 draft TR and list of missing support.
13621
3ad6b266
JJ
136222009-02-11 Jakub Jelinek <jakub@redhat.com>
13623
13624 PR middle-end/39154
13625 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
13626 bit to variable length decl's flags, add it also to its
13627 pointer replacement variable.
13628
b058b753
UB
136292009-02-11 Uros Bizjak <ubizjak@gmail.com>
13630 Jakub Jelinek <jakub@redhat.com>
13631
13632 PR target/39118
13633 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
13634 (memory_blockage): New expander.
13635 (*memory_blockage): New insn pattern.
13636 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
13637 instead of general blockage at the end of function prologue when
13638 frame pointer is used to access red zone area. Do not emit blockage
13639 when profiling, it is emitted in generic code.
13640 (ix86_expand_epilogue): Emit memory_blockage at the beginning of
13641 function epilogue when frame pointer is used to access red zone area.
13642
bab64f23
PB
136432009-02-11 Paolo Bonzini <bonzini@gnu.org>
13644
0ce6dcfa 13645 PR target/38824
bab64f23
PB
13646 * config/i386/i386.md: Add two new peephole2 to avoid mov followed
13647 by arithmetic with memory operands.
13648 * config/i386/predicates.md (commutative_operator): New.
13649
8fd94bda
JJ
136502009-02-10 Janis Johnson <janis187@us.ibm.com>
13651
13652 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
13653 bulleted lists.
13654
794511d2
EB
136552009-02-10 Eric Botcazou <ebotcazou@adacore.com>
13656
13657 * alias.h (record_alias_subset): Declare.
13658 * alias.c (record_alias_subset): Make global.
13659
6da7fc87
NC
136602009-02-10 Nick Clifton <nickc@redhat.com>
13661
13662 * tree-parloops.c: Change license to GPLv3.
13663 * ipa-struct-reorg.c: Change license to GPLv3.
13664 * ipa-struct-reorg.h: Change license to GPLv3.
13665
a03813c8
SE
136662009-02-10 Steve Ellcey <sje@cup.hp.com>
13667
13668 PR c/39084
13669 * c-decl.c (start_struct): Return NULL on error.
13670
fc3103e7
JJ
136712009-02-10 Jakub Jelinek <jakub@redhat.com>
13672
9b43d37b
JJ
13673 PR middle-end/39124
13674 * cfgloopmanip.c (remove_path): Call remove_bbs after
13675 cancel_loop_tree, not before it.
13676
fc3103e7 13677 PR target/39139
b058b753 13678 * function.h (struct function): Add has_local_explicit_reg_vars bit.
fc3103e7
JJ
13679 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
13680 VAR_DECLs were seen.
13681 * tree-ssa-live.c (remove_unused_locals): Recompute
13682 cfun->has_local_explicit_reg_vars.
13683 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
13684 copies or clearings if cfun->has_local_explicit_reg_vars.
13685
dbf9ee15
UB
136862009-02-10 Uros Bizjak <ubizjak@gmail.com>
13687
13688 PR target/39118
13689 * config/i386/i386.c (expand_prologue): Emit blockage at the end
13690 of function prologue when frame pointer is used to access
13691 red zone area.
13692
bdec4dc7
RG
136932009-02-10 Richard Guenther <rguenther@suse.de>
13694
13695 PR middle-end/39127
13696 * gimplify.c (gimple_regimplify_operands): Always look if
13697 we need to create a temporary.
13698
7cae94fc
RG
136992009-02-10 Richard Guenther <rguenther@suse.de>
13700
13701 PR tree-optimization/39132
13702 * tree-loop-distribution.c (todo): New global var.
13703 (generate_memset_zero): Trigger TODO_rebuild_alias.
13704 (tree_loop_distribution): Return todo.
13705
a8800687
L
137062009-02-10 H.J. Lu <hongjiu.lu@intel.com>
13707
13708 PR target/39119
13709 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
13710 (x86_64_reg_class_name): Removed.
13711 (classify_argument): Return 0 if bytes > 32. Return 0 if the
13712 first one isn't X86_64_SSE_CLASS or any other ones aren't
13713 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn
13714 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
13715 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS
13716 and 3 X86_64_SSEUP_CLASS.
13717 (construct_container): Remove X86_64_AVX_CLASS. Handle 4
13718 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
13719
d4bacef0
BE
137202009-02-10 Ben Elliston <bje@au.ibm.com>
13721
13722 * config/rs6000/rs6000.md (allocate_stack): Always use an update
13723 form instruction to update the stack back chain word, even if the
13724 user has disabled the generation of update instructions.
13725 (movdi_<mode>_update_stack): New.
13726 (movsi_update_stack): Likewise.
13727 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
13728 always use an update form instruction to update the stack back
13729 chain word.
13730
01d7d2f3
SP
137312009-02-09 Sebastian Pop <sebastian.pop@amd.com>
13732
13733 PR middle-end/38953
b058b753
UB
13734 * graphite.c (if_region_set_false_region): After moving a region in
13735 the false branch of a condition, remove the empty dummy basic block.
01d7d2f3
SP
13736 (gloog): Remove wrong fix for PR38953.
13737
e41e2ab4
UW
137382009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13739
13740 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
13741 generation due to implicit sign extension.
13742
4bb07c5d
EB
137432009-02-09 Eric Botcazou <ebotcazou@adacore.com>
13744
13745 PR middle-end/38981
13746 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
13747 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
13748
f060a261
RG
137492009-02-09 Richard Guenther <rguenther@suse.de>
13750
13751 PR middle-end/35202
13752 * convert.c (convert_to_real): Disable (float)fn((double)x)
13753 to fnf(x) conversion if errno differences may occur and
13754 -fmath-errno is set.
13755
5a7e237c
AS
137562009-02-07 Anatoly Sokolov <aesok@post.ru>
13757
13758 * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
13759 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
13760 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
13761
feab5a67
JM
137622009-02-06 Joseph Myers <joseph@codesourcery.com>
13763
13764 PR c/35434
13765 * c-common.c (handle_alias_attribute): Disallow attribute for
13766 anything not a FUNCTION_DECL or VAR_DECL.
13767
90ef2296
JJ
137682009-02-06 Janis Johnson <janis187@us.ibm.com>
13769
13770 PR c/39035
13771 * real.c (do_compare): Special-case compare of zero against
13772 decimal float value.
13773
1de2c900
JM
137742009-02-06 Joseph Myers <joseph@codesourcery.com>
13775
13776 PR c/36432
13777 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
13778 as indicating flexible array members unless the field itself is
13779 being declarared as the incomplete array.
13780
e901811a
JH
137812009-02-06 Jan Hubicka <jh@suse.cz>
13782
13783 PR tree-optimization/38844
13784 * ipa-inline.c (try_inline): Stop inlining recursion when edge
13785 is already inlined.
13786
3cfa762b
RG
137872009-02-06 Richard Guenther <rguenther@suse.de>
13788
13789 PR middle-end/38977
13790 * tree-cfg.c (need_fake_edge_p): Force a fake edge for
13791 fork because we may expand it as __gcov_fork.
13792
8506528c
NC
137932009-02-06 Nick Clifton <nickc@redhat.com>
13794
dbf9ee15 13795 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
8506528c 13796
85169114
PB
137972009-02-06 Paolo Bonzini <bonzini@gnu.org>
13798
13799 PR tree-optimization/35659
13800 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
13801 vn_phi_eq): Shortcut if hashcode does not match.
13802 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
13803 NULL operands.
13804 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
13805 and avoid iterative_hash_expr.
13806 (FOR_EACH_VALUE_ID_IN_SET): New.
13807 (value_id_compare): Remove.
13808 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
13809 sort expressions by value id.
13810
6d39673d
KK
138112009-02-05 Kaz Kojima <kkojima@gcc.gnu.org>
13812
13813 PR target/38991
13814 * config/sh/predicates.md (general_movsrc_operand): Don't check
13815 the subreg of system registers here.
13816
e6e1c050
JJ
138172009-02-05 Jakub Jelinek <jakub@redhat.com>
13818
13819 PR c++/39106
13820 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
13821 on the copied decl.
13822
65a74b5d
PB
138232009-02-05 Paolo Bonzini <bonzini@gnu.org>
13824
13825 PR rtl-optimization/39110
13826 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
13827 addresses, not aligned ones.
13828
08e14b2a
DB
138292009-02-05 Daniel Berlin <dberlin@dberlin.org>
13830 Richard Guenther <rguenther@suse.de>
13831
13832 PR tree-optimization/39100
13833 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
13834 comment says and add edges.
13835
5006381c
JM
138362009-02-05 Joseph Myers <joseph@codesourcery.com>
13837
13838 PR c/35435
13839 * c-common.c (handle_tls_model_attribute): Ignore attribute for
13840 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
13841
2ba9daa7 138422009-02-04 Tobias Grosser <grosser@fim.uni-passau.de>
b0789219
TG
13843
13844 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
13845 sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
13846 register_bb_in_sese, new_sese, free_sese): Moved.
13847 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
13848 outermost_loop_in_scop, build_scop_iteration_domain,
13849 expand_scalar_variables_ssa_name, get_vdef_before_scop,
13850 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
13851 Use loop_in_sese_p instead of loop_in_scop_p.
13852 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
13853 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
13854 (scopdet_basic_block_info): Fix bug in scop detection.
13855 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
13856 eq_loop_to_cloog_loop): Remove.
13857 (nb_loops_around_loop_in_scop, nb_loop
13858 ref_nb_loops): Moved here...
13859 * graphite.h (ref_nb_loops): ... from here.
13860 (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
13861 (loop_domain_dim, loop_iteration_vector_dim): Remove.
13862 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
13863 * testsuite/gcc.dg/graphite/scop-19.c: New
13864
48e8382e
PB
138652009-02-04 Paolo Bonzini <bonzini@gnu.org>
13866 Hans-Peter Nilsson <hp@axis.com>
13867
13868 PR rtl-optimization/37889
13869 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
13870 Move offset handling from PLUS to before the switch. Use new
13871 arguments when considering SYMBOL_REFs too.
13872 (rtx_addr_can_trap_p): Pass dummy offset and size.
13873 (enum may_trap_p_flags): Remove.
13874 (may_trap_p_1): Pass size from MEM_SIZE.
13875
13876 PR rtl-optimization/38921
13877 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
13878 * rtl.h (may_trap_after_code_motion_p): Delete prototype.
13879 * rtlanal.c (may_trap_after_code_motion_p): Delete.
13880 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
13881
69349ea5
L
138822009-02-04 H.J. Lu <hongjiu.lu@intel.com>
13883
13884 AVX Programming Reference (January, 2009)
13885 * config/i386/sse.md (*vpclmulqdq): New.
13886
b545e411
JJ
138872009-02-04 Jakub Jelinek <jakub@redhat.com>
13888
13889 PR tree-optimization/38977
13890 PR gcov-profile/38292
bf9b2cc9 13891 * calls.c (special_function_p): Disregard __builtin_ prefix.
b545e411 13892
5b43bf05
HS
138932009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com>
13894
13895 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
13896 non-indexable addresses even before reload.
13897
062c4bb3
JM
138982009-02-03 Joseph Myers <joseph@codesourcery.com>
13899
13900 PR c/29129
13901 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
13902 as having variable size. Do not give an error for unnamed
13903 parameters with [*] declarators. Give a warning for type names
13904 with [*] declarators and mark them as variable size.
13905 * c-parser.c (c_parser_sizeof_expression): Do not give an error
13906 for sizeof applied to [*] type names.
13907
6175f578
AP
139082009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
13909
13910 PR C++/36607
13911 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
13912
d4f4bc84
JJ
139132009-02-03 Jakub Jelinek <jakub@redhat.com>
13914
13915 * gcc.c (process_command): Update copyright notice dates.
13916 * gcov.c (print_version): Likewise.
13917 * gcov-dump.c (print_version): Likewise.
13918 * mips-tfile.c (main): Likewise.
13919 * mips-tdump.c (main): Likewise.
13920
f6294de7
JM
139212009-02-03 Joseph Myers <joseph@codesourcery.com>
13922
13923 PR c/35433
13924 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
13925 for composite type involving a zero-length array type.
13926
754ccf7c
JJ
139272009-02-03 Jakub Jelinek <jakub@redhat.com>
13928
70f16287
JJ
13929 PR target/35318
13930 * function.c (match_asm_constraints_1): Skip over
13931 initial optional % in the constraint.
13932
754ccf7c
JJ
13933 PR inline-asm/39059
13934 * c-parser.c (c_parser_postfix_expression): If fixed point is not
13935 supported, don't accept FIXED_CSTs.
13936 * c-decl.c (finish_declspecs): Error if fixed point is not supported
13937 and _Sat is used without _Fract/_Accum. Set specs->type to
13938 integer_type_node for cts_fract/cts_accum if fixed point is not
13939 supported.
13940
965fdadf
CM
139412009-02-02 Catherine Moore <clm@codesourcery.com>
13942
dbf9ee15 13943 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
965fdadf 13944
2e8a796f
RS
139452009-02-02 Richard Sandiford <rdsandiford@googlemail.com>
13946
13947 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
13948 (ABI_HAS_64BIT_SYMBOLS): Use it.
13949 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
13950
e0079468
PB
139512009-02-02 Paul Brook <paul@codesourcery.com>
13952
13953 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
13954
eca72963
JJ
139552009-02-02 Jakub Jelinek <jakub@redhat.com>
13956
13957 PR inline-asm/39058
13958 * recog.h (asm_operand_ok): Add constraints argument.
13959 * recog.c (asm_operand_ok): Likewise. If it is set, for digits
13960 recurse on matching constraint.
13961 (check_asm_operands): Pass constraints as 3rd argument to
13962 asm_operand_ok. Don't look up matching constraint here.
13963 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
13964 to asm_operand_ok.
13965
b5bde9ff
BE
139662009-02-02 Ben Elliston <bje@au.ibm.com>
13967
13968 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
13969 TARGET_NARROW_VOLATILE_BITFIELD macro names.
13970
30f3e427
JDA
139712009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13972
be7659ba
JDA
13973 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
13974 information. Remove some obsolete information. Reorganize.
13975
30f3e427
JDA
13976 * config/pa/fptr.c: Revert license to GPL 2.
13977 * config/pa/milli64.S: Likewise.
13978
3cbfaf98
DK
139792009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
13980
13981 PR target/38904
13982 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass
13983 LIBRARY name in, instead of hard-coding it.
13984 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an
13985 extra target make frag to tmake_files according to EH model.
13986 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
13987 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target
13988 frags that define makefile variable EH_MODEL appropriately.
13989 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment.
13990 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or
13991 to "-sjlj" according to type of EH configured.
13992 (LIBGCC_SONAME): Concatenate it to shared library base name.
13993 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or
13994 to "_sjlj" according to type of EH configured.
13995 (LIBGCC_SONAME): Concatenate it to shared library base name.
13996 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL.
13997 (SHLIB_LINK): Add missing semicolon to if-else construct.
13998 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
13999 string value of "pe_dll" command-line option.
14000 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper.
14001 (SHLIB_SONAME): Use it when overriding t-cygming default.
14002 (SHLIB_IMPLIB): Override t-cygming default.
14003 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
14004 string value of "pe_dll" command-line option.
14005
8d0b6068
DK
140062009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
14007
14008 PR target/38952
14009 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
bf9b2cc9 14010 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
8d0b6068 14011
14c28276
RG
140122009-01-31 Richard Guenther <rguenther@suse.de>
14013
14014 PR tree-optimization/38937
14015 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
14016 computing the transitive closure.
14017
5f4d82c2
RG
140182009-01-30 Richard Guenther <rguenther@suse.de>
14019
14020 PR tree-optimization/39041
14021 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
14022 Propagate variable indices only if the types match for this stmt.
14023
d0728ae0
JJ
140242009-01-30 Jakub Jelinek <jakub@redhat.com>
14025
14026 PR target/39013
14027 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
14028 inline but never defined.
14029
6b67572e 140302009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com>
9fec758d
WG
14031
14032 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
14033 (*insv_h_di_reg_extimm): New insn.
14034 (*insv_l<mode>_reg_extimm): New insn.
14035
140362009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
9e8be1e4
HS
14037
14038 * config/picochip/picochip.c (flag_conserve_stack): set
14039 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
14040 fconserve-stack. Reduce call-overhead used by inliner.
14041
9fec758d 140422009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
df9198ab
HS
14043
14044 PR/38157
14045 * common.opt (flag_conserve_stack): Initialised to zero.
14046
7f1c539c
KT
140472009-01-30 Kai Tietz <kai.tietz@onevision.com>
14048
14049 PR/39002
14050 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
14051 (ix86_expand_epilogue): Take nsseregs in account to use proper restore
14052 method.
14053
3631be48
L
140542009-01-29 H.J. Lu <hongjiu.lu@intel.com>
14055
14056 * ira-color.c (allocno_reload_assign): Update comments.
14057 * regmove.c (regmove_optimize): Likewise.
14058
14059 * ra.h: Removed.
14060
416ac4d4
RM
140612009-01-29 Robert Millan <rmh@aybabtu.com>
14062
60839f5d
EB
14063 * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
14064 * config/i386/kopensolaris-gnu.h: New file. Undefine
416ac4d4 14065 `MD_UNWIND_SUPPORT'.
60839f5d 14066 * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
416ac4d4 14067
d5e54bc1
KH
140682009-01-29 Kazu Hirata <kazu@codesourcery.com>
14069
14070 PR tree-optimization/39007
14071 * tree-loop-distribution.c (generate_builtin): Use
14072 recompute_dominator to compute the immediate dominator of the
14073 basic block just after the loop.
14074
38432148 140752009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
e9e077fa
RO
14076
14077 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
14078 (ASM_OUTPUT_DWARF_PCREL): Define.
14079
38432148 140802009-01-29 Vladimir Makarov <vmakarov@redhat.com>
2af2dbdc
VM
14081
14082 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
14083 * doc/passes.texi: Remove entries about regclass, local-alloc, and
14084 global. Modify entries about regmove and IRA.
14085
14086 * ra-conflict.c: Remove the file.
14087
14088 * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
14089
14090 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
14091 (pass_regclass_init): Rename to pass_reginfo_init.
14092
14093 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
14094
14095 * toplev.h (flag_ira): Remove.
14096
14097 * caller-save.c (setup_save_areas): Remove flag_ira.
14098
bf9b2cc9 14099 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
2af2dbdc
VM
14100
14101 * global.c: Remove the file.
14102
ba20e309 14103 * opts.c (decode_options): Remove flag_ira.
2af2dbdc
VM
14104
14105 * hard-reg-set.h (losing_caller_save_reg_set): Remove.
14106
14107 * regmove.c: Modify file description.
14108 (find_use_as_address, try_auto_increment): Define them only if
14109 AUTO_INC_DEC is defined.
14110 (replacement_quality, replace_in_call_usage, fixup_match_1,
14111 stable_and_no_regs_but_for_p): Remove.
14112 (reg_set_in_bb): Make it static.
14113 (regmove_optimize): Remove flag_ira and code which worked for
14114 !flag_ira.
14115
14116 * local-alloc.c: Remove the file.
14117
14118 * common.opt (fira): Remove.
14119
14120 * ira.c: Include except.h.
14121 (eliminable_regset): Move from global.c.
14122 (mark_elimination): Ditto. Remove flag_ira.
14123 (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
14124 equiv_mem_modified, validate_equiv_mem_from_store,
14125 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
14126 contains_replace_regs, memref_referenced_p, memref_used_between_p,
14127 no_equiv, recorded_label_ref): Move from local-alloc.c.
14128 (update_equiv_regs): Ditto. Make it static.
14129 (print_insn_chain, print_insn_chains): Move it from global.c.
bf9b2cc9 14130 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira.
2af2dbdc
VM
14131 (build_insn_chain): Ditto. Make it static.
14132 (ra_init_live_subregs): Move from ra-conflict.c. Make it static.
14133 Rename to init_live_subregs.
14134 (gate_ira): Remove flag_ira.
14135
14136 * regclass.c: Rename reginfo.c. Change file description.
14137 (FORBIDDEN_INC_DEC_CLASSES): Remove.
dbf9ee15 14138 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
2af2dbdc
VM
14139 (init_reg_sets_1): Remove code for evaluation of
14140 reg_class_superclasses and losing_caller_save_reg_set.
14141 (init_regs): Remove init_reg_autoinc.
14142 (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
14143 ok_for_base_p_nonstrict): Remove.
bf9b2cc9 14144 (regclass_init): Rename to reginfo_init. Don't initialize init_cost.
2af2dbdc
VM
14145 (pass_regclass_init): Rename to pass_reginfo_init. Modify
14146 corresponding entries.
14147 (dump_regclass, record_operand_costs, scan_one_insn,
14148 init_reg_autoinc, regclass, record_reg_classes, copy_cost,
14149 record_address_regs, auto_inc_dec_reg_p): Remove.
14150 (gt-regclass.h): Rename to gt-reginfo.h.
14151
14152 * rtl.h (dump_global_regs, retry_global_alloc,
bf9b2cc9 14153 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
2af2dbdc
VM
14154
14155 * Makefile.in (RA_H): Remove.
14156 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
14157 Rename regclass.o to reginfo.o.
14158 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to
14159 gt-reginfo.h.
14160 (global.o, local-alloc.o, ra-conflict.o): Remove entries.
14161 (GTFILES): Rename regclass.c to reginfo.c.
14162
14163 * passes.c (init_optimization_passes): Remove pass_local_alloc and
bf9b2cc9 14164 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init.
2af2dbdc
VM
14165
14166 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
14167 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
14168 Remove flag_ira.
6b67572e 14169 (finish_spills): Ditto. Remove code for !flag_ira.
2ba9daa7 14170
c95b2534 141712009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
00b251a0
KZ
14172
14173 PR middle-end/35854
14174 * doc/invoke.texi (rtl debug options): Complete rewrite.
14175 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
14176 to auto_inc_dec".
14177 * mode-switching.c (pass_mode_switching): Rename pass from
14178 "mode-sw" to "mode_sw".
14179 * except.c (pass_convert_to_eh_ranges): Rename pass from
14180 "eh-ranges" to "eh_ranges".
14181 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
14182 to "subreg1".
2ba9daa7
AS
14183
14184
72a54528
AM
141852009-01-29 Andrey Belevantsev <abel@ispras.ru>
14186 Alexander Monakov <amonakov@ispras.ru>
14187
14188 PR middle-end/38857
14189 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
14190 register.
14191 (move_exprs_to_boundary): Change return type and pass through
14192 should_move from move_op. Relax assert. Update usage ...
14193 (schedule_expr_on_boundary): ... here. Use should_move instead of
14194 cant_move.
14195 (move_op_orig_expr_found): Indicate that insn was disconnected from
14196 stream.
14197 (code_motion_process_successors): Do not call after_merge_succs
14198 callback if original expression was not found when traversing any of
14199 the branches.
14200 (code_motion_path_driver): Change return type. Update prototype.
14201 (move_op): Update comment. Add a new parameter (should_move). Update
14202 prototype. Set *should_move based on indication provided by
14203 move_op_orig_expr_found.
14204
001b9eb6
PH
142052009-01-28 Pat Haugen <pthaugen@us.ibm.com>
14206
14207 * doc/invoke.texi (avoid-indexed-addresses): Document new option.
14208 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
14209 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
14210 * config/rs6000/rs6000.c (rs6000_override_options): Default
14211 avoid-indexed-addresses on for Power6, off for everything else.
14212 (avoiding_indexed_address_p): New function.
14213 (rs6000_legitimize_address): Use it.
14214 (rs6000_legitimate_address): Likewise.
14215 * config/rs6000/rs6000.md (movXX_updateX): Likewise
14216
59dc4898
KH
142172009-01-28 Kazu Hirata <kazu@codesourcery.com>
14218
14219 PR tree-optimization/38997
14220 * tree-loop-distribution.c (generate_memset_zero): Use
14221 POINTER_PLUS_EXPR for a pointer addition.
14222
07da44ab
AK
142232009-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
14224
14225 * config/s390/s390.md (bswap<mode>2): New pattern added.
14226
cdc15d23
WG
142272009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
14228
14229 * config/s390/s390.md (*tls_load_31): Added type attribute.
14230
d46f24b6
WG
142312009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
14232
14233 * config/s390/s390.md: Fix a few comments.
14234
729e750f
WG
142352009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
14236
14237 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
14238 (*tm<mode>_full): Fixed z10prop attribute.
14239 (*tst<mode>_extimm): Fixed z10prop attribute.
14240 (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
14241 (*tstqiCCT_cconly): Fixed z10prop attribute.
14242 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
14243 (*movsi_larl): Fixed z10prop attribute.
14244 (*movsi_zarch): Fixed z10prop attribute.
14245 (*movsi_eas): Fixed z10prop attribute.
14246 (*movhi): Fixed z10prop attribute.
14247 (*movqi): Fixed z10prop attribute.
14248 (*movstrictqi): Fixed z10prop attribute.
14249 (*mov<mode>): Fixed z10prop attribute.
14250 (*movcc): Fixed z10prop attribute.
14251 (*sethighpartdi_64): Fixed z10prop attribute.
14252 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
14253 (*negdi2_sign_cc): Fixed z10prop attribute.
14254 (*negdi2_sign): Fixed z10prop attribute.
14255 (*absdi2_sign_cc): Fixed z10prop attribute.
14256 (*absdi2_sign): Fixed z10prop attribute.
14257 (*negabsdi2_sign_cc): Fixed z10prop attribute.
14258 (*negabsdi2_sign): Fixed z10prop attribute.
14259 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
14260 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
14261 (doloop_si64): Fixed z10prop attribute.
14262 (doloop_si31): Fixed z10prop attribute.
14263 (doloop_long): Fixed z10prop attribute.
14264 (indirect_jump): Fixed z10prop attribute.
14265 (nop): Fixed z10prop attribute.
14266 (main_base_64): Fixed z10prop attribute.
14267 (reload_base_64): Fixed z10prop attribute.
14268
c7789bfb
JJ
142692009-01-28 Jakub Jelinek <jakub@redhat.com>
14270
14271 PR rtl-optimization/38740
6b67572e
UB
14272 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
14273 if !optimize.
c7789bfb
JJ
14274 * config/mips/mips.c (mips_reorg): Likewise.
14275
de081cfd
RG
142762009-01-28 Richard Guenther <rguenther@suse.de>
14277
14278 PR tree-optimization/38926
14279 * tree-ssa-pre.c (add_to_value): Assert we add only expressions
14280 with the correct value id to a value.
14281 (do_regular_insertion): Use the value number of edoubleprime
14282 for the value number of the expr.
14283
14284 Revert
14285 2008-08-21 Richard Guenther <rguenther@suse.de>
bf9b2cc9 14286
d748c406
UB
14287 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
14288 a PHI ask VN if it is already available.
14289 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
14290 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
de081cfd 14291
a9d386a1
JJ
142922009-01-28 Jakub Jelinek <jakub@redhat.com>
14293
14294 PR middle-end/38934
14295 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
14296 set to varying whenever max has TREE_OVERFLOW set, similarly
14297 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
14298
97a170cd
RG
142992009-01-28 Richard Guenther <rguenther@suse.de>
14300
14301 PR middle-end/38908
14302 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
14303 uninitialized aggregate uses in call arguments.
14304
89ebafc6
PB
143052009-01-28 Paolo Bonzini <bonzini@gnu.org>
14306
14307 PR tree-optimization/38984
14308 * tree-ssa-structalias.c (get_constraints_for_1): Do not use
14309 the nothing_id variable if -fno-delete-null-pointer-checks.
14310
bef3c57b
UB
143112009-01-28 Uros Bizjak <ubizjak@gmail.com>
14312
14313 PR target/38988
14314 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
14315 (set_got_offset_rex64): Ditto.
14316
0c6390fa
L
143172009-01-27 H.J. Lu <hongjiu.lu@intel.com>
14318
14319 PR target/38941
14320 * doc/extend.texi: Improve local variable with asm reg.
14321
bee6fa6d
AN
143222009-01-27 Adam Nemet <anemet@caviumnetworks.com>
14323
14324 * c.opt (Wpacked-bitfield-compat): Change init value to -1.
14325 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
14326 was not supplied then set warn_packed_bitfield_compat to the
14327 default value of 1.
14328 * stor-layout.c (place_field): Check warn_packed_bitfield_compat
14329 against 1.
14330
b5c3dfbb
RG
143312009-01-27 Richard Guenther <rguenther@suse.de>
14332
14333 PR tree-optimization/38503
14334 * cfgexpand.c (expand_gimple_basic_block): Ignore
14335 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
14336 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
14337 variables that cannot have TBAA applied.
14338 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
14339 statements.
14340
d748c406 143412009-01-27 Uros Bizjak <ubizjak@gmail.com>
576de5cb
UB
14342
14343 PR middle-end/38969
14344 * calls.c (initialize_argument_information): Do not wrap complex
14345 arguments in SAVE_EXPR.
14346
9112bb38
AT
143472009-01-26 Andreas Tobler <a.tobler@schweiz.org>
14348
14349 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
5efb79fc 14350 (INSTALL_LIBGCC): Revert typo commit.
9112bb38 14351
4757704f
RG
143522009-01-26 Richard Guenther <rguenther@suse.de>
14353
14354 PR tree-optimization/38745
14355 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
14356 from special handling.
14357
e3e6cff4
RG
143582009-01-26 Richard Guenther <rguenther@suse.de>
14359
14360 PR tree-optimization/38745
14361 * tree-ssa.c (execute_update_addresses_taken): Do not include
14362 variables that cannot possibly be a register in not_reg_needs.
14363 Do not clear TREE_ADDRESSABLE on vars that may not become
14364 registers.
14365 * tree-ssa.c (update_alias_info_1): Include those in the set
14366 of addressable vars.
14367
dc874b53
RG
143682009-01-26 Richard Guenther <rguenther@suse.de>
14369
14370 PR middle-end/38851
14371 * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
14372 * tree-ssa-dse.c: Include langhooks.h
14373 (execute_simple_dse): Remove stores with zero size.
14374
849421a3
JJ
143752009-01-24 Jakub Jelinek <jakub@redhat.com>
14376
14377 PR c/38957
14378 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
14379 as PLUS_EXPR.
14380
82f70421
JB
143812009-01-24 Julian Brown <julian@codesourcery.com>
14382
14383 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
14384 config/arm/linux-atomic.c.
14385 * config/arm/linux-atomic.c: New.
14386
863412d6
EB
143872009-01-24 Eric Botcazou <ebotcazou@adacore.com>
14388
14389 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
14390 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
14391 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
14392
8c684300
L
143932009-01-24 H.J. Lu <hongjiu.lu@intel.com>
14394
14395 PR c/38938
93f1527a 14396 * c-opts.c (c_common_handle_option): Update warn_pointer_sign
8c684300
L
14397 properly.
14398
b840fb02
SP
143992009-01-24 Sebastian Pop <sebastian.pop@amd.com>
14400
14401 PR tree-optimization/38953
14402 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
14403 (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
14404 (gloog): Split the exit of the scop when the scop exit is a loop exit.
14405 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
14406 changed the CFG.
14407
ecee559f
PB
144082009-01-24 Paul Brook <paul@codesourcery.com>
14409
14410 * config/arm/neon.md (neon_type): Move to arm.md.
14411 (neon_mov<VSTRUCT>): Add neon_type attribute.
14412 * config/arm/arm.md (neon_type): Move to here.
14413 (conds): Add "unconditioal" and use as default for NEON insns.
14414
61ad0914
BE
144152009-01-24 Ben Elliston <bje@au.ibm.com>
14416
14417 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
14418 void *' warning from -Wc++-compat.
14419 * Makefile.in (dominance.o-warn): Remove.
14420
38432148 144212009-01-23 Paolo Bonzini <bonzini@gnu.org>
9bacafeb
PB
14422
14423 PR tree-optimization/38932
14424 * fold-const.c (fold_unary_ignore_overflow): New.
14425 * tree.h (fold_unary_ignore_overflow): Declare.
14426 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
14427 * tree-ssa-sccvn.c (visit_reference_op_load,
14428 simplify_unary_expression): Likewise.
14429
2cd36c22
AN
144302009-01-22 Adam Nemet <anemet@caviumnetworks.com>
14431
14432 * c-decl.c (finish_struct): Move code to set DECL_PACKED after
14433 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields
14434 regardless of their type.
14435 * c-common.c (handle_packed_attribute): Don't ignore packed on
14436 bitfields.
14437 * c.opt (Wpacked-bitfield-compat): New warning option.
14438 * stor-layout.c (place_field): Warn if offset of a field changed.
14439 * doc/extend.texi (packed): Mention the ABI change.
14440 * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
14441 (Warning Options): Add it to the list.
14442
e4e624ab
L
144432009-01-22 H.J. Lu <hongjiu.lu@intel.com>
14444
14445 * c-opts.c (c_common_post_options): Fix a typo in comments.
14446
d0ea0759
SE
144472009-01-22 Steve Ellcey <sje@cup.hp.com>
14448
14449 PR middle-end/38615
14450 * gimplify.c (gimplify_init_constructor): Fix promotion of const
14451 variables to static.
14452 * doc/invoke.texi (-fmerge-all-constants): Update description.
14453
87673f84
UB
144542009-01-22 Uros Bizjak <ubizjak@gmail.com>
14455
14456 PR target/38931
14457 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
14458 (*movdi_1_rex64): Use type "mmx" for alternative 5.
14459
96339268
RE
144602009-01-22 Richard Earnshaw <rearnsha@arm.com>
14461
14462 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
14463 a word boundary.
14464 (LOCAL_ALIGNMENT): Similarly.
14465
442dc742 144662009-01-22 Mark Shinwell <shinwell@codesourcery.com>
87673f84 14467 Joseph Myers <joseph@codesourcery.com>
442dc742
MS
14468
14469 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
14470 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
14471 * config/arm/arm-tune.md: Regenerate.
14472 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
14473 -march=iwmmxt2.
14474
9b34732e
MS
144752009-01-22 Mark Shinwell <shinwell@codesourcery.com>
14476
14477 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
14478 version number to five.
14479
03c2a308
DS
144802009-01-22 Dodji Seketeli <dodji@redhat.com>
14481
14482 PR c++/38930
ba20e309 14483 * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
03c2a308
DS
14484 * c-common.c (set_underlying_type): Likewise.
14485 (is_typedef_decl ): Likewise
14486 * tree.h: Likewise
14487 (set_underlying_type): Likewise.
14488 (is_typedef_type): Likewise.
14489
1240d76e
VM
144902009-01-21 Vladimir Makarov <vmakarov@redhat.com>
14491
14492 PR middle-end/38587
14493 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
14494 crossing setjmps.
14495
b8a1087d
DK
144962009-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
14497
14498 PR bootstrap/37660
14499 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro.
14500 (LIBGCC_SPEC): Don't define.
14501 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC.
14502
435da628
UB
145032009-01-21 Uros Bizjak <ubizjak@gmail.com>
14504
14505 PR rtl-optimization/38879
14506 * alias.c (base_alias_check): Unaligned access via AND address can
14507 alias all surrounding object types except those with sizes equal
14508 or wider than the size of unaligned access.
14509
d597b3ce
DS
145102009-01-21 Dodji Seketeli <dodji@redhat.com>
14511
14512 PR c++/26693
ba20e309 14513 * c-decl.c (clone_underlying_type): Move this ...
d597b3ce 14514 * c-common.c (set_underlying_type): ... here.
435da628 14515 Also, make sure the function properly sets TYPE_STUB_DECL() on
d597b3ce
DS
14516 the newly created typedef variant type.
14517 (is_typedef_decl ): New entry point.
14518 * tree.h: Added a new member member_types_needing_access_check to
14519 struct tree_decl_non_common.
14520 (set_underlying_type): New entry point.
14521 (is_typedef_type): Likewise.
14522
71a6fe66
BM
145232009-01-21 Bingfeng Mei <bmei@broadcom.com>
14524
14525 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
14526 Check whether two instructions have memory references that
14527 belong to conflicting alias sets. walk_mems_1 and walk_mems_2
14528 are helper functions for traversing.
14529 * alias.h (insn_alias_sets_confilict_p): New prototypes.
14530 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
14531 not to draw dependency edge for instructions with non-conflicting
14532 alias sets.
14533
5a248274
JM
145342009-01-20 Joseph Myers <joseph@codesourcery.com>
14535
14536 PR other/38758
6b67572e
UB
14537 * longlong.h: Update copyright years. Use soft-fp license notice.
14538 Sync __clz_tab declaration with glibc.
5a248274 14539
4b84f3de
SE
145402009-01-20 Steve Ellcey <sje@cup.hp.com>
14541
14542 PR target/30687
14543 * doc/extend.texi (syscall_linkage): New.
14544 (version_id): Modify.
14545
37348bf1 145462009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
435da628 14547 Richard Guenther <rguenther@suse.de>
37348bf1
AP
14548
14549 PR tree-optimization/38747
14550 PR tree-optimization/38748
14551 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
14552 conversion if the base address is an indirect reference and the
14553 aliasing sets could cause issues.
14554
d0a58904
SP
145552009-01-20 Sebastian Pop <sebastian.pop@amd.com>
14556
2ba9daa7 14557 * common.opt (fgraphite, fgraphite-identity): Add comment for
d0a58904
SP
14558 explaining why these options are not documented.
14559
71e7afb2
SP
145602009-01-20 Sebastian Pop <sebastian.pop@amd.com>
14561
14562 * graphite.c (stmt_simple_for_scop_p): Also handle cases when
14563 gimple_call_lhs is NULL.
14564
38432148 145652009-01-20 Paolo Bonzini <bonzini@gnu.org>
09efeca1
PB
14566
14567 PR target/38868
14568 * emit-rtl.c (adjust_address_1): Make sure memref is never
14569 overwritten.
14570
cbb8dee3
BE
145712009-01-20 Ben Elliston <bje@au.ibm.com>
14572
14573 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
435da628 14574 const qualifier from arg parameter. Remove unnecessary cast to char *.
cbb8dee3
BE
14575 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
14576 const qualifier from arg 2.
14577
72c66596
IS
145782009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
14579
435da628 14580 * config/darwin.h: Add static-libgfortran to LINK_SPEC.
72c66596 14581
f68211cd
VM
145822009-01-19 Vladimir Makarov <vmakarov@redhat.com>
14583
14584 PR c/38869
14585 * rtl.h (reinit_regs): New prototype.
14586 * regclass.c: Include ira.h.
14587 (reinit_regs): New.
14588 * Makefile.in (regclass.o): Add ira.h.
14589 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
14590
6e4f1168
L
145912009-01-18 H.J. Lu <hongjiu.lu@intel.com>
14592
14593 PR target/38736
14594 * c-common.c (handle_aligned_attribute): Use
14595 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
14596 default alignment value.
14597
14598 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
14599
14600 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
14601 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
14602
14603 * doc/extend.texi: Update __attribute__ ((aligned)). Document
14604 __BIGGEST_ALIGNMENT__.
14605
14606 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
14607
890065bf
RG
146082009-01-18 Richard Guenther <rguenther@suse.de>
14609
14610 PR tree-optimization/38819
14611 * tree-flow.h (operation_could_trap_helper_p): Declare.
14612 * tree-eh.c (operation_could_trap_helper_p): Export.
14613 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
14614 * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
14615 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
14616 are about to insert a possibly trapping instruction and fail
14617 in this case.
14618
a729d731
AS
146192009-01-18 Andreas Schwab <schwab@suse.de>
14620
14621 * doc/install.texi (Configuration): Remove obsolete paragraph
14622 about use of --with-gnu-ld with --with-gnu-as.
14623
a640c13b
KH
146242009-01-18 Kazu Hirata <kazu@codesourcery.com>
14625
14626 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
14627 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
14628 Follow spelling conventions.
14629
dba2cc0c
BE
146302009-01-18 Ben Elliston <bje@au.ibm.com>
14631
14632 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
14633 C++ warning about implicit conversion from void * to struct
14634 bitmap_head_def *.
14635 (bitmap_obstack_free): Likewise for bitmap_element *.
bc127c63 14636 * Makefile.in (bitmap.o-warn): Remove.
dba2cc0c 14637
2207a498
DK
146382009-01-17 Dave Korn <dave.korn.cygwin@gmail.com>
14639
14640 * Makefile.in (BACKENDLIBS): Reorder to match dependencies.
14641
8137e465
SP
146422009-01-17 Sebastian Pop <sebastian.pop@amd.com>
14643 Tobias Grosser <tobi.grosser@amd.com>
14644
14645 * graphite.c (graphite_trans_scop_block): Do not block single
14646 nested loops.
14647
5be1c58c
AO
146482009-01-16 Alexandre Oliva <aoliva@redhat.com>
14649
14650 * ebitmap.h (ebitmap_iter_init): Initialize all fields.
14651 * ipa-struct-reorg.c (gen_struct_type): Replace known-true
14652 test with assertion.
14653
786ce82d
RG
146542009-01-16 Richard Guenther <rguenther@suse.de>
14655
14656 PR tree-optimization/38835
14657 PR middle-end/36227
14658 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
14659 and INT + PTR -> (INT)(PTR p+ INT) folding.
14660 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
14661
c1cb09ad
AN
146622009-01-16 Adam Nemet <anemet@caviumnetworks.com>
14663
14664 PR target/38554
14665 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
14666 the subreg from a lowpart subreg if it is also casting the value.
14667
bcab4e19
SP
146682009-01-16 Sebastian Pop <sebastian.pop@amd.com>
14669 Tobias Grosser <tobi.grosser@amd.com>
14670
14671 * graphite.c (compare_prefix_loops): New.
14672 (build_scop_canonical_schedules): Rewritten.
14673 (graphite_transform_loops): Move build_scop_canonical_schedules
14674 after build_scop_iteration_domain.
14675
0b040072
SP
146762009-01-16 Sebastian Pop <sebastian.pop@amd.com>
14677 Tobias Grosser <tobi.grosser@amd.com>
14678
2ba9daa7 14679 * graphite.c (add_conditions_to_domain): Add the loops to
0b040072
SP
14680 the dimension of the iteration domain. Do copy the domain
14681 only when it exists.
14682 (build_scop_conditions_1): Do not call add_conditions_to_domain.
14683 (add_conditions_to_constraints): New.
14684 (can_generate_code_stmt, can_generate_code): Removed.
14685 (gloog): Do not call can_generate_code.
14686 (graphite_transform_loops): Call add_conditions_to_constraints
14687 after building the iteration domain.
14688
56c6a499
JJ
146892009-01-16 Jakub Jelinek <jakub@redhat.com>
14690
14691 PR tree-optimization/38789
14692 * tree-ssa-threadedge.c
14693 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
14694 __builtin_constant_p.
14695
c95b2534 146962009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com>
cd3f1729
KZ
14697
14698 * dce.c (delete_unmarked_insns): Reversed the order that insns are
14699 examined before deleting them.
2ba9daa7 14700
c433cb14
RE
147012009-01-16 Richard Earnshaw <rearnsha@arm.com>
14702
14703 * function.c (aggregate_value_p): Correctly extract the function
14704 type from CALL_EXPR_FN lookup.
14705
c95b2534 147062009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com>
27d62fa4
HS
14707
14708 * config/picochip/picochip.c (picochip_override_options): Revert
14709 CFI asm flag disable commited previously.
14710
c77bb78f
SP
147112009-01-15 Sebastian Pop <sebastian.pop@amd.com>
14712 Tobias Grosser <tobi.grosser@amd.com>
14713 Jan Sjodin <jan.sjodin@amd.com>
14714
14715 * graphite.c (scan_tree_for_params): On substractions negate
14716 all the coefficients of the term.
14717 (clast_to_gcc_expression_red): New. Handle reduction expressions
14718 of more than two operands.
14719 (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
14720 (get_vdef_before_scop): Handle also the case of default definitions.
14721
574af2d6
RS
147222009-01-15 Richard Sandiford <rdsandiford@googlemail.com>
14723
14724 * caller-save.c (add_used_regs_1, add_used_regs): New functions.
14725 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
14726 Also use them when walking CALL_INSN_FUNCTION_USAGE.
14727
e939805b
L
147282009-01-15 H.J. Lu <hongjiu.lu@intel.com>
14729 Joey Ye <joey.ye@intel.com>
14730
14731 PR middle-end/37843
14732 * cfgexpand.c (expand_stack_alignment): Don't update stack
14733 boundary nor check incoming stack boundary here.
14734 (gimple_expand_cfg): Update stack boundary and check incoming
14735 stack boundary here.
14736
c95b2534 147372009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com>
750900db 14738
435da628 14739 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
2ba9daa7 14740
0196c95e
JJ
147412009-01-14 Jakub Jelinek <jakub@redhat.com>
14742
14743 PR rtl-optimization/38245
14744 * calls.c (expand_call): Add stack arguments to
14745 CALL_INSN_FUNCTION_USAGE even for pure calls (when
14746 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
14747 in regs and partially in memory or BLKmode arguments.
14748 (emit_library_call_value_1): Add stack arguments to
14749 CALL_INSN_FUNCTION_USAGE even for pure calls (when
14750 ACCUMULATE_OUTGOING_ARGS).
14751 * dce.c: Include tm_p.h.
14752 (find_call_stack_args): New function.
14753 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
14754 argument.
14755 (mark_insn): Call find_call_stack_args for CALL_Ps.
14756 (prescan_insns_for_dce): Walk insns backwards in bb rather than
14757 forwards. Allocate and free arg_stores bitmap if needed, pass it
14758 down to deletable_insn_p, don't mark stores set in arg_stores
14759 bitmap, clear the bitmap at the beginning of each bb.
14760 * Makefile.in (dce.o): Depend on $(TM_P_H).
14761
6df6bcfa
MM
147622009-01-14 Michael Meissner <gnu@the-meissners.org>
14763
14764 PR target/22599
435da628
UB
14765 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
14766 to make sure the insn is a conditional test (bug 22599). Reformat a
14767 few long lines.
6df6bcfa 14768
765ec70c
SP
147692009-01-14 Sebastian Pop <sebastian.pop@amd.com>
14770
14771 PR middle-end/38431
14772 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
14773 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
14774 (gloog): Do not call cleanup_tree_cfg.
2ba9daa7 14775 (graphite_transform_loops): Call cleanup_tree_cfg after all
765ec70c
SP
14776 scops have been code generated.
14777
7de2b688
BS
147782009-01-14 Basile Starynkevitch <basile@starynkevitch.net>
14779 * doc/gty.texi (Invoking the garbage collector): Added new node
14780 and section documenting ggc_collect.
14781
10bd6c5c
RG
147822009-01-14 Richard Guenther <rguenther@suse.de>
14783
14784 PR tree-optimization/38826
14785 PR middle-end/38477
14786 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
14787 initialization notes only if we actually emitted a warning.
14788 (intra_create_variable_infos): Add constraints for a result decl
14789 that is passed by hidden reference.
14790 (build_pred_graph): Mark all related variables non-direct on
14791 address-taking.
14792
9c7c70ee
NC
147932009-01-14 Nick Clifton <nickc@redhat.com>
14794
14795 * ira-conflicts.c: Include addresses.h for the definition of
14796 base_reg_class.
435da628
UB
14797 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
14798 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
9c7c70ee 14799
cf0c2a60
VM
148002009-01-13 Vladimir Makarov <vmakarov@redhat.com>
14801
14802 PR target/38811
14803 * Makefile.in (ira-lives.o): Add except.h.
14804
14805 * ira-lives.c: Include except.h.
14806 (process_bb_node_lives): Process can_throw_internal.
14807
d3302fd3
JJ
148082009-01-13 Jakub Jelinek <jakub@redhat.com>
14809
14810 PR rtl-optimization/38774
14811 * combine.c (simplify_set): When undoing cc_use change, don't do
14812 PUT_CODE on the newly created comparison, but instead put back the
14813 old comparison.
14814
7ab23fd0
JM
148152009-01-13 Joseph Myers <joseph@codesourcery.com>
14816
14817 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
14818 values. Remove duplicate arm8 entry.
14819
f9344488
SP
148202009-01-13 Sebastian Pop <sebastian.pop@amd.com>
14821
14822 PR tree-optimization/38786
14823 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
14824 the SSA_NAME case of expand_scalar_variables_expr.
14825 Set the type of an expression to the type of its assign statement.
14826 (expand_scalar_variables_expr): Also gather the scalar computation
14827 used to index the memory access. Do not pass loop_p.
14828 Fix comment. Stop recursion on tcc_constant or tcc_declaration.
14829 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
bef3c57b
UB
14830 the gimple_stmt_iterator where it inserts new code.
14831 Do not pass loop_p.
f9344488
SP
14832 (copy_bb_and_scalar_dependences): Do not pass loop_p.
14833 (translate_clast): Update call to copy_bb_and_scalar_dependences.
14834
2d8bb84d
SP
148352009-01-13 Sebastian Pop <sebastian.pop@amd.com>
14836
14837 * graphite.h (debug_value): Removed.
14838 * graphite.c (debug_value): Removed.
14839
ff128632
RE
148402009-01-13 Richard Earnshaw <rearnsha@arm.com>
14841
435da628
UB
14842 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
14843 ldrd/strd with two 32-bit instructions.
ff128632 14844
d5a0a47b
RE
148452009-01-13 Richard Earnshaw <rearnsha@arm.com>
14846
435da628
UB
14847 * config/arm/arm.c (struct processors): Pass for speed down into
14848 cost helper functions.
d5a0a47b
RE
14849 (const_ok_for_op): Handle COMPARE and inequality nodes.
14850 (arm_rtx_costs_1): Rewrite.
14851 (arm_size_rtx_costs): Update prototype.
14852 (arm_rtx_costs): Pass speed down to helper functions.
14853 (arm_slowmul_rtx_costs): Rework cost calculations.
14854 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
14855 (arm_9e_rtx_costs): Likewise.
14856
26d5bf5b
UB
148572009-01-13 Uros Bizjak <ubizjak@gmail.com>
14858
14859 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
435da628 14860 relocations of local symbols wider than UNITS_PER_WORD are not valid.
26d5bf5b
UB
14861 (alpha_legitimize_address): Do not split local symbols wider than
14862 UNITS_PER_WORD into HIGH/LO_SUM parts.
14863
5d14e3d5
DS
148642009-01-13 Danny Smith <dannysmith@users.sourceforge.net>
14865
14866 PR bootstrap/38580
14867 * gcc.c (process_command): Replace call to execvp with calls
14868 to pex_one and exit.
14869
33faafca
AS
148702009-01-03 Anatoly Sokolov <aesok@post.ru>
14871
14872 PR target/29141
14873 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
14874 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
14875 variant for devices with 3-byte PC.
ba20e309 14876 (__tablejump_elpm__): New.
33faafca 14877
634b5df5
JJ
148782009-01-12 Jakub Jelinek <jakub@redhat.com>
14879
14880 PR c/32041
14881 * c-parser.c (c_parser_postfix_expression): Allow `->' in
14882 offsetof member-designator, handle it as `[0].'.
14883
2842bb86
JDA
148842009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14885
14886 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
14887 function when not using named sections on targets with named sections
14888 if branch distance is less than 262132.
14889
76ee70f6
RE
148902009-01-12 Richard Earnshaw <rearnsha@arm.com>
14891
14892 * combine.c (combine_instructions): Recompute
14893 optimize_this_for_speed_p for each BB in the main combine loop.
14894
f56e675d
TB
148952009-01-12 Tomas Bily <tbily@suse.cz>
14896
14897 PR middlend/38385
26d5bf5b
UB
14898 * tree-loop-distribution.c (prop_phis): New function.
14899 (generate_builtin): Call prop_phis.
14900 * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
f56e675d 14901
c2152239
JJ
149022009-01-12 Jakub Jelinek <jakub@redhat.com>
14903
14904 PR tree-optimization/38807
14905 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
14906 gimple_visited_p unless stmt is GIMPLE_ASSIGN.
14907
0e510b3e
AN
149082009-01-11 Adam Nemet <anemet@caviumnetworks.com>
14909
14910 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
14911 subreg of op0 to the original op0.
14912
c95b2534 149132009-01-11 Laurent GUERBY <laurent@guerby.net>
10270471
LG
14914
14915 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
2ba9daa7 14916
53a7ff9a
MS
149172009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
14918
14919 PR debug/7055
60839f5d 14920 * mips-tfile.c (parse_def): Fix parsing of def strings
53a7ff9a
MS
14921 starting with digits.
14922
b3a796bc
JJ
149232009-01-10 Jakub Jelinek <jakub@redhat.com>
14924
14925 PR target/38695
14926 * config/arm/arm.c (arm_is_long_call_p): Don't call
14927 arm_function_in_section_p if decl isn't a FUNCTION_DECL.
14928
b21b850e
SB
149292009-01-09 Steven Bosscher <steven@gcc.gnu.org>
14930
14931 * regrename.c (regrename_optimize): Fix dumping.
14932 (find_oldest_value_reg): Preserve REG_POINTER.
14933 (copy_hardreg_forward_1): Likewise.
14934
e0e10d3a
DN
149352009-01-09 Diego Novillo <dnovillo@google.com>
14936
bf9b2cc9 14937 * gimple.h (struct gimple_statement_base) <uid>: Document
e0e10d3a
DN
14938 the restrictions on its use.
14939 (gimple_uid): Tidy.
14940 (gimple_set_uid): Tidy.
14941
c9da2ae8
JJ
149422009-01-09 Jakub Jelinek <jakub@redhat.com>
14943
14944 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
14945 zero guard even if align_bytes != 0 and count is smaller than
14946 size_needed.
14947
38432148 149482009-01-09 Vladimir Makarov <vmakarov@redhat.com>
a174c19c
VM
14949
14950 PR rtl-optimization/38495
26d5bf5b 14951 * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
a174c19c
VM
14952 (add_range_and_copies_from_move_list): Print all added ranges.
14953 Add ranges to memory optimized destination.
14954
260fda3d
JJ
149552009-01-09 Jakub Jelinek <jakub@redhat.com>
14956
6f6278ad
JJ
14957 PR target/38686
14958 PR target/38708
14959 * config/i386/i386.c (override_options): Reject
14960 -mstringop-strategy=rep_8byte with -m32.
14961 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
14962 to 1. Do count comparison against epilogue_size_needed at compile
14963 time even when count_exp was constant forced into register. For
14964 size_needed don't jump to epilogue, instead just avoid aligning
14965 and invoke the body algorithm. If need_zero_guard, add zero guard
14966 even if count is non-zero, but smaller than size_needed + number of
14967 bytes that could be stored for alignment.
14968 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
14969 to 1. If need_zero_guard, add zero guard even if count is non-zero,
14970 but smaller than size_needed + number of bytes that could be stored
14971 for alignment. Compare size_needed with epilogue_size_needed instead
14972 of desired_align - align, don't adjust size_needed, pass
14973 epilogue_size_needed to the epilogue expanders.
14974
260fda3d 14975 PR c/35742
26d5bf5b 14976 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
260fda3d 14977
67b846fa
JDA
149782009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14979
14980 * pa.c (last_address): Change to unsigned.
14981 (update_total_code_bytes): Change argument to unsigned. Don't
14982 check if insn addresses are set.
14983 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
14984 addresses are not set.
14985 (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
14986
91c82473
NC
149872009-01-09 Nick Clifton <nickc@redhat.com>
14988
14989 * config/sh/symbian.c: Replace uses of DECL_INLINE with
14990 DECL_DECLARED_INLINE_P.
14991
4017e262
JJ
149922009-01-09 Jakub Jelinek <jakub@redhat.com>
14993
0a49e5c2
JJ
14994 PR middle-end/38347
14995 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
14996 GET_MODE (op0) in operand_subword_force calls.
14997
4017e262
JJ
14998 PR middle-end/38771
14999 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
15000 fold_convert arg0 operands to TREE_TYPE (op0) first.
15001
7cd06356
VM
150022009-01-08 Vladimir Makarov <vmakarov@redhat.com>
15003
15004 * params.def (ira-max-conflict-table-size): Decrease default value
15005 to 1000.
15006
96867bbd
JJ
150072009-01-08 Jakub Jelinek <jakub@redhat.com>
15008
15009 PR tree-optimization/37031
15010 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
15011 on parameter_set.
15012 (build_access_matrix): Reserve correct size for AM_MATRIX vector,
15013 allocate it using gc instead of heap, use VEC_quick_push instead of
15014 VEC_safe_push.
15015 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
15016 instead of heap, use VEC_quick_push instead of VEC_safe_push.
15017 * tree-data-ref.h (struct access_matrix): Change matrix to gc
15018 allocated vector from heap allocated.
15019 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
15020 * tree-loop-linear.c (linear_transform_loops): Allocate nest
15021 vector only after perfect_loop_nest_depth call.
15022
68f61c3d
SP
150232009-01-08 Sebastian Pop <sebastian.pop@amd.com>
15024 Jan Sjodin <jan.sjodin@amd.com>
15025
15026 PR tree-optimization/38559
15027 * graphite.c (debug_value, copy_constraint,
15028 swap_constraint_variables, scale_constraint_variable, ): New.
15029 (get_lower_bound, get_upper_bound): Removed.
15030 (graphite_trans_bb_strip_mine): Clean up this code that works
15031 only for constant number of iterations. Fully copy upper and
15032 lower bound constraints, not only the constant part of them.
15033 * graphite.h (debug_value): Declared.
15034
82567e33
IR
150352009-01-08 Ira Rosen <irar@il.ibm.com>
15036
15037 PR tree-optimization/37194
15038 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
2ba9daa7 15039 Don't add the cost of cost model guard in prologue to scalar
82567e33
IR
15040 outside cost in case of known number of iterations.
15041
7da13f1d
NF
150422009-01-07 Nathan Froyd <froydnj@codesourcery.com>
15043 Alan Modra <amodra@bigpond.net.au>
15044
15045 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
15046 non-word-aligned REG+CONST addressing.
15047
c0f64575
UB
150482009-01-07 Uros Bizjak <ubizjak@gmail.com>
15049
15050 PR target/38706
15051 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
15052 free_after_compilation when outputting a thunk.
15053 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
15054 Do not call free_after_compilation here.
15055
301b6a4e
UB
150562009-01-07 Uros Bizjak <ubizjak@gmail.com>
15057
15058 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
301b6a4e
UB
15059 (ix86_valid_target_attribute_inner_p): Ditto.
15060
6a114766
JS
150612009-01-07 Jan Sjodin <jan.sjodin@amd.com>
15062
15063 PR tree-optimization/38492
15064 PR tree-optimization/38498
15065 * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
15066 * tree-chrec.h (scev_is_linear_expression): Declared.
15067 * graphite.c (graphite_cannot_represent_loop_niter): New.
15068 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
15069 (graphite_loop_normal_form): Use gcc_assert.
15070 (scan_tree_for_params): Use CASE_CONVERT.
15071 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
15072 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
15073 Use gcc_assert. Discard scops that contain unhandled cases.
15074 (build_scop_conditions): Return a boolean status for unhandled cases.
15075 (strip_mine_profitable_p): Print the loop number, not its depth.
15076 (is_interchange_valid): Pass the depth of the loop nest, don't
15077 recompute it wrongly.
15078 (graphite_trans_bb_block): Same.
15079 (graphite_trans_bb_block): Print tentative of loop blocking.
15080 (graphite_trans_scop_block): Do not print that the loop has been
15081 blocked.
15082 (graphite_transform_loops): Do not handle scops that contain condition
15083 scalar phi nodes.
15084
65b82caa
L
150852009-01-07 H.J. Lu <hongjiu.lu@intel.com>
15086
15087 AVX Programming Reference (December, 2008)
15088 * config/i386/avxintrin.h (_mm256_stream_si256): New.
15089 (_mm256_stream_pd): Likewise.
15090 (_mm256_stream_ps): Likewise.
15091
15092 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
15093 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
15094 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
15095 (bdesc_special_args): Add __builtin_ia32_movntdq256,
15096 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
15097 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
15098 (ix86_expand_special_args_builtin): Likewise.
15099
15100 * config/i386/sse.md (AVXMODEDI): New.
15101 (avx_movnt<mode>): Likewise.
15102 (avx_movnt<mode>): Likewise.
15103 (<sse>_movnt<mode>): Remove AVX support.
15104 (sse2_movntv2di): Likewise.
15105
cef158f9
RG
151062009-01-07 Richard Guenther <rguenther@suse.de>
15107
15108 PR middle-end/38751
15109 * fold-const.c (extract_muldiv): Remove obsolete comment.
15110 (fold_plusminus_mult_expr): Undo MINUS_EXPR
15111 to PLUS_EXPR canonicalization for the canonicalization.
15112
246cb5be
GP
151132009-01-07 Gerald Pfeifer <gerald@pfeifer.com>
15114
15115 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
15116 hosted cross-compilers generating less efficient code.
15117
84b9b872
RS
151182009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
15119
15120 * function.h (rtl_data): Add a dbr_scheduled_p field.
15121 * reorg.c (dbr_schedule): Set it.
15122 (gate_handle_delay_slots): Check it.
15123 * config/mips/mips.c (mips_base_delayed_branch): Delete.
15124 (mips_reorg): Check flag_delayed_branch instead of
15125 mips_base_delayed_branch.
15126 (mips_override_options): Don't set mips_base_delayed_branch
15127 or flag_delayed_branch.
15128
ace984c8
RS
151292009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
15130
15131 PR rtl-optimization/38426.
15132 * ira.c (ira): Set current_function_is_leaf earlier.
15133
7ad7809b
JJ
151342009-01-06 Jakub Jelinek <jakub@redhat.com>
15135
15136 PR rtl-optimization/38722
15137 * combine.c (try_combine): Don't modify PATTERN (i3) and notes
15138 too early, only set a flag and modify after last possible
15139 undo_all point.
15140
c52ec948
JJ
151412009-01-06 Janis Johnson <janis187@us.ibm.com>
15142
15143 PR c/34252
15144 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
15145 * real.c (decimal_single_format): Correct values of emin and emax.
15146 (decimal_double_format): Ditto.
15147 (decimal_quad_format): Ditto.
15148 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
15149 computation of DECnn_MIN and DECnn_MAX for corrected values of
15150 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of
15151 __DECnn_MIN__, and adjust its computation for the corrected value
15152 of emin.
15153
300240e1
JH
151542009-01-06 Jan Hubicka <jh@suse.cz>
15155
15156 PR target/38744
435da628 15157 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
300240e1 15158
271c069e
GP
151592009-01-06 Gerald Pfeifer <gerald@pfeifer.com>
15160
15161 * doc/contrib.texi (Contributors): Slightly adjust the end note.
15162 Add Robert Clark to the list of testers.
15163
64e4c301 151642009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 15165 Kai Tietz <kai.tietz@onevision.com>
64e4c301 15166
435da628
UB
15167 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
15168 * config/i386/i386.c (ix86_expand_call): Add clobbers.
64e4c301 15169
7650b83e 151702009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 15171 Kai Tietz <kai.tietz@onevision.com>
7650b83e 15172
435da628
UB
15173 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
15174 for w64 ABI.
15175 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
7650b83e
JH
15176 (ix86_nsaved_regs): Count only general purpose regs.
15177 (ix86_nsaved_sseregs): New.
15178 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
15179 to 16 for w64; compute padding and size of sse reg save area.
301b6a4e
UB
15180 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
15181 general purpose regs.
7650b83e
JH
15182 (ix86_emit_save_sse_regs_using_mov): New.
15183 (ix86_expand_prologue): Save SSE regs if needed.
15184 (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
15185 (ix86_emit_restore_sse_regs_using_mov): New.
15186 (ix86_expand_epilogue): Save SSE regs if needed.
15187
9aa5c1b2 151882009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 15189 Kai Tietz <kai.tietz@onevision.com>
9aa5c1b2 15190
435da628
UB
15191 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
15192 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
15193 functions when accumulate outgoing args is off.
9aa5c1b2 15194
f7556aae
L
151952009-01-06 H.J. Lu <hongjiu.lu@intel.com>
15196
15197 PR bootstrap/38742
15198 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
15199 before using pseudos_have_intersected_live_ranges_p.
15200
15201 * ira-int.h (ira_assert): Always define.
15202
e47b7d04
L
152032009-01-06 H.J. Lu <hongjiu.lu@intel.com>
15204
15205 AVX Programming Reference (December, 2008)
15206 * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
15207 (_mm256_permute2_pd): Likewise.
15208 (_mm_permute2_ps): Likewise.
15209 (_mm256_permute2_ps): Likewise.
15210 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
15211 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
15212
15213 * config/i386/i386.c (ix86_builtins): Remove
15214 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
15215 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
15216 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
15217 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
15218 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
15219 (bdesc_args): Remove __builtin_ia32_vpermil2pd,
15220 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
15221 __builtin_ia32_vpermil2ps256.
15222 (ix86_init_mmx_sse_builtins): Updated.
15223 (ix86_expand_args_builtin): Likewise.
15224
44b86471
JDA
152252009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15226
e47b7d04
L
15227 * pa.c (output_call): Relocate non-jump insns in the delay slot of
15228 long absolute calls when generating PA 2.0 code.
44b86471 15229
311aab06
VM
152302009-01-05 Vladimir Makarov <vmakarov@redhat.com>
15231
15232 PR rtl-optimization/38583
15233 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
15234
15235 * params.def (ira-max-conflict-table-size): New.
15236
15237 * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
2ba9daa7 15238
311aab06 15239 * ira.h (ira_conflicts_p): New external definition.
2ba9daa7 15240
311aab06
VM
15241 * ira-conflicts.c (build_conflict_bit_table): Do not build too big
15242 table. Report this. Return result of building.
15243 (ira_build_conflicts): Use ira_conflicts_p. Check result of
15244 building conflict table.
15245
301b6a4e 15246 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
311aab06 15247 (ira_color): Use ira_conflicts_p.
2ba9daa7 15248
311aab06
VM
15249 * global.c: Include ira.h.
15250 (pseudo_for_reload_consideration_p, build_insn_chain): Use
15251 ira_conflicts_p.
15252
15253 * Makefile.in (global.o): Add ira.h.
2ba9daa7 15254
311aab06
VM
15255 * ira-build.c (mark_all_loops_for_removal,
15256 propagate_some_info_from_allocno): New.
15257 (remove_unnecessary_allocnos): Call
15258 propagate_some_info_from_allocno.
15259 (remove_low_level_allocnos): New.
15260 (remove_unnecessary_regions): Add parameter. Call
15261 mark_all_loops_for_removal and remove_low_level_allocnos. Pass
15262 parameter to remove_unnecessary_regions.
15263 (ira_build): Remove all regions but root if the conflict table was
15264 not built. Update conflict hard regs for allocnos crossing calls.
15265
15266 * ira.c (ira_conflicts_p): New global.
15267 (ira): Define and use ira_conflicts_p.
15268
15269 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
15270 count_spilled_pseudo, find_reg, alter_reg, finish_spills,
301b6a4e 15271 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
2ba9daa7 15272
5641785f
BE
152732009-01-06 Ben Elliston <bje@au.ibm.com>
15274
15275 * gengtype-lex.l (YY_NO_INPUT): Define.
15276
e4e5261f
AP
152772009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
15278
15279 PR c/34911
5641785f
BE
15280 * c-common.c (handle_vector_size_attribute): Also reject
15281 BOOLEAN_TYPE types.
e4e5261f 15282
7b10257f
SP
152832009-01-05 Sebastian Pop <sebastian.pop@amd.com>
15284
15285 PR tree-optimization/38492
15286 * graphite.c (rename_map_elt, debug_rename_elt,
301b6a4e
UB
15287 debug_rename_map_1, debug_rename_map, new_rename_map_elt,
15288 rename_map_elt_info, eq_rename_map_elts,
15289 get_new_name_from_old_name, bb_in_sese_p): Moved around.
7b10257f
SP
15290 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
15291 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
15292 (sese_build_livein_liveouts): New.
15293 (new_sese, free_sese): New.
15294 (new_scop): Call new_sese.
15295 (free_scop): Call free_sese.
15296 (rename_variables_from_edge, rename_phis_end_scop): Removed.
15297 (register_old_new_names): Renamed register_old_and_new_names.
15298 (register_scop_liveout_renames, add_loop_exit_phis,
15299 insert_loop_close_phis, struct igp,
15300 default_liveout_before_guard, add_guard_exit_phis,
15301 insert_guard_phis, copy_renames): New.
15302 (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
15303 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
15304 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
15305 (scop_adjust_phis_for_liveouts): New.
15306 (gloog): Call scop_adjust_phis_for_liveouts.
15307
15308 * graphite.h (struct sese): Documented. Added fields liveout,
301b6a4e 15309 num_ver and livein.
7b10257f
SP
15310 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
15311 (new_sese, free_sese, sese_build_livein_liveouts): Declared.
15312 (struct scop): Added field liveout_renames.
15313 (SCOP_LIVEOUT_RENAMES): New.
15314
9761fcc7
HJ
153152009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
15316
15317 PR tree-optimization/38510
15318 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
15319 (translate_clast): Call recompute_all_dominators before
15320 graphite_verify.
15321 (gloog): Call recompute_all_dominators before graphite_verify.
15322
153232009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
c95b2534 15324 Jan Sjodin <jan.sjodin@amd.com>
9761fcc7
HJ
15325
15326 PR tree-optimization/38500
15327 * graphite.c (create_sese_edges): Call fix_loop_structure after
15328 splitting blocks.
15329
c95b2534 153302009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
48a01864
JS
15331
15332 * config.gcc: Add m32r*-*-rtems*.
15333 * config/m32r/rtems.h: New file.
15334
fc0cd180
BE
153352009-01-05 Ben Elliston <bje@au.ibm.com>
15336
15337 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
15338 (.po.pox): Likewise.
15339 (po/gcc.pot): Likewise.
15340
3106d8e5
DM
153412009-01-04 David S. Miller <davem@davemloft.net>
15342
15343 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
15344 (STARTING_FRAME_OFFSET): Always set to zero.
15345
0009b473
RS
153462009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
15347
15348 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
15349 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
15350 fixed-point types, and vectors of the same.
15351
4f24c6d6
RS
153522009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
15353
15354 * config/mips/sync.md (*mb_barrier): Rename to...
15355 (*memory_barrier): ...this.
15356
1df48f5c
JW
153572009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com>
15358
15359 * doc/extend.texi (Function Attributes): Move @cindex after @item
eefe5da0 15360 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
1df48f5c
JW
15361 and put in alphabetical order. Fix 'target' name and put in order.
15362 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
15363 typos.
15364
1a8c13b3
UB
153652009-01-04 Uros Bizjak <ubizjak@gmail.com>
15366
15367 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
15368 (memory_barrier): Expand as unspec instead of unspec_volatile.
15369 Remove mem:BLK from insn operands. Use Pmode scratch register.
15370 (*memory_barrier): Define as unspec instead of unspec_volatile.
15371 Use (match_dup 0) as input operand.
15372
15373 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
15374 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
15375 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
15376 scratch register. Remove operand 1.
15377 (*stbar): Define as unspec instead of unspec_volatile.
15378 Use (match_dup 0) as input operand, remove (const_int 8).
15379 (*membar): Define as unspec instead of unspec_volatile.
15380 Use (match_dup 0) as input operand, remove input operand 2.
15381
15382 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
15383 (memory_barrier): Expand as unspec instead of unspec_volatile.
15384 Remove mem:BLK from insn operands. Use Pmode scratch register.
15385 (*memory_barrier): Define as unspec instead of unspec_volatile.
15386 Use (match_dup 0) as input operand.
15387
15388 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
15389 Remove mem:BLK from insn operands. Use Pmode scratch register.
15390 Set volatile flag on operand 0.
15391 (*memory_barrier): New insn pattern.
15392
15393 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
15394 insn operands.
15395 (*memory_barrier): Use (match_dup 0) as input operand.
15396
15397 * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
15398 Remove mem:BLK from insn operands. Use Pmode scratch register.
15399 Set volatile flag on operand 0.
301b6a4e 15400 (*mb_internal): New insn pattern.
1a8c13b3
UB
15401
15402 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
15403
fb0703f7
SB
154042009-01-04 Steven Bosscher <steven@gcc.gnu.org>
15405
15406 PR middle-end/38586
15407 * function.c (struct temp_slot): Move to the section of the file
15408 that deals with temp slots. Remove field 'address'.
15409 (temp_slot_address_table): New hash table of address -> temp slot.
15410 (struct temp_slot_address_entry): New struct, items for the table.
15411 (temp_slot_address_compute_hash, temp_slot_address_hash,
15412 temp_slot_address_eq, insert_temp_slot_address): Support functions
15413 for the new table.
15414 (find_temp_slot_from_address): Rewrite to use the new hash table.
15415 (remove_unused_temp_slot_addresses): Remove addresses of temp
15416 slots that have been made available.
15417 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
15418 worker function for remove_unused_temp_slot_addresses.
15419 (assign_stack_temp_for_type): Don't clear the temp slot address list.
15420 Add the temp slot address to the address -> temp slot map.
15421 (update_temp_slot_address): Update via insert_temp_slot_address.
15422 (free_temp_slots): Call remove_unused_temp_slot_addresses.
15423 (pop_temp_slots): Likewise.
15424 (init_temp_slots): Allocate the address -> temp slot map, or empty
15425 the map if it is already allocated.
15426 (prepare_function_start): Initialize temp slot processing.
15427
b5a430f3
SB
154282009-01-04 Steven Bosscher <steven@gcc.gnu.org>
15429
15430 PR middle-end/38584
15431 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
15432 Calculate the size of all stack vars assuming no packing of stack
15433 vars will happen, replacing a quadratic algorithm with a linear one.
15434
5d560619
JJ
154352009-01-03 Jakub Jelinek <jakub@redhat.com>
15436
15437 PR target/38707
15438 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
15439 can't be used.
15440
953a7caa
DN
154412009-01-03 Diego Novillo <dnovillo@google.com>
15442
15443 * doc/contrib.texi: Update contributions.
15444
5f26a230
JJ
154452009-01-03 Jakub Jelinek <jakub@redhat.com>
15446
493aa551
JJ
15447 PR c++/38705
15448 * builtins.c (fold_builtin_memory_op): Give up if either operand
15449 is volatile. Set srctype or desttype to non-qualified version
15450 of the other type.
15451
5f26a230
JJ
15452 PR c/38700
15453 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
15454 and FUNCTION_DECLs.
15455
c95b2534 154562009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
fafe34f9
KZ
15457
15458 PR rtl-optimization/35805
15459 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
15460 problem if fast dce is able to remove any instructions.
15461 * dce.c (dce_process_block): Fix dump message.
2ba9daa7 15462
0b355794
MM
154632009-01-02 Mark Mitchell <mark@codesourcery.com>
15464
15465 PR 33649
15466 * tree-ssa-pre.c (compute_antic): Correct loop bounds.
15467
0cf0d02b
JJ
154682009-01-02 Jakub Jelinek <jakub@redhat.com>
15469
15470 PR middle-end/38690
15471 * tree-flow.h (op_code_prio, op_prio): New prototypes.
15472 * tree-pretty-print.c (op_code_prio): New function.
15473 (op_prio): No longer static. Use op_code_prio.
15474 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
15475 Use op_prio and op_code_prio to determine if () should be
15476 printed around operand(s) or not.
15477
15478 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
15479 dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
15480 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
15481 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
15482 pp_character instead of pp_string for single letter printing.
15483
e3606f3b
RS
154842009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
15485
15486 * doc/extend.texi: Fix '#pragma GCC option' typo.
15487
c95b2534 154882009-01-02 Richard Guenther <rguenther@suse.de>
00f39bd5 15489
a5f061dc
RG
15490 * doc/install.texi (--enable-checking): Mention different
15491 default for stage1.
15492 (--enable-stage1-checking): Document.
00f39bd5 15493
26de0bcb
AP
154942009-01-01 Andrew Pinski <pinskia@gmail.com>
15495
15496 PR middle-end/30142
15497 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
15498 case to be an error.
15499
7a7d8fab
BE
155002009-01-02 Ben Elliston <bje@au.ibm.com>
15501
15502 * config/fp-bit.h (pack_d): Constify argument.
15503 * config/fp-bit.c (makenan): Constify return type. Remove casts.
15504 (isnan): Constify argument.
15505 (isinf): Likewise.
15506 (iszero): Likewise.
15507 (pack_d): Likewise.
15508 (_fpadd_parts): Constify return type.
15509 (_fpmul_parts): Likewise.
15510 (_fpdiv_parts): Likewise.
15511
b295aee2
JJ
155122009-01-01 Jakub Jelinek <jakub@redhat.com>
15513
15514 PR c/36489
15515 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only
15516 warn about overwriting initializer with side-effects or
15517 -Woverride-init if !IMPLICIT.
15518 (output_init_element): Likewise. Pass IMPLICIT down to
15519 add_pending_init.
15520 (process_init_element): Add IMPLICIT argument. Pass it down
15521 to output_init_element.
15522 (push_init_element, pop_init_level, set_designator): Adjust
15523 process_init_element callers.
15524 (set_nonincremental_init, set_nonincremental_init_from_string):
15525 Adjust add_pending_init callers.
15526 (output_pending_init_elements): Adjust output_init_element callers.
15527 * c-tree.h (process_init_element): Adjust prototype.
15528 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
15529 process_init_element callers.
ad41bd84
JM
15530
15531\f
15532Copyright (C) 2009 Free Software Foundation, Inc.
15533
15534Copying and distribution of this file, with or without modification,
15535are permitted in any medium without royalty provided the copyright
15536notice and this notice are preserved.