]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
re PR tree-optimization/40432 (verify_stmts failed with -O2: non-register as LHS...
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
0ec19b8c
MJ
12009-06-16 Martin Jambor <mjambor@suse.cz>
2
3 PR tree-optimization/40432
4 * tree-sra.c (sra_modify_assign): When creating VIEW_CONVERT_EXPR,
5 check whether we need to force gimple register operand.
6
2b26b801
MJ
72009-06-16 Martin Jambor <mjambor@suse.cz>
8
9 PR tree-optimization/40413
10 * tree-sra.c (load_assign_lhs_subreplacements): Pass offset to
11 build_ref_for_offset.
12 (propagate_subacesses_accross_link): Fix a typo in a comment.
13
7c5222ff
IR
142009-06-16 Ira Rosen <irar@il.ibm.com>
15
16 * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
17 with additional parameter.
18 * tree-vectorizer.h (enum vect_def_type): Add new value
19 vect_nested_cycle.
20 (enum vect_relevant): Add comments.
21 (vect_is_simple_reduction): Add new argument.
22 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Add comments.
23 Detect nested cycles.
24 (vect_is_simple_reduction): Update documentation, add an argument to
25 distinguish inner-loop reduction from nested cycle, detect nested
26 cycles, fix printings and indentation, don't swap operands in case
27 of nested cycle.
28 (get_initial_def_for_reduction): Handle subtraction.
29 (vect_create_epilog_for_reduction): Add new argument to specify
30 reduction variable.
31 (vect_finalize_reduction): Handle subtraction, fix comments.
32 (vectorizable_reduction): Handle nested cycles. In case of nested cycle
33 keep track of the reduction variable position. Call
34 vect_is_simple_reduction with additional parameter. Use original
35 statement code in reduction epilogue for nested cycle. Call
36 vect_create_epilog_for_reduction with additional parameter.
37 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Assert inner-loop
38 vectorization.
39 (vect_recog_widen_sum_pattern): Likewise.
40 * tree-vect-stmts.c (process_use): Distinguish between nested cycles
41 and reductions.
42 (vect_mark_stmts_to_be_vectorized): Likewise.
43 (vect_get_vec_def_for_operand): Handle nested cycles.
44
d376d545
RW
452009-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
46
47 * doc/invoke.texi (Debugging Options): Fix option index entries
48 for -fdump-statistics, -frandom-seed add entries for
49 -fdump-tree-original, -fdump-tree-optimized, -frandom-seed.
50 (FRV Options): Fix entries for -mTLS, -mtls.
51 (HPPA Options): Fix entries for -mgnu-ld, -mhp-ld.
52 (i386 and x86-64 Options): Fix entry for -mno-red-zone.
53 (M68hc1x Options): Fix @itemx for -mnominmax.
54 (MCore Options): Fix entry for -mno-lsim.
55 (MMIX Options): Fix entry for -mabi=mmixware.
56 (PDP-11 Options): Fix entry for -mbcopy-builtin.
57
bd117bb6
BS
582009-06-16 Basile Starynkevitch <basile@starynkevitch.net>
59
60 * doc/plugins.texi (Interacting with the GCC Garbage Collector):
61 Mention the plugin mode of gengtype.
62 * doc/gty.texi (Source Files Containing Type Information):
63 Likewise.
64 * gengtype.c: Updated copyright.
65 (plugin_files, nb_plugin_files) Added new static variables.
66 (measure_input_list) Care about plugin_files.
67 (write_rtx_next): Added early return in plugin mode.
68 (create_file): Updated copyright year in generated file. Added
69 asserts.
70 (oprintf): Added early return if NULL outf.
71 (get_output_file_with_visibility): Care of plugin_files.
72 (get_output_file_name): May return null.
73 (write_local): Added early return.
74 (put_mangled_filename): Ditto.
75 (finish_root_table): Added check for base_files.
76 (write_roots): Care about null when plugins.
77 (main): Added plugin mode.
78
e1b7793c
ILT
792009-06-15 Ian Lance Taylor <iant@google.com>
80
81 * df-problems.c (df_simulate_one_insn_forwards): Fix braces in
82 switch.
83 * gcov.c (read_count_file): Add braces around variables declared
84 before label.
85
86 * c.opt (Wjump-misses-init): New warning.
87 * c-opts.c (c_common_handle_option): Set warn_jump_misses_init for
88 -Wall and -Wc++-compat if not already set.
89 (c_common_post_options): Clear warn_jump_misses_init if it was not
90 set.
91 * c-decl.c (struct c_binding): Change type field to a union with
92 new label field. Make it the first field in the struct. Update
93 references to type to use u.type instead.
94 (struct c_spot_bindings): Define.
95 (struct c_goto_bindings): Define.
96 (c_goto_bindings_p): Define, along with VECs.
97 (struct c_label_vars): Define.
98 (struct c_scope): Add has_label_bindings field.
99 (bind_label, set_spot_bindings): New static functions.
100 (decl_jump_unsafe, update_spot_bindings): New static functions.
101 (update_label_decls): New static function.
102 (pop_scope): Call update_label_decls. Don't call c_end_vm_scope.
103 Update binding u.label field to shadowed field.
104 (c_binding_start_stmt_expr): New function.
105 (c_binding_end_stmt_expr): New function.
106 (pushdecl): Don't call c_begin_vm_scope.
107 (make_label): Add defining and p_label_vars parameters. Change
108 all callers.
109 (lookup_label): Correct test for whether a label has not yet been
110 defined. Call bind_label rather than bind.
111 (warn_about_goto): New static function.
112 (lookup_label_for_goto): New function.
113 (declare_label): Call bind_label rather than bind.
114 (check_earlier_gotos): New static function.
115 (define_label): Don't give errors about jumping into statement
116 expressions or scopes of variably modified types. Call
117 set_spot_bindings and check_earlier_gotos. Call bind_label
118 instead of bind. Don't set label_context_stack_se or
119 label_context_stack_vm.
120 (c_get_switch_bindings): New function.
121 (c_release_switch_bindings): New function.
122 (c_check_switch_jump_warnings): New function.
123 (start_function): Don't set label_context_stack_se or
124 label_context_stack_vm.
125 (finish_function): Likewise.
126 * c-typeck.c (label_context_stack_se): Don't define.
127 (label_context_stack_vm): Don't define.
128 (c_finish_goto_label): Call lookup_label_for_goto rather than
129 lookup_label. Don't give errors about jumping into a statement
130 expression or the scope of a variably modified type. Don't set
131 label_context_stack_se or label_context_stack_vm.
132 (struct c_switch): Remove blocked_stmt_expr and blocked_vm
133 fields. Add bindings field.
134 (c_start_case): Don't set deleted fields. Set bindings field.
135 (do_case): Rework order of tests. Don't check blocked_stmt_expr
136 or blocked_vm. Call c_check_switch_jump_warnings.
137 (c_finish_case): Don't test blocked_stmt_expr field. Call
138 c_release_switch_bindings.
139 (c_begin_stmt_expr): Don't increment blocked_stmt_expr in
140 c_switch_stack. Don't walk label_context_stack_se labels. Don't
141 set label_context_stack_se. Call c_bindings_start_stmt_expr.
142 (c_finish_stmt_expr): Don't decrement blocked_stmt_expr in
143 c_switch_stack. Don't walk label_context_stack_se labels. Don't
144 set label_context_stack_se. Call c_bindings_end_stmt_expr.
145 (c_begin_vm_scope, c_end_vm_scope): Don't define.
146 * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR): Don't define.
147 (C_DECL_UNDEFINABLE_STMT_EXPR): Don't define.
148 (C_DECL_UNJUMPABLE_VM): Don't define.
149 (C_DECL_UNDEFINABLE_VM): Don't define.
150 (struct c_label_list): Don't define.
151 (struct c_label_context_se): Don't define.
152 (struct c_label_context_vm): Don't define.
153 (struct c_spot_bindings): Declare.
154 (c_bindings_start_stmt_expr): Declare.
155 (c_bindings_end_stmt_expr): Declare.
156 (lookup_label_for_goto): Declare.
157 (c_get_switch_bindings, c_release_switch_bindings): Declare.
158 (c_check_switch_jump_warnings): Declare.
159 (label_context_stack_se, label_context_stack_vm): Don't declare.
160 (c_finish_goto_label): Update declaration.
161 (c_begin_vm_scope, c_end_vm_scope): Don't declare.
162 * doc/invoke.texi (Option Summary): Mention -Wjump-misses-init.
163 (Warning Options): Document -Wjump-misses-init.
164
98a129b9
JJ
1652009-06-15 Jakub Jelinek <jakub@redhat.com>
166
167 * tree-object-size.c (addr_object_size): Fix a pasto in the last
168 change.
169
19751f1f
RAE
1702009-06-15 Rafael Avila de Espindola <espindola@google.com>
171
172 * cgraph.c (cgraph_make_node_local): Use DECL_COMDAT_GROUP.
173
d40eb158
AH
1742009-06-15 Aldy Hernandez <aldyh@redhat.com>
175
176 * except.c (init_eh): Use BUILTINS_LOCATION when calling build_decl.
177
1782009-06-15 Aldy Hernandez <aldyh@redhat.com>
179
180 * tree-eh.c (lower_try_finally_switch): Initialize tf_loc.
181
fc26fae3
RAE
1822009-06-15 Rafael Avila de Espindola <espindola@google.com>
183
184 * cgraphunit.c (cgraph_function_versioning,save_inline_function_body):
185 Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
186 * cgraph.c (cgraph_create_virtual_clone): Use DECL_COMDAT_GROUP.
187 * config/i386/i386.c (ix86_file_end): Compute DECL_COMDAT_GROUP.
188 * dwarf2asm.c(dw2_force_const_mem): Update call to make_decl_one_only.
189 * langhooks-def.h (lhd_comdat_group, LANG_HOOKS_COMDAT_GROUP): Remove.
190 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_COMDAT_GROUP.
191 * langhooks.c (lhd_comdat_group): Remove.
192 * langhooks.h (lang_hooks_for_decls): Remove comdat_group.
193 * tree.h (DECL_COMDAT_GROUP): New.
194 (DECL_ONE_ONLY): Use DECL_COMDAT_GROUP.
195 (tree_decl_with_vis): Add comdat_group. Remove one_only.
196 (make_decl_one_only): Change signature.
197 * varasm.c (get_emutls_init_templ_addr, emutls_decl): Update call to
198 make_decl_one_only.
199 (make_decl_one_only): Change signature.
200 (default_elf_asm_named_section): Use DECL_COMDAT_GROUP.
201
0eb92735
RG
2022009-06-15 Richard Guenther <rguenther@suse.de>
203
204 PR middle-end/40439
205 * tree.c (widest_int_cst_value): Fix bootstrap on 32bit HWI hosts.
206
0ab352d5
AK
2072009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
208
209 * tree-ssa-math-opts.c: Remove extra divide.
210
677fbff4
AK
2112009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
212
213 * config/s390/s390.md ("bswap<mode>2"): Only available on z900.
214
03bd2f1a
AK
2152009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
216
217 * passes.c: Add bswap pass.
218 * tree-pass.h: Add pass_optimize_bswap declaration.
219 * tree-ssa-math-opts.c: Include diagnostics.h for print_gimple_stmt.
220 Include rtl.h, expr.h and optabs.h for optab_handler check.
221 (struct symbolic_number, pass_optimize_bswap): New definition.
222 (do_shift_rotate, verify_symbolic_number_p): New functions.
223 (find_bswap_1, find_bswap, execute_optimize_bswap): New functions.
224 (gate_optimize_bswap): New function.
225 * tree.c (widest_int_cst_value): New function.
226 * tree.h (widest_int_cst_value): Prototype added.
227
fb4c4640
SB
2282009-06-14 Steven Bosscher <steven@gcc.gnu.org>
229
230 * cfgcleanup.c (old_insns_match_p): Remove code to substitute
231 REG_EQUAL/REG_EQUIV notes.
232
1d24fdd9
RG
2332009-06-14 Richard Guenther <rguenther@suse.de>
234
235 PR middle-end/40389
236 * gimple.c (walk_stmt_load_store_addr_ops): The LHS of a call
237 has its address taken if NRV was applied and it is addressable.
238 * tree-ssa-structalias.c (get_constraint_for_address_of): New
239 function split out from ...
240 (get_constraint_for_1): ... here.
241 (handle_rhs_call): Use it to mark the return slot escaped if
242 it is addressable and NRV was applied.
243
4b29c5e5
AH
2442009-06-13 Aldy Hernandez <aldyh@redhat.com>
245
246 * config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin):
247 Change first argument type to location_t.
248 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Same.
249 Do not set input_location.
250 Use loc instead of input_location throughout.
251
e1e6dc73
RG
2522009-06-13 Richard Guenther <rguenther@suse.de>
253
1d24fdd9 254 PR tree-optimization/40421
e1e6dc73
RG
255 * tree-predcom.c (should_unroll_loop_p): Remove.
256 (tree_predictive_commoning_loop): Use can_unroll_loop_p.
257
8012b923
MM
2582009-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
259
260 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
261 Add location argument.
262
4c4bde29
AH
2632009-06-13 Aldy Hernandez <aldyh@redhat.com>
264
265 * config/alpha/alpha.c (alpha_build_builtin_va_list): Pass location to
266 build_decl.
267 * config/s390/s390.c (s390_build_builtin_va_list): Same.
268 (s390_gimplify_va_arg): Pass location to create_artificial_label.
269 * config/spu/spu-protos.h: Add location to
270 spu_resolve_overloaded_builtin.
271 * config/spu/spu.c (spu_build_builtin_va_list): Pass location to
272 spu_build_builtin_va_list.
273 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Add location
274 argument. Pass location to build_function_call_vec.
275 * config/sh/sh.c (sh_build_builtin_va_list): Pass location to
276 build_decl.
277 (emit_fpu_switch): Same.
278 (sh_gimplify_va_arg_expr): Pass location to create_artificial_label.
279 * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Pass location
280 to build_decl and create_artificial_label.
281 (xtensa_gimplify_va_arg_expr): Same.
282 * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list): Same.
283 (xstormy16_gimplify_va_arg_expr): Same.
284 * config/iq2000/iq2000.c (iq2000_expand_prologue): Same.
285 * config/arm/arm.c (arm_build_builtin_va_list): Same.
286 * config/mips/mips.c (mips_build_builtin_va_list): Same.
287 (mips16_build_function_stub): Same.
288 (mips16_build_call_stub): Same.
289
81beb031
RE
2902009-06-13 Richard Earnshaw <rearnsha@arm.com>
291
292 PR target/40327
293 * arm/constraints.md (Pa, Pb): New constraints.
294 * arm/arm.md (thumb1_addsi3): Support more complex additions. Add a
295 split pattern to deal with them.
296
98f6c600
JS
2972009-06-13 Joerg Sonnenberger <joerg@britannica.bec.de>
298
299 * doc/invoke.texi: Add missing option -Wp,OPTION in list,
300 fix index entry for -Xpreprocessor.
301
71856685
AH
3022009-06-12 Aldy Hernandez <aldyh@redhat.com>
303
304 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
305 Add location argument to build_decl call.
306 * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Same.
307 (rs6000_init_builtins): Same.
308 (spe_init_builtins): Same.
309 (rs6000_gimplify_va_arg): Add location argument to
310 create_artificial_label call.
311
756b65f5
SB
3122009-06-12 Steven Bosscher <steven@gcc.gnu.org>
313
314 * timevar.def (TV_COMBINE_STACK_ADJUST): New timevar.
315 * combine-stack-adj.c (pass_stack_adjustments): Use it.
316 * Makefile.in: Fix GGC dependency for gcse.o.
317
c2255bc4
AH
3182009-06-12 Aldy Hernandez <aldyh@redhat.com>
319
320 * tree-pretty-print.c (dump_generic_node): Dump column numbers.
321 * gimple-pretty-print.c (dump_gimple_stmt): Same.
322 * gimplify.c (gimplify_modify_expr): Set location for GIMPLE_ASSIGNs
323 created.
324 * c-parser.c (c_parser_binary_expression): Use current column while
325 building binary operations.
326 * common.opt (fshow-column): Enable by default.
327 * tree-vrp.c (check_array_ref): Use warning_at.
328 (check_array_bounds): Use location from call back if expr has no
329 location.
330 * tree.h: Add location argument to maybe_fold_*.
331 * tree-ssa-ccp.c (ccp_fold): Pass location to maybe_fold_*.
332 (maybe_fold_offset_to_array_ref): Add location argument and use it.
333 (maybe_fold_offset_to_component_ref): Same.
334 (maybe_fold_offset_to_reference): Same.
335 (maybe_fold_offset_to_address): Same.
336 (maybe_fold_stmt_indirect): Same.
337 (maybe_fold_stmt_addition): Same.
338 (fold_stmt_r): Pass location to maybe_fold_*.
339 (fold_gimple_assign): Same.
340 * c-tree.h: Add location argument to finish_decl,
341 default_function_array_conversion, store_init_value.
342 * c-decl.c (define_label): Use error_at.
343 (c_make_fname_decl): Pass location to finish_decl.
344 (finish_decl): New location argument.
345 (build_compound_literal): Pass location to store_init_value.
346 (grokdeclarator): Pass location to finish_decl.
347 (grokfield): Same.
348 * c-typeck.c (array_to_pointer_conversion): New location argument.
349 (function_to_pointer_conversion): Same.
350 (default_function_array_conversion): Same.
351 (parser_build_unary_op): Pass location to overflow_warning.
352 (parser_build_binary_op): Same. Use warning_at.
353 (build_unary_op): Pass location to array_to_pointer_conversion.
354 (build_c_cast): Pass location to digest_init.
355 (build_modify_expr): New location argument.
356 (convert_for_assignment): Same.
357 (store_init_value): Same.
358 (digest_init): Same.
359 (output_init_element): Pass location to digest_init and
360 array_to_pointer_conversion.
361 (c_finish_return): Pass location to convert_for_assignment.
362 * gimplify.c (gimplify_conversion): Pass location to
363 maybe_fold_offset_to_address.
364 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Pass location
365 to maybe_fold_stmt_addition.
366 * c-omp.c (c_finish_omp_atomic): Pass new location to
367 build_modify_expr.
368 (c_finish_omp_for): Same.
369 * c-common.c (overflow_warning): New argument.
370 * c-common.h: New argument to build_modify_expr, overflow_warning.
371 * c-parser.c (c_parser_declaration_or_fndef): Pass location to
372 finish_decl.
373 (c_parser_initializer): Pass location to
374 default_function_array_conversion.
375 (c_parser_initelt): Same.
376 (c_parser_initval): Same.
377 (c_parser_asm_operands): Same.
378 (c_parser_expr_no_commas): Same. Pass location to build_modify_expr.
379 (c_parser_conditional_expression): Same.
380 (c_parser_binary_expression): Add location info to stack. Use it.
381 (c_parser_unary_expression): Pass location to
382 default_function_array_conversion, parser_build_unary_op,
383 build_indirect_ref, c_parser_postfix_expression_after_primary.
384 (c_parser_postfix_expression_after_primary): New location argument.
385 Use it.
386 (c_parser_expression_conv): Pass location to
387 default_function_array_conversion.
388 (c_parser_expr_list): Same.
389 (c_parser_omp_atomic): Same.
390 (c_parser_omp_for_loop): Same.
391 * c-tree.h: (struct c_declarator): Add comment to id_loc.
392 (build_array_declarator): New argument.
393 * c-decl.c (build_array_declarator): Add location argument.
394 (grokdeclarator): Set id_loc for cdk_array.
395 * c-parser.c (c_parser_direct_declarator_inner): Pass location to
396 build_array_declarator.
397 * tree.c (build_omp_clause): Add location argument.
398 * tree.h (OMP_CLAUSE_HAS_LOCATION): New macro.
399 (OMP_CLAUSE_LOCATION): New macro.
400 (struct tree_omp_clause): Add location field.
401 (build_omp_clause): Add argument.
402 * testsuite/gcc.dg/gomp/for-1.c: Fix column.
403 * cp/pt.c (tsubst_omp_for_iterator): Pass location to
404 build_omp_clause.
405 * cp/parser.c (cp_parser_omp_var_list_no_open): Same.
406 (cp_parser_omp_clause_collapse): Same.
407 (cp_parser_omp_clause_default): Same.
408 (cp_parser_omp_clause_if): Same.
409 (cp_parser_omp_clause_nowait): Same.
410 (cp_parser_omp_clause_num_threads): Same.
411 (cp_parser_omp_clause_ordered): Same.
412 (cp_parser_omp_clause_schedule): Same.
413 (cp_parser_omp_clause_untied): Same.
414 (cp_parser_omp_for_loop): Same.
415 (cp_parser_omp_parallel): Pass location to c_split_parallel_clauses.
416 * c-tree.h (c_start_case): Add location argument.
417 (c_process_expr_stmt): Same.
418 (c_finish_goto_*): Same.
419 * tree-parloops.c (initialize_reductions): Pass location to
420 build_omp_clause.
421 (create_parallel_loop): Same.
422 * fortran/trans-openmp.c (gfc_trans_omp_variable_list): Same.
423 (gfc_trans_omp_reduction_list): Same.
424 (gfc_trans_omp_clauses): Same.
425 (gfc_trans_omp_do): Same.
426 * c-typeck.c (c_finish_goto_label): Same.
427 (c_finish_goto_ptr): New location argument.
428 (c_start_case): Same.
429 (emit_side_effect_warnings): Same.
430 (c_process_expr_stmt): Same.
431 (c_finish_stmt_expr): Same.
432 (c_finish_omp_clauses): Use error_at instead of error.
433 * gimplify.c (gimplify_adjust_omp_clauses_1): Pass location to
434 build_omp_clause.
435 * c-omp.c (c_split_parallel_clauses): New location argument.
436 * tree-nested.c (convert_nonlocal_reference_stmt): Pass location
437 to build_omp_clause.
438 (convert_local_reference_stmt): Same.
439 (convert_gimple_call): Same.
440 * c-common.h (c_split_parallel_clauses): New argument.
441 * c-parser.c (c_parser_statement_after_labels): Pass location to
442 c_finish_goto_label.
443 (c_parser_switch_statement): Pass location to c_start_case.
444 (c_parser_for_statement): Pass location to c_finish_expr_stmt,
445 and c_process_expr_stmt.
446 (c_parser_omp_variable_list): Add location argument.
447 (c_parser_omp_clause_collapse): Pass location to
448 build_omp_clause.
449 (c_parser_omp_clause_default): Same.
450 (c_parser_omp_clause_if): Same.
451 (c_parser_omp_clause_num_threads): Same.
452 (-c_parser_omp_clause_ordered): Same.
453 (c_parser_omp_clause_reduction): Pass location to
454 c_parser_omp_variable_list.
455 (c_parser_omp_clause_schedule): Pass location to build_omp_clause.
456 (c_parser_omp_clause_untied): Same.
457 (c_parser_omp_for_loop): Pass location to c_process_expr_stmt.
458 (c_parser_omp_parallel): Pass location to
459 c_split_parallel_clauses.
460
461 * c-tree.h (check_for_loop_decls, undeclared_variable,
462 build_component_ref, build_array_ref, build_external_ref,
463 c_expr_sizeof_expr, c_expr_sizeof_type, parser_build_unary_op,
464 build_conditional_expr, build_compound_expr, c_cast_expr,
465 build_c_cast, build_asm_expr, c_end_compound_stmt, c_finish_stmt_expr,
466 c_finish_return, c_finish_omp_parallel, c_finish_omp_task): New
467 argument.
468 * c-semantics.c (build_stmt): Same.
469 (build_case_label): Same.
470 * c-decl.c (c_finish_incomplete_decl): Pass location on down.
471 (undeclared_variable): New argument.
472 (make_label): Same.
473 (lookup_label): Pass location on down.
474 (define_label): Same.
475 (finish_decl): Same.
476 (build_compound_literal): Same.
477 (finish_struct): Same.
478 (finish_function): Do not set location here.
479 (check_for_loop_decls): New argument.
480 * tree.c (save_expr): Set location.
481 (build_empty_stmt): New argument.
482 * tree.h (build_empty_stmt): New argument to build_empty_stmt.
483 (CAN_HAVE_LOCATION_P): Make sure we have a non empty node.
484 * builtins.c (gimplify_va_arg_expr): Use locations.
485 (expand_builtin_sync_operation): Same.
486 * c-typeck.c (build_component_ref): New argument.
487 (build_array_ref): Same.
488 (build_external_ref): Same.
489 (c_expr_sizeof_expr): Same.
490 (c_expr_sizeof_type): Same.
491 (parser_build_unary_op): Same.
492 (build_conditional_expr): Same.
493 (build_compound_expr): Pass location on down.
494 (build_compound_expr): New argument.
495 (build_c_cast): Same.
496 (c_cast_expr): Same.
497 (build_asm_expr): Same.
498 (c_finish_return): Same.
499 (c_process_expr_stmt): Pass location on down.
500 (c_finish_stmt_expr): New argument.
501 (push_clenaup): Same.
502 (c_finish_omp_parallel): Same.
503 (c_finish_omp_task): Same.
504 * gimplify.c (gimplify_call_expr): Pass location on down.
505 * c-omp.c (c_finish_omp_master): New argument.
506 (c_finish_omp_critical): Same.
507 (c_finish_omp_ordered): Same.
508 (c_finish_omp_barrier): Same.
509 (-c_finish_omp_taskwait): Same.
510 (c_finish_omp_atomic): Same.
511 (c_finish_omp_flush): Same.
512 * tree-inline.c (copy_tree_body_r): Pass location on down.
513 (inline_forbidden_p): Remove use of input_location.
514 * c-gimplify.c (c_build_bind_expr): New argument.
515 * c-common.c (c_common_truthvalue_conversion): Pass location on down.
516 (c_sizeof_or_alignof_type): New argument.
517 (c_alignof_expr): Same.
518 (build_va_arg): Same.
519 (c_add_case_label): Same.
520 * c-common.h (c_sizeof_or_alignof_type, c_alignof_expr,
521 c_sizeof, c_alignof, build_va_arg, build_stmt, build_case_label,
522 c_build_bind_expr, objc_build_selector_expr, objc_build_throw_stmt,
523 c_finish_omp_master, c_finish_omp_critical, c_finish_omp_ordered,
524 c_finish_omp_barrier, c_finish_omp_atomic, c_finish_omp_flush,
525 c_finish_omp_taskwait, c_finish_omp_for, c_split_parallel_clauses):
526 New argument.
527 * stub-objc.c (objc_build_selector_expr): Same.
528 (objc_build_throw_stmt): Same.
529 * c-parser.c (c_parser_declaration_or_fndef): Pass location on down.
530 (c_parser_initelt): Same.
531 (c_parser_compound_statement): Same.
532 (c_parser_compound_statement_nostart): Same.
533 (c_parser_label): Same.
534 (c_parser_statement_after_labels): Same.
535 (c_parser_if_body): Same.
536 (c_parser_else_body): Same.
537 (c_parser_if_statement): Same.
538 (c_parser_switch_statement): Same.
539 (c_parser_while_statement): Same.
540 (c_parser_do_statement): Same.
541 (c_parser_for_statement): Same.
542 (c_parser_asm_statement): Same.
543 (c_parser_conditional_expression): Same.
544 (c_parser_binary_expression): Same.
545 (c_parser_cast_expression): Same.
546 (c_parser_unary_expression): Same.
547 (c_parser_sizeof_expression): Same.
548 (c_parser_alignof_expression): Same.
549 (c_parser_postfix_expression): Same.
550 (c_parser_expression): Same.
551 (c_parser_objc_receiver): Same.
552 (c_parser_omp_variable_list): Same.
553 (c_parser_omp_structured_block): Same.
554 (c_parser_omp_atomic): New argument.
555 (c_parser_omp_barrier): Same.
556 (c_parser_omp_critical): Same.
557 (c_parser_omp_flush): Pass location on down.
558 (c_parser_omp_for_loop): New argument.
559 (c_parser_omp_for): Same.
560 (c_parser_omp_master): Same.
561 (c_parser_omp_ordered): Same.
562 (c_parser_omp_sections_scope): Same.
563 (c_parser_omp_sections): Same.
564 (c_parser_omp_parallel): Same.
565 (c_parser_omp_single): Same.
566 (c_parser_omp_task): Same.
567 (c_parser_omp_taskwait): Pass location on down.
568 (c_parser_omp_construct): Same.
569 (c_parser_omp_threadprivate): Same.
570 * dwarf2asm.c, targhooks.c, optabs.c, tree.c, tree.h, target.h,
571 builtins.c, omp-low.c, cgraphunit.c, tree-call-cdce.c,
572 tree-ssa-alias.c, gimple-low.c, c-tree.h, expr.c, tree-parloops.c,
573 c-decl.c, tree-eh.c, langhooks.c, function.c, stor-layout.c,
574 c-typeck.c, gimplify.c, c-pragma.c, expmed.c, except.c, coverage.c,
575 emit-rtl.c, cfgexpand.c, tree-mudflap.c, varasm.c, tree-nested.c,
576 rtl.h, tree-inline.c, tree-profile.c, c-common.c, c-common.h,
577 tree-switch-conversion.c, tree-cfg.c, ipa-struct-reorg.c, c-parser.c,
578 config/i386/i386.c, stmt.c:
579 Add location argument to the following function definitions and/or
580 function calls: build_decl, objcp_start_struct, objcp_finish_struct,
581 start_struct, finish_struct, PUSH_FIELD, create_artificial_label,
582 cp_make_fname_decl, pushtag, implicitly_declare, c_make_fname_decl,
583 build_compound_literal, parser_xref_tag, resolve_overloaded_builtin,
584 do_case, c_finish_bc_stmt, build_compound_literal,
585 build_function_call.
586 * c-decl.c (build_compound_literal): Add location argument.
587 Make all diagnostic calls use location.
588 (start_struct): Same.
589 (finish_struct): Same.
590 (start_enum): Same.
591 (build_enumerator): Same.
592 (start_function): Same.
593 (grokdeclarator): Make all diagnostic calls use location.
594 (store_parm_decls_oldstyle): Same.
595 * c-typeck.c (build_function_call): Add location argument.
596 Make all diagnostic calls use location.
597 (do_case): Same.
598 (c_finish_bc_stmt): Same.
599 * tree-nested.c (get_trampoline_type): Add argument.
600 Pass location to build_decl.
601 (lookup_tramp_for_decl): Pass location to get_trampoline_type.
602 * rtl.h (RTL_LOCATION): New.
603 * c-common.c (c_add_case_label): Add location argument.
604 Make all diagnostic calls use location.
605 * c-common.h: Add location argument to make_fname_decl, do_case,
606 c_add_case_label, build_function_call, resolve_overloaded_builtin.
607 * c-parser.c (c_parser_enum_specifier): Rename ident_loc to enum_loc.
608 Set it appropriately for every case. Pass enum_loc to start_enum
609 call. Pass value_loc first to build_enumerator. Pass enum_loc to
610 parser_xref_tag.
611 (c_parser_struct_or_union_specifier): Save location. Use it for
612 start_struct, finish_struct, and parser_xref_tag.
613
3d8b2a98
ILT
6142009-06-12 Ian Lance Taylor <iant@google.com>
615
616 * fold-const.c (fold_unary): Rename local variable and to
617 and_expr.
618
619 * c-opts.c (c_common_handle_option): For -Wc++-compat set
620 cpp_opts->warn_cxx_operator_names.
621
737142ce
AP
6222009-06-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
623
624 PR tree-opt/38865
625 * tree-ssa-sccvn.c (visit_reference_op_load): If vn_reference_lookup
626 is returns NULL and OP is a VCE, look through the VCE.
627
d3a0d55d
ILT
6282009-06-12 Ian Lance Taylor <iant@google.com>
629
630 PR bootstrap/40430
631 * collect2.c (main): Use CONST_CAST2 in code inside #if
632 LINK_ELIMINATE_DUPLICATE_LDIRECTORIES.
633
f85882d8
JY
6342009-06-12 Joey Ye <joey.ye@intel.com>
635
636 PR middle-end/39146
637 * cfgexpand.c (get_decl_align_unit): Update
638 max_used_stack_slot_alignment with align instead of
639 stack_alignment_needed.
640
641 * function.c (assign_stack_local_1): Update
642 max_used_stack_slot_alignment with alignment_in_bits instead
643 of stack_alignment_needed.
644 (locate_and_pad_parm): Don't update max_used_stack_slot_alignment
645 here.
646
fc9f468b
JJ
6472009-06-12 Jakub Jelinek <jakub@redhat.com>
648
649 * dwarf2out.c (last_var_location_insn): New variable.
650 (dwarf2out_end_epilogue): Clear last_var_location_insn.
651 (dwarf2out_var_location): Don't record anything after last real
652 insn. Only change labels if there were any real instructions
653 in between last note and this one, or if changed sections.
654
7c1db202
RH
6552009-06-11 Richard Henderson <rth@redhat.com>
656
f85882d8 657 * alpha.c (alpha_expand_prologue): Add a REF_CFA_REGISTER
15cb981a
RH
658 note when storing the frame pointer in a register.
659 (FRP): Don't redefine to nothing for epilogue.
660 (alpha_expand_epilogue): Mark register and sp restores.
661 (unicosmk_gen_dsib): Don't mark weird frame pointer adjust.
662
7c1db202
RH
663 * config/alpha/alpha.c (alpha_emit_setcc): Fix test for
664 when gen_lowpart is needed.
665
f2ae7631
RH
6662009-06-11 Richard Henderson <rth@redhat.com>
667
42755c21
RH
668 * dwarf2out.c (def_cfa_1): Likewise for DW_CFA_cfa_offset.
669
f2ae7631
RH
670 * dwarf2out.c (need_data_align_sf_opcode): New.
671 (div_data_align): Move earlier.
672 (def_cfa_1, reg_save): Use it.
673
8ed0ce99
L
6742009-06-11 H.J. Lu <hongjiu.lu@intel.com>
675
676 * config/i386/i386.c (OPTION_MASK_ISA_CRC32_SET): New.
677 (OPTION_MASK_ISA_CRC32_UNSET): Likewise.
678 (ix86_handle_option): Handle OPT_mcrc32.
679 (ix86_target_string): Add -mcrc32.
680 (bdesc_args): Enable crc32 builtins with OPTION_MASK_ISA_CRC32.
681
682 * config/i386/i386.h (TARGET_CRC32): New.
683
684 * config/i386/i386.md (sse4_2_crc32<mode>): Also check
685 TARGET_CRC32.
686 (sse4_2_crc32di): Likewise.
687
688 * config/i386/i386.opt (mcrc32: New.
689
690 * doc/invoke.texi: Document -mcrc32.
691
9fd68a1f
RH
6922009-06-11 Richard Henderson <rth@redhat.com>
693
8ed0ce99 694 * common.opt (gdwarf-): Accept a version number.
9fd68a1f
RH
695 * doc/invoke.texi (gdwarf-): Update docs.
696 * opth-gen.awk: Special case -gdwarf+ to OPT_gdwarfplus.
697 * opts.c (common_handle_option) [OPT_gdwarf_]: Verify dwarf
698 version level, and record it.
699
700 * dwarf2.h (DW_CIE_VERSION): Remove.
701 * dwarf2out.c (DWARF_VERSION): Remove.
702 (add_fde_cfi): Skip DW_CFA_set_loc addition for dwarf3.
703 (output_call_frame_info): Use CIE version 3 for dwarf3,
704 or if the return register column is out of range for version 1.
705 (dwarf_stack_op_name): Add all dwarf3 values.
706 (DEBUG_PUBTYPES_SECTION): New.
707 (size_of_die) [dw_val_class_die_ref]: Handle DW_FORM_ref_addr
708 encoding change for dwarf3.
709 (output_die) [dw_val_class_die_ref]: Likewise.
710 (output_compilation_unit_header): Emit correct version for dwarf3.
711 (output_line_info): Likewise.
712 (output_pubnames): Update for DWARF_VERSION removal.
713 (output_aranges): Likewise.
714 (gen_subprogram_die): Emit DW_OP_call_frame_cfa if emitting dwarf3.
715 (dwarf2out_init): Don't ifdef DEBUG_PUBTYPES_SECTION.
716 (dwarf2out_finish): Likewise.
717
4de8ce3b
DD
7182009-06-11 David Daney <ddaney@caviumnetworks.com>
719
720 * system.h (gcc_assert, gcc_unreachable): Revert accidental commit
721 in r148403.
722
468059bc
DD
7232009-06-11 David Daney <ddaney@caviumnetworks.com>
724
725 PR c/39252
726 * doc/extend.texi ( __builtin_unreachable): Document new builtin.
727 * builtins.c (expand_builtin_unreachable): New function.
728 (expand_builtin): Handle BUILT_IN_UNREACHABLE case.
729 * builtins.def (BUILT_IN_UNREACHABLE): Add new builtin.
730 * cfgcleanup.c (try_optimize_cfg): Delete empty blocks with no
731 successors.
732 * cfgrtl.c (rtl_verify_flow_info): Handle empty blocks when
733 searching for missing barriers.
734
b5a6e96f
FXC
7352009-06-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
736
737 * config/darwin.h (LINK_COMMAND_SPEC): Adjust spec to link libcov
738 when -fprofile-generate* was passed.
739 * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
740
6be6462e
AG
7412009-06-11 Anthony Green <green@moxielogic.com>
742
743 * config/moxie/moxie.md: Define length attribute for all
744 instructions.
745 (rCC): Define.
746 (*b<cond:code>): Support limited branch ranges for new PC-relative
747 branch instructions.
748 * config/moxie/moxie.h (HAS_LONG_UNCOND_BRANCH): Define.
749
caaabe0a
JJ
7502009-06-11 Jakub Jelinek <jakub@redhat.com>
751
e5219642
JJ
752 * config/i386/i386.c (min_insn_size): Use get_attr_length
753 for normal insns other than TYPE_MULTI, TYPE_OTHER and TYPE_FCMP.
754 For __asm return 0.
755
caaabe0a
JJ
756 * config/i386/i386.c (ix86_pad_returns): Use emit_jump_insn_before
757 instead of emit_insn_before.
758
a567fa6a
ILT
7592009-06-10 Ian Lance Taylor <iant@google.com>
760
761 PR bootstrap/40408
762 * graphite.c (add_conditions_to_domain): Change SWITCH_EXPR to
763 GIMPLE_SWITCH.
764
6a753d5f
RE
7652009-06-10 Revital Eres <eres@il.ibm.com>
766
767 * passes.c (init_optimization_passes): Reschedule
768 predictive-commoning pass before complete unroll pass.
769
a550d677
MJ
7702009-06-10 Martin Jambor <mjambor@suse.cz>
771
772 * cgraph.c (cgraph_node_can_be_local_p): New function.
773 (cgraph_make_node_local): New function.
774 * cgraph.h (cgraph_node_can_be_local_p): Declare.
775 (cgraph_make_node_local): Declare.
776
d8259b07
NF
7772009-06-10 Nathan Froyd <froydnj@codesourcery.com>
778
779 * tree.h (tree_base): Add packed_flag and user_align fields.
780 Decrease size of spare field.
781 (TYPE_USER_ALIGN): Use user_align from tree_base.
782 (DECL_USER_ALIGN): Likewise.
783 (TYPE_PACKED): Use packed_flag from tree_base.
784 (DECL_PACKED): Likewise.
785 (tree_type): Delete packed_flag and user_align fields. Widen
786 precision field. Widen mode field and shuffle fields to align
787 mode on an 8-bit boundary.
788 (tree_decl_common): Delete decl_flag_1 and user_align fields.
789 Renumber decl_flag_* fields. Fix comments. Widen
790 decl_common_unused field.
791 (DECL_HAS_VALUE_EXPR_P): Adjust for renumbering of decl_flag_*
792 fields.
793 (DECL_EXTERNAL): Likewise.
794 (DECL_BIT_FIELD): Likewise.
795 (DECL_NONADDRESSABLE_P): Likewise.
796 (TYPE_DECL_SUPRESS_DEBUG): Likewise.
797 * config/arm/arm-modes.def (XImode): Make it an INT_MODE.
798
c2569604
ILT
7992009-06-10 Ian Lance Taylor <iant@google.com>
800
801 * vec.h (DEF_VEC_ALLOC_I): Use DEF_VEC_NONALLOC_FUNCS_I.
802 (DEF_VEC_ALLOC_P): Use DEF_VEC_NONALLOC_FUNCS_P.
803 (DEF_VEC_ALLOC_O): Use DEF_VEC_NONALLOC_FUNCS_O.
804 (DEF_VEC_ALLOC_FUNC_P): Only define VEC_OP (T,A,alloc).
805 (DEF_VEC_NONALLOC_FUNCS_P): New macro, broken out of old
806 DEF_VEC_ALLOC_FUNC_P.
807 (DEF_VEC_ALLOC_FUNC_O): Only define VEC_OP (T,A,alloc).
808 (DEF_VEC_NONALLOC_FUNCS_O): New macro, broken out of old
809 DEF_VEC_ALLOC_FUNC_O.
810 (DEF_VEC_ALLOC_FUNC_I): Only define VEC_OP (T,A,alloc).
811 (DEF_VEC_NONALLOC_FUNCS_I): New macro, broken out of old
812 DEF_VEC_ALLOC_FUNC_I.
813 (vec_stack_p_reserve, vec_stack_p_reserve_exact): Declare.
814 (vec_stack_p_reserve_exact_1): Declare.
815 (vec_stack_o_reserve, vec_stack_o_reserve_exact): Declare.
816 (vec_stack_free): Declare.
817 (VEC_stack_alloc): Define.
818 (DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_FUNC_P_STACK): Define.
819 (DEF_VEC_ALLOC_O_STACK, DEF_VEC_ALLOC_FUNC_O_STACK): Define.
820 (DEF_VEC_ALLOC_I_STACK, DEF_VEC_ALLOC_FUNC_I_STACK): Define.
821 * vec.c (void_p): New type. Call DEF_VEC_P and DEF_VEC_ALLOC_P
822 for void_p.
823 (stack_vecs): New static variable.
824 (vec_stack_p_reserve_exact_1): New function.
825 (vec_stack_o_reserve_1): New static function.
826 (vec_stack_p_reserve, vec_stack_p_reserve_exact): New functions.
827 (vec_stack_o_reserve, vec_stack_o_reserve_exact): New functions.
828 (vec_stack_free): New function.
829 * df-scan.c (df_ref): Use DEF_VEC_P and DEF_VEC_ALLOC_P_STACK.
830 (VEC_df_ref_stack_alloc): Define.
831 (df_mw_hardreg_ptr): New type. Use DEF_VEC_P and
832 DEF_VEC_ALLOC_P_STACK.
833 (VEC_df_mw_hardreg_ptr_stack_alloc): Define.
834 (struct df_collection_rec): Change _vec fields to VEC. Remove
835 _use fields.
836 (df_free_collection_rec): Adjust for new fields.
837 (df_insn_rescan): Use new df_collection_rec fields.
838 (df_notes_rescan, df_canonize_collection_rec): Likewise.
839 (df_ref_create_structure, df_ref_record): Likewise.
840 (df_get_conditional_uses, df_get_call_refs): Likewise.
841 (df_insn_refs_collect, df_bb_refs_collect): Likewise.
842 (df_bb_refs_record, df_record_entry_block_defs): Likewise.
843 (df_record_exit_block_uses, df_bb_verify): Likewise.
844 (df_swap_refs): Change ref_vec parameter to VEC. Change all
845 callers.
846 (df_sort_and_compress_refs): Change ref_vec parameter to VEC.
847 Remove count parameter. Change return type to void. Change all
848 callers.
849 (df_sort_and_compress_mws): Change mw_vec parameter to VEC.
850 Remove count parameter. Change return type to void. Change all
851 callers.
852 (df_install_refs): Change old_vec parameter to VEC. Remove count
853 parameter. Change all callers.
854 (df_install_mws): Change old_vec parameter to VEC. Remove count
855 parameter. Change all callers.
856 (df_refs_verify): Change new_rec parameter to VEC. Change call
857 callers.
858 (df_mws_verify): Likewise.
859
e7aae3e8
AO
8602009-06-10 Alexandre Oliva <aoliva@redhat.com>
861
862 * gcc.c (compare_files): Cast munmap argumento to caddr_t.
863
412ac8d5
L
8642009-06-10 H.J. Lu <hongjiu.lu@intel.com>
865
866 * doc/extend.texi: Add description for __builtin_ia32_crc32di.
867
cceb575c
AG
8682009-06-10 Anthony Green <green@moxielogic.com>
869
870 * config/moxie/crti.asm: New file.
871 * config/moxie/crtn.asm: New file.
872 * config/moxie/moxie.c: New file.
873 * config/moxie/moxie.h: New file.
874 * config/moxie/sfp-machine.h: New file.
875 * config/moxie/moxie-protos.h: New file.
876 * config/moxie/t-moxie: Created.
877 * config/moxie/t-moxie-softfp: Created.
878 * config/moxie/moxie.md: Created.
879 * config/moxie/constraints.md: Created.
880 * config.gcc: Add moxie support.
881 * doc/md.texi (Machine Constraints): Add moxie constraints.
882 * doc/contrib.texi (Contributors): Mention moxie port.
883 * doc/install.texi (Specific): Mention the moxie port.
884
bf406687
ILT
8852009-06-09 Ian Lance Taylor <iant@google.com>
886
887 * system.h (HAVE_DESIGNATED_INITIALIZERS): Don't define if
888 compiling with C++.
889 * optabs.c (optab_table): Only use designated initializers if
890 HAVE_DESIGNATED_INITIALIZERS is defined.
891 (convert_optab_table): Likewise.
892 (init_optabs): Always call init_insn_codes if
893 HAVE_DESIGNATED_INITIALIZERS is not defined.
894
744aa42f
ILT
8952009-06-09 Ian Lance Taylor <iant@google.com>
896
897 * targhooks.c (default_builtin_vectorized_function): Change fn
898 parameter to unsigned int.
899 (default_builtin_vectorized_conversion): Change code parameter to
900 unsigned int.
901 (default_builtin_reciprocal): Change fn parameter to unsigned int.
902 * targhooks.h: Update declarations.
903 * config/rs6000/rs6000.c (rs6000_builtin_conversion): Change code
904 parameter to unsigned int.
905
906 * c-typeck.c (comptypes_check_enum_int): New static function.
907 (comptypes_internal): Add enum_and_int_p parameter. Change all
908 callers.
909 (comp_target_types): Add location parameter. Change all callers.
910 (tagged_types_tu_compatible_p): Add enum_and_int_p parameter.
911 Change all callers.
912 (function_types_compatible_p, type_lists_compatible_p): Likewise.
913 (build_conditional_expr): Add colon_loc parameter. Change all
914 callers.
915 (convert_for_assignment): Add location parameter. Change all
916 callers.
917 * c-parser.c (c_parser_conditional_expression): Pass location of
918 colon to build_conditional_expr.
919 * c-tree.h (build_conditional_expr): Update declaration.
920
bcbe3b25
SP
9212009-06-09 Sebastian Pop <sebastian.pop@amd.com>
922
923 * graphite.c: Revert previous patch.
924
dc2a6925
SP
9252009-06-09 Sebastian Pop <sebastian.pop@amd.com>
926
927 PR bootstrap/40103
928 * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
929
d81f5387
GS
9302009-06-09 Ghassan Shobaki <ghassan.shobaki@amd.com>
931
8ed0ce99
L
932 * tree-ssa-loop-prefetch.c
933 (loop_prefetch_arrays): Fixed a portability problem in printf format
934 string.
d81f5387 935
8056eb4f
MJ
9362009-06-09 Martin Jambor <mjambor@suse.cz>
937
938 PR tree-optimization/40351
939 * tree-sra.c (propagate_subacesses_accross_link): Check that a refrence
940 to a potential artifical subaccess can be constructed.
941
bd9a3465
KK
9422009-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
943
944 * config/sh/sh-protos.h (sh_optimization_options): Declare.
945 (sh_override_options): Likewise.
946 * config/sh/sh.c: Include params.h.
947 (sh_optimization_options): New.
948 (sh_override_options): Likewise.
949 * config/sh/sh.c (OPTIMIZATION_OPTIONS): Use sh_optimization_options.
950 (OVERRIDE_OPTIONS): Use sh_override_options.
951
8845deab
JJ
9522009-06-08 Jakub Jelinek <jakub@redhat.com>
953
954 * dwarf2out.c (emit_cfa_remember): New variable.
955 (add_fde_cfi): If emit_cfa_remember, recurse to add
956 DW_CFA_remember_state first.
957 (dwarf2out_begin_epilogue): Don't add_fde_cfi DW_CFA_remember_state,
958 instead just set emit_cfa_remember.
959
9ea81b0c
JH
9602009-06-08 Jan Hubicka <jh@suse.cz>
961
962 PR debug/40126
963 * dwarf2out.c (dwarf2out_abstract_function): Free decl_loc_table.
964
21ecdec5
JH
9652009-06-08 Jan Hubicka <jh@suse.cz>
966
967 PR middle-end/39834
968 * cgraphunit.c (save_inline_function_body): Do not copy transform hooks
969 for saved inline bodies.
970 * ipa-passes.c (do_per_function): Do not add the hoks multiple times
971 for given function.
972
72e48218
AN
9732009-06-08 Adam Nemet <anemet@caviumnetworks.com>
974
975 * jump.c (returnjump_p): Handle delayed branches. Add missing
976 function comment.
977
6ce2002b
JH
9782009-06-08 Jan Hubicka <jh@suse.cz>
979
980 PR middle-end/40102
981 * cgraph.c (cgraph_create_edge_including_clones): Also asume that the
982 original node might've been modified.
983 * tree-inline.c (copy_bb): Do not assume that all clones are the same.
984
eb9ed98a
JJ
9852009-06-08 Jakub Jelinek <jakub@redhat.com>
986
987 * tree-object-size.c (addr_object_size): Add OSI argument.
988 Handle also INDIRECT_REF with SSA_NAME inside of it as base address.
989 (compute_builtin_object_size, expr_object_size): Adjust callers.
990 (plus_stmt_object_size): Call addr_object_size instead of
991 compute_builtin_object_size.
992
db34470d 9932009-06-08 Ghassan Shobaki <ghassan.shobaki@amd.com>
8ed0ce99 994 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
db34470d
GS
995
996 * tree-ssa-loop-prefetch.c
997 (gather_memory_references): Introduced a counter for the number of
998 memory references.
999 (anything_to_prefetch_p): Introduced a counter for the number of
1000 prefetches.
1001 (is_loop_prefetching_profitable): New function with a cost model
1002 for prefetching.
1003 (loop_prefetch_arrays): Use the new cost model to determine if
1004 prefetching is profitable.
1005 * params.def (MIN_INSN_TO_PREFETCH_RATIO,
1006 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
1007 * params.h (MIN_INSN_TO_PREFETCH_RATIO,
1008 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
1009 * doc/invoke.texi (MIN_INSN_TO_PREFETCH_RATIO,
1010 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
1011
eb7adebc
MM
10122009-06-08 Michael Matz <matz@suse.de>
1013
1014 PR debug/40012
eb7adebc
MM
1015 * cfgexpand.c (set_rtl): Store place also in DECL_RTL, if all
1016 partitions use the same.
1017 (expand_one_var): Deal with DECL_RTL sometimes begin set also
1018 for basevars of SSA_NAMEs.
1019 (expand_used_vars): Reset TREE_USED for basevars of SSA_NAMEs,
1020 to not expand them twice.
1021 (gimple_expand_cfg): Clear DECL_RTL for those decls that have
1022 multiple places.
1023
2153915d
AO
10242009-06-08 Alexandre Oliva <aoliva@redhat.com>
1025
1026 * common.opt (fcompare-debug=, fcompare-debug-second): New.
1027 (fdump-final-insns=, gtoggle): New.
1028 * doc/invoke.texi: Document them.
1029 * final.c (rest_of_clean_state): Dump final insn stream.
1030 * gcc.c (invoke_as): Hook in -fcompare-debug.
1031 (static_spec_functions): Add compare-debug-dump-opt,
1032 compare-debug-self-opt and compare-debug-auxbase-opt.
1033 (compare_debug, compare_debug_second, compare_debug_opt): New.
1034 (switches_debug_check, n_switches_debug_check): New.
1035 (debug_auxbase_opt, debug_check_temp_file): New.
1036 (process_command): Handle -fno-compare-debug, -fcompare-debug and
1037 -fcompare-debug=*.
1038 (do_self_spec): Handle arguments after switches.
1039 (do_spec_1): Add .gk extension to temp file basenames for compare.
1040 (check_live_switch): Take SWITCH_IGNORE into account, and earlier.
1041 (cc1_options): Use it instead of normal auxbase computation for
1042 the second compare-debug compilation.
1043 (compare_files): New.
1044 (main): Set up and implement compare debug mode.
1045 (compare_debug_dump_opt_spec_function): New.
1046 (compare_debug_self_opt_spec_function): New.
1047 (compare_debug_auxbase_opt_spec_function): New.
1048 * toplev.c (process_options): Handle flag_gtoggle,
1049 flag_dump_final_insns.
1050 * coverage.c (coverage_begin_output): Don't overwrite .gcno file
1051 during -fcompare-debug-second compilation.
1052
cdb88468
ILT
10532009-06-07 Ian Lance Taylor <iant@google.com>
1054
1055 * dwarf2.h (enum dwarf_location_atom): Add
1056 INTERNAL_DW_OP_tls_addr.
1057 * dwarf2out.c (INTERNAL_DW_OP_tls_addr): Don't #define.
1058
1059 * c-common.c (c_do_switch_warnings): Don't exit early for -Wswitch
1060 with no default node. Change warning with %H to warning_at.
1061 Don't clear warn_switch around case checking.
1062 * doc/invoke.texi (Warning Options): Clarify distinction between
1063 -Wswitch and -Wswitch-enum.
1064
4fe8e1a2
BRF
10652009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1066
1067 * tree-pass.h (TODO_update_ssa_any): Document internal use only.
1068
69952c1d
BRF
10692009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1070
1071 * gbl-ctors.h: Add header guard.
1072
b2ad0284
BRF
10732009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1074
1075 * tree-flow.h (make_value_handle, set_value_handle, sort_vuses,
1076 sort_vuses_heap, vn_lookup_or_add, vn_lookup_or_add_with_stmt,
1077 vn_lookup_or_add_with_vuses, vn_add, vn_add_with_vuses,
1078 vn_lookup_with_stmt, vn_lookup, vn_lookup_with_vuses): Remove
1079 prototypes for removed functions.
1080 (expressions_equal_p): Move to ...
1081 * tree-ssa-sccvn.h: ... here and ...
1082 * matrix-reorg.c: ... adjust includes.
1083
c3df55f9
BRF
10842009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1085
1086 * ipa-struct-reorg.c (do_reorg_1): Fix whitespace in dump output.
1087
b5a7159f
BRF
10882009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1089
1090 * c-decl.c (finish_decl): Use bool for variable was_incomplete.
1091 (finish_function): Remove erroneous whitespace.
1092
95bca6b0
BRF
10932009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1094
2cd713a0
BRF
1095 * tree-cfg.c (gimple_merge_blocks): Commentary typo fix.
1096 (verify_stmts): Print statement who's gimple_bb is set to a wrong BB
249eb506
BRF
1097
10982009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1099
1100 * errors.c (internal_error): Commentary typo fix.
1101 * gimple-iterator.c (gsi_insert_seq_on_edge): Ditto.
1102 * tree-ssa-pre.c: Ditto.
95bca6b0 1103
2cd713a0
BRF
11042009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1105
1106 * basic-block.h (ENTRY_BLOCK, EXIT_BLOCK): Document that neither of
1107 them is supposed to hold actual statements.
1108
5bca4e80
ILT
11092009-06-06 Ian Lance Taylor <iant@google.com>
1110
1111 * doc/extend.texi (Attribute Syntax): Document that C++ labels on
1112 empty statements can now have attributes.
1113
47ac44d6
SZ
11142009-06-05 Shujing Zhao <pearly.zhao@oracle.com>
1115
1116 * config/mips/mips.c: Use REG_P and CONST_INT_P where applicable.
1117 * config/mips/mips.md: Ditto.
1118
19b905ce
NF
11192009-06-05 Nathan Froyd <froydnj@codesourcery.com>
1120
1121 * config/rs6000/eabi.asm (__eabi_convert): Don't define if
1122 _RELOCATABLE.
1123 (__eabi_uconvert): Likewise.
1124
16702e19
NF
11252009-06-05 Nathan Froyd <froydnj@codesourcery.com>
1126
1127 * config/rs6000/ppc-asm.h: Protect auto-host.h inclusion and
1128 CFI_* definitions with IN_GCC.
1129
a735afd1
DE
11302009-06-05 David Edelsohn <edelsohn@gnu.org>
1131
1132 * xcoffout.h (xcoffout_source_line): Update prototype.
1133
26a347c5
KG
11342009-06-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1135
1136 * builtins.c (do_mpc_ckconv, do_mpc_arg1): Use
1137 mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM.
1138
9f706f23
JJ
11392009-06-05 Jakub Jelinek <jakub@redhat.com>
1140
1141 PR middle-end/40340
1142 * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
1143 inlined_function_outer_scope_p blocks for artificial inlines
1144 even at -g0/-g1.
1145 * tree.c (tree_nonartificial_location): Rewrite using
1146 block_nonartificial_location.
1147
8f439681
RE
11482009-06-05 Revital Eres <eres@il.ibm.com>
1149 Leehod Baruch <leehod@il.ibm.com>
1150
1151 * expr.c (expand_assignment): Expand MISALIGNED_INDIRECT_REF.
1152 (expand_expr_real_1): Remove comment.
1153 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
1154 Vectorize misaligned access when the target supports it.
1155 (vect_supportable_dr_alignment): Check for unaligned access
1156 support.
1157 * tree-vect-stmts.c (vectorizable_store): Generate misaligned store
1158 and remove asset.
1159
b89f8e3c
JB
11602009-06-05 Julian Brown <julian@codesourcery.com>
1161
1162 * config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP.
1163 * config/arm/ieee754-sf.S (cmpsf2): Likewise.
1164
47d1f191
RG
11652009-06-05 Richard Guenther <rguenther@suse.de>
1166
1167 PR bootstrap/40350
1168 * dwarf2out.c (dwarf2out_begin_function): Mark discriminator
1169 as possibly unused.
1170
9f706f23 11712009-06-05 Jakub Jelinek <jakub@redhat.com>
75707b28
JJ
1172
1173 * config/s390/s390.c (global_not_special_regno_p): New static inline.
1174 (save_gprs): Don't tell unwinder when a global register is saved.
1175 (s390_emit_epilogue): Emit needed epilogue unwind info.
1176
90f06248
AO
11772009-06-05 Alexandre Oliva <aoliva@redhat.com>
1178
1179 * dwarf2out.c (deferred_asm_name): New.
1180 (add_name_and_src_coords_attributes): Defer creation of
1181 DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not
1182 computed yet.
1183 (move_linkage_attr): New.
1184 (dwarf2out_finish): Revisit deferrals and emit attributes at the
1185 right place.
1186
c10348e5
AO
11872009-06-05 Alexandre Oliva <aoliva@redhat.com>
1188
1189 * tree-nested.c (finalize_nesting_tree_1): Declare the
1190 frame_decl in the binding tree.
1191
6c52e687
CC
11922009-06-04 Cary Coutant <ccoutant@google.com>
1193
1194 * basic-block.h (struct basic_block_def): Add discriminator field.
1195 * dbxout.c (dbxout_source_line): Add new parameter. Change all
1196 callers.
1197 * debug.c (do_nothing_debug_hooks): Add additional entry.
1198 (debug_nothing_int_charstar_int): New function.
1199 * debug.h (struct gcc_debug_hooks): Add parameter to source_line
1200 hook.
1201 (debug_nothing_int_charstar_int): New declaration.
1202 * dwarf2out.c (dwarf2out_source_line): Add new parameter. Write
1203 discriminator value in .loc directive.
1204 * final.c (last_discriminator): New variable.
1205 (discriminator): New variable.
1206 (final_start_function): Initialize above variables, pass current
1207 discriminator to debug hook.
1208 (notice_source_line): Check for discriminator change.
1209 * gimple-pretty-print.c (dump_bb_header): Print discriminator value.
1210 * sdbout.c (sdbout_source_line): New parameter.
1211 * tree-cfg.c (struct locus_discrim_map): New structure type.
1212 (discriminator_per_locus): New hash table.
1213 (build_gimple_cfg): Allocate and free discriminator hash table.
1214 (make_edges): Call assign_discriminator.
1215 (locus_map_hash): New function.
1216 (locus_map_eq): New function.
1217 (next_discriminator_for_locus): New function.
1218 (same_line_p): New function.
1219 (assign_discriminator): New function.
1220 (make_cond_expr_edges): Call assign_discriminator.
1221 (make_gimple_switch_edges): Likewise.
1222 (first_non_label_stmt): New function.
1223 * vmsdbgout.c (vmsdbgout_source_line): Add new parameter. Change
1224 all callers.
1225 * xcoffout.c (xcoffout_source_line): Add new parameter.
1226
1227 * configure.ac (gcc_cv_as_discriminator): New configury check for
1228 gas support for discriminator.
1229 * configure: Regenerate.
1230 * config.in: Regenerate.
1231
e07e020b
RR
12322009-06-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1233
1234 * config/arm/arm.c (thumb2_legitimate_index_p): Initialize
1235 val after checking for integers.
1236
72fa3605
UB
12372009-06-04 Uros Bizjak <ubizjak@gmail.com>
1238
1239 * config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from
1240 X64_REGPARM_MAX.
1241 (REGPARM_MAX): Use X86_64_MS_REGPARM_MAX.
1242 (X86_64_MS_SSE_REGPARM_MAX): Rename from X64_SSE_REGPARM_MAX.
1243 (SSE_REGPARM_MAX): Use X86_64_MS_SSE_REGPARM_MAX.
1244 * config/i386/i386.c: Use X86_64_MS_REGPARM_MAX instead of
1245 X64_REGPARM_MAX. Use X86_64_MS_SSE_REGPARM_MAX instead of
1246 X64_SSE_REGPARM_MAX.
1247 * config/i386/i386.md: Use X86_64_MS_SSE_REGPARM_MAX instead of
1248 X64_SSE_REGPARM_MAX.
1249
bdde878c
AO
12502009-06-04 Alexandre Oliva <aoliva@redhat.com>
1251
1252 * gcc.c (report_times_to_file): New.
1253 (execute): Implement it.
1254 (process_command): Support -time=.
1255 * doc/invoke.texi: Document it.
1256
2ce59df7
AO
12572009-06-04 Alexandre Oliva <aoliva@redhat.com>
1258
1259 * tree-ssa-live.c (remove_unused_scope_block_p): Keep variables
1260 that have value exprs.
1261
78bd9046
AO
12622009-06-04 Alexandre Oliva <aoliva@redhat.com>
1263
1264 * dwarf2asm.c (dw2_force_const_mem): Defer creation of
1265 declarations for constants until...
1266 (dw2_output_indirect_constant_1): ... this point.
1267
e63d4106
RE
12682009-06-04 Richard Earnshaw <rearnsha@arm.com>
1269
1270 PR target/10242
1271 * arm.md (arm_addsi3): Don't try to split an add with an
1272 eliminable register until after reload has completed.
1273
6bc7bc14
ILT
12742009-06-03 Ian Lance Taylor <iant@google.com>
1275
1276 * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST.
1277 * genattrtab.c (write_length_unit_log): Likewise.
1278 * genchecksum.c (dosum): Likewise.
1279 * gengtype.c (write_rtx_next): Likewise.
1280 (finish_root_table, write_roots): Likewise.
1281 * gimple.c (gimple_ops_offset_): Likewise.
1282 * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise.
1283 * config/arc/arc.c (arc_attribute_table): Likewise.
1284 * config/arm/arm.c (arm_attribute_table): Likewise.
1285 * config/avr/avr.c (avr_attribute_table): Likewise.
1286 * config/crx/crx.c (crx_attribute_table): Likewise.
1287 * config/m32r/m32r.c (m32r_attribute_table): Likewise.
1288 * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise.
1289 * config/mcore/mcore.c (mcore_attribute_table): Likewise.
1290 * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
1291 * config/sh/sh.c (sh_attribute_table): Likewise.
1292 * config/sparc/sparc.c (sparc_attribute_table): Likewise.
1293 * config/spu/spu.c (spu_attribute_table): Likewise.
1294 * config/v850/v850.c (v850_attribute_table): Likewise.
1295
1296 * config/alpha/alpha.c (vms_attribute_table): Make static.
1297 * config/bfin/bfin.c (bfin_attribute_table): Likewise.
1298 * config/h8300/h8300.c (h8300_attribute_table): Likewise.
1299 * config/mips/mips.c (mips_attribute_table): Likewise.
1300
1301 * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and
1302 $(SYSTEM_H).
1303 (cc1-checksum.o): Likewise.
1304
19d892fd
SE
13052009-06-03 Steve Ellcey <sje@cup.hp.com>
1306
1307 * config/ia64/vect.md (*movv2sf_internal): Handle big endian case.
1308
679f3354
JJ
13092009-06-03 Jakub Jelinek <jakub@redhat.com>
1310
ff35822b
JJ
1311 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated
1312 insn if it is changing sp. Use gen_add3_insn instead of
1313 conditionally gen_addsi3 and gen_adddi3.
1314 (offset_below_red_zone_p): New static inline function.
1315 (rs6000_emit_epilogue): Emit needed epilogue unwind info.
1316 Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3.
1317 * config/rs6000/ppc-asm.h: Include auto-host.h.
1318 (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET,
1319 CFI_RESTORE): Define.
1320 * config/rs6000/crtresxgpr.asm: Add unwind info.
1321 * config/rs6000/crtresxfpr.asm: Likewise.
1322 * config/rs6000/crtresgpr.asm: Likewise.
1323 * config/rs6000/crtresfpr.asm: Likewise.
1324 * config/rs6000/crtsavgpr.asm: Likewise.
1325 * config/rs6000/crtsavfpr.asm: Likewise.
1326
679f3354
JJ
1327 * dwarf2out.c (output_cfi_directive): Pass 1 instead of
1328 0 to second argument of DWARF2_FRAME_REG_OUT macros.
1329
2e94c12d
JB
13302009-06-03 Julian Brown <julian@codesourcery.com>
1331
1332 * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four
1333 words or less (including TImode) in core registers.
1334
3111cce0
RG
13352009-06-03 Richard Guenther <rguenther@suse.de>
1336
1337 PR middle-end/40328
1338 * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.
1339
5e1b50f6
AB
13402009-06-03 Andrey Belevantsev <abel@ispras.ru>
1341
1342 * statistics.c (statistics_counter_event): Do not record event
1343 in pass dump if its number == -1.
1344 (curr_statistics_hash): Add assert that we never get passes
1345 with static number == -1.
1346
6f11d690
RG
13472009-06-03 Richard Guenther <rguenther@suse.de>
1348 Andrey Belevantsev <abel@ispras.ru>
1349
1350 * cfgexpand.c (discover_nonconstant_array_refs_r): Make only
1351 non-BLKmode arrays addressable.
1352
88961471
MK
13532009-06-03 Maxim Kuvyrkov <maxim@codesourcery.com>
1354
1355 * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
1356 * config/m68k/m68k.h: ... here.
1357 * testsuite/gcc.dg/falign-labels.c (dg-options): Don't restrict for
1358 m68k and fido.
1359
9961eb45
MJ
13602009-06-03 Martin Jambor <mjambor@suse.cz>
1361
1362 PR tree-optimization/40323
1363 * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single
1364 assignment.
1365
2f2c62a0
RG
13662009-06-03 Richard Guenther <rguenther@suse.de>
1367
1368 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
1369 consistently.
1370
d6ced3b7
SZ
13712009-06-03 Shujing Zhao <pearly.zhao@oracle.com>
1372
1373 * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
1374 JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
1375 JUMP_TABLE_DATA_P where applicable.
1376 * config/sh/sh.c: Ditto.
1377 * config/sh/sh.h: Ditto.
1378 * config/sh/sh.md: Ditto.
1379 * config/sh/symbian.c: Ditto.
1380
f3afc8a7
UB
13812009-06-03 Uros Bizjak <ubizjak@gmail.com>
1382
1383 * config/i386/driver-i386.c (describe_cache): Optimize
1384 concatenation of strings. Use snprintf instead of sprintf.
1385 (host_detect_local_cpu): Ditto. Ignore -march and -mtune for native
1386 target when not compiling with GCC.
1387
1964788a
KK
13882009-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
1389
1390 * config/sh/sh.c: Revert last change.
1391 (sh_expand_epilogue): Emit a blockage insn before the frame
1392 pointer adjustment unconditionally.
1393
8633c315
RS
13942009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1395
1396 * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
1397 * config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
1398 * config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
1399 * gcc.c (set_collect_gcc_options): Don't add -fwhole-program
1400 to COLLECT_GCC_OPTIONS.
1401
781a1758
RS
14022009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1403
1404 * collect2.c (target_system_root): New variable.
1405 (main): Handle --sysroot=.
1406 (ignore_library): Strip the sysroot from the library path.
1407
dfb636dc
RS
14082009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1409
1410 * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
1411 (collect2.o): Depend on collect2-aix.h.
1412 (collect2-aix.o): New rule.
1413 * collect2-aix.h: New file.
1414 * collect2-aix.c: Likewise.
1415 * collect2.c: Include collect2-aix.h. Don't undefine
1416 OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
1417 Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
1418 Use TARGET_AIX_VERSION instead of _AIX51.
1419 * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
1420 * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
1421 * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
1422 * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
1423 * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.
1424
51136ae8
RS
14252009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1426
1427 * collect2.c (ignore_library): Avoid premature post-increment
1428 and null deference.
1429
7f142d33
RS
14302009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1431
1432 * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
1433 * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
1434 !CROSS_DIRECTORY_STRUCTURE alternative and use it for
1435 CROSS_DIRECTORY_STRUCTURE too.
1436 (LINK_LIBG_SPEC): Likewise.
1437 (LIB_SPEC): Add %R to sysroot paths.
1438 * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
1439 (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
1440 * config/rs6000/aix51.h: As for aix43.h.
1441 * config/rs6000/aix52.h: Likewise.
1442 * config/rs6000/aix53.h: Likewise.
1443 * config/rs6000/aix61.h: Likewise.
1444 * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
1445 to the beginning of sysroot paths.
1446
9e74b7d2
AO
14472009-06-02 Alexandre Oliva <aoliva@redhat.com>
1448
1449 * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
1450 INSN_LISTs that are out of the REG_NOTE range.
1451
a9f6ecee
AO
14522009-06-02 Alexandre Oliva <aoliva@redhat.com>
1453
1454 * loop-unroll.c (struct iv_to_split): Add pointer to next.
1455 (struct var_to_expand): Likewise.
1456 (struct opt_info): Add head and tail for linked lists of the above.
1457 (analyze_insn_to_expand_var): Initialize next.
1458 (analyze_iv_to_split_insn): Likewise.
1459 (analyze_insns_in_loop): Create linked lists.
1460 (allocate_basic_variable): Simplify for use without hash table.
1461 (insert_var_expansion_initialization): Likewise, make it type-safer.
1462 (combine_var_copies_in_loop_exit): Likewise.
1463 (apply_opt_in_copies): Walk lists rather than hash tables.
1464 (release_var_copies): Simplified and inlined by hand into...
1465 (free_opt_info): ... this function.
1466
69596c69
RG
14672009-06-02 Richard Guenther <rguenther@suse.de>
1468
1469 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
1470 for field decls.
1471
fe8a7779
AO
14722009-06-02 Alexandre Oliva <aoliva@redhat.com>
1473
1474 * cfgexpand.c (gimple_expand_cfg): Discard the source location
1475 only for builtins that are not overridden.
1476
1bcca2c5
AO
14772009-06-02 Alexandre Oliva <aoliva@redhat.com>
1478
1479 * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
1480 label string.
1481
8588f797
AO
14822009-06-02 Alexandre Oliva <aoliva@redhat.com>
1483
1484 * df-core.c (df_ref_debug): Honor -fdump-noaddr.
1485
45f39d78
AO
14862009-06-02 Alexandre Oliva <aoliva@redhat.com>
1487
1488 * combine.c (move_deaths): Compare LUIDs within the same BB only.
1489
2aa7c49b
AO
14902009-06-02 Alexandre Oliva <aoliva@redhat.com>
1491
1492 * common.opt (fdump-unnumbered-links): New.
1493 * doc/invoke.texi (-fdump-unnumbered-links): Document it.
1494 * print-rtl.c (flag_dump_unnumbered_links): New.
1495 (print_rtx): Test it.
1496
55b2829b
RE
14972009-06-02 Richard Earnshaw <rearnsha@arm.com>
1498
1499 * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
1500 push/pop multiple to 8-byte alignment.
e63d4106 1501
6c0d7021
JJ
15022009-06-01 Jakub Jelinek <jakub@redhat.com>
1503
0aa34d44
JJ
1504 * config/i386/i386.c (queued_cfa_restores): New static variable.
1505 (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
1506 functions.
1507 (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
1508 (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
1509 Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
1510 Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
1511 note unconditionally.
1512 (ix86_emit_restore_regs_using_mov): Likewise.
1513 (ix86_emit_restore_sse_regs_using_mov): Likewise.
1514 (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
1515 it through to ix86_emit_restore_reg_using_pop.
1516 (ix86_emit_leave): Add RED_OFFSET argument. Call
1517 ix86_add_queued_cfa_restore_notes. Call ix86_add_cfa_restore_note
1518 instead of adding REG_CFA_OFFSET note unconditionally.
1519 (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
1520 the above functions. Call ix86_add_queued_cfa_restore_notes when
1521 needed.
1522
1523 * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
1524 force output of the label even for dwarf2out_do_cfi_asm.
1525 (add_fde_cfi): If -g2 and above and cfi might change CFA,
1526 force creation of CFI label and chain DW_CFA_set_loc jumping to it
1527 for convert_cfa_to_fb_loc_list. Adjust other dwarf2out_cfi_label
1528 caller.
1529 (dwarf2out_stack_adjust, dwarf2out_frame_debug,
1530 dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
1531 dwarf2out_cfi_label callers.
1532 * tree.h (dwarf2out_cfi_label): Adjust prototype.
1533 * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
1534 Adjust dwarf2out_cfi_label callers.
1535 * config/vax/vax.c (vax_output_function_prologue): Likewise.
1536
604a6be9
JJ
1537 * config/i386/i386.h (struct machine_cfa_state,
1538 struct machine_function): Guard with ifndef USED_FOR_TARGET
1539 instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.
1540
df0026a7
JJ
1541 PR other/40024
1542 * emutls.c (__emutls_get_address): Change arr->size to mean number
1543 of allocated arr->data entries instead of # of slots + 1.
1544
6c0d7021
JJ
1545 PR middle-end/40316
1546 * recog.c (peep2_reinit_state): New function.
1547 (peephole2_init_state): Use it at the end of a basic block and also
1548 when seeing a RTX_FRAME_RELATED_P insn.
1549
49df2fb8
SE
15502009-06-01 Steve Ellcey <sje@cup.hp.com>
1551
1552 * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
1553 fixuns_truncrfdi2): New.
1554 (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
1555 *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
1556 *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
1557 *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
1558 *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
1559 *recip_approx): Remove.
1560 (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
1561 moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
1562 divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
1563 move to div.md.
1564 * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
1565 setf_exp_rf): New.
1566
67165eb3
ILT
15672009-06-01 Ian Lance Taylor <iant@google.com>
1568
1569 * attribs.c (register_attribute): Use CONST_CAST.
1570 * collect2.c (main): Use CONST_CAST2.
1571 (scan_prog_file): Likewise.
1572 * gcc.c (process_command, main): Likewise.
1573 * toplev.c (toplev_main): Likewise.
1574
1575 * c-typeck.c (handle_warn_cast_qual): New static function,
1576 partially broken out of build_c_cast.
1577 (build_c_cast): Call handle_warn_cast_qual.
1578 * doc/invoke.texi (Warning Options): Document new effect of
1579 -Wcast-qual.
1580
e74fe492
AH
15812009-06-01 Aldy Hernandez <aldyh@redhat.com>
1582
1583 * diagnostic.c (diagnostic_build_prefix): Always print columns.
1584 (diagnostic_report_current_module): Print columns.
1585 * common.opt (flag_show_column): Enable by default.
1586
7eba2d1f
LM
15872009-06-01 Luis Machado <luisgpm@br.ibm.com>
1588
1589 * alias.c (find_base_term): Check for NULL term before returning.
1590
ee88d9aa
MK
15912009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
1592
1593 Revert due to PR40320:
ee88d9aa
MK
1594 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
1595 * calls.c (emit_library_call_value_1): Don't force_operand for move
1596 and push insns.
1597
324c9b02 15982009-06-01 Olivier Hainque <hainque@adacore.com>
40d0d9e4 1599 Eric Botcazou <ebotcazou@adacore.com>
324c9b02
OH
1600
1601 * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
1602 to be processed as a bitfield for constructor output purposes.
1603 * output.h (initializer_constant_valid_for_bitfield_p): Declare
1604 new function.
1605 * varasm.c (oc_local_state): New type, output_constructor
1606 local state to support communication with helpers.
1607 (oc_outer_state): New type, output_constructor outer state of
1608 relevance in recursive calls.
1609 (output_constructor_array_range): New output_constructor helper,
1610 extracted code for an array range element.
1611 (output_constructor_regular_field): New output_constructor helper,
1612 extracted code for an element that is not a bitfield.
1613 (output_constructor_bitfield): New output_constructor helper,
1614 extracted code for a bitfield element. Accept an OUTER state
1615 argument for recursive processing. Recurse on record or array
1616 CONSTRUCTOR values, possibly past noop conversions.
62295314 1617 (initializer_constant_valid_for_bitfield_p): New predicate. Whether
324c9b02
OH
1618 VALUE is a valid constant-valued expression for use in a static
1619 bit-field initializer.
62295314
OH
1620 (output_constructor): Rework to use helpers. Accept and honor an
1621 OUTER state argument for recursive calls. Return total size. Be
324c9b02
OH
1622 prepared for nested constructors initializing bitfields.
1623 (output_constant): Feed OUTER in calls to output_constructor.
1624
0980d7fe
MK
16252009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
1626
1627 * calls.c (emit_library_call_value_1): Don't force_operand for move
1628 and push insns.
1629
29661412
NC
16302009-06-01 Nick Clifton <nickc@redhat.com>
1631
1632 * doc/invoke.texi (IA-64 Options): Fix typo.
1633
e9dbe7bb
IR
16342009-06-01 Ira Rosen <irar@il.ibm.com>
1635
1636 PR tree-optimization/39129
1637 * tree-vect-loop-manip.c (conservative_cost_threshold): Change the
1638 printed message.
1639 (vect_do_peeling_for_loop_bound): Use
1640 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
1641 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
1642 (vect_loop_versioning): Likewise.
1643 (vect_create_cond_for_alias_checks): Fix indentation.
1644 * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the
1645 macros.
1646 (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
1647 (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
1648 * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to
1649 "control flow in loop".
1650 (vect_estimate_min_profitable_iters): Use
1651 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
1652 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
1653 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
1654 (vect_create_data_ref_ptr): Don't mention array dimension in printing.
1655 * tree-vect-stmts.c (vectorizable_store): Replace the check that the
1656 statement belongs to a group of strided accesses with the exact code
1657 check.
1658 (vectorizable_load): Likewise.
1659 * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
1660 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
1661
5ac69a80
GP
16622009-06-01 Gerald Pfeifer <gerald@pfeifer.com>
1663
1664 * config/freebsd-stdint.h: New file.
1665 * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
1666 Add freebsd-stdint.h to tm_file.
1667
54b2b460
RE
16682009-06-01 Richard Earnshaw <rearnsha@arm.com>
1669
1670 * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
1671 (thumb2_extendhidi2): Likewise.
1672
a7ca77cf
ILT
16732009-05-31 Ian Lance Taylor <iant@google.com>
1674
f3afc8a7 1675 * regstat.c (regstat_n_sets_and_refs): Remove duplicate definition.
c50d84e3
ILT
1676
16772009-05-31 Ian Lance Taylor <iant@google.com>
1678
f3afc8a7 1679 * Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H).
a7ca77cf
ILT
1680 (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
1681 (ipa-reference.o): Depend upon gt-ipa-reference.h.
1682
1aec401e
JM
16832009-05-31 Jason Merrill <jason@redhat.com>
1684
1685 * tree-pretty-print.c (print_call_name): Take the callee, not the
f3afc8a7 1686 call itself. Make non-static. Use dump_function_name for functions.
1aec401e
JM
1687 (dump_generic_node): Adjust.
1688 * diagnostic.h: Declare print_call_name.
1689 * gimple-pretty-print.c (dump_gimple_call): Use it.
1690
ed7910bb
KK
16912009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
1692
1693 * config/sh/sh.md (ashldi3_std): New define_expand.
1694 (ashldi3): Use it.
1695
47ea8d4e
KK
16962009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
1697
1698 PR target/40313
1699 * config/sh/sh.c: Include debug.h.
1700 (sh_expand_epilogue): Emit a blockage insn before the frame
1701 pointer adjustment also when dwarf2out_do_frame returns true.
1702
405e8b49
RE
17032009-05-31 Richard Earnshaw <rearnsha@arm.com>
1704
1705 * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
1706 (thumb2_extendqidi2): New pattern.
1707
71ece343
IR
17082009-05-31 Ira Rosen <irar@il.ibm.com>
1709
1710 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
1711 mark phis for renaming.
1712 * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
1713 (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
1714 Call mark_sym_for_renaming.
1715 * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
f3afc8a7
UB
1716 * tree-vect-loop.c (vect_transform_loop): Remove
1717 vect_memsyms_to_rename initialization and a call to
1718 mark_set_for_renaming.
71ece343 1719
b3041944
JJ
17202009-05-31 Jakub Jelinek <jakub@redhat.com>
1721
1722 PR middle-end/40304
1723 * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
1724 frame related even if !set_cfa && style < 0.
1725
a1bda0d7
KT
17262009-05-30 Kai Tietz <kai.tietz@onevision.com>
1727
1728 * config/i386/mingw-tls.c: New file.
f3afc8a7
UB
1729 * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file.
1730 * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets
1731 defining _WIN32 but not __CYGWIN__.
a1bda0d7 1732
acd26225
KG
17332009-05-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1734
1735 * configure.ac: Add MPC support.
1736
1737 * config.in, configure: Regenerate.
1738
cd9c1ca8
RH
17392009-05-29 Richard Henderson <rth@redhat.com>
1740
1741 * cfgcleanup.c (try_crossjump_to_edge): Only skip past
1742 NOTE_INSN_BASIC_BLOCK.
1743 * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
1744 Duplicate NOTE_INSN_EPILOGUE_BEG notes.
1745 * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
1746 to be deleted.
1747 * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
1748 add in_use field.
1749 (add_cfi): Disable check redefining cfa away from drap.
1750 (lookup_cfa_1): Add remember argument; handle remember/restore.
1751 (lookup_cfa): Pass remember argument.
1752 (cfa_remember): New.
1753 (compute_barrier_args_size_1): Remove sibcall check.
1754 (dwarf2out_frame_debug_def_cfa): New.
1755 (dwarf2out_frame_debug_adjust_cfa): New.
1756 (dwarf2out_frame_debug_cfa_offset): New.
1757 (dwarf2out_frame_debug_cfa_register): New.
1758 (dwarf2out_frame_debug_cfa_restore): New.
1759 (dwarf2out_frame_debug): Handle REG_CFA_* notes.
1760 (dwarf2out_begin_epilogue): New.
1761 (dwarf2out_frame_debug_restore_state): New.
1762 (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
1763 DW_CFA_restore_state.
1764 (output_cfi_directive): Likewise.
1765 (convert_cfa_to_fb_loc_list): Likewise.
1766 (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
1767 * dwarf2out.h: Update.
1768 * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
1769 (copy_insn_1): Early out for null.
1770 * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
1771 and dwarf2out_frame_debug_restore_state.
1772 * function.c (prologue, epilogue, sibcall_epilogue): Remove.
1773 (prologue_insn_hash, epilogue_insn_hash): New.
1774 (free_after_compilation): Adjust freeing accordingly.
1775 (record_insns): Create hash table if needed; push insns into
1776 hash instead of array.
1777 (maybe_copy_epilogue_insn): New.
1778 (contains): Search hash table instead of array.
1779 (sibcall_epilogue_contains): Remove.
1780 (thread_prologue_and_epilogue_insns): Split eh_return insns
1781 and mark them as epilogues.
1782 (reposition_prologue_and_epilogue_notes): Rewrite epilogue
1783 scanning in terms of basic blocks.
1784 * insn-notes.def (CFA_RESTORE_STATE): New.
1785 * jump.c (returnjump_p_1): Accept EH_RETURN.
1786 (eh_returnjump_p_1, eh_returnjump_p): New.
1787 * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
1788 CFA_REGISTER, CFA_RESTORE): New.
1789 * rtl.def (EH_RETURN): New.
1790 * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
1791
1792 * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
1793 (eh_return_internal): Use eh_return rtx; split w/ epilogue.
1794
1795 * config/i386/i386.c (gen_push): Update cfa state.
1796 (pro_epilogue_adjust_stack): Add set_cfa argument. When true,
1797 add a CFA_ADJUST_CFA note.
1798 (ix86_dwarf_handle_frame_unspec): Remove.
1799 (ix86_expand_prologue): Update cfa state.
1800 (ix86_emit_restore_reg_using_pop): New.
1801 (ix86_emit_restore_regs_using_pop): New.
1802 (ix86_emit_leave): New.
1803 (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
1804 (ix86_expand_epilogue): Add notes for unwinding the epilogue.
1805 * config/i386/i386.h (struct machine_cfa_state): New.
1806 (ix86_cfa_state): New.
1807 * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
1808 (eh_return_internal): Merge from eh_return_<mode>,
1809 use eh_return rtx, split w/ epilogue.
1810
72b5577d
ILT
18112009-05-29 Ian Lance Taylor <iant@google.com>
1812
1813 * builtins.c (validate_gimple_arglist): Don't use va_arg with
1814 enum type.
1815 * calls.c (emit_library_call_value_1): Likewise.
1816
1817 * c-typeck.c (c_build_va_arg): New function.
1818 * c-tree.h (c_build_va_arg): Declare.
1819 * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
1820 instead of build_va_arg.
1821
7a2faca1
EB
18222009-05-29 Eric Botcazou <ebotcazou@adacore.com>
1823
1824 * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
1825 (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
1826 (ptr_difference_cost): Use affine combinations to compute it.
1827 (difference_cost): Likewise.
1828 (get_computation_cost_at): Compute more accurate cost for addresses
1829 if the ratio is a multiplier allowed in addresses.
1830 For non-addresses, consider that an additional offset or symbol is
1831 added only once.
1832
725fd454
JJ
18332009-05-29 Jakub Jelinek <jakub@redhat.com>
1834
a0987204
JJ
1835 * config/i386/i386.c (ix86_decompose_address): Avoid useless
1836 0 displacement. Add 0 displacement if base is %[er]bp or %r13.
1837
725fd454
JJ
1838 * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
1839 TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
1840 (prefix_rex): For UNIT_MMX don't imply the prefix by default
1841 if MODE_DI.
1842 (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
1843 to 1 for TYPE_SSE{IADD1,CVT1}.
1844 (prefix_vex_imm8): Removed.
1845 (length_vex): Only pass 1 as second argument to
1846 ix86_attr_length_vex_default if prefix_extra is 0.
1847 (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
1848 (length): For prefix vex computation use length_immediate
1849 attribute instead of prefix_vex_imm8.
1850 (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
1851 addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
1852 *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
1853 *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
1854 (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
1855 *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
1856 a space in between the operands.
1857 (*anddi_1_rex64, *andsi_1): Likewise. Override prefix_rex to 1
1858 if one operand is 0xff and the other one si, di, bp or sp.
1859 (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
1860 other one si, di, bp or sp.
1861 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
1862 (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
1863 type and mode attributes.
1864 (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
1865 (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
1866 prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
1867 (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
1868 prefix_data16 attribute iff MODE_DF.
1869 (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
1870 (fix_trunc<mode>di_sse): Set prefix_rex attribute.
1871 (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
1872 constm128_operand in length_immediate computation.
1873 (*addhi_4): Likewise. Fix mode attribute to MODE_HI.
1874 (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
1875 (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
1876 length_immediate attribute to 1.
1877 (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
1878 (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
1879 for certain alternatives.
1880 (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
1881 prefix_data16 attribute if MODE_V1DF.
1882 (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
1883 length_immediate to 1.
1884 (set_got_rex64, set_rip_rex64): Remove length attribute, set
1885 length_address to 4, set mode attribute to MODE_DI.
1886 (set_got_offset_rex64): Likewise. Set length_immediate to 0.
1887 (fxam<mode>2_i387): Set length attribute to 4.
1888 (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
1889 *prefetch_3dnow_rex): Override length_address attribute.
1890 (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
1891 attributes.
1892 * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
1893 (constm128_operand): Removed.
1894 * config/i386/i386.c (memory_address_length): For
1895 disp && !index && !base in 64-bit mode account for SIB byte if
1896 print_operand_address can't optimize disp32 into disp32(%rip)
1897 and UNSPEC doesn't imply (%rip) addressing. Add 1 to length
1898 for fs: or gs: segment.
1899 (ix86_attr_length_immediate_default): When checking if shortform
1900 is possible, truncate immediate to the length of the non-shortened
1901 immediate.
1902 (ix86_attr_length_address_default): Ignore MEM_P operands
1903 with X constraint.
1904 (ix86_attr_length_vex_default): Only check for DImode on
1905 GENERAL_REG_P operands.
1906 * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
1907 prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
1908 (sse_cvttps2pi): Clear prefix_rep attribute.
1909 (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
1910 attribute.
1911 (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
1912 (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
1913 *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
1914 iff operand 2 is const_int_operand.
1915 (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
1916 sse2_shufpd_<mode>): Set length_immediate attribute to 1.
1917 (sse2_pshufd_1): Likewise. Set prefix attribute to maybe_vex
1918 instead of vex.
1919 (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
1920 prefix_data16.
1921 (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
1922 prefix_data16 attribute for movlpd and movhpd instructions.
1923 (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise. Override
1924 length_immediate for shufpd instruction.
1925 (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
1926 (avx_cmpp<avxmodesuffixf2c><mode>3,
1927 avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
1928 <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
1929 avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
f3afc8a7 1930 *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1.
725fd454
JJ
1931 (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
1932 (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
1933 (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
1934 prefix_data16 attribute for the first alternative to 1.
1935 (*avx_loadlps): Override length_immediate for the first alternative.
1936 (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
1937 attributes for second alternative.
1938 (*vec_concatv2sf_sse4_1): Override length_immediate and
1939 prefix_data16 attributes for second alternative.
1940 (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
1941 vec_extract_hi_<mode>, vec_extract_lo_v16hi,
1942 vec_extract_hi_v16hi, vec_extract_lo_v32qi,
1943 vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
1944 (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
1945 prefix_data16 and length_immediate to 1.
1946 (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
1947 to 1.
1948 (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
f3afc8a7 1949 prefix_extra attribute for variants that don't have 0f prefix alone.
725fd454
JJ
1950 (*avx_pinsr<ssevecsize>): Likewise. Set length_immediate to 1.
1951 (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
1952 *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
1953 *sse4_1_pextrd): Set length_immediate to 1.
1954 (*sse4_1_pinsrd): Likewise. Set prefix_extra to 1.
1955 (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
1956 to 1.
1957 (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
1958 *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
1959 length_immediate to 1 for second alternative.
1960 (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
1961 prefix_extra and length_immediate attributes for the first
1962 alternative.
1963 (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
1964 first alternative.
1965 (*vec_concatv2di_rex64_sse4_1): Likewise. Override prefix_rex
1966 to 1 for the first and third alternative.
1967 (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
1968 alternative.
1969 (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
1970 attribute.
1971 (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
1972 attribute to 0.
1973 (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
1974 *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
1975 *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
1976 *avx_psign<mode>3): Set prefix_extra attribute to 1.
1977 (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
1978 ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
1979 ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
1980 ssse3_psign<mode>3): Override prefix_rex attribute.
f3afc8a7 1981 (*avx_palignrti): Override prefix_extra and length_immediate to 1.
725fd454
JJ
1982 (ssse3_palignrti): Override length_immediate to 1.
1983 (ssse3_palignrdi): Override length_immediate to 1, override
1984 prefix_rex attribute.
f3afc8a7 1985 (abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute.
725fd454
JJ
1986 (sse4a_extrqi): Override length_immediate to 2.
1987 (sse4a_insertqi): Likewise. Override prefix_data16 to 0.
1988 (sse4a_insertq): Override prefix_data16 to 0.
1989 (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
1990 avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
1991 avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
1992 *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
1993 avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
1994 and length_immediate to 1.
1995 (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
1996 sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
1997 sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
1998 sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
1999 and length_immediate to 1.
2000 (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
2001 (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
2002 (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
2003 avx_ptest256): Override prefix_extra to 1.
2004 (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
2005 Override prefix_data16 and length_immediate to 1.
2006 (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
2007 sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
2008 sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
2009 sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
2010 prefix_data16 to 0 and prefix_extra to 2.
2011 (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
2012 (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
2013 attribute.
2014 (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
2015 sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
2016 Override prefix_data16 and prefix_rep to 0, length_immediate to 1
2017 and prefix_extra to 2.
2018 (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
2019 prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
2020 (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
2021 avx_vpermilvar<mode>3,
2022 avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
2023 avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
2024 avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
2025 avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
2026 Override prefix_extra to 1.
2027 (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
2028 (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
2029 vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
2030 vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
2031 prefix_extra and length_immediate to 1.
2032 (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
2033 modrm to 0.
2034 (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
2035 to 1 for the first alternative.
2036 * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
2037 prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
2038 cases.
2039 (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
2040 *movv2sf_internal_avx, *movv2sf_internal): Override
2041 prefix_rep attribute for certain alternatives.
2042 (*mov<mode>_internal): Override prefix_rep or prefix_data16
2043 attributes for certain alternatives.
2044 (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
2045 attributes for certain alternatives.
2046 (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
2047 *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
2048 mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
2049 mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
2050 *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
2051 mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
2052 mmx_pswapdv2si2): Set prefix_extra attribute to 1.
2053 (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
2054 length_immediate to 1 if operand 2 is const_int_operand.
2055 (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
f3afc8a7 2056 *vec_extractv2si_1): Set length_immediate attribute to 1.
725fd454
JJ
2057 (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
2058 using old 3DNOW insn rather than SSE/3DNOW_A.
2059 (mmx_emms, mmx_femms): Clear modrm attribute.
2060
0674b9d0
MJ
20612009-05-29 Martin Jambor <mjambor@suse.cz>
2062
2063 * tree-sra.c: New implementation of SRA.
2064
2065 * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
2066 (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
2067 (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
2068 * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
2069 (SRA_MAX_STRUCTURE_COUNT): Removed.
2070 (SRA_FIELD_STRUCTURE_RATIO): Removed.
2071 * doc/invoke.texi (sra-max-structure-size): Removed.
2072 (sra-field-structure-ratio): Removed.
2073
616f21df
JJ
20742009-05-29 Jakub Jelinek <jakub@redhat.com>
2075
2076 PR middle-end/40291
2077 * builtins.c (expand_builtin_memcmp): Convert len to sizetype
2078 before expansion.
2079
da7ba240
AB
20802009-05-29 Andrey Belevantsev <abel@ispras.ru>
2081
2082 PR rtl-optimization/40101
2083 * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
2084 seqno. Adjust comment.
2085 * sel-sched.c (find_seqno_for_bookkeeping): Assert that when
2086 inserting bookkeeping before a jump, the jump is not scheduled.
2087 When no positive seqno found, provide a value. Add comment.
2088
71dcd609
RG
20892009-05-29 Richard Guenther <rguenther@suse.de>
2090
2091 * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
2092 short-cutting on the first component.
2093
a900ae6b
JJ
20942009-05-29 Jakub Jelinek <jakub@redhat.com>
2095
2096 PR middle-end/39958
2097 * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
2098 for trees other than decls/types.
2099
821bb7f8
RG
21002009-05-29 Richard Guenther <rguenther@suse.de>
2101
2102 * tree-ssa-operands.c (get_expr_operands): Do not handle
2103 INDIRECT_REFs in the handled-component case. Remove
2104 unused get_ref_base_and_extent case.
2105 * tree-dfa.c (get_ref_base_and_extent): Avoid calling
2106 tree_low_cst and host_integerp where possible.
2107 * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
2108 codes for equivalence.
2109 * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
2110
e997fb9c
DB
21112009-05-29 David Billinghurst <billingd@gcc.gnu.org>
2112
2113 * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
2114 to tmake_file for i[34567]86-*-cygwin*.
2115
58195b74
JJ
21162009-05-29 Jakub Jelinek <jakub@redhat.com>
2117
2118 PR target/40017
2119 * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
2120 (altivec_categorize_keyword, init_vector_keywords,
2121 rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
2122 similar to bool.
2123
055df276
KT
21242009-05-29 Kai Tietz <kai.tietz@onevision.com>
2125
2126 * tree.c (handle_dll_attribute): Check if node is
2127 of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
2128
f5939ef3
RE
21292009-05-29 Richard Earnshaw <rearnsha@arm.com>
2130
2131 * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
2132 component.
2133 (thumb2_zero_extendqidi2): Likewise.
2134
c185de40
KK
21352009-05-28 Kaz Kojima <kkojima@gcc.gnu.org>
2136
2137 * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
2138 instead of gen_movrt.
2139 * config/sh/sh.md (movrt): Remove.
2140
bf3c6caf
SE
21412009-05-28 Steve Ellcey <sje@cup.hp.com>
2142
f3afc8a7 2143 * doc/invoke.texi (IA-64 Options):
bf3c6caf
SE
2144 Add -msdata, -mfused-madd, -mno-inline-float-divide,
2145 -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
2146 -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
2147 -msched-prefer-non-control-spec-insns,
2148 -msched-stop-bits-after-every-cycle,
2149 -msched-count-spec-in-critical-path,
2150 -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
f3afc8a7 2151 -msched-max-memory-insns-hard-limit, -msched-max-memory-insns.
bf3c6caf
SE
2152 Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
2153 and -msched-spec-verbose.
2154
8a66e987
JM
21552009-05-28 Joseph Myers <joseph@codesourcery.com>
2156
f3afc8a7 2157 * config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache.
8a66e987
JM
2158 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
2159 error if used.
2160 * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
2161
b45d2719
RG
21622009-05-28 Richard Guenther <rguenther@suse.de>
2163
2164 * tree-ssa-alias.c (ao_ref_init): New function.
2165 (ao_ref_base): Likewise.
2166 (ao_ref_base_alias_set): Likewise.
2167 (ao_ref_alias_set): Likewise.
2168 (refs_may_alias_p_1): Change signature.
2169 (refs_may_alias_p): Adjust.
2170 (refs_anti_dependent_p): Likewise.
2171 (refs_output_dependent_p): Likewise.
2172 (call_may_clobber_ref_p_1): Change signature.
2173 (call_may_clobber_ref_p): Adjust.
2174 (stmt_may_clobber_ref_p_1): New function split out from ...
2175 (stmt_may_clobber_ref_p): ... here.
2176 (maybe_skip_until): Adjust signature.
2177 (get_continuation_for_phi): Likewise.
2178 (walk_non_aliased_vuses): Likewise.
2179 * tree-ssa-alias.h (struct ao_ref_s): New structure type.
2180 (ao_ref_init): Declare.
2181 (ao_ref_base): Likewise.
2182 (ao_ref_alias_set): Likewise.
2183 (stmt_may_clobber_ref_p_1): Likewise.
2184 (walk_non_aliased_vuses): Adjust.
2185 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
2186 (get_ref_from_reference_ops): remove.
2187 (vn_reference_lookup_2): Adjust signature.
2188 (vn_reference_lookup_3): Do not re-build trees. Handle unions.
f3afc8a7 2189 (vn_reference_lookup_pieces): Adjust signature, do not re-build trees.
b45d2719
RG
2190 (vn_reference_lookup): Adjust.
2191 (vn_reference_insert): Likewise.
2192 (vn_reference_insert_pieces): Adjust signature.
2193 (visit_reference_op_call): Adjust.
2194 * tree-ssa-pre.c (get_expr_type): Simplify.
2195 (phi_translate_1): Adjust.
2196 (compute_avail): Likewise.
2197 (translate_vuse_through_block): Do not re-build trees.
2198 (value_dies_in_block_x): Likewise.
2199 * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
2200 fields.
2201 (vn_reference_lookup_pieces): Adjust declaration.
2202 (vn_reference_insert_pieces): Likewise.
2203
554223b6
BK
22042009-05-28 Benjamin Kosnik <bkoz@redhat.com>
2205
2206 * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
2207 with checking disabled.
2208
233215fe
DK
22092009-05-28 Dave Korn <dave.korn.cygwin@gmail.com>
2210
2211 PR target/37216
2212
2213 * configure.ac (HAVE_GAS_ALIGNED_COMM): Add autoconf test and
2214 macro definition for support of three-operand format aligned
2215 .comm directive in assembler on cygwin/pe/mingw target OS.
2216 * configure: Regenerate.
2217 * config.h: Regenerate.
2218
2219 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Use
2220 aligned form of .comm directive if -mpe-aligned-commons is in effect.
2221 * config/i386/cygming.opt (-mpe-aligned-commons): Add new option.
2222
2223 * doc/invoke.texi (-mpe-aligned-commons): Document new target option.
2224 * doc/tm.texi (ASM_OUTPUT_COMMON): Document zero size commons.
2225
24adb18f
IR
22262009-05-28 Ira Rosen <irar@il.ibm.com>
2227
2228 PR tree-optimization/40254
2229 * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
2230 in analysis of basic blocks.
2231
2c5bfdf7
AN
22322009-05-28 Adam Nemet <anemet@caviumnetworks.com>
2233
2234 PR middle-end/33699
f3afc8a7 2235 * target.h (struct gcc_target): Fix indentation. Add const_anchor.
2c5bfdf7
AN
2236 * target-def.h (TARGET_CONST_ANCHOR): New macro.
2237 (TARGET_INITIALIZER): Use it.
2238 * cse.c (CHEAPER): Move it up to the other macros.
2239 (insert): Rename this ...
2240 (insert_with_costs): ... to this. Add cost parameters. Update
2241 function comment.
2242 (insert): New function. Call insert_with_costs.
2243 (compute_const_anchors, insert_const_anchor, insert_const_anchors,
2244 find_reg_offset_for_const, try_const_anchors): New functions.
2245 (cse_insn): Call try_const_anchors. Adjust cost of src_related
2246 when using a const-anchor. Call insert_const_anchors.
f3afc8a7 2247 * config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor.
2c5bfdf7
AN
2248 * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
2249
9e6aced0
AO
22502009-05-28 Alexandre Oliva <aoliva@redhat.com>
2251
2252 * tree-inline.c (remap_decls): Enable nonlocalized variables
2253 when not optimizing.
2254
89fbbe4e
AO
22552009-05-28 Alexandre Oliva <aoliva@redhat.com>
2256
2257 * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
2258 Simplify other tests involving optimize.
2259
e455776a
TT
22602009-05-27 Tom Tromey <tromey@redhat.com>
2261
2262 * unwind-dw2.c (_Unwind_DebugHook): New function.
2263 (uw_install_context): Call _Unwind_DebugHook.
2264
cea32bca
TT
22652009-05-27 Tom Tromey <tromey@redhat.com>
2266
2267 * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
2268
c607156f
ILT
22692009-05-27 Ian Lance Taylor <iant@google.com>
2270
2271 * Makefile.in (LINKER, LINKER_FLAGS): Define.
2272 (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
2273 (ALL_LINKERFLAGS): Define.
2274 (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
2275 (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
2276 (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
2277 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
2278 (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
2279 $(LINKER_FOR_BUILD).
2280 (build/gcov-iov$(build_exeext)): Likewise.
2281
ec0a1343
JB
22822009-05-27 Julian Brown <julian@codesourcery.com>
2283
2284 * gcse.c (target.h): Include.
2285 (can_assign_to_reg_without_clobbers_p): Check that the target allows
2286 copy of argument to a pseudo register.
2287
ac80ba07
DN
22882009-05-27 Diego Novillo <dnovillo@google.com>
2289
2290 * tree-ssa-live.c (dump_scope_block): Document arguments.
2291 (dump_scope_blocks): Document.
2292 (debug_scope_blocks): New.
2293 * tree-flow.h (debug_scope_blocks): Declare.
2294
d1803a17
DC
22952009-05-21 Denis Chertykov <denisc@overta.ru>
2296
f3afc8a7 2297 * doc/contrib.texi (Contributors): Add myself to the list.
d1803a17 2298
51fb7760 22992009-05-27 Olivier Hainque <hainque@adacore.com>
ceadb728
OH
2300
2301 * expr.c (target_align): New function. Alignment the TARGET of an
2302 assignment may be assume to have.
2303 (highest_pow2_factor_for_target): Use it instead of relying on
2304 immediate tree attributes of TARGET, not necessarily honored when
2305 intermediate bitfields are involved.
2306
634fa334
L
23072009-05-27 H.J. Lu <hongjiu.lu@intel.com>
2308
2309 PR target/40266
2310 * config/i386/driver-i386.c (host_detect_local_cpu): Support
2311 AVX, SSE4, AES, PCLMUL and POPCNT.
2312
65332587
DN
23132009-05-27 Diego Novillo <dnovillo@google.com>
2314
2315 * tree-pretty-print.c (dump_location): New.
2316 (dump_generic_node): Call it.
2317 Factor code to handle BLOCK nodes ...
2318 (dump_block_node): ... here.
2319
3e17e31d
RAE
23202009-05-27 Rafael Avila de Espindola <espindola@google.com>
2321
f3afc8a7
UB
2322 * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h
2323 with it.
3e17e31d
RAE
2324 * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
2325 included.
2326 * gcc-plugin.h: Include config.h and system.h.
2327 (IN_GCC): Define if not defined.
2328
5e370570
HPN
23292009-05-27 Hans-Peter Nilsson <hp@axis.com>
2330
2331 PR middle-end/40249
2332 * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
2333 with -fno-inline.
2334
d000f0d9
SZ
23352009-05-27 Shujing Zhao <pearly.zhao@oracle.com>
2336
2337 * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
2338 applicable.
2339 * config/m32r/m32r.h: Ditto.
2340 * config/m32r/m32r.md: Ditto.
2341 * config/m32r/predicates.md: Ditto.
2342
82f331ff
AO
23432009-05-27 Alexandre Oliva <aoliva@redhat.com>
2344
2345 * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
2346
ae2392a9
BS
23472009-05-26 Basile Starynkevitch <basile@starynkevitch.net>
2348
2349 * doc/plugins.texi
2350 (Loading plugins): typo.
2351 (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
2352 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
2353 (Interacting with the GCC Garbage Collector): Added new section.
2354 (Giving information about a plugin): Added new section for
2355 PLUGIN_INFO.
ae2392a9
BS
2356 * ggc.h (ggc_register_root_tab): Added declaration.
2357 * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
2358 (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
2359 (register_callback): Improved comment in declaration.
f3afc8a7
UB
2360 * ggc-common.c (const_ggc_root_tab_t) Added new typedef for vectors.
2361 (extra_root_vec) Added static variable for dynamic roots registration.
ae2392a9
BS
2362 (ggc_register_root_tab) Added new routine.
2363 (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
2364 PLUGIN_GGC_MARKING event.
2365 * ggc-zone.c: Include plugin.h.
2366 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
2367 * ggc-page.c: Include plugin.h.
2368 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
2369 * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
2370 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
2371 (register_callback): check lack of callbacks for
2372 pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
2373 PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
2374 (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
2375 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
2376 * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
2377 dependency on plugin.h.
2378 (plugin.o): Added dependency on ggc.h...
2379
f0cfd3a8
RG
23802009-05-26 Richard Guenther <rguenther@suse.de>
2381
2382 PR middle-end/40248
2383 Revert
2384 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
2385 with mismatched comparison modes.
2386
2387 * expr.c (expand_expr_real_1): Expand the operand of a
2388 VIEW_CONVERT_EXPR in its natural mode.
2389
7980bfb8
ILT
23902009-05-26 Ian Lance Taylor <iant@google.com>
2391
2392 * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
2393 (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
2394 (ALL_COMPILERFLAGS): Define.
2395 (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
2396 (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
2397 (collect2$(exeext), collect2.o): Likewise.
2398 (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
2399 (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
2400 ($(out_object_file), mips-tfile, mips-tdump): Likewise.
2401 (libbackend.o, intl.o, cppdefault.o): Likewise.
2402 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
2403 (build/%.o): Use $(COMPILER_FOR_BUILD).
2404 (build/gen%$(build_exeext)): Likewise.
2405 (build/gcov-iov$(build_exeext)): LIkewise.
2406 * config/t-darwin (darwin.o): Use $(COMPILER).
2407 (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
2408 * config/t-sol2 (sol2-c.o): Likewise.
2409 (sol2.o): Likewise.
2410 * config/t-vxworks (vxworks.o): Likewise.
2411 * config/x-darwin (host-darwin.o): Likewise.
2412 * config/x-hpux (host-hpux.o): Likewise.
2413 * config/x-linux (host-linux.o): Likewise.
2414 * config/x-solaris (host-solaris.o): Likewise.
2415 * config/alpha/x-alpha (driver-alpha.o): Likewise.
2416 * config/arm/t-arm (arm-c.o): Likewise.
2417 * config/arm/t-pe (pe.o): Likewise.
2418 * config/arm/t-wince-pe (pe.o): Likewise.
2419 * config/i386/t-cygming (winnt.o): Likewise.
2420 (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
2421 * config/i386/t-cygwin (cygwin1.o): Likewise.
2422 (cygwin2.o): Likewise.
2423 * config/i386/t-i386 (i386-c.o): Likewise.
2424 * config/i386/t-interix (winnt.o): Likewise.
2425 * config/i386/t-netware (netware.o): Likewise.
2426 * config/i386/t-nwld (nwld.o): Likewise.
2427 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
2428 * config/i386/x-i386 (driver-i386.o): Likewise.
2429 * config/i386/x-cygwin (host-cygwin.o): Likewise.
2430 * config/i386/x-mingw32 (host-mingw32.o): Likewise.
2431 * config/ia64/t-ia64 (ia64-c.o): Likewise.
2432 * config/m32c/t-m32c (m32c-pragma.o): Likewise.
2433 * config/mips/x-native (driver-native.o): Likewise.
2434 * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
2435 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
2436 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
2437 * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
2438 * config/score/t-score-elf (score7.o): Likewise.
2439 (score3.o): Likewise.
2440 * config/sh/t-sh (sh-c.o): Likewise.
2441 * config/sh/t-symbian (sh-c.o): Likewise.
2442 (symbian.o): Likewise.
2443 * config/spu/t-spu-elf (spu-c.o): Likewise.
2444 * config/v850/t-v850 (v850-c.o): Likewise.
2445 * config/v850/t-v850e (v850-c.o): Likewise.
2446
23977d3c
RG
24472009-05-26 Richard Guenther <rguenther@suse.de>
2448
2449 PR tree-optimization/40122
2450 * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
2451 VECTOR_CSTs if possible.
2452 (fold_gimple_assign): Likewise.
2453
3d62b895
RG
24542009-05-26 Richard Guenther <rguenther@suse.de>
2455
2456 PR middle-end/40252
2457 * fold-const.c (fold_binary): Use the correct types for building
2458 rotates.
2459
12346147
RG
24602009-05-26 Richard Guenther <rguenther@suse.de>
2461
2462 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
2463 redundant calls to merge_alias_info.
2464 (bump_vector_ptr): Likewise.
2465 * tree-ssa-copy.c (merge_alias_info): Remove.
2466 (replace_exp_1): Remove call to merge_alias_info.
2467 (propagate_tree_value): Likewise.
2468 (fini_copy_prop): Propagate points-to info.
2469 * tree-flow.h (merge_alias_info): Remove.
2470
807d5e6f
HS
24712009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
2472
2473 * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
2474
85057983
JH
24752009-05-25 Jan Hubicka <jh@suse.cz>
2476
2477 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
2478 * cgraph.h (struct inline_summary): New filed self_wize,
2479 size_inlining_benefit, self_time and time_inlining_benefit.
2480 (struct cgraph_global_info): Replace insns by time ans size fields.
2481 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
2482 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
2483 (ipcp_update_callgraph): Do not touch function bodies.
2484 * ipa-inline.c: Include except.h
2485 (MAX_TIME): New constant.
2486 (overall_insns): Remove.
2487 (leaf_node_p): New.
2488 (overall_size, max_benefit): New static variables.
2489 (cgraph_estimate_time_after_inlining): New function.
2490 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
2491 (cgraph_clone_inlined_nodes): Update size.
2492 (cgraph_mark_inline_edge): Update size.
2493 (cgraph_estimate_growth): Use size info.
2494 (cgraph_check_inline_limits): Check size.
2495 (cgraph_default_inline_p): Likewise.
2496 (cgraph_edge_badness): Compute badness based on benefit and size cost.
2497 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
2498 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
2499 and times.
85057983
JH
2500 (cgraph_decide_inlining): Likewise.
2501 (cgraph_decide_inlining_incrementally): Likewise; honor
2502 PARAM_EARLY_INLINING_INSNS.
2503 (likely_eliminated_by_inlining_p): New predicate.
2504 (estimate_function_body_sizes): New function.
2505 (compute_inline_parameters): Use it.
2506 * except.c (must_not_throw_labels): New function.
2507 * except.h (must_not_throw_labels): Declare.
2508 * tree-inline.c (init_inline_once): Kill inlining_weigths
2509 * tree-ssa-structalias.c: Avoid uninitialized warning.
2510 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
2511 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
2512 (PARAM_INLINE_CALL_COST): Remove.
2513 (PARAM_EARLY_INLINING_INSNS): New.
2514
01df5c8a
RG
25152009-05-25 Richard Guenther <rguenther@suse.de>
2516
2517 PR tree-optimization/36327
2518 * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
f3afc8a7 2519 callback for reference translation or lookup at the point of may-defs.
01df5c8a
RG
2520 * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
2521 * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
2522 for union COMPONENT_REFs.
2523 (vn_reference_lookup_3): New callback. Lookup from memset
2524 and CONSTRUCTOR assignment, translate through struct copies.
2525 (vn_reference_lookup_pieces): Make sure to not free the
2526 passed operands array. Adjust walk_non_aliased_vuses call.
2527 (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
2528 make sure we do not leak memory.
2529
6b8ed145
RG
25302009-05-25 Richard Guenther <rguenther@suse.de>
2531
2532 * tree-ssa-alias.h (dump_points_to_solution): Declare.
2533 * tree-inline.c (expand_call_inline): Reset the escaped and
2534 callused solutions.
2535 * tree-ssa-structalias.c (pass_build_ealias): New.
2536 * tree-pass.h (pass_build_ealias): Declare.
2537 * passes.c (init_optimization_passes): Add PTA during
2538 early optimizations.
2539 * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
2540 and CALLUSED solutions.
2541 (dump_points_to_solution): New function, split out from ...
2542 (dump_points_to_info_for): ... here.
2543 * tree-parloops.c (parallelize_loops): Reset the escaped and
2544 callused solutions.
2545
0adcf178
RO
25462009-05-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2547
2548 PR bootstrap/40027
2549 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
2550 * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
2551
12aaf609
IR
25522009-05-25 Ira Rosen <irar@il.ibm.com>
2553
2554 PR tree-optimization/40238
2555 * tree-vect-stmts.c (vect_init_vector): Insert initialization
2556 statements after basic block's labels.
2557 * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info()
2558 to free the allocated memory.
2559
7f9a14e3
KK
25602009-05-24 Kaz Kojima <kkojima@gcc.gnu.org>
2561
2562 * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
2563 return address with a USE.
2564
b842d478
RG
25652009-05-24 Richard Guenther <rguenther@suse.de>
2566
2567 PR middle-end/40233
2568 * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
2569 array type from the main variant of the inner type.
2570
8db7b33f
JBG
25712009-05-24 Jan-Benedict Glaw <jbglaw@lug-owl.de>
2572
2573 * config/vax/vax-protos.h (legitimate_constant_address_p): Change
2574 definition to bool (from int) to un-break build.
2575 (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
2576
cff4e50d
PB
25772009-05-24 Paolo Bonzini <bonzini@gnu.org>
2578
2579 * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
2580 discard_stmt_changes): Delete.
2581 * tree-ssa-operands.c (scb_stack): Delete.
2582 (init_ssa_operands): Do not initialize it.
2583 (fini_ssa_operands): Do not free it.
2584 (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
2585
2586 * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with
2587 update_stmt, remove the others. Fix comments.
2588 * tree-dfa.c (optimize_stack_restore): Likewise.
2589 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
2590 * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
2591 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
2592 * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
2593 Likewise.
2594 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
2595 * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
f3afc8a7
UB
2596 (dom_opt_finalize_block): Likewise, adjusting access to
2597 stmts_to_rescan.
cff4e50d
PB
2598 (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
2599 (stmts_to_rescan): Change item type to gimple.
2600 (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
2601
a70d6342
IR
26022009-05-24 Ira Rosen <irar@il.ibm.com>
2603
2604 * doc/passes.texi (Tree-SSA passes): Document SLP pass.
2605 * tree-pass.h (pass_slp_vectorize): New pass.
2606 * params.h (SLP_MAX_INSNS_IN_BB): Define.
2607 * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
2608 * tree-vectorizer.c (timevar.h): Include.
2609 (user_vect_verbosity_level): Declare.
2610 (vect_location): Fix comment.
2611 (vect_set_verbosity_level): Update user_vect_verbosity_level
2612 instead of vect_verbosity_level.
2613 (vect_set_dump_settings): Add an argument. Ignore user defined
2614 verbosity if dump flags require higher level of verbosity. Print to
2615 stderr only for loop vectorization.
2616 (vectorize_loops): Update call to vect_set_dump_settings.
2617 (execute_vect_slp): New function.
2618 (gate_vect_slp): Likewise.
2619 (struct gimple_opt_pass pass_slp_vectorize): New.
2620 * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
2621 access its members.
2622 (vec_info_for_bb): New function.
2623 (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
2624 (VECTORIZATION_ENABLED): New macro.
2625 (SLP_ENABLED, SLP_DISABLED): Likewise.
2626 (vect_is_simple_use): Add bb_vec_info argument.
2627 (new_stmt_vec_info, vect_analyze_data_ref_dependences,
2628 vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
2629 vect_analyze_data_ref_accesses, vect_analyze_data_refs,
2630 vect_schedule_slp, vect_analyze_slp): Likewise.
2631 (vect_analyze_stmt): Add slp_tree argument.
2632 (find_bb_location): Declare.
2633 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
2634 * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
2635 (vect_analyze_loop_operations, vect_analyze_loop,
2636 get_initial_def_for_induction, vect_create_epilog_for_reduction,
2637 vect_finalize_reduction, vectorizable_reduction,
2638 vectorizable_live_operation, vect_transform_loop): Likewise.
2639 * tree-data-ref.c (dr_analyze_innermost): Update comment,
2640 skip evolution analysis if analyzing a basic block.
2641 (dr_analyze_indices): Likewise.
2642 (initialize_data_dependence_relation): Skip the test whether the
2643 object is invariant for basic blocks.
2644 (compute_all_dependences): Skip dependence analysis for data
2645 references in basic blocks.
2646 (find_data_references_in_stmt): Don't fail in case of invariant
2647 access in basic block.
2648 (find_data_references_in_bb): New function.
2649 (find_data_references_in_loop): Move code to
782dc37a 2650 find_data_references_in_bb and add a call to it.
a70d6342
IR
2651 (compute_data_dependences_for_bb): New function.
2652 * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
2653 * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
2654 that STEP is 0.
2655 (vect_analyze_data_ref_dependence): Check for interleaving in case of
2656 unknown dependence in basic block and fail in case of dependence in
2657 basic block.
2658 (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
2659 dependence instances from either loop or basic block vectorization
2660 info.
2661 (vect_compute_data_ref_alignment): Check if it is loop vectorization
2662 before calling nested_in_vect_loop_p.
2663 (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
2664 dependence instances from either loop or basic block vectorization
2665 info.
2666 (vect_verify_datarefs_alignment): Likewise.
2667 (vect_enhance_data_refs_alignment): Adjust function calls.
2668 (vect_analyze_data_refs_alignment): Likewise.
2669 (vect_analyze_group_access): Fix printing. Skip different checks if
2670 DR_STEP is 0. Keep strided stores either in loop or basic block
2671 vectorization data structure. Fix indentation.
2672 (vect_analyze_data_ref_access): Fix comments, allow zero step in
2673 basic blocks.
2674 (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
2675 dependence instances from either loop or basic block vectorization
2676 info.
2677 (vect_analyze_data_refs): Update comment. Call
2678 compute_data_dependences_for_bb to analyze basic blocks.
2679 (vect_create_addr_base_for_vector_ref): Check for outer loop only in
2680 case of loop vectorization. In case of basic block vectorization use
782dc37a 2681 data-ref itself as a base.
a70d6342
IR
2682 (vect_create_data_ref_ptr): In case of basic block vectorization:
2683 don't advance the pointer, add new statements before the current
2684 statement. Adjust function calls.
2685 (vect_supportable_dr_alignment): Support only aligned accesses in
2686 basic block vectorization.
2687 * common.opt (ftree-slp-vectorize): New flag.
2688 * tree-vect-patterns.c (widened_name_p): Adjust function calls.
2689 (vect_pattern_recog_1): Likewise.
2690 * tree-vect-stmts.c (process_use): Likewise.
2691 (vect_init_vector): Add new statements in the beginning of the basic
2692 block in case of basic block SLP.
2693 (vect_get_vec_def_for_operand): Adjust function calls.
2694 (vect_finish_stmt_generation): Likewise.
2695 (vectorizable_call): Add assert that it is loop vectorization, adjust
2696 function calls.
2697 (vectorizable_conversion, vectorizable_assignment): Likewise.
2698 (vectorizable_operation): In case of basic block SLP, take
2699 vectorization factor from statement's type and skip the relevance
2700 check. Adjust function calls.
2701 (vectorizable_type_demotion): Add assert that it is loop
2702 vectorization, adjust function calls.
2703 (vectorizable_type_promotion): Likewise.
2704 (vectorizable_store): Check for outer loop only in case of loop
2705 vectorization. Adjust function calls. For basic blocks, skip the
2706 relevance check and don't advance pointers.
2707 (vectorizable_load): Likewise.
2708 (vectorizable_condition): Add assert that it is loop vectorization,
2709 adjust function calls.
2710 (vect_analyze_stmt): Add argument. In case of basic block SLP, check
2711 that it is not reduction, get vector type, call only supported
782dc37a 2712 functions, skip loop specific parts.
a70d6342
IR
2713 (vect_transform_stmt): Check for outer loop only in case of loop
2714 vectorization.
2715 (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
2716 (vect_is_simple_use): Fix comment, add new argument, fix conditions
2717 for external definition.
2718 * passes.c (pass_slp_vectorize): New pass.
2719 * tree-vect-slp.c (find_bb_location): New function.
2720 (vect_get_and_check_slp_defs): Add argument, adjust function calls,
2721 check for patterns only in loops.
2722 (vect_build_slp_tree): Add argument, adjust function calls, fail in
2723 case of multiple types in basic block SLP.
2724 (vect_mark_slp_stmts_relevant): New function.
2725 (vect_supported_load_permutation_p): Fix comment.
2726 (vect_analyze_slp_instance): Add argument. In case of basic block
2727 SLP, take vectorization factor from statement's type, check that
2728 unrolling factor is 1. Adjust function call. Save SLP instance in
2729 either loop or basic block vectorization structure. Return FALSE,
2730 if SLP failed.
2731 (vect_analyze_slp): Add argument. Get strided stores groups from
2732 either loop or basic block vectorization structure. Return FALSE
2733 if basic block SLP failed.
2734 (new_bb_vec_info): New function.
2735 (destroy_bb_vec_info, vect_slp_analyze_node_operations,
2736 vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
2737 (vect_schedule_slp): Add argument. Get SLP instances from either
2738 loop or basic block vectorization structure. Set vectorization factor
2739 to be 1 for basic block SLP.
2740 (vect_slp_transform_bb): New function.
2741 * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
2742
0676c393
MM
27432009-05-23 Mark Mitchell <mark@codesourcery.com>
2744
2745 * final.c (shorten_branches): Do not align labels for jump tables.
2746 (final_scan_insn): Use JUMP_TABLE_DATA_P.
2747
94324dae
EB
27482009-05-23 Eric Botcazou <ebotcazou@adacore.com>
2749
2750 * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
2751 Remove outdated reference to flow.c and fix nits.
2752 * doc/gccint.texi: Tweak RTL description.
2753 * doc/rtl.texi: Likewise.
2754
92bffc14
DC
27552009-05-23 Denis Chertykov <chertykov@gmail.com>
2756
2757 * config/avr/avr.c: Change my email address.
2758 * config/avr/avr.h: Likewise.
2759 * config/avr/avr.md: Likewise.
2760 * config/avr/avr-protos.h: Likewise.
2761 * config/avr/libgcc.S: Likewise.
2762
eec9405e
TS
27632009-05-22 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
2764
2765 * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
2766 (spu_split_load, spu_split_store): Change return type to int.
2767 (spu_split_convert): Declare.
2768 * config/spu/predicates.md (spu_mem_operand): Remove.
2769 (spu_mov_operand): Update.
2770 (spu_dest_operand, shiftrt_operator, extend_operator): Define.
2771 * config/spu/spu.c (regno_aligned_for_load): Remove.
2772 (reg_aligned_for_addr, spu_expand_load): Define.
2773 (spu_expand_extv): Reimplement and handle MEM.
2774 (spu_expand_insv): Handle MEM.
2775 (spu_sched_reorder): Handle insn's with length 0.
2776 (spu_legitimate_address_p): Reimplement.
2777 (store_with_one_insn_p): Return TRUE for any mode with size
2778 larger than 16 bytes.
2779 (address_needs_split): Define.
2780 (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
2781 operands.
2782 (spu_convert_move): Define.
782dc37a 2783 (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
eec9405e
TS
2784 (spu_split_store): Change all MEM's to TImode.
2785 (spu_init_expanders): Preallocate registers that correspond to
2786 LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
2787 mark_reg_pointer.
2788 (spu_split_convert): Define.
2789 * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
2790 (_move<mode>, _movdi, _movti): Update predicate and condition.
2791 (load, store): Change to define_split.
2792 (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
2793 extend<mode>ti2.
2794 (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
2795 (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
2796 define_insn_and_split of lshr<mode>3.
2797 (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
2798 (<v>ashr<mode>3_imm): Define.
2799 (extv, extzv, insv): Allow MEM operands.
2800 (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
2801 shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
2802 sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
2803 (_spu_convert2): Change to define_insn_and_split and remove the
2804 corresponding define_peephole2.
2805 (stack_protect_set, stack_protect_test, stack_protect_test_si):
2806 Change predicates to memory_operand.
2807
7d31a807
MM
28082009-05-22 Mark Mitchell <mark@codesourcery.com>
2809
2810 * config/arm/thumb2.md: Add 16-bit multiply instructions.
7d31a807 2811
d021d274
MM
28122009-05-21 Michael Meissner <meissner@linux.vnet.ibm.com>
2813
2814 PR tree-optimization/40219
2815 * tree.c (iterative_hash_expr): Make sure the builtin function is
2816 a normal builtin function and not a front end or back end builtin
2817 before indexing into the built_in_decls array.
2818
4d7a65ea
RG
28192009-05-22 Richard Guenther <rguenther@suse.de>
2820
2821 PR middle-end/38964
2822 * alias.c (write_dependence_p): Do not use TBAA for answering
2823 anti-dependence or output-dependence.
782dc37a 2824 * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
4d7a65ea
RG
2825 (emit_pointer_definition): Remove.
2826 (emit_alias_warning): Likewise.
2827 (find_what_var_points_to): Remove TBAA pruning code.
2828 (find_what_p_points_to): Likewise. Do not warn about strict-aliasing
2829 violations.
2830 (compute_points_to_sets): Remove code computing the set of
2831 dereferenced pointers.
2832 * tree-data-ref.c (dr_may_alias_p): Properly use the split
2833 oracle for querying anti and output dependencies.
2834 * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
2835 if TBAA may be applied.
2836 (refs_anti_dependent_p): New function.
2837 (refs_output_dependent_p): Likewise.
2838 * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
2839 (refs_output_dependent_p): Likewise.
2840 * doc/tree-ssa.texi (Memory model): New section.
2841 * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
2842 * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
2843 * cfgexpand.c (expand_gimple_basic_block): Do not handle
2844 GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
2845 * expr.c (expand_expr_real_1): Likewise.
2846 * gimple-low.c (lower_stmt): Likewise.
2847 * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
2848 (dump_gimple_cdt): Remove.
2849 * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
2850 (gimple_size): Likewise.
2851 (walk_gimple_op): Likewise.
2852 (is_gimple_stmt): Likewise.
2853 (walk_stmt_load_store_addr_ops): Likewise.
2854 (gimple_build_cdt): Remove.
2855 * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
2856 * gimple.h (gimple_cdt_new_type): Remove.
2857 (gimple_cdt_new_type_ptr): Likewise.
2858 (gimple_cdt_set_new_type): Likewise.
2859 (gimple_cdt_location): Likewise.
2860 (gimple_cdt_location_ptr): Likewise.
2861 (gimple_cdt_set_location): Likewise.
2862 * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
2863 * tree-cfg.c (remove_useless_stmts_1): Do not handle
2864 GIMPLE_CHANGE_DYNAMIC_TYPE.
2865 (verify_types_in_gimple_stmt): Likewise.
2866 * tree-inline.c (estimate_num_insns): Likewise.
2867 (expand_call_inline): Do not copy DECL_NO_TBAA_P.
2868 (copy_decl_to_var): Likewise.
2869 (copy_result_decl_to_var): Likewise.
2870 * tree-pretty-print.c (dump_generic_node): Do not handle
2871 CHANGE_DYNAMIC_TYPE_EXPR.
2872 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
2873 * tree-ssa-operands.c (get_expr_operands): Likewise.
2874 * tree-ssa-structalias.c (struct variable_info): Remove
2875 no_tbaa_pruning member.
2876 (new_var_info): Do not set it based on DECL_NO_TBAA_P.
2877 (unify_nodes): Do not copy it.
2878 (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
2879 (dump_solution_for_var): Do not dump no_tbaa_pruning state.
2880 (set_uids_in_ptset): Do not check it.
2881 (find_what_var_points_to): Likewise.
2882 (compute_tbaa_pruning): Remove.
2883 (compute_points_to_sets): Do not call it.
2884 * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
2885 * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
2886 * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
2887 (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
2888 (DECL_NO_TBAA_P): Likewise.
2889 (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
2890 * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
2891 (expand_omp_atomic_pipeline): Do not set it.
2892 * print-tree.c (print_node): Do not dump it.
2893 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
2894 redundant check.
2895
83a6ac60
VM
28962009-05-22 Vladimir Makarov <vmakarov@redhat.com>
2897
2898 PR target/39856
2899 * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
2900 for clobber.
2901
fe2978fb
MM
29022009-05-22 Mark Mitchell <mark@codesourcery.com>
2903
2904 * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
2905 non-external.
2906
134ef638
BE
29072009-05-22 Ben Elliston <bje@au.ibm.com>
2908
2909 * Makefile.in (bversion.h, s-bversion): New targets.
2910 (TOPLEV_H): Add bversion.h.
2911 * toplev.h: Include "bversion.h".
2912 (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
2913 the __format__ attribute only if compiling with the same version
2914 of GCC as the sources (the "build version").
2915
52fc669d
BE
29162009-05-22 Ben Elliston <bje@au.ibm.com>
2917
2918 * c-format.c (handle_format_attribute): Fix comment typo.
2919
583ca921
SE
29202009-05-21 Steve Ellcey <sje@cup.hp.com>
2921
2922 PR target/37846
2923 * config/ia64/ia64.opt (mfused-madd): New.
2924 * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
2925 * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
2926 * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
2927 madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
2928 nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
2929 msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
2930 nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
2931 * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms
2932 instruction if !TARGET_FUSED_MADD.
2933 (fpma, fpms): Remove colon from name.
2934
150e3929
RG
29352009-05-22 Richard Guenther <rguenther@suse.de>
2936
2937 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
2938 TMR_ORIGINAL. Always either record TMR_SYMBOL or TMR_BASE.
2939 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
2940 TARGET_MEM_REF.
2941 (create_expression_by_pieces): Only convert if necessary.
2942 * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
2943 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
2944
9a2b090c
AN
29452009-05-21 Adam Nemet <anemet@caviumnetworks.com>
2946
2947 * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
2948 regular pattern from a template and rename it ...
2949 (*extzv_truncsi_exts): ... to this.
2950
33b92c9d
RG
29512009-05-21 Richard Guenther <rguenther@suse.de>
2952
2953 * cgraph.h (struct cgraph_node): Remove inline_decl member.
2954 * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
2955 (cgraph_default_inline_p): Likewise.
2956 (cgraph_decide_inlining_incrementally): Likewise.
2957
cabf85c3
L
29582009-05-21 H.J. Lu <hongjiu.lu@intel.com>
2959 Uros Bizjak <ubizjak@gmail.com>
2960
2961 * config/i386/cpuid.h (bit_MOVBE): New.
2962
2963 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
2964
2965 * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
2966 (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
2967 (ix86_handle_option): Handle OPT_mmovbe.
2968 (ix86_target_string): Add -mmovbe.
2969 (pta_flags): Add PTA_MOVBE.
2970 (processor_alias_table): Add PTA_MOVBE to "atom".
2971 (override_options): Handle PTA_MOVBE.
2972
2973 * config/i386/i386.h (TARGET_MOVBE): New.
2974
2975 * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
2976 (*bswapsi_movbe): New.
2977 (*bswapdi_movbe): Likewise.
2978 (bswapdi2): Renamed to ...
2979 (*bswapdi_1): This.
2980 (bswapdi2): New expander.
2981
2982 * config/i386/i386.opt (mmovbe): New.
2983
2984 * doc/invoke.texi: Document -mmovbe.
2985
9fefa0aa
TG
29862009-05-21 Taras Glek <tglek@mozilla.com>
2987
2988 * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
2989 * gcc-plugin.h (plugin_init): Updated signature.
2990 * gcc-plugin.h (plugin_name_args): Moved to this header.
cabf85c3
L
2991 * doc/plugins.texi (plugin_init): Updated documention to reflect
2992 API change.
9fefa0aa
TG
2993 * doc/plugins.texi (plugin_name_args): Added to documention.
2994
1ea9fe56
MM
29952009-05-21 Mark Mitchell <mark@codesourcery.com>
2996
2997 * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
2998 (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
2999
52f84254
SZ
30002009-05-21 Shujing Zhao <pearly.zhao@oracle.com>
3001
3002 * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
3003 JUMP_TABLE_DATA_P predicates where applicable.
3004 * config/i386/predicates.md: Ditto.
3005 * config/i386/sse.md: Ditto.
3006
a952487c
JJ
30072009-05-21 Jakub Jelinek <jakub@redhat.com>
3008
93cac287
JJ
3009 * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
3010 operand2 -128 override length_immediate attribute to 1.
3011 * config/i386/predicates.md (constm128_operand): New predicate.
3012
a952487c
JJ
3013 * config/i386/i386.c (memory_address_length): Handle %r12
3014 the same as %rsp and %r13 the same as %rbp. For %rsp and %rbp
3015 also check REGNO.
3016 (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
3017 mode look through optional ZERO_EXTEND and SUBREG.
3018 * config/i386/i386.md (R12_REG): New define_constant.
3019 (prefix_data16): For sse unit set also for MODE_TI insns.
3020 (prefix_rex): For -m32 always return 0. For TYPE_IMOVX
3021 insns set if operand 1 is ext_QIreg_operand.
3022 (modrm): For TYPE_IMOV clear only if not MODE_DI. For
3023 TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
3024 immediate.
3025 (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
3026 mode from MODE_DI to MODE_SI.
3027 (movdi_1_rex64): Override modrm and length_immediate attributes
3028 only for movabs (TYPE_IMOV, alternative 2).
3029 (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
3030 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
3031 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
3032 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
3033 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
3034 prefix_rex attribute if DImode.
3035 (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
3036 *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
3037 *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
3038 *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
3039 attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
3040 (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
3041 Likewise. For TYPE_IMOV clear length_immediate attribute.
3042 (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
3043 *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
3044 *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
3045 *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
3046 *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
3047 or one operand TYPE_ISHIFT.
3048 (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
3049 *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
3050 *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
3051 *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
3052 *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
3053 *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
3054 *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
3055 *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
3056 *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
3057 *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
3058 *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
3059 *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
3060 *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
3061 *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
3062 *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
3063 *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
3064 *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
3065 set mode attribute, don't override length attribute.
3066 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
3067 to 1.
3068 (return_internal_long): Set length attribute to 2 instead of 1.
3069 (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
3070 *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
3071 prefix_rex attribute.
782dc37a
UB
3072 * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
3073 New predicates.
3074 (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
a952487c 3075
64af62c2
RR
30762009-05-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3077
3078 * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
3079
c166b898
ILT
30802009-05-20 Ian Lance Taylor <iant@google.com>
3081
3082 * tree.c (build_tree_list_vec_stat): New function.
3083 (ctor_to_vec): New function.
3084 (build_nt_call_vec): New function.
3085 (build_call_array): Change args to be a const pointer.
3086 (build_call_vec): New function.
3087 * tree.h (build_nt_call_vec): Declare.
3088 (build_tree_list_vec_stat): Declare.
3089 (build_tree_list_vec): Define.
3090 (build_call_array): Update declaration.
3091 (build_call_vec): Declare.
3092 (ctor_to_vec): Declare.
3093 * c-common.c (tree_vector_cache): New static variable.
3094 (make_tree_vector): New function.
3095 (release_tree_vector): New function.
3096 (make_tree_vector_single): New function.
3097 (make_tree_vector_copy): New function.
3098 * c-common.h (tree_vector_cache, make_tree_vector): Declare.
3099 (make_tree_vector_single, make_tree_vector_copy): Declare.
3100 * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
3101 (c_parser_expr_list): Don't manage cache here, instead call
3102 make_tree_vector.
3103 (c_parser_release_expr_list): Remove static function.
3104 (c_parser_vec_to_tree_list): Remove static function.
3105 (c_parser_attributes): Call build_tree_list_vec instead of
3106 c_parser_vec_to_tree_list. Call release_tree_vector instead of
3107 c_parser_release_expr_list.
3108 (c_parser_postfix_expression_after_primary): Likewise.
3109 (c_parser_objc_keywordexpr): Likewise.
3110
40449a90
SL
31112009-05-20 Sandra Loosemore <sandra@codesourcery.com>
3112
3113 * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
3114 TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
3115 TARGET_CONVERT_TO_TYPE.
3116 * hooks.c (hook_tree_const_tree_null): Define.
3117 * hooks.h (hook_tree_const_tree_null): Declare.
3118 * target.h (struct gcc_target): Add invalid_parameter_type,
3119 invalid_return_type, promoted_type, and convert_to_type fields.
3120 * target-def.h: (TARGET_INVALID_PARAMETER_TYPE): Define.
3121 (TARGET_INVALID_RETURN_TYPE): Define.
3122 (TARGET_PROMOTED_TYPE): Define.
3123 (TARGET_CONVERT_TO_TYPE): Define.
3124 (TARGET_INITIALIZER): Update for new fields.
3125 * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
3126 (grokparms): Check targetm.invalid_parameter_type.
3127 * c-typeck.c (default_conversion): Check targetm.promoted_type.
3128 * c-convert.c (convert): Check targetm.convert_to_type.
3129
642d97ff
AN
31302009-05-20 Adam Nemet <anemet@caviumnetworks.com>
3131
3132 * config/mips/mips.md (*extenddi_truncate<mode>,
3133 *extendsi_truncate<mode>): Emit exts if supported. Add attribute
3134 defintions.
3135 (*extendhi_truncateqi): New define_insn_and_sptit.
3136
776248b8
JJ
31372009-05-20 Jakub Jelinek <jakub@redhat.com>
3138
3139 PR middle-end/40204
3140 * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
782dc37a 3141 recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
776248b8 3142
d98e8686
EB
31432009-05-20 Eric Botcazou <ebotcazou@adacore.com>
3144
3145 * fold-const.c (build_fold_addr_expr_with_type): Take the address of
3146 the operand of VIEW_CONVERT_EXPR.
3147
37c50435
L
31482009-05-20 H.J. Lu <hongjiu.lu@intel.com>
3149
3150 * config/i386/driver-i386.c (host_detect_local_cpu): Check
f3afc8a7 3151 extended family and model for Intel processors. Support Intel Atom.
37c50435 3152
dbb6088f
OH
31532009-05-20 Olivier Hainque <hainque@adacore.com>
3154
3155 * gstab.h (stab_code_type): Define, to be used instead of the
3156 __stab_debug_code enum, made anonymous. Add 2009 to the copyright
3157 notice.
3158 * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
3159 occurrences by stab_code_type.
3160 * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
3161
7ec49257
MJ
31622009-05-20 Martin Jambor <mjambor@suse.cz>
3163
3164 * tree-flow.h (insert_edge_copies_seq): Undeclare.
3165 (sra_insert_before): Likewise.
3166 (sra_insert_after): Likewise.
3167 (sra_init_cache): Likewise.
3168 (sra_type_can_be_decomposed_p): Likewise.
3169 * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
3170 * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
3171 (sra_insert_before): Likewise.
3172 (sra_insert_after): Likewise.
3173 (sra_init_cache): Likewise.
3174 (insert_edge_copies_seq): Made static and moved upwards.
3175
3176 * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
3177 case.
3178
3179 * tree-flow-inline.h (contains_view_convert_expr_p): New function.
3180
3181 * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
3182 (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
3183 simple copies.
3184
0328ae4d
RG
31852009-05-20 Richard Guenther <rguenther@suse.de>
3186
3187 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
3188 with mismatched comparison modes.
3189
a7994a57 31902009-05-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
782dc37a 3191
a7994a57 3192 * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
782dc37a
UB
3193 (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
3194 * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
3195 with shifts for Thumb2.
3196 (orsi_notsi): New for orn.
3197 (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
3198 (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
3199 * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
3200 (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
3201 Don't invert remainder for IOR.
a7994a57 3202
e36dc339
ZD
32032009-05-19 Zdenek Dvorak <ook@ucw.cz>
3204
3205 PR tree-optimization/40087
3206 * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
3207 number_of_iterations_ne): Rename never_infinite argument.
3208 (number_of_iterations_lt_to_ne, number_of_iterations_lt,
3209 number_of_iterations_le): Handle pointer-type ivs when
3210 exit_must_be_taken is false.
3211 (number_of_iterations_cond): Do not always assume that
3212 exit_must_be_taken if the control variable is a pointer.
3213
5cfd5d9b
AP
32142009-05-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
3215
3216 * c-typeck.c (build_binary_op): Allow % on integal vectors.
3217 * doc/extend.texi (Vector Extension): Document that % is allowed too.
3218
2f1c7156
L
32192009-05-19 H.J. Lu <hongjiu.lu@intel.com>
3220
3221 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
3222 ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
3223
7bb27074
MLI
32242009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
3225
3226 PR c/40172
3227 * c.opt (Wlogical-op): Disabled by default.
3228 * c-opt (c_common_post_options): Do not enable Wlogical-op with
3229 Wextra.
3230 * doc/invoke.texi (Wlogical-op): Likewise.
3231
5aefc6a0
EB
32322009-05-19 Eric Botcazou <ebotcazou@adacore.com>
3233
3234 * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
3235 into CASE_CONVERT.
3236 <PLUS_EXPR>: Strip useless type conversions instead of type nops.
3237 Propagate the type of the first operand.
3238 <ASSERT_EXPR>: Simplify.
3239 (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
3240 Rewrite using the RHS code as discriminant.
3241 <NOP_EXPR>: Turn into CASE_CONVERT.
3242 <PLUS_EXPR>: Propagate the type of the first operand.
3243
f3a83111
SE
32442009-05-19 Steve Ellcey <sje@cup.hp.com>
3245
3246 * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
3247 (ia64_dconst_0_375): New.
3248 * config/ia64/ia64.c (ia64_override_options): Remove
3249 -minline-sqrt-min-latency warning.
3250 (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
3251 (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
3252 * config/ia64/ia64.md (*sqrt_approx): Remove.
3253 (sqrtsf2): Remove #if 0.
3254 (sqrtsf2_internal_thr): Rewrite and move to div.md.
3255 (sqrtdf): Remove assert.
3256 (sqrtdf2_internal_thr): Rewrite and move to div.md.
3257 (sqrtxf2): Remove #if 0.
3258 (sqrtxf2_internal_thr): Rewrite and move to div.md.
3259 * div.md (sqrt_approx_rf): New.
3260 (sqrtsf2_internal_thr): New implementation.
3261 (sqrtsf2_internal_lat): New.
3262 (sqrtdf2_internal_thr: New implementation.
3263 (sqrtxf2_internal): New implementation.
3264
1ffc7157
FXC
32652009-05-19 Francois-Xavier Coudert <fxcoudert@gmail.com>
3266 Hans-Peter Nilsson <hp@axis.com>
3267
3268 * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
3269 (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
3270 (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
3271 (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
3272 (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
3273 (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
3274 (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
3275 (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
3276 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
3277 (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
3278 * c-common.c: ...from here.
3279
db91d9ef
MLI
32802009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
3281
f3afc8a7 3282 * c-common.c (warn_logical_operator): Remove unnecessary conditionals.
db91d9ef 3283
bbb9d91f
KG
32842009-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3285
3286 * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
3287
ce883f54
BE
32882009-05-19 Ben Elliston <bje@au.ibm.com>
3289
3290 * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
3291 assignments with memcpy calls.
3292 (add_fdes): Likewise.
3293 (binary_search_unencoded_fdes): Likewise.
3294 (linear_search_fdes): Eliminate type puns.
3295
377f099a
RG
32962009-05-19 Richard Guenther <rguenther@suse.de>
3297
3298 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
3299 not falsely claim to have propagated into all uses.
3300
848bc769
BE
33012009-05-19 Ben Elliston <bje@au.ibm.com>
3302
3303 * doc/invoke.texi (C Dialect Options): Update OpenMP specification
3304 version to v3.0.
3305
1bb99877
KK
33062009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
3307
3308 * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
3309 * config/sh/sh.c (sh_legitimate_address_p): Make static.
3310 (TARGET_LEGITIMATE_ADDRESS_P): New.
3311 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3312 * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
3313
82725547
DS
33142009-05-18 Dodji Seketeli <dodji@redhat.com>
3315
3316 PR debug/40109
3317 * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
3318 child of the containing namespace's DIE.
3319
f6a1e430
AN
33202009-05-18 Adam Nemet <anemet@caviumnetworks.com>
3321
3322 * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
3323 *zero_extendhi_truncqi): Move after the zero_extend patterns.
3324 (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
3325 extend patterns.
3326
6a90d232
L
33272009-05-18 H.J. Lu <hongjiu.lu@intel.com>
3328
3329 PR target/39942
3330 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
3331 gen_align with gen_pad.
3332 (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
3333 #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
3334
3335 * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
3336 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
3337
3338 * config/i386/i386.md (align): Renamed to ...
3339 (pad): This. Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
3340 ASM_OUTPUT_MAX_SKIP_PAD.
3341
c4406f74
AS
33422009-05-18 Andreas Schwab <schwab@linux-m68k.org>
3343
06555043
AS
3344 * config.gcc: Fix variable syntax.
3345
c4406f74
AS
3346 PR target/39531
3347 * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
3348 before calling exact_log2.
3349 (output_iorsi3): Likewise.
3350 (output_xorsi3): Likewise.
3351
99052692
KK
33522009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
3353
3354 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
3355 for the none zero constant operand except for EQ and NE
3356 comprisons even when the first operand is R0.
3357
f4aa3848
AK
33582009-05-18 Andreas Krebbel <krebbel1@de.ibm.com>
3359
3360 * config/s390/2064.md: Remove trailing whitespaces.
3361 * config/s390/2084.md: Likewise.
3362 * config/s390/constraints.md: Likewise.
3363 * config/s390/fixdfdi.h: Likewise.
3364 * config/s390/libgcc-glibc.ver: Likewise.
3365 * config/s390/s390-modes.def: Likewise.
3366 * config/s390/s390-protos.h: Likewise.
3367 * config/s390/s390.c: Likewise.
3368 * config/s390/s390.h: Likewise.
3369 * config/s390/s390.md: Likewise.
3370 * config/s390/tpf-unwind.h: Likewise.
3371
ab7256e4
MK
33722009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
3373
3374 * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
3375
75df395f
MK
33762009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
3377
3378 M68K TLS support.
3379 * configure.ac (m68k-*-*): Check if binutils support TLS.
3380 * configure: Regenerate.
3381 * config/m68k/predicates.md (symbolic_operand): Extend comment.
3382 * config/m68k/constraints.md (Cu): New constraint.
3383 * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
3384 (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
3385 (movsi): Handle TLS symbols.
3386 (addsi3_5200): Handle XTLS symbols, indent.
3387 * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
3388 (m68k_tls_reference_p): Declare.
3389 (m68k_legitimize_address): Declare.
3390 (m68k_unwrap_symbol): Declare.
3391 * config/m68k/m68k.opt (mxtls): New option.
3392 * config/m68k/m68k.c (ggc.h): Include.
3393 (m68k_output_dwarf_dtprel): Implement hook.
3394 (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
3395 (m68k_expand_prologue): Load GOT pointer when function needs it.
3396 (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
3397 (m68k_legitimate_constant_address_p): Same.
3398 (m68k_decompose_address): Handle TLS references.
3399 (m68k_get_gp): New static function.
3400 (enum m68k_reloc): New contants.
3401 (TLS_RELOC_P): New macro.
3402 (m68k_wrap_symbol): New static function.
3403 (m68k_unwrap_symbol): New function.
3404 (m68k_final_prescan_insn_1): New static function.
3405 (m68k_final_prescan_insn): New function.
3406 (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
3407 functions.
3408 (legitimize_pic_address): Handle TLS references..
3409 (m68k_tls_get_addr, m68k_get_tls_get_addr)
3410 (m68k_libcall_value_in_a0_p)
3411 (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
3412 (m68k_call_m68k_read_tp): Helper variables and functions for ...
3413 (m68k_legitimize_tls_address): Handle TLS references.
3414 (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
3415 New functions.
3416 (m68k_legitimize_address): Handle TLS symbols.
3417 (m68k_get_reloc_decoration): New static function.
3418 (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
3419 UNSPEC_RELOC32.
3420 (m68k_output_dwarf_dtprel): Implement hook.
3421 (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
3422 (m68k_libcall_value): Return result in A0 instead of D0 when asked by
3423 m68k_call_* routines.
3424 (sched_attr_op_type): Handle TLS symbols.
3425 (gt-m68k.h): Include.
3426 * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
3427 (LEGITIMATE_PIC_OPERAND_P): Support TLS.
3428
8b75fc9b
MJ
34292009-05-18 Martin Jambor <mjambor@suse.cz>
3430
3431 * ipa-prop.c (ipa_check_stmt_modifications): Removed.
3432 (visit_store_addr_for_mod_analysis): New function.
3433 (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
3434 (determine_cst_member_ptr): Use gimple_assign_single_p.
3435 (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
3436 (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
3437 operands. Don't check number of operands of a NOP_EXPR.
3438
f133d4a2
EF
34392009-05-18 Eric Fisher <joefoxreal@gmail.com>
3440
3441 * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
3442
ae8af500
L
34432009-05-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
3444
3445 PR c/40172
3446 * c-common.c (warn_logical_operator): Don't warn if one of
3447 expression isn't always true or false.
3448
25e8fde8
KT
34492009-05-17 Kai Tietz <kai.tietz@onevision.com>
3450
ae8af500
L
3451 * config/i386/biarch32.h: New file.
3452 * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
25e8fde8 3453
ef67af22
AN
34542009-05-17 Adam Nemet <anemet@caviumnetworks.com>
3455
3456 * config/mips/mips.md (*zero_extend<mode>_trunchi,
3457 *zero_extend<mode>_truncqi): Merge these into ...
3458 (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
3459 Name the pattern following this as *zero_extendhi_truncqi.
3460
e2d87023
BL
34612009-05-16 Brad Lucier <lucier@math.purdue.edu>
3462
3463 PR middle-end/39301
3464 * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
3465 * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
3466 (output_info): Make field HOST_WIDEST_INT.
3467 (print_statistics): Use HOST_WIDEST_INT_PRINT.
3468 (dump_bitmat_statistics): Same.
3469
428ddbf0
FXC
34702009-05-16 Francois-Xavier Coudert <fxcoudert@gmail.com>
3471
3472 * config.gcc (use_gcc_stdint): Set to wrap.
3473 * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
3474 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
3475 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
3476 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
3477 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
3478 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
3479 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
3480 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
3481
1ab8a8c2
JM
34822009-05-16 Joseph Myers <joseph@codesourcery.com>
3483
3484 * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
3485 tune_64.
3486 * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
3487 Move definitions earlier.
3488 (OPT_ARCH64, OPT_ARCH32): Define.
3489 (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
3490 and tune_64.
3491
70544f44
RE
34922009-05-16 Richard Earnshaw <rearnsha@arm.com>
3493
3494 PR target/40153
3495 * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
3496 implies.
3497
6241ded1
RE
34982009-05-16 Richard Earnshaw <rearnsha@arm.com>
3499
3500 * arm.md (movdi2): Copy non-reg values to DImode registers.
3501
a99c6711
JJ
35022009-05-16 Jakub Jelinek <jakub@redhat.com>
3503
40a8f07a
JJ
3504 PR target/39942
3505 * final.c (label_to_max_skip): New function.
3506 (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
3507 CODE_LABEL_NUMBER <= max_labelno.
3508 * output.h (label_to_max_skip): New prototype.
3509 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
3510 (ix86_avoid_jump_mispredicts): ... this. Don't define if
3511 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined. Update comment.
3512 Handle CODE_LABELs with >= 16 byte alignment or with
3513 max_skip == (1 << align) - 1.
3514 (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
3515 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
3516
a99c6711
JJ
3517 PR target/39942
3518 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
3519 .p2align 3 if MAX_SKIP is smaller than 7.
3520 * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
3521
7e5487a2
ILT
35222009-05-15 Ian Lance Taylor <iant@google.com>
3523
3524 * alias.c (struct alias_set_entry_d): Rename from struct
3525 alias_set_entry. Change all uses.
3526 * except.c (struct call_site_record_d): Rename from struct
3527 call_site_record. Change all uses.
3528 * except.h (struct eh_region_d): Rename from struct eh_region.
3529 Change all uses.
3530 * gcse.c (struct hash_table_d): Rename from struct hash_table.
3531 Change all uses.
3532 * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
3533 ivtype_map_elt. Change all uses.
3534 (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
3535 Change all uses.
3536 (struct ifsese_d): Rename fromstruct ifsese. Change all uses.
3537 * graphite.h (struct name_tree_d): Rename from struct name_tree.
3538 Change all uses.
3539 (struct sese_d): Rename from struct sese. Change all uses.
782dc37a
UB
3540 * omega.h (struct eqn_d): Rename from struct eqn. Change all uses.
3541 (struct omega_pb_d): Rename from struct omega_pb. Change all uses.
7e5487a2
ILT
3542 * optabs.h (struct optab_d): Rename from struct optab. Change all
3543 uses.
3544 (struct convert_optab_d): Rename from struct convert_optab.
3545 Change all uses.
3546 * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
3547 ipa_opt_pass. Change all uses.
3548 * tree-predcom.c (struct dref_d): Rename from struct dref. Change
3549 all uses.
3550
3551 * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
3552 defined as a typedef.
3553 (grokdeclarator): If -Wc++-compat, warn if a typedef is already
3554 defined as a tag.
3555
a243fb4a
MLI
35562009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
3557
3558 PR 16302
3559 * fold-const.c (make_range,build_range_check,merge_ranges): Move
3560 declaration to...
3561 (merge_ranges): Returns bool.
3562 * tree.h (make_range): .. to here.
3563 (build_range_check): Likewise.
3564 (merge_ranges): Likewise. Renamed from merge_ranges.
3565 * c-typeck.c (parser_build_binary_op): Update calls to
3566 warn_logical_operator.
3567 * c-common.c (warn_logical_operator): Add new warning.
3568 * c-common.h (warn_logical_operator): Update declaration.
3569
1b53c5f3
MLI
35702009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
3571
782dc37a 3572 * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
1b53c5f3 3573
c128599a
KG
35742009-05-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3575
f9bab007
KG
3576 * doc/install.texi: Document MPC requirements, flags etc.
3577
c128599a
KG
3578 * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
3579 (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
3580 Evaluate constant arguments.
3581 (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
3582 (fold_builtin_1): Likewise, also evaluate constant arguments.
3583 Remove superfluous break.
3584 (do_mpc_ckconv): New.
3585 * real.h: Include mpc.h.
3586 * toplev.c (print_version): Output MPC version info if available.
3587
d33e4b70
SL
35882009-05-15 Sandra Loosemore <sandra@codesourcery.com>
3589
782dc37a 3590 * fold-const.c (fold_convert_const_real_from_real): Check for overflow.
d33e4b70 3591
a02ab464
L
35922009-05-15 H.J. Lu <hongjiu.lu@intel.com>
3593
3594 * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
3595 only once.
3596
796bda22
JH
35972009-05-15 Jan Hubicka <jh@suse.cz>
3598
3599 * doc/invoke.texi (max-early-inliner-iterations): New flag.
3600 * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
3601 (try_inline): Fix return value.
3602 (cgraph_decide_inlining_incrementally): Honor new value.
3603 (cgraph_early_inlining): Handle indirect inlining.
3604 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
3605
d88e5c37
JH
36062009-05-15 Jan Hubicka <jh@suse.cz>
3607
3608 * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
3609 * cgraphunit.c (cgraph_finalize_function): Set it.
3610 (cgraph_expand_function): Use it.
3611
ae63687c
SL
36122009-05-15 Sandra Loosemore <sandra@codesourcery.com>
3613
3614 * real.c (encode_ieee_half): Define.
3615 (decode_ieee_half): Define.
3616 (ieee_half_format): Define.
3617 (arm_half_format): Define.
3618 * real.h (ieee_half_format): Declare.
3619 (arm_half_format): Declare.
3620
1bd74ad9
SL
36212009-05-15 Sandra Loosemore <sandra@codesourcery.com>
3622
3623 * optabs.c (prepare_float_lib_cmp): Test that the comparison,
3624 swapped, and reversed optabs exist before trying to use them.
3625
dc34db56
PB
36262009-05-15 Paul Brook <paul@codesourcery.com>
3627 Sandra Loosemore <sandra@codesourcery.com>
3628
dc34db56
PB
3629 * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
3630 loads. Allow PRE_DEC.
3631 (output_move_neon): Handle PRE_DEC.
3632 (arm_print_operand): Add 'A' for neon structure loads.
3633 * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
3634 * config/arm/neon.md (neon_mov): Update comment.
3635 * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
3636 calls.
3637 (Um): New constraint.
3638
1d405d7b
JH
36392009-05-15 Jan Hubicka <jh@suse.cz>
3640
3641 Revert the following patch until testsuite fallout is fixed:
3642 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
3643 * cgraph.h (struct inline_summary): New filed self_wize,
3644 size_inlining_benefit, self_time and time_inlining_benefit.
3645 (struct cgraph_global_info): Replace insns by time ans size fields.
3646 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
3647 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
3648 (ipcp_update_callgraph): Do not touch function bodies.
3649 * ipa-inline.c: Include except.h
782dc37a 3650 (MAX_TIME): New constant.
1d405d7b
JH
3651 (overall_insns): Remove
3652 (overall_size, max_benefit): New static variables.
3653 (cgraph_estimate_time_after_inlining): New function.
3654 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
3655 (cgraph_clone_inlined_nodes): Update size.
3656 (cgraph_mark_inline_edge): Update size.
3657 (cgraph_estimate_growth): Use size info.
3658 (cgraph_check_inline_limits): Check size.
3659 (cgraph_default_inline_p): Likewise.
3660 (cgraph_edge_badness): Compute badness based on benefit and size cost.
3661 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
3662 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
3663 and times.
1d405d7b 3664 (cgraph_decide_inlining): Likewise.
00c5fa1b
EB
3665 (cgraph_decide_inlining_incrementally): Likewise; honor
3666 PARAM_EARLY_INLINING_INSNS.
1d405d7b
JH
3667 (likely_eliminated_by_inlining_p): New predicate.
3668 (estimate_function_body_sizes): New function.
3669 (compute_inline_parameters): Use it.
3670 * except.c (must_not_throw_labels): New function.
3671 * except.h (must_not_throw_labels): Declare.
3672 * tree-inline.c (init_inline_once): Kill inlining_weigths
3673 * tree-ssa-structalias.c: Avoid uninitialized warning.
3674 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
3675 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
3676 (PARAM_INLINE_CALL_COST): Remove.
3677 (PARAM_EARLY_INLINING_INSNS): New.
3678
7ffa47ca
RG
36792009-05-15 Richard Guenther <rguenther@suse.de>
3680
3681 * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
3682 not TODO_update_ssa.
3683
828552ed
RG
36842009-05-15 Richard Guenther <rguenther@suse.de>
3685
3686 PR tree-optimization/39999
3687 * gimple.h (gimple_expr_type): Use the expression type looking
3688 through useless conversions.
3689 * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
3690 (vn_nary_op_insert_stmt): Likewise.
3691 (simplify_binary_expression): Likewise.
3692
248fc9f3
RG
36932009-05-15 Richard Guenther <rguenther@suse.de>
3694
3695 * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
3696 New options, enabled by default.
3697 * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
3698 Document.
3699 * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
3700 * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
3701 * tree-ssa-structalias.c (gate_tree_pta): New function.
3702 (pass_build_alias): Use it.
3703
16b29cc4
JM
37042009-05-15 Joseph Myers <joseph@codesourcery.com>
3705
3706 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
3707 recurse on an invariant address if a conversion from a pointer
3708 type to a wider integer type is involved.
3709
125cae84
JH
37102009-05-15 Jan Hubicka <jh@suse.cz>
3711
3712 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
3713 * cgraph.h (struct inline_summary): New filed self_wize,
3714 size_inlining_benefit, self_time and time_inlining_benefit.
3715 (struct cgraph_global_info): Replace insns by time ans size fields.
3716 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
3717 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
3718 (ipcp_update_callgraph): Do not touch function bodies.
3719 * ipa-inline.c: Include except.h
782dc37a 3720 (MAX_TIME): New constant.
125cae84
JH
3721 (overall_insns): Remove
3722 (overall_size, max_benefit): New static variables.
3723 (cgraph_estimate_time_after_inlining): New function.
3724 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
3725 (cgraph_clone_inlined_nodes): Update size.
3726 (cgraph_mark_inline_edge): Update size.
3727 (cgraph_estimate_growth): Use size info.
3728 (cgraph_check_inline_limits): Check size.
3729 (cgraph_default_inline_p): Likewise.
3730 (cgraph_edge_badness): Compute badness based on benefit and size cost.
3731 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
3732 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
3733 and times.
125cae84 3734 (cgraph_decide_inlining): Likewise.
00c5fa1b
EB
3735 (cgraph_decide_inlining_incrementally): Likewise; honor
3736 PARAM_EARLY_INLINING_INSNS.
125cae84
JH
3737 (likely_eliminated_by_inlining_p): New predicate.
3738 (estimate_function_body_sizes): New function.
3739 (compute_inline_parameters): Use it.
3740 * except.c (must_not_throw_labels): New function.
3741 * except.h (must_not_throw_labels): Declare.
3742 * tree-inline.c (init_inline_once): Kill inlining_weigths
3743 * tree-ssa-structalias.c: Avoid uninitialized warning.
3744 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
3745 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
3746 (PARAM_INLINE_CALL_COST): Remove.
3747 (PARAM_EARLY_INLINING_INSNS): New.
3748 doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
3749 (inline-call-cost): Remove.
3750 (early-inlining-insns): New.
3751
84fb43a1
EB
37522009-05-15 Eric Botcazou <ebotcazou@adacore.com>
3753
3754 * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters. Use them
3755 for bounds.
3756 (print_int_cst_bounds_in_octal_p): Likewise.
3757 (dbxout_type): Adjust calls to above functions. Be prepared to deal
3758 with subtypes.
3759 * dwarf2out.c (base_type_die): Likewise.
3760 (is_subrange_type): Delete.
3761 (subrange_type_die): Add LOW and HIGH parameters. Use them for bounds.
3762 (modified_type_die): Call subrange_type_for_debug_p on subtypes.
f3afc8a7
UB
3763 * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it
3764 if the destination type is boolean.
84fb43a1
EB
3765 (build_range_check): Do not special-case subtypes.
3766 (fold_sign_changed_comparison): Likewise.
3767 (fold_unary): Likewise.
3768 * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
3769 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
3770 * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
f3afc8a7
UB
3771 * tree.c (subrange_type_for_debug_p): New predicate based on the
3772 former is_subrange_type.
84fb43a1
EB
3773 * tree.h (subrange_type_for_debug_p): Declare.
3774 * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
3775 (convert_affine_scev): Remove call to above function.
3776 (chrec_convert_aggressive): Likewise.
3777 * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
3778 false for conversions involving subtypes.
3779 * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
3780 (vrp_val_min): Likewise.
3781 (needs_overflow_infinity): Likewise.
3782 (extract_range_from_unary_expr): Likewise.
3783
331d9186
PB
37842009-05-15 Paolo Bonzini <bonzini@gnu.org>
3785
e9351712
L
3786 * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
3787 * config/frv/frv.c: Likewise.
3788 * config/s390/s390.c: Likewise.
3789 * config/sparc/sparc.h: Likewise.
3790 * config/i386/i386.h: Likewise.
3791 * config/i386/i386.c: Likewise.
3792 * config/crx/crx.c: Likewise.
3793 * config/m68hc11/m68hc11.h: Likewise.
3794 * config/iq2000/iq2000.c: Likewise.
3795 * config/mn10300/mn10300.h: Likewise.
3796 * config/mn10300/mn10300.c: Likewise.
3797 * config/m68k/m68k.c: Likewise.
3798 * config/rs6000/rs6000.c: Likewise.
3799 * config/rs6000/xcoff.h: Likewise.
3800 * config/rs6000/linux64.h: Likewise.
3801 * config/rs6000/sysv4.h: Likewise.
3802 * config/score/score3.c: Likewise.
3803 * config/score/score7.c: Likewise.
3804 * config/score/score.c: Likewise.
3805 * config/arm/arm.md: Likewise.
3806 * config/mips/mips.c: Likewise.
3807 * config/mips/mips.md: Likewise.
3808 * config/bfin/bfin.h: Likewise.
3809 * config/pa/pa.c: Likewise.
3810 * config/pa/constraints.md: Likewise.
3811
3812 * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
3813 * config/pdp11/pdp11.c (legitimate_address_p): Delete.
3814 * config/pdp11/pdp11.h: Use memory_address_p instead.
331d9186 3815
09639a83
ILT
38162009-05-14 Ian Lance Taylor <iant@google.com>
3817
3818 * passes.c (finish_optimization_passes): Change i to int.
3819 * plugin.c (plugins_active_p): Change event to int.
3820 (dump_active_plugins): Likewise.
3821 * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
3822 Add cast.
3823 * tree.c (tree_range_check_failed): Change c to unsigned int.
3824 (omp_clause_range_check_failed): Likewise.
3825 (build_common_builtin_nodes): Change mode to int. Add cast.
3826 * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
3827 (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
3828
3829 * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
3830 ++ or -- with a variable of enum type.
3831
c04a56bf
SB
38322009-05-14 Steven Bosscher <steven@gcc.gnu.org>
3833
3834 PR driver/40144
3835 * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
3836
237ee620
SB
38372009-05-14 Steven Bosscher <steven@gcc.gnu.org>
3838
3839 * store-motion.c: Do not include params.h
3840 * Makefile.in: Fix dependencies for various files.
3841
1154c4fa
SB
38422009-05-14 Steven Bosscher <steven@gcc.gnu.org>
3843
3844 * auto-inc-dec.c: Fix pass description, remove apparent
3845 accidental duplication.
3846
61c27353
L
38472009-05-14 H.J. Lu <hongjiu.lu@intel.com>
3848
3849 PR middle-end/40147
3850 * ipa-utils.h (memory_identifier_string): Moved to ...
3851 * tree.h (memory_identifier_string): Here. Add GTY(()).
3852
c6c3dba9
PB
38532009-05-14 Paolo Bonzini <bonzini@gnu.org>
3854
3855 * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
3856 in the former documentation of...
3857 (GO_IF_LEGITIMATE_ADDRESS): ... this.
3858 * ira-conflicts.c (get_dup_num): Use address_operand.
3859 * targhooks.c (default_legitimate_address_p): New.
3860 * targhooks.h (default_legitimate_address_p): New.
3861 * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
3862 Call hook.
3863 * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
3864 * target.h (struct target): Add legitimate_address_p.
3865 * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
3866 (TARGET_INITIALIZER): Include it.
3867
3868 * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3869 * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
3870 * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
3871 (TARGET_LEGITIMATE_ADDRESS_P): New.
3872
3873 * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3874 (REG_OK_STRICT_P): Delete.
3875 * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
3876 (frv_legitimate_address_p_1): ... this.
3877 * config/frv/frv.c (frv_legitimate_address_p): Forward to...
3878 (frv_legitimate_address_p_1): ... the renamed old
3879 frv_legitimate_address_p.
3880 * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
3881 (TARGET_LEGITIMATE_ADDRESS_P): New.
3882
3883 * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3884 * config/s390/s390-protos.h (legitimate_address_p): Remove.
3885 * config/s390/s390.c (legitimate_address_p): Rename to...
3886 (s390_legitimate_address_p): ... this, make static.
3887 (legitimize_address): Adjust call.
3888 (TARGET_LEGITIMATE_ADDRESS_P): New.
3889 * config/s390/constraints.md ("e"): Call strict_memory_address_p.
3890
3891 * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3892 * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
3893 * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
3894 (TARGET_LEGITIMATE_ADDRESS_P): New.
3895
3896 * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3897 * config/spu/spu-protos.h (spu_legitimate_address): Remove.
3898 * config/spu/spu.c (spu_legitimate_address): Rename to...
3899 (spu_legitimate_address_p): ... this, make static.
3900 (TARGET_LEGITIMATE_ADDRESS_P): New.
3901
3902 * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3903 * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
3904 * config/sparc/sparc.c (legitimate_address_p): Rename to...
3905 (sparc_legitimate_address_p): ... this, make static and return bool.
3906 (legitimize_address): Adjust call.
3907 (TARGET_LEGITIMATE_ADDRESS_P): New.
3908
3909 * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3910 * config/i386/i386-protos.h (legitimate_address_p): Remove.
3911 * config/i386/i386.c (legitimate_address_p): Rename to...
3912 (ix86_legitimate_address_p): ... this, make static.
3913 (constant_address_p): Move after it, adjust call.
3914 (TARGET_LEGITIMATE_ADDRESS_P): New.
3915
3916 * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3917 * config/avr/avr-protos.h (legitimate_address_p): Remove.
3918 * config/avr/avr.c (legitimate_address_p): Rename to...
3919 (avr_legitimate_address_p): ... this, make static.
3920 (legitimize_address): Adjust call.
3921 (TARGET_LEGITIMATE_ADDRESS_P): New.
3922
3923 * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3924 * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
3925 * config/crx/crx.c (crx_legitimate_address_p): Make static.
3926 (TARGET_LEGITIMATE_ADDRESS_P): New.
3927
3928 * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3929 * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
3930 * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
3931 (TARGET_LEGITIMATE_ADDRESS_P): New.
3932
3933 * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3934 * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
3935 Remove.
3936 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
3937 Make static.
3938 (TARGET_LEGITIMATE_ADDRESS_P): New.
3939
3940 * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3941 * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
3942 Remove.
3943 * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
3944 Rename to...
3945 (m68hc11_legitimate_address_p): ... this, make static.
3946 (go_if_legitimate_address_internal): Rename to...
3947 (m68hc11_legitimate_address_p_1): ... this.
3948 (legitimize_address): Adjust call.
3949 (TARGET_LEGITIMATE_ADDRESS_P): New.
3950
3951 * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
782dc37a
UB
3952 * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
3953 * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
c6c3dba9
PB
3954 (TARGET_LEGITIMATE_ADDRESS_P): New.
3955
3956 * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3957 * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
3958 * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
3959 (mn10300_legitimate_address_p): ... this, make static.
3960 (TARGET_LEGITIMATE_ADDRESS_P): New.
3961
3962 * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3963 * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
3964 * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
3965 (TARGET_LEGITIMATE_ADDRESS_P): New.
3966
3967 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3968 (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
3969 (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
3970 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3971 * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
3972 * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
3973 (rs6000_legitimate_address_p): ... this, make static.
3974 (TARGET_LEGITIMATE_ADDRESS_P): New.
3975 (REG_MODE_OK_FOR_BASE_P): Delete.
3976 (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
3977
3978 * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3979 * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
3980 Delete.
3981 * config/picochip/picochip.c (picochip_legitimate_address_p): Make
3982 static, adjust types.
3983 (TARGET_LEGITIMATE_ADDRESS_P): New.
3984
3985 * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3986 * config/score/score.c (score_address_p): Rename to...
3987 (score_legitimate_address_p): ... this.
3988 (TARGET_LEGITIMATE_ADDRESS_P): New.
3989 * config/score/score3.c (score3_address_p): Rename to...
3990 (score3_legitimate_address_p): ... this.
3991 * config/score/score7.c (score7_address_p): Rename to...
3992 (score7_legitimate_address_p): ... this.
3993
3994 * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
3995 THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
3996 GO_IF_LEGITIMATE_ADDRESS): Delete.
3997 * config/arm/arm-protos.h (thumb1_legitimate_address_p,
3998 thumb2_legitimate_address_p): Delete.
3999 (arm_legitimate_address_p): Rename to...
4000 (arm_legitimate_address_outer_p): ... this.
4001 * config/arm/constraints.md ("Uq"): Adjust call.
4002 * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
f3afc8a7
UB
4003 * config/arm/arm.c (arm_legitimate_address_p): New, rename old one
4004 to...
c6c3dba9 4005 (arm_legitimate_address_outer_p): ... this.
f3afc8a7
UB
4006 (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make
4007 static.
c6c3dba9
PB
4008 (TARGET_LEGITIMATE_ADDRESS_P): New.
4009
4010 * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4011 * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
4012 * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
4013 (TARGET_LEGITIMATE_ADDRESS_P): New.
4014
4015 * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4016 * config/vax/vax-protos.h (legitimate_address_p): Remove.
4017 * config/vax/vax.c (legitimate_address_p): Rename to...
4018 (vax_legitimate_address_p): ... this, make static.
4019 (TARGET_LEGITIMATE_ADDRESS_P): New.
4020
4021 * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4022 * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
4023 * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
4024 (TARGET_LEGITIMATE_ADDRESS_P): New.
4025
4026 * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4027 * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
4028 * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
4029 (mmix_legitimate_address_p): ... this, make static.
4030 (TARGET_LEGITIMATE_ADDRESS_P): New.
4031
4032 * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4033 * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
4034 * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
4035 (TARGET_LEGITIMATE_ADDRESS_P): New.
4036
3bd0d9c8
PB
40372009-05-14 Paolo Bonzini <bonzini@gnu.org>
4038
4039 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
4040 of MODE_COMPLEX_INT.
4041
fe049033
RO
40422009-05-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4043
4044 * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
4045 LCT_NORMAL in function call.
4046 * mips-tdump.c (print_file_desc): Add cast to enum type.
4047 * mips-tfile.c (add_ext_symbol): Add casts to enum types.
4048 (mark_stabs): Add casts to enum types.
4049 (parse_stabs_common): Add casts to enum types.
16f7ad42 4050
b0907a6c
AN
40512009-05-13 Adam Nemet <anemet@caviumnetworks.com>
4052
4053 * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
4054 Check for invalid values of LETTER.
4055
d1c8e08a
TG
40562009-05-13 Taras Glek <tglek@mozilla.com>
4057
f3afc8a7
UB
4058 * attribs.c (register_attribute): moved out attribute registration
4059 into register_attribute.
4060 * doc/plugins.texi: Documented register_attribute and
4061 PLUGIN_ATTRIBUTES.
16f7ad42
TG
4062 * gcc-plugin.h: Added forward decl for register_attribute.
4063 * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
4064 * plugin.c (register_callback, invoke_plugin_callbacks): Added
4065 PLUGIN_ATTRIBUTES boilerplate.
d1c8e08a 4066
4ed7f970
DK
40672009-05-14 Dave Korn <dave.korn.cygwin@gmail.com>
4068
4069 * config/i386/msformat-c.c (ms_printf_length_specs): Use enumeration
4070 values even in sentinel and empty entries.
4071 (ms_printf_flag_specs): Likewise.
4072 (ms_scanf_flag_specs): Likewise.
4073 (ms_strftime_flag_specs): Likewise.
4074 (ms_print_char_table): Likewise.
4075 (ms_scan_char_table): Likewise.
4076 (ms_time_char_table): Likewise.
4077
3d8fa148
DK
40782009-05-13 Doug Kwan <dougkwan@google.com>
4079
4080 * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
4081
f06257d3
AN
40822009-05-13 Adam Nemet <anemet@caviumnetworks.com>
4083
4084 * config/mips/mips.md (store): Add attributes for QI and HI.
4085 Update comment.
4086 (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
4087 (truncdi<mode>2): ... this new pattern.
4088
fb201767
BH
40892009-05-13 Brad Hards <bradh@kde.org>
4090
4091 * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
4092
c7bda60e 40932009-05-14 Jakub Jelinek <jakub@redhat.com>
efc3527a
BE
4094 Ben Elliston <bje@au.ibm.com>
4095
4096 PR middle-end/40035
4097 * dse.c (check_mem_read_rtx): Guard against width == -1.
4098
ce985b43
MM
40992009-05-13 Michael Matz <matz@suse.de>
4100
4101 PR middle-end/39976
4102 * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
4103 (trivially_conflicts_p): New function.
4104 (insert_backedge_copies): Use it.
4105
7de1d221
JJ
41062009-05-13 Janis Johnson <janis187@us.ibm.com>
4107
4108 * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
4109 (handle_stdc_pragma): Use new enum constant names.
4110 (handle_pragma_float_const_decimal64): Ditto.
4111
bfefafc6
ILT
41122009-05-13 Ian Lance Taylor <iant@google.com>
4113
4114 * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
4115 tree.def.
4116
286c4fcb
NS
41172009-05-13 Nathan Sidwell <nathan@codesourcery.com>
4118
4119 * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
4120 * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
4121 multilibs.
4122 * config/m68k/m68k.h (FL_UCLINUX): Define.
4123
ebaa6ea7
JH
41242009-05-13 Jan Hubicka <jh@suse.cz>
4125
4126 * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
4127
2b703e1a
KK
41282009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
4129
4130 * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
4131 unless -fschedule-insns is specified.
4132
c3537723
KK
41332009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
4134
4135 PR target/39561
4136 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
4137 TARGET_EXPAND_CBRANCHDI4.
4138 * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
4139 * config/sh/sh.opt (mexpand-cbranchdi): Remove.
4140 (cmpeqdi): Fix comment.
4141
cdeed45a
KK
41422009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
4143
4144 * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
4145 (sh_legitimate_address_p): Likewise.
4146 * config/sh/sh.c (sh_legitimate_index_p): New.
4147 (sh_legitimate_address_p): Likewise.
4148 * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
4149 (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
4150 (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
4151 (MAYBE_BASE_REGISTER_RTX_P): New macro.
4152 (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
4153 (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
4154 (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
4155 (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
4156 (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
4157
02f0b13a
JH
41582009-05-12 Jan Hubicka <jh@suse.cz>
4159
4160 * tree-inline.c (estimate_operator_cost): Add operands;
4161 when division happens by constant, it is cheap.
4162 (estimate_num_insns): Loads and stores are not having cost of 0;
4163 EH magic stuff is cheap; when computing runtime cost of switch,
4164 use log2 base of amount of its cases; builtin_expect has cost of 0;
4165 compute cost for moving return value of call.
4166 (init_inline_once): Initialize time_based flags.
4167 * tree-inline.h (eni_weights_d): Add time_based flag.
4168
ecb7f6de
PB
41692009-05-12 Paolo Bonzini <bonzini@gnu.org>
4170
4171 * df-core.c: Update head documentation.
4172
c24151ce
MM
41732009-05-12 Michael Meissner <meissner@linux.vnet.ibm.com>
4174
4175 PR bootstrap/40118
4176 * rs6000.c (rs6000_generate_compare): Use op1b instead of
4177 shadowing exisiting variable op1.
4178
fbdf817d
UB
41792009-05-12 Uros Bizjak <ubizjak@gmail.com>
4180
704bf7c8 4181 PR target/37179
fbdf817d
UB
4182 * config/i386/driver-i386.c (processor_signatures): New enum.
4183 (SIG_GEODE): Move from vendor_signatures to processor_signatures.
4184 (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
4185 processor signature to detect geode processor.
4186
5e8d1826
PB
41872009-05-12 Paolo Bonzini <bonzini@gnu.org>
4188
4189 Revert:
4190
4191 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
4192
4193 * optabs.c (prepare_cmp_insn): Temporarily disable test that
4194 causes spurious differences between trunk and cond-optab branch.
4195
f90b7a5a
PB
41962009-05-12 Paolo Bonzini <bonzini@gnu.org>
4197
fbdf817d
UB
4198 * dojump.c (compare_from_rtx): Delete.
4199 * expmed.c (emit_store_flag): Only try cstore_optab. Canonicalize
4200 any MODE_CC mode to the cstorecc4 pattern. Use prepare_operand, fail
f90b7a5a
PB
4201 if the comparison does not satisfy the predicate; test predicates for
4202 operands 2 and 3 of a cstore pattern. Don't try cstore optab
4203 further if one existing pattern fails.
fbdf817d 4204 * expr.h (compare_from_rtx): Delete.
f90b7a5a 4205 (prepare_operand): Declare it.
fbdf817d 4206 * optabs.c: Change "lib call" to "libcall" throughout.
f90b7a5a 4207 (bcc_gen_fctn, setcc_gen_code, trap_rtx,
fbdf817d
UB
4208 HAVE_conditional_trap, emit_cmp_insn): Delete.
4209 (can_compare_p): Delete cmp_optab case.
f90b7a5a 4210 (prepare_float_lib_cmp): Return an rtx and a machine mode.
fbdf817d
UB
4211 Accept other parameters by value.
4212 (prepare_operand): Make non-static.
4213 (prepare_cmp_insn): Return an rtx and a machine mode. Accept
4214 other parameters by value. Try to widen operands here based on
4215 an optab_methods argument and looking at cbranch_optab.
4216 (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
4217 loop. Use cbranch_optab directly.
4218 (emit_cmp_and_jump_insns): Fix comment. Adjust call to
4219 prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
4220 assertion.
4221 (emit_conditional_move, emit_conditional_add): Inline what's needed
4222 of compare_from_rtx, using new prepare_cmp_insn for the rest.
4223 (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
4224 with COMPARE. Move cmov_optab and cstore_optab above
4225 with cbranch_optab, move cmp_optab down with ucmp_optab,
4226 remove tst_otpab. Do not initialize trap_rtx.
4227 (gen_cond_trap): Do it here. Use ctrap_optab. Test predicate
f90b7a5a
PB
4228 for trap code. Do not check HAVE_conditional_trap. Use
4229 prepare_cmp_insn. Accept no predicate for operand 3.
fbdf817d
UB
4230 * optabs.h (OTI_cmp): Mark as used only for libcalls.
4231 (OTI_ctrap, ctrap_optab): New.
4232 (tst_optab): Delete.
4233 (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
4234 * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
4235 with lookup of ctrap_optab.
f3afc8a7
UB
4236 * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn, setcc_gen_code):
4237 Delete.
fbdf817d
UB
4238 (ctrap_optab): New.
4239
4240 * combine.c (combine_simplify_rtx, simplify_set): Do not
4241 special case comparing against zero for cc0 machines.
f90b7a5a
PB
4242 * simplify-rtx.c (simplify_binary_operation_1): Never remove
4243 COMPARE on cc0 machines.
4244 (simplify_relational_operation): Return a new expression when
4245 a COMPARE could be removed.
fbdf817d
UB
4246 * final.c (final_scan_insn): Compare cc_status values
4247 against LHS of a (compare FOO (const_int 0)) cc0 source.
4248 Also check if cc_status.value is the full compare.
f90b7a5a 4249
fbdf817d
UB
4250 * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
4251 (cstoreMM4): Document.
f90b7a5a 4252 (conditional_trap): Document ctrapMM4 instead.
fbdf817d 4253 (sync_compare_and_swapMM): Refer to cbranchcc4.
f90b7a5a
PB
4254 (Dependent Patterns): Eliminate obsolete information referring to
4255 the old jump optimization phase.
fbdf817d 4256 (Canonicalization): Include cbranchcc4 case, omit canonicalization
f90b7a5a
PB
4257 of compares with 0 on cc0 machines.
4258 (Jump Patterns): Refer to MODE_CC jump patterns preferably,
4259 avoiding references to cc0. Remove text about storing operands
4260 in cmpMM.
4261 * doc/tm.texi (Condition Codes): Include blurb on different
4262 condition code representations, separate into subsections for
4263 CC0, MODE_CC and conditional execution.
4264
fbdf817d
UB
4265 * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
4266 alpha_emit_setcc): Accept operands and a machine mode.
4267 * config/alpha/alpha.c (alpha_emit_conditional_branch):
4268 Get code/op0/op1 from operands, use machine mode argument
4269 instead of alpha_compare.fp_p. Emit the branch here.
4270 (alpha_emit_setcc): Likewise, and return boolean.
4271 (alpha_emit_conditional_move): Likewise. Assert that
4272 cmp_op_mode == cmp_mode, and simplify accordingly.
4273 * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
4274 * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
4275 (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
4276 Delete.
4277 (stack probe test): Use cbranchdi4.
4278 * config/alpha/predicates.md (alpha_cbranch_operator): New.
4279
4280 * config/arc/arc.c (gen_compare_reg): Do not emit cmp.
4281 * config/arc/arc.h (movsicc, movsfcc): Use it.
4282 (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
4283 (cbranchsi4, cstoresi4): New.
4284 (cmpsi, bCC and sCC expanders): Remove.
4285
4286 * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
4287 * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
4288 * config/arm/predicates.md (arm_comparison_operator): Only include
4289 floating-point operators if there is a hardware floating-point unit.
4290 * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
4291 deferring to cbranch_cc and cstore_cc respectively.
4292 (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
4293 cbranch_cc, cstore_cc): New.
4294 (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
f90b7a5a 4295 arm_compare_op1.
fbdf817d
UB
4296 (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
4297
4298 * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
4299 * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
4300 as an argument.
4301 (adjust_insn_length): Adjust calls.
4302 (avr_reorg): Handle (compare (foo) (const_int 0)).
4303 * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
4304 (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
4305 (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
4306 (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
4307 (bCC): Remove.
4308 (cbranchqi4, cbranchhi4, cbranchsi4): New.
f90b7a5a
PB
4309 (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
4310
fbdf817d
UB
4311 * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
4312 (cbranchsi4, cstorebi4, cstoresi4): New.
f90b7a5a 4313 (movbisi): This insn is duplicate, split it to zero_extend.
fbdf817d
UB
4314 * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
4315 (bfin_gen_compare): Do not use them. Emit VOIDmode SET, not BImode.
4316 (bfin_optimize_loop): Use cbranch expander.
4317 * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
4318 * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
4319 (bfin_bimode_comparison_operator): ... this.
4320 (bfin_direct_comparison_operator): New.
f90b7a5a 4321
fbdf817d
UB
4322 * config/cris/cris.c (cris_normal_notice_update_cc): Look
4323 inside (compare FOO (const_int 0)).
4324 (cris_rtx_costs): Handle ZERO_EXTRACT.
4325 * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
4326 (*tstdi_non_v32): Fold in *cmpdi_non_v32.
4327 (*tstdi_v32): Delete.
4328 (*cmpdi_non_v32): Add M alternative for operand 1.
4329 (cmpsi, cmp<mode>): Make private.
4330 (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
4331 with COMPARE.
4332 (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
4333
4334 * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
4335 (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
4336 (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
f90b7a5a
PB
4337 (cc_reg_operand): New.
4338 (any_cond): Delete.
fbdf817d
UB
4339 * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
4340 crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
4341 * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
4342 * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
4343 crx_expand_scond): Delete.
4344
4345 * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
4346 (cbranchsi4): New.
4347 * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
4348 * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
4349
4350 * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
4351 cstoresi4, cstoresf4, cstoredf4): New.
4352 (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
4353 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
4354 Receive the entire operands array.
4355 * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
4356 * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
4357 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
4358 Get test/op0/op1 from the operands array.
4359 (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
4360
4361 * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
4362 (h8300_expand_store): New.
4363 * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
4364 (const_int 0)).
4365 (h8300_expand_branch): Emit compare here. Adjust for new arguments.
4366 (h8300_expand_store): New.
4367 * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
4368 or do not try to produce (set (cc0) REG).
4369 (peepholes): Wrap arguments with COMPARE. Add a peephole to
4370 change a compare into a move to a scratch register. Disable some
4371 peepholes when comparing with zero.
4372 (tstsi, tsthi, tstsi, cmpqi): Make private.
4373 (cmphi): Delete.
4374 (bCC, sCC): Delete.
4375 (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
4376 cstoresi4): New.
f90b7a5a
PB
4377
4378 * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
4379 ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
4380 (ix86_emit_i387_log1p): Use gen_cbranchxf4.
4381 (ix86_emit_i387_log1p): Use cbranchxf2.
4382 (ix86_expand_setcc): Return void.
4383 * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
4384 * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
4385 cmp<MODEF>, cmpcc): Remove.
fbdf817d
UB
4386 (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
4387 cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
4388 cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
f90b7a5a
PB
4389 (sCC and bCC expanders): Remove.
4390 (stack_protect_test): Use cbranchcc4.
4391
fbdf817d
UB
4392 * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
4393 Delete.
4394 (ia64_expand_compare): Accept three rtx by reference and return void.
4395 * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
4396 (ia64_expand_compare): Replace op0/op1 with *op0/*op1. Get code
4397 from *expr. Update *expr with the BImode comparison to do.
4398 * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
4399 cmptf, bCC, sCC, conditional_trap): Delete.
4400 (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4,
4401 cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
4402 cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
4403 ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
4404 * config/ia64/predicates.md (ia64_cbranch_operator): New.
4405
4406 * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
4407 type of last argument.
4408 * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
4409 (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
4410 use machine mode argument instead of branch_type. Remove dead
4411 code for floating-point comparisons.
4412 * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
4413 * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
4414 Remove.
4415 (cbranchsi4, cstoresi4): New.
4416 * config/iq2000/predicates.md (reg_or_const_operand): New.
4417
4418 * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
4419 * config/m32c/m32c.md (any_cond, gl_cond): Delete.
4420 (b<code>_op): Rewrite to...
4421 (bcc_op): ... this, using match_operator.
4422 (s<code>_op): Rewrite to...
4423 (scc_op): ... this, using match_operator.
4424 (s<code>_24_op): Rewrite to...
4425 (scc_op_24): ... this, using match_operator.
4426 (s<code>_<mode>): Rewrite to...
4427 (cstore<mode>4): ... this, using match_operator.
4428 (s<code>_<mode>_24): Rewrite to...
4429 (cstore<mode>4_24): ... this, using match_operator.
4430 * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
4431 m32c_unpend_compare, m32c_expand_scc): Delete.
4432 * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
4433 m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
4434 (m32c_expand_movcc): Change NE to EQ if necessary.
4435 (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
4436
4437 * config/m32r/m32r-protos.h (gen_cond_store): New.
4438 * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
4439 (gen_cond_store): New, from sCC patterns.
4440 (m32r_expand_block_move): Use cbranchsi4.
4441 * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
4442 * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
4443 (cbranchsi4, cstoresi4): New.
4444
4445 * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
4446 Delete.
4447 (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
f90b7a5a 4448 (m68hc11_notice_update_cc): Look into a compare with 0.
fbdf817d
UB
4449 * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
4450 Delete.
4451 * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
4452 cmphi, cmpqi, bCC): Delete.
4453 (cbranchsi4, cbranchhi4, cbranchqi4): New.
4454 (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
4455 bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
4456 sets with COMPARE.
4457
4458 * config/m68k/predicates.md (m68k_cstore_comparison_operator,
4459 const0_operand, const1_operand, m68k_subword_comparison_operand): New.
4460 * config/m68k/constraints.md (H): New.
4461 * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
4462 the define_insn below.
4463 (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
4464 (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
4465 *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
4466 patterns): Wrap RHS with COMPARE.
4467 (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
4468 (*cmpdi_internal): Name this pattern.
4469 (cmpdi): Change to define_insn.
4470 (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
4471 cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
4472 (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
4473 predicate.
4474 (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
4475 sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
4476 (conditional_trap): Change to...
4477 (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
4478 (*conditional_trap): Use the ordered_comparison_operator and
4479 const1_operand predicates.
4480 * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
4481 (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
4482 (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
4483 * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
4484
4485 * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
4486 mcore_modify_comparison, mcore_gen_compare_reg): Remove.
4487 (mcore_gen_compare): New.
4488 * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
4489 (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
4490 (mcore_gen_compare): ... this.
4491 * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
4492 (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
4493 (stack probe pattern): Use cbranchsi4.
4494
4495 * config/mips/predicates.md (mips_cstore_operator): New.
4496 * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
4497 * config/mips/mips.md (any_cond): Delete.
4498 (conditional_trap): Rename to ctrap<GPR:mode>4. Adjust predicates,
4499 always succeed.
4500 (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
4501 fixuns_truncsfdi2): Use cbranch patterns.
4502 (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete.
4503 (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
4504 Adjust call to mips_expand_conditional_branch.
4505 (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
4506 cstore<GPR:mode>4.
4507 * config/mips/mips-protos.h (mips_expand_conditional_branch,
4508 mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
4509 * config/mips/mips.c (cmp_operands): Delete.
4510 (mips_emit_compare): Get comparison operands from *op0/*op1.
4511 (mips_expand_scc): Get code/op0/op1/target from operands. Assert
4512 that it succeeds. Use op0/op1 instead of cmp_operands.
4513 (mips_expand_conditional_branch, mips_expand_conditional_move,
4514 mips_expand_conditional_trap): Likewise.
4515 (mips_block_move_loop): Use cbranch patterns.
4516 * config/mips/mips.h (cmp_operands): Delete.
4517
4518 * config/mmix/mmix.c (mmix_valid_comparison): Delete.
4519 (mmix_gen_compare_reg): Just return a register in the right CC mode.
4520 * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
4521 * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
4522 (*cmpcc_folded): Rename to...
4523 (*cmpdi_folded): this.
4524 (*cmpcc): Rename to...
4525 (*cmps): ... this.
4526 (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
4527 (bCC): Remove.
4528 (cbranchdi4): New.
4529 (cbranchdf4): New. Handle invalid comparisons here.
4530 * config/mmix/predicates.md (float_comparison_operator): New.
4531
4532 * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
4533 zero_extract to be cheap in (compare (zero_extract) (const_int 0).
4534 * config/mn10300/mn10300.md (tst): Delete.
4535 (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
4536 Name these patterns and wrap RHS in a compare.
4537 (*cmpsi): Make this pattern private. Include tst.
4538 (*cmpsf): Make this pattern private.
4539 (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
4540 (compare with zero peepholes): Likewise.
4541 (bCC): Remove.
4542 (cbranchsi4, cbranchsf4): New.
4543 (casesi): Use cbranchsi4.
4544
4545 * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
4546 hppa_branch_type): Delete.
4547 (return_addr_rtx): Use cbranchsi4.
4548 (emit_bcond_fp): Accept all operands. Replace CODE with NE.
4549 Emit CCFPmode comparison here.
4550 (gen_cmp_fp): Delete, now part of emit_bcond_fp.
4551 * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
4552 hppa_branch_type): Delete.
4553 * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
4554 (movsicc, movdicc): Remove references to hppa_compare_op0,
4555 hppa_compare_op1 and compare_from_rtx.
4556 (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
4557 (casesi): Use cbranchsi4.
4558
4559 * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
4560 * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
4561 * config/pdp11/pdp11.md (register_or_const0_operand): New.
4562 (cmpdf, cmphi, cmpqi): Make private. Add tst alternatives.
4563 (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
4564 (bCC): Delete.
4565 (cbranchdf4, cbranchhi4, cbranchqi4): New.
4566 (*branch, *branch_inverted): New.
4567
4568 * config/picochip/picochip.md (cbranchhi4): Use
4569 ordered_comparison_operator.
4570 (cmphi, bCC): Remove.
4571
4572 * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
4573 (trap_comparison_operator): Delete.
4574 * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
4575 rs6000_emit_cbranch): Accept mode and operands.
4576 * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
4577 rs6000_compare_fp_p): Delete.
4578 (rs6000_generate_compare): Accept mode and comparison. Extract code
4579 and op0/op1 from there. Replace references to rs6000_compare_op0
4580 and rs6000_compare_op1.
4581 (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
4582 extract result from passed operands.
4583 (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
4584 extract loc from passed operands.
4585 (rs6000_emit_cmove): Likewise.
4586 * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
4587 rs6000_compare_fp_p): Delete.
4588 * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
4589 (cbranch<GPR>4, cbranch<FP>4): New.
4590 (cstore<mode>4): New. Consolidate here all choices about when to use
4591 portable or specialized sCC sequences.
4592 (stack_protect_test): Use cbranchsi4.
4593 (conditional_trap): Replace with ctrap<GPR>4.
4594 (conditional trap insn): Replace trap_comparison_operator with
4595 ordered_comparison_operator.
4596
4597 * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
4598 (s390_emit_prologue): Use ctrap.
4599 * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
4600 * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
4601 New predicates replacing...
4602 * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
4603 (cmp<GPR>, cmp<FP>, cmpcc): Delete.
4604 (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
4605 (add<mode>cc): Do not use s390_compare_op0/op1.
4606 (s<code>): Change to...
4607 (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
4608 (seq): Change to...
4609 (cstorecc4): ... this. Handle EQ or NE equally.
4610 (*sne): Un-privatize for use in cstorecc4.
4611 (b<code>): Change to...
4612 (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
4613 (conditional_trap): Replace with...
4614 (ctrap<GPR>4, ctrap<FP>4): ... these.
4615 (stack_protect): Use cbranchcc4.
4616
4617 * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
4618 * config/score/score-protos.h (score_gen_cmp): Delete.
4619 * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
4620 (score_block_move-loop): Use cbranchsi4.
4621 * config/score/score.md (cbranchsi4): New.
4622 (cmpsi, bCC): Delete.
4623 * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
4624 (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
4625 * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
4626 (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
4627 * config/score/score3.h (score3_gen_cmp): Delete.
4628 * config/score/score7.h (score7_gen_cmp): Delete.
4629
4630 * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
4631 (sh_emit_scc_to_t): ... this. Return void.
4632 (from_compare): Rename to...
4633 (sh_emit_compare_and_branch): ... this.
4634 (sh_emit_compare_and_set): New.
4635 (sh_expand_t_scc): Accept operands.
4636 * config/sh/predicates.md (sh_float_comparison_operator): New.
4637 * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
4638 (prepare_scc_operands): Rename to...
4639 (sh_emit_scc_to_t): ... this. Return void. Get op0/op1 from
4640 arguments.
4641 (sh_emit_cheap_store_flag): New.
f90b7a5a 4642 (sh_emit_set_t_insn): New.
fbdf817d
UB
4643 (from_compare): Rename to...
4644 (sh_emit_compare_and_branch): ... this. Accept mode. Rewrite
4645 handling of TARGET_SH2E floating point to avoid recursive call.
4646 Generate branch here.
4647 (sh_emit_compare_and_set): New.
4648 (sh_expand_t_scc): Get op0/op1 from arguments.
4649 (sh_emit_cheap_store_flag): New.
4650 * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
4651 cases.
f90b7a5a 4652 (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
fbdf817d
UB
4653 (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
4654 (movsicc, movdicc): Do nothing when it recreated operands from
4655 sh_compare_*. Use sh_emit_cheap_store_flag. Adjust call to
4656 prepare_scc_operands (now sh_emit_scc_to_t).
4657 (udivdi3): Use cstoresi4.
4658 (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
4659 bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
4660 (cbranchint4_media, cbranchfp4_media): New.
4661 (casesi): Use cbranchdi4.
4662 (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
4663 Delete.
4664 (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
4665 (movnegt): Remove second operand.
4666 (cbranchsf4, cbranchdf4): New.
4667 (stack_protect): Use cbranchdi4/cbranchsi4.
4668
4669 * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
4670 (gen_compare_reg): Accept comparison, extract part of it to...
4671 (gen_compare_reg_1): ... this.
4672 (gen_compare_operator): Delete.
4673 (gen_v9_scc): Accept separate destination, comparison code and arms.
4674 Do not use sparc_compare_op0/sparc_compare_op1.
4675 (emit_scc_insn, emit_conditional_branch_insn): New.
4676 (emit_v9_brxx): Make static. Remove useless assertion.
4677 (sparc_emit_float_lib_cmp): Return RTL instead of calling
4678 emit_cmp_insn.
4679 (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
4680 * config/sparc/sparc-protos.h (gen_compare_reg,
f90b7a5a
PB
4681 sparc_emit_float_lib_cmp): Adjust prototype.
4682 (emit_scc_insn, emit_conditional_branch_insn): New.
4683 (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
fbdf817d
UB
4684 * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
4685 * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
4686 iterators to the top.
4687 (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
4688 snesi_special_extend, sCC, bCC, seqdi_special_trunc,
f90b7a5a 4689 snedi_special_trunc): Delete.
fbdf817d 4690 (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
f90b7a5a 4691 and snedi_special_trunc.
fbdf817d
UB
4692 (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
4693 cbranchdi4, cbranch<F:mode>4): New.
4694 (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
4695 here. Use gen_compare_reg instead of gen_compare_operator.
4696 (conditional_trap): Replace with...
4697 (ctrapsi4, ctrapdi4): ... this.
4698 (stack_protect_test): Use cbranchcc4.
4699
4700 * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
4701 argument to rtx.
4702 * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove.
4703 (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
4704 Change spu_compare_op0/op1 to op0/op1 throughout. Get target
4705 from operands[0] or operands[3] depending on is_set.
4706 * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
4707 * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
4708 cmpdf, bCC), sCC: Remove.
4709 (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4,
4710 cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
4711 cstoredf4): New.
4712 (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
4713 spu_emit_branch_or_set.
4714
4715 * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
4716 Add two arguments.
4717 * config/stormy16/stormy16.h (xstormy16_compare_op0,
4718 xstormy16_compare_op1): Delete.
4719 * config/stormy16/stormy16.c (xstormy16_compare_op0,
4720 xstormy16_compare_op1): Delete.
4721 (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
4722 Adjust calls.
4723 * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
4724 (cmphi, cmpsi, bCC): Remove.
4725
4726 * config/v850/v850.md (tstsi, cmpsi): Fold into...
4727 (*cmpsi): ... this one.
4728 (cbranchsi4, cstoresi4): New.
4729 (bCC expanders): Delete.
4730 (sCC insns): Fold into...
4731 (*setcc): ... this one.
4732 (casesi): Do not use gen_cmpsi and gen_bgtu.
f90b7a5a
PB
4733 (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
4734 (movsicc): Simplify.
4735 * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
4736
fbdf817d
UB
4737 * config/vax/vax-protos.h (cond_name): New.
4738 (vax_output_conditional_branch): Remove.
4739 * config/vax/vax.c (cond_name): New.
4740 (vax_output_conditional_branch): Remove.
4741 * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
4742 * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
4743 (cmp<VAXint>, cmp<VAXfp>): Privatize. Add constraints for tst.
4744 (bit<VAXint>): Wrap source with (compare).
4745 (b<code> and following unnamed pattern): Rename to *branch and
4746 *branch_reversed. Change macroization to match_operator.
4747 (cbranch<VAXint>4, cbranch<VAXfp>4): New.
4748
4749 * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
4750 * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
4751 Change last argument to machine_mode.
4752 (xtensa_expand_scc): Add machine_mode argument.
4753 * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
4754 (gen_conditional_move, xtensa_expand_conditional_branch,
4755 xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
4756 instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
4757 Adjust operand numbers.
4758 * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
4759 Delete.
4760 * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
4761 (cmpsi, cmpsf, b<code>, s<code>): Delete.
4762 (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
f90b7a5a 4763
16670495
PB
47642009-05-12 Paolo Bonzini <bonzini@gnu.org>
4765
4766 * optabs.c (prepare_cmp_insn): Temporarily disable test that
4767 causes spurious differences between trunk and cond-optab branch.
4768
4a4a4e99
AO
47692009-05-12 Alexandre Oliva <aoliva@redhat.com>
4770
4771 PR target/37137
4772 * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
4773
72b9acff
AO
47742009-05-12 Alexandre Oliva <aoliva@redhat.com>
4775
4776 * tree.c (iterative_hash_pointer): Delete.
4777 (iterative_hash_expr): Short-circuit handling of NULL pointer.
4778 Hash UIDs and versions of SSA names. Don't special-case built-in
4779 function declarations.
4780
b7dd69ac
ILT
47812009-05-11 Ian Lance Taylor <iant@google.com>
4782
4783 PR bootstrap/40103
4784 * graphite.c: Force -Wc++-compat to only be a warning before
4785 #including "cloog/cloog.h".
4786
ed102b70
MJ
47872009-05-11 Martin Jambor <mjambor@suse.cz>
4788
4789 * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
4790
08f1af2e
JH
47912009-05-11 Jan Hubicka <jh@suse.cz>
4792
4793 * tree-ssa-loop-ivcanon.c: Include target.h
4794 (struct loop_size): new structure.
4795 (constant_after_peeling): New predicate.
4796 (tree_estimate_loop_size): New function.
4797 (estimated_unrolled_size): Rewrite for new estimates.
4798 (try_unroll_loop_completely): Use new estimates.
4799 * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
4800
a7d39bd3
AP
48012009-05-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
4802
4803 * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
4804 libcpp interface change.
4805 (spu_macro_to_expand): Likewise.
4806
f5a1f0d0
PB
48072009-05-11 Paolo Bonzini <bonzini@gnu.org>
4808
4809 PR tree-optimization/40026
4810 * gimplify.c (gimplify_init_constructor): Change initial conditional
4811 to assertion. Rewrite TREE_OPERAND (*expr_p, 1) after
4812 optimize_compound_literals_in_ctor.
4813
c260f01f
NS
48142009-05-11 Nathan Sidwell <nathan@codesourcery.com>
4815
4816 * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
4817 New devices.
4818 * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
4819
df398a37
L
48202009-05-11 H.J. Lu <hongjiu.lu@intel.com>
4821
4822 * tree-vect-data-refs.c (vect_analyze_group_access): Use
4823 HOST_WIDE_INT for gap.
4824
4da39468
IR
48252009-05-11 Ira Rosen <irar@il.ibm.com>
4826
4827 PR tree-optimization/40074
4828 * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
4829 account in group size and step comparison.
4830
4effdf02
RG
48312009-05-11 Richard Guenther <rguenther@suse.de>
4832
4833 * passes.c (init_optimization_passes): Strip now incorrect comment.
4834 (execute_function_todo): Do not set PROP_alias.
4835 * tree-pass.h (PROP_alias): Remove.
4836 * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
4837 * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
4838 * tree-nrv.c (pass_return_slot): Likewise.
4839 * tree-object-size.c (pass_object_sizes): Likewise.
4840 * tree-ssa-dom.c (pass_dominator): Likewise.
4841 (pass_phi_only_cprop): Likewise.
4842 * tree-ssa-dse.c (pass_dse): Likewise.
4843 * tree-ssa-phiopt.c (pass_phiopt): Likewise.
4844 (pass_cselim): Likewise.
4845 * tree-ssa-pre.c (pass_pre): Likewise.
4846 (pass_fre): Likewise.
4847 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
4848 * tree-ssa-sink.c (pass_sink_code): Likewise.
4849 * tree-stdarg.c (pass_stdarg): Likewise.
4850 * tree-tailcall.c (pass_tail_calls): Likewise.
4851 * tree-vrp.c (pass_vrp): Likewise.
4852
24b97832
ILT
48532009-05-10 Ian Lance Taylor <iant@google.com>
4854
4855 * basic-block.h (enum profile_status): Break out of struct
4856 control_flow_graph.
4857 * cgraph.h (struct inline_summary): Break out of struct
4858 cgraph_local_info.
4859 * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
4860 of struct cgraph_order_sort.
fbdf817d 4861 * combine.c (enum undo_kind): New enum, broken out of struct undo.
24b97832
ILT
4862 * cse.c (struct branch_path): Break out of struct
4863 cse_basic_block_data.
4864 * except.h (enum eh_region_type): Break out of struct eh_region.
4865 * gcc.c (enum add_del): Break out of struct modify_target.
fbdf817d 4866 * genrecog.c (enum decision_type): Break out of struct decision_test.
24b97832
ILT
4867 * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
4868 ggc_pch_data.
fbdf817d
UB
4869 * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
4870 * regmove.c (enum match_use): New enum, broken out of struct match.
24b97832
ILT
4871 * sched-int.h (enum post_call_group): New enum, broken out of
4872 struct deps.
4873 (struct deps_reg): Break out of struct deps.
4874 * target.h (struct asm_int_op): Break out of struct gcc_target.
4875 * tree-eh.c (struct goto_queue_node): Break out of struct
4876 leh_tf_state.
4877 * tree-inline.h (enum copy_body_cge_which): Break out of
4878 copy_body_data.
4879 * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
4880
4881 * c-decl.c (in_struct, struct_types): New static variables.
4882 (pushtag): Add loc parameter. Change all callers.
4883 (lookup_tag): Add ploc parameter. Change all callers.
4884 (check_compound_literal_type): New function.
4885 (parser_xref_tag): Add loc parameter. Change all callers. If
4886 -Wc++-compat, warn about struct/union/enum types defined within a
4887 struct or union.
4888 (start_struct): Add enclosing_in_struct, enclosing_struct_types,
4889 and loc parameters. Change all callers. Change error calls to
4890 error_at, using loc. For a redefinition, if the location of the
4891 original definition is known, report it. Set in_struct and
fbdf817d 4892 struct_types. If -Wc++-compat warn if in sizeof, typeof, or alignof.
24b97832
ILT
4893 (finish_struct): Add new parameters enclosing_in_struct and
4894 enclosing_struct_types. Change all callers. Set
4895 C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
4896 in the struct. If in a struct, add this struct to struct_types.
4897 (start_enum): Add loc parameter. Change all callers. Use
4898 error_at for errors, using loc. For a redefinition, if the
4899 location of the original definition is known, report it. If in a
4900 struct, add this enum type to struct_types. If -Wc++-compat warn
4901 if in sizeof, typeof, or alignof.
fbdf817d
UB
4902 * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
4903 (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
24b97832
ILT
4904 (c_parser_enum_specifier): Get enum location for start_enum.
4905 (c_parser_struct_or_union_specifier): Get struct location for
4906 start_struct. Save in_struct and struct_types status between
4907 start_struct and finish_struct.
4908 (c_parser_cast_expression): Get location of cast.
4909 (c_parser_alignof_expression): Get location of type.
4910 (c_parser_postfix_expression): Likewise.
4911 (c_parser_postfix_expression_after_paren_type): Add type_loc
fbdf817d
UB
4912 parameter. Change all callers. Call check_compound_literal_type.
4913 Use type_loc for error about variable size type.
4914 * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
4915 of an enum constant from an enum type defined in a struct or union.
24b97832
ILT
4916 (c_cast_expr): Add loc parameter. Change all callers. If
4917 -Wc++-compat, warn about defining a type in a cast.
4918 * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
4919 (start_enum, start_struct, finish_struct): Update declarations.
4920 (parser_xref_tag, c_cast_expr): Update declarations.
4921 (check_compound_literal_type): Declare.
4922
7a2738fa
BE
49232009-05-11 Ben Elliston <bje@au.ibm.com>
4924
4925 * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
4926 for recent libcpp interface change.
4927 (rs6000_macro_to_expand): Likewise.
4928
af618949
MM
49292009-05-10 Michael Matz <matz@suse.de>
4930
4931 PR target/40031
4932 * config/arm/arm.c (require_pic_register): Emit on entry edge,
4933 not at entry of function.
4934
b7d7a473
RG
49352009-05-10 Richard Guenther <rguenther@suse.de>
4936
4937 PR tree-optimization/40081
4938 Revert
4939 * tree-sra.c (instantiate_element): Instantiate scalar replacements
4940 using the main variant of the element type. Do not fiddle with
4941 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
4942
4943 * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
4944 structs with volatile fields.
4945
078c3644
JH
49462009-05-10 Jan Hubicka <jh@suse.cz>
4947
4948 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
fbdf817d
UB
4949 (estimate_move_cost): Assert that it does not get called for
4950 VOID_TYPE_P.
078c3644
JH
4951 (estimate_num_insns): Skip VOID types in argument handling.
4952 (optimize_inline_calls): Delete unreachable blocks and verify that
4953 callgraph is valid.
4954
39ff5a96
JH
49552009-05-10 Jan Hubicka <jh@suse.cz>
4956
4957 * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
4958 * cgraph.c (cgraph_mark_address_taken_node): New function.
4959 (dump_cgraph_node): Dump new flag.
4960 * cgraph.h (struct cgraph_node): Add address_taken.
4961 (cgraph_mark_address_taken_node): New function.
39ff5a96
JH
4962 * ipa.c (cgraph_postorder): Prioritize functions with address taken
4963 since new direct calls can be born.
4964
9a0c6187
JM
49652009-05-10 Joseph Myers <joseph@codesourcery.com>
4966
4967 * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
4968 tok->val.node.node.
4969
4b685e14
JH
49702009-05-10 Jan Hubicka <jh@suse.cz>
4971
4972 PR middle-end/40084
fb0be169
EB
4973 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
4974 argument; rewrite.
4b685e14
JH
4975 (cgraph_update_edges_for_call_stmt): Take old_decl argument.
4976 * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
4977 * tree-inline.c (copy_bb): Set frequency correctly.
fb0be169
EB
4978 (fold_marked_statements): Update call to
4979 cgraph_update_edges_for_call_stmt.
4b685e14 4980
29d08eba
JM
49812009-05-10 Joseph Myers <joseph@codesourcery.com>
4982
4983 * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
4984 identifiers in diagnostics.
4985 * config/arm/arm.c (arm_handle_fndecl_attribute,
4986 arm_handle_isr_attribute): Likewise.
4987 * config/avr/avr.c (avr_handle_progmem_attribute,
782dc37a 4988 avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
29d08eba
JM
4989 * config/bfin/bfin.c (handle_int_attribute,
4990 bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
4991 bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
4992 bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
4993 Likewise.
4994 * config/darwin.c (darwin_handle_kext_attribute,
4995 darwin_handle_weak_import_attribute): Likewise.
4996 * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
4997 h8300_handle_eightbit_data_attribute,
4998 h8300_handle_tiny_data_attribute): Likewise.
4999 * config/i386/i386.c (ix86_handle_cconv_attribute,
782dc37a 5000 ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
29d08eba
JM
5001 * config/i386/winnt.c (ix86_handle_shared_attribute,
5002 ix86_handle_selectany_attribute): Likewise.
5003 * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
5004 * config/m32c/m32c.c (function_vector_handler): Likewise.
5005 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
5006 m68hc11_handle_fntype_attribute): Likewise.
5007 * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
5008 * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
5009 * config/mips/mips.c (mips_insert_attributes,
5010 mips_merge_decl_attributes, mips_expand_builtin): Likewise.
5011 * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
5012 rs6000_handle_struct_attribute): Likewise.
5013 * config/sh/sh.c (sh_insert_attributes,
5014 sh_handle_resbank_handler_attribute,
5015 sh_handle_interrupt_handler_attribute,
5016 sh2a_handle_function_vector_handler_attribute,
5017 sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
5018 Likewise.
5019 * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
5020 * config/spu/spu.c (spu_handle_fndecl_attribute,
5021 spu_handle_vector_attribute): Likewise.
5022 * config/stormy16/stormy16.c
5023 (xstormy16_handle_interrupt_attribute): Likewise.
5024 * config/v850/v850-c.c (ghs_pragma_section): Likewise.
5025 * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
5026
f41c4af3
JM
50272009-05-10 Joseph Myers <joseph@codesourcery.com>
5028
782dc37a 5029 * pretty-print.h (struct pretty_print_info): Add translate_identifiers.
f41c4af3
JM
5030 (pp_translate_identifiers): New.
5031 (pp_identifier): Only conditionally translate identifier to locale
5032 character set.
5033 * pretty-print.c (pp_construct): Set pp_translate_identifiers.
5034 (pp_base_tree_identifier): Only conditionally translate identifier
5035 to locale character set.
5036 * c-pretty-print.c (M_): Define.
5037 (pp_c_type_specifier, pp_c_primary_expression): Mark English
5038 fragments for conditional translation with M_.
5039 * tree-pretty-print.c (maybe_init_pretty_print): Disable
5040 identifier translation.
5041
896d7dbd
RG
50422009-05-10 Richard Guenther <rguenther@suse.de>
5043
5044 PR tree-optimization/40081
5045 * tree-sra.c (instantiate_element): Instantiate scalar replacements
5046 using the main variant of the element type. Do not fiddle with
5047 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
5048
9a23acef
JH
50492009-05-09 Jan Hubicka <jh@suse.cz>
5050
5051 PR middle-end/40080
5052 * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
5053 indirect calls; verify cgraph afterwards.
5054
d563610d
JH
50552009-05-09 Jan Hubicka <jh@suse.cz>
5056
5057 PR bootstrap/40082
5058 * ipa.c (update_inlined_to_pointer): New function.
5059 (cgraph_remove_unreachable_nodes): Use it.
5060
f08a18d0
JH
50612009-05-09 Jan Hubicka <jh@suse.cz>
5062
5063 * tree-eh.c (struct leh_state): Remove prev_try.
5064 (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
5065 not track prev_try.
5066 * except.c (gen_eh_region_cleanup, duplicate_eh_regions,
5067 copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
5068 remove_eh_handler_and_replace, foreach_reachable_handler,
5069 verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
5070 * except.h (struct eh_region): Remove eh_region_u_cleanup.
5071 (gen_eh_region_cleanup): Update prototype.
5072
0afd7219
JH
50732009-05-09 Jan Hubicka <jh@suse.cz>
5074
5075 PR middle-end/40043
5076 * except.c (copy_eh_region): Always set prev_try.
5077 (redirect_eh_edge_to_label): Find outer try.
5078 (foreach_reachable_handler): When looking for prev try
5079 handle case where previous try is not going to be taken.
5080
ad6c0864
MM
50812009-05-07 Michael Meissner <meissner@linux.vnet.ibm.com>
5082
5083 PR tree-optimization/40049
5084 * tree-vect-stmts.c (vectorizable_operation): If the machine has
5085 only vector/vector shifts, convert the type of the constant to the
5086 appropriate type to avoid building incorrect trees, which
5087 eventually have problems with garbage collection.
5088
c94f9067
JM
50892009-05-08 Joseph Myers <joseph@codesourcery.com>
5090
5091 * fold-const.c (fold_binary): Do not fold multiplication by 1 or
5092 -1 for complex floating-point types if honoring signed zeros.
5093
9187e02d
JH
50942009-05-08 Jan Hubicka <jh@suse.cz>
5095
20acb8a2
EB
5096 * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
5097 argument; handle correctly when profile is absent.
9187e02d
JH
5098 (build_cgraph_edges): Update.
5099 (rebuild_cgraph_edges): Update.
20acb8a2
EB
5100 * cgraph.c: Do not include varray.h.
5101 (cgraph_set_call_stmt_including_clones): New function.
5102 (cgraph_create_edge_including_clones): Likewise
5103 (cgraph_update_edges_for_call_stmt_node): New static cfunction.
9187e02d
JH
5104 (cgraph_update_edges_for_call_stmt): Handle clones.
5105 (cgraph_remove_node): Handle clone tree.
5106 (cgraph_remove_node_and_inline_clones): New function.
5107 (dump_cgraph_node): Dump clone tree.
5108 (cgraph_clone_node): Handle clone tree.
20acb8a2 5109 (clone_function_name): Bring here from tree-inline.c.
9187e02d 5110 (cgraph_create_virtual_clone): New function.
20acb8a2
EB
5111 * cgraph.h (ipa_replace_map): Move here from ipa.h.
5112 (cgraph_clone_info): New function.
9187e02d 5113 (strut cgraph_node): Add clone_info and new clone tree pointers.
20acb8a2
EB
5114 (cgraph_remove_node_and_inline_clones,
5115 cgraph_set_call_stmt_including_clones,
5116 cgraph_create_edge_including_clones,
5117 cgraph_create_virtual_clone): Declare.
9187e02d
JH
5118 (cgraph_function_versioning): Use VEC argument.
5119 (compute_call_stmt_bb_frequency): Update prototype.
5120 (cgraph_materialize_all_clones): New function.
5121 * ipa-cp.c (ipcp_update_cloned_node): Remove.
5122 (ipcp_create_replace_map): Update to VECtors.
5123 (ipcp_update_callgraph): Use virtual clones.
5124 (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
5125 (ipcp_update_profiling): Do not update local profiling.
5126 (ipcp_insert_stage): Use VECtors and virtual clones.
5127 * cgraphunit.c (verify_cgraph_node): Verify clone tree.
5128 (clone_of_p): New function.
5129 (cgraph_preserve_function_body_p): Use clone tree.
5130 (cgraph_optimize): Materialize clones.
5131 (cgraph_function_versioning): Update for VECtors.
5132 (save_inline_function_body): Use clone tree.
20acb8a2
EB
5133 (cgraph_materialize_clone): New function.
5134 (cgraph_materialize_all_clones): Likewise.
9187e02d
JH
5135 * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
5136 * ipa.c: Include gimple.h.
5137 (cgraph_remove_unreachable_nodes): Use clone tree.
20acb8a2
EB
5138 * ipa-prop.c (ipa_note_param_call): Update call to
5139 compute_call_stmt_bb_frequencycall.
9187e02d 5140 * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
20acb8a2 5141 * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
9187e02d
JH
5142 (copy_bb): Handle updating of clone tree; add new edge when new call
5143 appears.
5144 (expand_call_inline): Be strict about every call having edge.
5145 (clone_fn_id_num, clone_function_name): Move to cgraph.c.
5146 (delete_unreachable_blocks_update_callgraph): New function.
20acb8a2
EB
5147 (tree_function_versioning): Use VECtors; always remove unreachable
5148 blocks and fold conditionals.
5149 * tree-inline.h: Do not include varray.h.
9187e02d
JH
5150 (tree_function_versioning): Remove.
5151 * Makefile.in (GTFILES): Remove tree-inline.c
5152 * passes.c (do_per_function): Do only functions having body.
20acb8a2
EB
5153 * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
5154 tree.
9187e02d 5155
9b86d6bb
L
51562009-05-08 H.J. Lu <hongjiu.lu@intel.com>
5157 Andrew Morrow <acm@google.com>
5158
5159 PR c/36892
5160 * c-common.c (c_common_attribute_table): Permit deprecated
5161 attribute to take an optional argument.
5162 (handle_deprecated_attribute): If the optional argument to
5163 __attribute__((deprecated)) is not a string ignore the attribute
5164 and emit a warning.
5165
5166 * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
5167 * c-typeck.c (build_component_ref): Likewise.
5168 (build_external_ref): Likewise.
5169
5170 * toplev.c (warn_deprecated_use): Add an attribute argument.
5171 Emit the message associated with __attribute__((deprecated)).
5172
5173 * toplev.h (warn_deprecated_use): Updated.
5174
5175 * doc/extend.texi: Document new optional parameter to
5176 __attribute__((deprecated))
5177
82ad047f
ME
51782009-05-08 Michael Eager <eager@eagercon.com>
5179
5180 * config/rs6000/rs6000.md (*movdf_softfloat32): replace
5181 !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
5182
788d3075
RG
51832009-05-08 Richard Guenther <rguenther@suse.de>
5184
5185 PR tree-optimization/40062
5186 * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
5187 Avoid exponential behavior.
5188
00952e97
PB
51892009-05-08 Paolo Bonzini <bonzini@gnu.org>
5190
5191 PR rtl-optimization/33928
5192 PR 26854
5193 * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
5194 process_uses, build_single_def_use_links): New.
5195 (update_df): Update use_def_ref.
5196 (forward_propagate_into): Use get_def_for_use instead of use-def
5197 chains.
5198 (fwprop_init): Call build_single_def_use_links and let it initialize
5199 dataflow.
5200 (fwprop_done): Free use_def_ref.
5201 (fwprop_addr): Eliminate duplicate call to df_set_flags.
5202 * df-problems.c (df_rd_simulate_artificial_defs_at_top,
5203 df_rd_simulate_one_insn): New.
5204 (df_rd_bb_local_compute_process_def): Update head comment.
5205 (df_chain_create_bb): Use the new RD simulation functions.
5206 * df.h (df_rd_simulate_artificial_defs_at_top,
5207 df_rd_simulate_one_insn): New.
5208 * opts.c (decode_options): Enable fwprop at -O1.
5209 * doc/invoke.texi (-fforward-propagate): Document this.
5210
2ca862e9
JM
52112009-05-08 Joseph Myers <joseph@codesourcery.com>
5212
5213 PR c/24581
5214 * c-typeck.c (build_binary_op): Handle arithmetic between one real
5215 and one complex operand specially.
5216 * tree-complex.c (some_nonzerop): Do not identify a real value as
5217 zero if flag_signed_zeros.
5218
3e807ffc
PB
52192009-05-08 Paolo Bonzini <bonzini@gnu.org>
5220
5221 PR rtl-optimization/33928
7925c06c 5222 * loop-invariant.c (record_use): Fix && vs. || mishap.
3e807ffc 5223
1bfdbb29
PB
52242009-05-08 Paolo Bonzini <bonzini@gnu.org>
5225
5226 PR rtl-optimization/33928
e913423f
EB
5227 * loop-invariant.c (struct use): Add addr_use_p.
5228 (struct def): Add n_addr_uses.
5229 (struct invariant): Add cheap_address.
5230 (create_new_invariant): Set cheap_address.
5231 (record_use): Accept df_ref. Set addr_use_p and update n_addr_uses.
5232 (record_uses): Pass df_ref to record_use.
5233 (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
5234 used only as such.
1bfdbb29 5235
702cb2a0
KK
52362009-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
5237
5238 * config/sh/sh.c: Do not include c-pragma.h.
5239
5e8df753
AP
52402009-05-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
5241
5242 * config/spu/spu.c: Remove include of c-common.h.
5243
6ec637a4
JJ
52442009-05-07 Janis Johnson <janis187@us.ibm.com>
5245
5246 PR c/39037
5247 * c-common.h (mark_valid_location_for_stdc_pragma,
5248 valid_location_for_stdc_pragma_p, set_float_const_decimal64,
5249 clear_float_const_decimal64, float_const_decimal64_p): New.
5250 * c.opt (Wunsuffixed-float-constants): New.
5251 * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
5252 unsuffixed float constant, handle new warning.
5253 * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
5254 * c-decl.c (c_scope): New flag float_const_decimal64.
5255 (set_float_const_decimal64, clear_float_const_decimal64,
5256 float_const_decimal64_p): New.
5257 (push_scope): Set new flag.
5258 * c-parser.c (c_parser_translation_unit): Mark when it's valid
5259 to use STDC pragmas.
5260 (c_parser_external_declaration): Ditto.
5261 (c_parser_compound_statement_nostart): Ditto.
5262 * c-pragma.c (valid_location_for_stdc_pragma,
5263 mark_valid_location_for_stdc_pragma,
5264 valid_location_for_stdc_pragma_p, handle_stdc_pragma,
5265 handle_pragma_float_const_decimal64): New.
5266 (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
5267 * cp/semantics.c (valid_location_for_stdc_pragma_p,
5268 set_float_const_decimal64, clear_float_const_decimal64,
5269 float_const_decimal64_p): New dummy functions.
5270 * doc/extend.texi (Decimal Float): Remove statement that the
5271 pragma, and suffix for double constants, are not supported.
5272 * doc/invoke.texi (Warning Options): List new option.
5273 (-Wunsuffixed-float-constants): New.
5274
45b9b2e9
SB
52752009-05-08 Steven Bosscher <steven@gcc.gnu.org>
5276
5277 * config/i386/i386.c: Do not include c-common.h.
5278
e71da632
MH
52792009-05-07 Mark Heffernan <meheff@google.com>
5280
5281 * doc/invoke.texi (Debugging Options): Document change of debugging
5282 dump location.
e913423f 5283 * opts.c (decode_options): Make dump_base_name relative to
e71da632
MH
5284 aux_base_name directory.
5285
fe4c7bc6
HS
52862009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
5287
5288 * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
5289 * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
5290
3b3e44eb
RAE
52912009-05-07 Rafael Avila de Espindola <espindola@google.com>
5292
5293 * Makefile.in (install-plugin): Simplify a bit.
5294
fac41238
PB
52952009-05-07 Paolo Bonzini <bonzini@gnu.org>
5296
5297 * Makefile.in (OBJS-common): Add regcprop.o.
5298 (regcprop.o): New.
5299 * timevar.def (TV_CPROP_REGISTERS): New.
5300 * regrename.c (regrename_optimize): Return 0.
5301 (rest_of_handle_regrename): Delete.
5302 (pass_rename_registers): Point to regrename_optimize.
5303 (struct value_data_entry, struct value_data,
5304 kill_value_one_regno, kill_value_regno, kill_value,
5305 set_value_regno, init_value_data, kill_clobbered_value,
5306 kill_set_value, kill_autoinc_value, copy_value,
5307 mode_change_ok, maybe_mode_change, find_oldest_value_reg,
5308 replace_oldest_value_reg, replace_oldest_value_addr,
5309 replace_oldest_value_mem, copyprop_hardreg_forward_1,
5310 debug_value_data, validate_value_data): Move...
5311 * regcprop.c: ... here.
5312 (rest_of_handle_cprop): Delete.
5313 (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
5314
472e0df9
JJ
53152009-05-07 Jakub Jelinek <jakub@redhat.com>
5316
5317 PR middle-end/40057
5318 * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
5319 GEN_INT for 1 << bitnum.
5320 (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
5321 build_int_cst_type.
5322
0d50d55a
UB
53232009-05-07 Uros Bizjak <ubizjak@gmail.com>
5324
5325 * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
7925c06c 5326 Remove wrong description of "nand" operation.
0d50d55a 5327
22f597f1
RG
53282009-05-06 Richard Guenther <rguenther@suse.de>
5329 Adam Nemet <anemet@caviumnetworks.com>
5330
5331 * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
5332 comment. Add that if LHS is not a gimple register, then RHS1 has
5333 to be a single object (GIMPLE_SINGLE_RHS).
5334
641cac0b
AN
53352009-05-06 Adam Nemet <anemet@caviumnetworks.com>
5336
5337 * expr.c (get_def_for_expr): Move it up in the file.
5338 (store_field): When expanding a bit-field store, look at the
5339 defining gimple stmt for the masking conversion.
5340
5a5c6435
JJ
53412009-05-06 Janis Johnson <janis187@us.ibm.com>
5342
5343 PR middle-end/39986
5344 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
5345 decode_decimal64, encode_decimal128, decode_decimal128): Avoid
5346 32-bit memcpy into long.
5347
96474f36
JJ
53482009-05-06 Jakub Jelinek <jakub@redhat.com>
5349
5350 * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
5351 (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
5352 new_reg_loc_descr.
5353 (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
5354 instead of appending DW_OP_deref*.
5355
529ff441
MM
53562009-05-06 Michael Matz <matz@suse.de>
5357
5358 PR middle-end/40021
5359 * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
5360 (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
5361
9419a9fd
RAE
53622009-05-06 Rafael Avila de Espindola <espindola@google.com>
5363
5364 * Makefile.in (install-plugin): Fix srcdir handling.
5365
fff1894c
AB
53662009-05-06 Andrey Belevantsev <abel@ispras.ru>
5367
5368 * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
5369 when processing for not_regs_needed bitmap.
5370 * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
5371 handle TARGET_MEM_REF in lhs. Check TMR_BASE for NULL while
5372 handling it for rhs.
5373
700ae70c
L
53742009-05-06 H.J. Lu <hongjiu.lu@intel.com>
5375
ab3426a7 5376 * config/i386/i386.md (unnamed inc/dec peephole): Use
aa016ff7 5377 optimize_insn_for_size_p instead of optimize_size.
700ae70c
L
5378 * config/i386/predicates.md (incdec_operand): Likewise.
5379 (aligned_operand): Likewise.
5380 * config/i386/sse.md (divv8sf3): Likewise.
5381 (sqrtv8sf2): Likewise.
5382
67341fb5
L
53832009-05-06 H.J. Lu <hongjiu.lu@intel.com>
5384
5385 * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
5386
5387 * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
5388
87946f42
L
53892009-05-06 H.J. Lu <hongjiu.lu@intel.com>
5390
5391 * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
5392 ssemodesuffixf2c with avxmodesuffixf2c.
5393
1202aec1
JM
53942009-05-06 Joseph Myers <joseph@codesourcery.com>
5395
5396 PR c/40032
aa016ff7 5397 * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
1202aec1 5398
6e57a01d
JJ
53992009-05-05 Jakub Jelinek <jakub@redhat.com>
5400
5401 * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
5402 (struct tree_base): Adjust spacing for 8 bit boundaries.
5403 (struct tree_decl_common): Add decl_by_reference_flag bit.
5404 (DECL_BY_REFERENCE): Adjust.
5405 * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
5406 print DECL_BY_REFERENCE bit.
5407 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
5408 * dwarf2out.c (loc_by_reference, gen_decl_die): Check
5409 DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
5410 (gen_variable_die): Likewise. Check TREE_PRIVATE/TREE_PROTECTED
5411 unconditionally.
5412
32f579f6
JJ
5413 PR middle-end/39666
5414 * gimplify.c (gimplify_switch_expr): If case labels cover the whole
5415 range of the type, but default label is missing, add it with one
5416 of the existing labels instead of adding a new label for it.
5417
617ab743
JM
54182009-05-05 Joseph Myers <joseph@codesourcery.com>
5419
5420 * dwarf.h: Remove.
5421
bf016de8
RAE
54222009-05-05 Rafael Avila de Espindola <espindola@google.com>
5423
5424 * Makefile.in (enable_plugin, plugin_includedir): New.
5425 (install): Depend on install-plugin.
5426 (PLUGIN_HEADERS): New.
5427 (install-plugin): New.
5428 * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
5429
7f8fdb9f
RG
54302009-05-05 Richard Guenther <rguenther@suse.de>
5431
5432 PR tree-optimization/40022
5433 * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
5434 the only vuse.
5435 (phivn_valid_p): Fix tuplification error, simplify.
5436 (phiprop_insert_phi): Add dumps.
5437 (propagate_with_phi): Simplify.
5438
8d972839
RG
54392009-05-05 Richard Guenther <rguenther@suse.de>
5440
5441 PR middle-end/40023
aa016ff7 5442 * builtins.c (gimplify_va_arg_expr): Properly build the address.
8d972839 5443
66ba9b0b
SZ
54442009-05-05 Shujing Zhao <pearly.zhao@oracle.com>
5445
5446 * tree.h (strip_float_extensions): Remove duplicate declaration.
aa016ff7
UB
5447 (build_low_bits_mask, debug_fold_checksum, expand_function_end,
5448 expand_function_start, stack_protect_prologue, stack_protect_epilogue,
5449 block_ultimate_origin): Rearrange the declarations line to match the
5450 comment that indicates the .c file which the functions are defined.
5451 (dwarf2out_*, set_decl_rtl): Add comment.
5452 (get_base_address): Adjust comment.
5453 (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
5454 declarations line and add comment.
5455 (is_builtin_name): Add blank after function name, for clarity.
66ba9b0b 5456
4f1e4960
JM
54572009-05-04 Joseph Myers <joseph@codesourcery.com>
5458
5459 * attribs.c (decl_attributes): Use %qE for identifiers in
5460 diagnostics.
5461 * cgraphunit.c (verify_cgraph_node): Translate function names to
5462 locale character set in diagnostics.
5463 * coverage.c (get_coverage_counts): Use %qE for identifiers in
5464 diagnostics.
5465 * doc/invoke.texi (-finstrument-functions-exclude-function-list):
5466 Document that functions are named in UTF-8.
5467 * expr.c (expand_expr_real_1): Translate function names to locale
5468 character set in diagnostics.
5469 * gimplify.c (omp_notice_variable, omp_is_private,
5470 gimplify_scan_omp_clauses): Use %qE for identifiers in
5471 diagnostics.
5472 * langhooks.c (lhd_print_error_function): Translate function names
5473 to locale character set.
5474 * langhooks.h (decl_printable_name): Document that return value is
5475 in internal character set.
5476 * stmt.c: Include pretty-print.h
5477 (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
5478 diagnostics.
5479 (resolve_operand_name_1): Translate named operand name to locale
5480 character set.
5481 * stor-layout.c (finalize_record_size): Use %qE for identifiers in
5482 diagnostics.
5483 * toplev.c (announce_function): Translate function names to locale
5484 character set.
5485 (warn_deprecated_use): Use %qE for identifiers in diagnostics.
5486 (default_tree_printer): Use pp_identifier or translate identifiers
5487 to locale character set. Mark "<anonymous>" for translation.
5488 * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
5489 for identifiers in diagnostics.
5490 * tree.c (handle_dll_attribute): Use %qE for identifiers in
5491 diagnostics.
5492 * varasm.c (output_constructor): Use %qE for identifiers in
5493 diagnostics.
5494
40540e68
RAE
54952009-05-04 Rafael Avila de Espindola <espindola@google.com>
5496
5497 * configure.ac: use ` ` instead of $()
5498 * configure: Regenerate.
5499
33fc884c
BE
55002009-05-05 Ben Elliston <bje@au.ibm.com>
5501
5502 * config/pa/linux-atomic.c: Eliminate conditional include of
5503 errno.h on non-LP64 systems to simplify build requirements.
5504
88388a52
JM
55052009-05-04 Joseph Myers <joseph@codesourcery.com>
5506
5507 * c-common.c (handle_mode_attribute): Use %qE for identifiers in
5508 diagnostics.
5509 * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
5510 and pass value to identifier_to_locale.
5511 (warn_variable_length_array): Make name a tree.
5512 (grokdeclarator): Separate diagnostic texts for named and unnamed
5513 declarators. Use %qE for named declarators.
5514 * c-parser.c (c_lex_one_token): Use %qE for identifiers in
5515 diagnostics.
5516 * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
5517 identifiers in diagnostics.
5518 * c-typeck.c (push_member_name, start_init): Pass identifiers to
5519 identifier_to_locale. Mark "anonymous" strings for translation.
5520
960c5c79
ME
55212009-05-04 Michael Eager <eager@eagercon.com>
5522
5523 * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
aa016ff7 5524 address for DImode/DFmode only if double-precision FP regs.
960c5c79 5525
d083fbba
ME
55262009-05-04 Michael Eager <eager@eagercon.com>
5527
5528 * config/rs6000/rs6000.c (rs6000_libcall_value): Add
5529 TARGET_SINGLE_FLOAT check.
5530
c3ba8d32
ME
55312009-05-04 Michael Eager <eager@eagercon.com>
5532
5533 * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
5534
edce9f18
ME
55352009-05-04 Michael Eager <eager@eagercon.com>
5536
5537 * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
5538 * config/rs6000/t-xilinx: New
5539
506d7b68
PB
55402009-05-04 Paolo Bonzini <bonzini@gnu.org>
5541
e913423f 5542 * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
506d7b68
PB
5543 * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
5544 * gcc/explow.c (memory_address): Use target hook.
5545 * gcc/targhooks.c (default_legitimize_address): New.
5546 * gcc/targhooks.h (default_legitimize_address): New.
5547 * gcc/target.h (legitimize_address): New.
5548 * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
5549 (TARGET_INITIALIZER): Include it.
5550 * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
5551
5552 * config/bfin/bfin-protos.h (legitimize_address): Remove.
5553 * config/bfin/bfin.c (legitimize_address): Remove.
5554 * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
aa016ff7
UB
5555 * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
5556 Remove.
506d7b68
PB
5557 * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
5558 * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
5559
5560 * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
5561 THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
5562 * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
5563 * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
5564 * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
5565 * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
5566 * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
5567 * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
5568 * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
5569 * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
5570 * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
5571 * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
5572 * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
5573 * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
5574 * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
5575 * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
5576 * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
5577 * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
5578 * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
5579 * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
5580 * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
5581 * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
5582 * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
5583
5584 * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
5585 * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
5586 * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
5587 * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
5588 * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
5589 * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
5590 * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
5591 * gcc/config/arm/arm-protos.h (arm_legitimize_address,
5592 (thumb_legitimize_address): Delete.
5593 * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
5594 * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
5595 * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
5596 * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
5597 * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
aa016ff7
UB
5598 * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
5599 Delete.
5600 * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
5601 Delete.
506d7b68
PB
5602
5603 * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
5604 * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
5605 * config/m32r/m32r.c (m32r_legitimize_address): New.
5606 * config/m68k/m68k.c (m68k_legitimize_address): New.
5607 * config/score/score.c (score_legitimize_address): Standardize.
5608 * config/score/score3.c (score3_legitimize_address): Standardize.
5609 * config/score/score3.h (score3_legitimize_address): Adjust.
5610 * config/score/score7.c (score7_legitimize_address): Standardize.
5611 * config/score/score7.h (score7_legitimize_address): Adjust.
5612 * config/sh/sh.c (sh_legitimize_address): New.
5613 * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
5614
5615 * gcc/config/s390/s390.c (legitimize_address): Rename to...
5616 (s390_legitimize_address): ... this.
5617 * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
5618 (sparc_legitimize_address): ... this.
5619 * gcc/config/i386/i386.c (legitimize_address): Rename to...
5620 (ix86_legitimize_address): ... this.
5621 * gcc/config/avr/avr.c (legitimize_address): Rename to...
5622 (avr_legitimize_address): ... this.
5623 * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
5624 (mn10300_legitimize_address): ... this.
5625 * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
5626 (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
5627 (alpha_expand_mov): Adjust call.
5628
5629 * config/frv/frv.c (frv_legitimize_address): Return x on failure.
5630 * config/spu/spu.c (spu_legitimize_address): Likewise.
5631 * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
5632 * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
5633
a3af5087
JM
56342009-05-04 Joseph Myers <joseph@codesourcery.com>
5635
5636 * intl.c (locale_encoding, locale_utf8): New.
5637 (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
5638 * intl.h (locale_encoding, locale_utf8): Declare.
5639 * pretty-print.c: Include ggc.h. Include iconv.h if HAVE_ICONV.
5640 (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
5641 New.
5642 * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
5643 argument.
5644 (pp_tree_identifier): Define to call pp_base_tree_identifier.
5645 (pp_base_tree_identifier): Declare as function.
5646 (identifier_to_locale): Declare.
5647 * Makefile.in (pretty-print.o): Update dependencies.
aa016ff7 5648 * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
a3af5087 5649
ea5cd5f1
RG
56502009-05-04 Richard Guenther <rguenther@suse.de>
5651
5652 PR middle-end/40015
5653 * builtins.c (fold_builtin_memory_op): Do not decay to element
5654 type if the size matches the whole array.
5655
ddc2690a
KH
56562009-05-04 Kazu Hirata <kazu@codesourcery.com>
5657
5658 * expmed.c (synth_mult): When trying out a shift, pass the result
5659 of a signed shift.
5660
ef268d34
KH
56612009-05-04 Kazu Hirata <kazu@codesourcery.com>
5662
5663 * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
5664 (shiftsub1_cost): New.
5665 (init_expmed): Compute shiftsub1_cost.
5666 (synth_mult): Optimize multiplications by constants of the form
5667 -(2^^m-1) for some constant positive integer m.
5668
255d3827
RG
56692009-05-03 Richard Guenther <rguenther@suse.de>
5670
5671 PR c/39983
5672 * c-typeck.c (array_to_pointer_conversion): Do not built
5673 ADDR_EXPRs of arrays of pointer-to-element type.
5674 * c-gimplify.c (c_gimplify_expr): Revert change fixing
5675 up wrong ADDR_EXPRs after-the-fact.
5676 * c-common.c (strict_aliasing_warning): Strip pointer
5677 conversions for obtaining the original type.
5678 * builtins.c (fold_builtin_memset): Handle array types.
5679 (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
5680 and array types
5681
16c33770
RG
56822009-05-03 Richard Guenther <rguenther@suse.de>
5683
5684 PR middle-end/23329
5685 * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
5686 Do not lose casts from array types with unknown extent to array
5687 types with known extent.
5688 * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
5689 alias set compatibility.
5690
62a67c94
MLI
56912009-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
5692
5693 * flags.h (extra_warnings): Delete.
5694 * toplev.c (process_options): Handle Wuninitialized here.
5695 * opts.c (extra_warnings): Delete.
5696 (set_Wextra): Delete.
5697 (common_handle_option): -Wextra can be handled automatically.
5698 * c-opts.c (c_common_handle_option): Delete obsolete code.
5699 (c_common_post_options): Simplify comment.
5700 * common.opt (W): Add Var.
5701 (Wextra): Add Var.
5702 (Wuninitialized): Initialize to -1.
5703
8c7926c4
AN
57042009-05-03 Adam Nemet <anemet@caviumnetworks.com>
5705 Richard Guenther <rguenther@suse.de>
5706
5707 * expr.c (get_def_for_expr): New function.
5708 (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
5709 SSA rather than trees.
5710 <MULT_EXPR>: Likewise. Use subexp0 and subexp1 instead of
5711 TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
5712
fa5da7de
JM
57132009-05-03 Joseph Myers <joseph@codesourcery.com>
5714
5715 * c-common.c (reswords): Add _Imaginary.
5716 * c-common.c (enum rid): Add RID_IMAGINARY.
5717
2ddd5020
PB
57182009-05-03 Paolo Bonzini <bonzini@gnu.org>
5719
5720 * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
5721 Patch by Richard Guenther.
5722
aea88c05
AS
57232009-05-03 Anatoly Sokolov <aesok@post.ru>
5724
5725 * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
5726 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
5727 * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
5728 * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
5729 * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
5730 * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
5731 * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
5732 * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
5733 * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
5734 * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
5735 * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
5736 * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
5737 * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
5738 * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
5739 * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
5740 * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
5741 * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
5742 * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
5743
85e59f3a
RG
57442009-05-02 Richard Guenther <rguenther@suse.de>
5745
5746 PR tree-optimization/39940
5747 * tree-ssa-pre.c (eliminate): Make sure we may propagate before
5748 doing so.
5749
4636b850
RG
57502009-05-02 Richard Guenther <rguenther@suse.de>
5751
5752 PR middle-end/40001
5753 * tree-ssa.c (execute_update_addresses_taken): Properly check
5754 if we can mark a variable DECL_GIMPLE_REG_P.
5755 * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
5756 back to the end of the function.
5757 (is_gimple_reg_type): Remove complex type special casing.
5758 * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
5759 if not optimizing.
5760
5e10cb5a
BE
57612009-05-02 Ben Elliston <bje@au.ibm.com>
5762
5763 * doc/collect2.texi (Collect2): Document search path behaviour
5764 when configured with --with-ld.
5765
048bf48b
JH
57662009-05-02 Jan Hubicka <jh@suse.cz>
5767
5768 * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
5769 parameter; update callers.
aa016ff7
UB
5770 (coalesce_cost_edge): EH edges are costier because they needs
5771 splitting even if not critical and even more costier when there are
5772 multiple EH predecestors.
048bf48b 5773
d5c5f9ab
JH
57742009-05-02 Jan Hubicka <jh@suse.cz>
5775
5776 * except.c (remove_eh_handler_and_replace): Handle updating after
5777 removing TRY blocks.
5778
2ed1959a
EB
57792009-05-02 Eric Botcazou <ebotcazou@adacore.com>
5780
5781 * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
5782
d363a7e7
SB
57832009-05-02 Steven Bosscher <steven@gcc.gnu.org>
5784
5785 * varasm.c: Do not include c-pragma.h.
5786 * attribs.c: Do not incude c-common.h.
5787
9c3d55b4
MM
57882009-05-01 Michael Matz <matz@suse.de>
5789
5790 * calls.c (initialize_argument_information): Handle SSA names like
5791 decls with a non MEM_P DECL_RTL.
5792
ea264ca5
SB
57932009-05-01 Steven Bosscher <steven@gcc.gnu.org>
5794
5795 * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
5796 * ipa-utils.c: Likewise.
5797 * ipa-type-escape.c: Likewise.
5798 * cgraphunit.c Do not include c-common.h.
5799 * ipa-pure-const.c: Likewise.
5800 * tree-if-conv.c: Likewise.
5801 * matrix-reorg.c: Do not include c-common.h and c-tree.h.
5802 * ipa-struct-reorg.c: Likewise.
5803 * tree-nomudflap.c: Likewise.
5804 * tree-ssa-structalias.c: Likewise.
5805
6c5d4d1a
SB
58062009-05-01 Steven Bosscher <steven@gcc.gnu.org>
5807
5808 * store-motion.c: Many cleanups to make this pass a first-class
5809 citizen instead of an appendix to gcse load motion. Add TODO list
5810 to make this pass faster/cleaner/better.
5811
5812 (struct ls_expr): Post gcse.c-split cleanups.
5813 Rename to st_expr. Rename "loads" field to "antic_stores". Rename
5814 "stores" field to "avail_stores".
5815 (pre_ldst_mems): Rename to store_motion_mems.
5816 (pre_ldst_table): Rename to store_motion_mems_table.
5817 (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
5818 (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
5819 (ldst_entry): Rename to st_expr_entry, update users.
5820 (free_ldst_entry): Rename to free_st_expr_entry, update users.
5821 (free_ldst_mems): Rename to free_store_motion_mems, update users.
aa016ff7
UB
5822 (enumerate_ldsts): Rename to enumerate_store_motion_mems,
5823 update caller.
6c5d4d1a
SB
5824 (first_ls_expr): Rename to first_st_expr, update users.
5825 (next_ls_expr): Rename to next_st_expr, update users.
5826 (print_ldst_list): Rename to print_store_motion_mems. Print names of
5827 fields properly for store motion instead of names inherited from load
5828 motion in gcse.c.
5829 (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
5830 (LAST_AVAIL_CHECK_FAILURE): Explain what this is. Undefine when we
5831 are done with it.
5832
5833 (ae_kill): Rename to st_kill, update users.
5834 (ae_gen): Rename to st_avloc, update users.
5835 (transp): Rename to st_transp, update users.
5836 (pre_insert_map): Rename to st_insert_map, update users.
5837 (pre_delete_map): Rename to st_delete_map, update users.
5838 (insert_store, build_store_vectors, free_store_memory,
5839 one_store_motion_pass): Update for abovementioned changes.
5840
5841 (gcse_subst_count, gcse_create_count): Remove.
5842 (one_store_motion_pass): New statistics counters "n_stores_deleted"
5843 and "n_stores_created", local variables.
5844
5845 (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
5846 use for_each_rtx.
5847
5848 (regvec, compute_store_table_current_insn): Remove.
5849 (reg_set_info, reg_clear_last_set): Remove.
5850 (compute_store_table): Use DF caches instead of local dataflow
5851 solvers.
5852
b02cec6e
JM
58532009-05-01 Joseph Myers <joseph@codesourcery.com>
5854
5855 * c-objc-common.c (c_tree_printer): Print identifiers with
5856 pp_identifier, not pp_string. Mark "({anonymous})" for
5857 translation.
5858 * c-pretty-print.c (pp_c_ws_string): New.
5859 (pp_c_cv_qualifier, pp_c_type_specifier,
5860 pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
5861 pp_c_storage_class_specifier, pp_c_function_specifier,
5862 pp_c_attributes, pp_c_bool_constant, pp_c_constant,
5863 pp_c_primary_expression, pp_c_postfix_expression,
5864 pp_c_unary_expression, pp_c_shift_expression,
5865 pp_c_relational_expression, pp_c_equality_expression,
5866 pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
5867 use pp_string and pp_c_ws_string in place of pp_identifier and
5868 pp_c_identifier for non-identifiers. Mark English strings for
5869 translation.
5870 * c-pretty-print.h (pp_c_ws_string): Declare.
5871
cd533689
PP
58722009-04-30 Paul Pluzhnikov <ppluzhnikov@google.com>
5873 Roland McGrath <roland@redhat.com>
5874
aa016ff7 5875 * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
cd533689
PP
5876 (ENABLE_LD_BUILDID): New configuration option.
5877 * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
5878 (LINK_BUILDID_SPEC): New macro.
5879 (init_spec): If defined, prepend it between LINK_EH_SPEC and
5880 link_spec.
5881 * doc/install.texi: Document --enable-linker-build-id option.
5882 * configure: Rebuild.
5883 * config.in: Rebuild.
5884
ba6adec4
AN
58852009-04-30 Adam Nemet <anemet@caviumnetworks.com>
5886
5887 * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
5888 MIPS_GP_SAVE_AREA_SIZE): Define new macros.
5889 (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD. Use
5890 MIPS_GP_SAVE_AREA_SIZE.
5891 * config/mips/mips.c (struct mips_frame_info): Update comment
5892 before arg_pointer_offset and hard_frame_pointer_offset.
5893 (mips_compute_frame_info): Update diagram before function: to
5894 correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
5895 indicate the position of frame_pointer_rtx with -fstack-protector and
5896 to show args_size. Don't allocate cprestore area for leaf functions
5897 if FRAME_GROWS_DOWNWARD. Use MIPS_GP_SAVE_AREA_SIZE to set
5898 cprestore_size.
5899 (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
5900
48f5b722
MM
59012009-04-30 Michael Matz <matz@suse.de>
5902
ba6adec4
AN
5903 PR tree-optimization/39955
5904 * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
48f5b722 5905
b65d6744
DK
59062009-04-30 Dave Korn <dave.korn.cygwin@gmail.com>
5907
5908 * ira.c (setup_cover_and_important_classes): Use safe macro
5909 REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
5910 directly.
5911 * genpreds.c (write_tm_preds_h): Output suitable definition of
5912 REG_CLASS_FOR_CONSTRAINT.
5913
f136c8ae
RAE
59142009-04-30 Rafael Avila de Espindola <espindola@google.com>
5915
5916 * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
5917 instead of an int.
5918 * bitmap.c (bitmap_descriptor): Likewise.
5919 * ggc-common.c (loc_descriptor): Likewise.
5920 * varray.c (varray_descriptor): Likewise.
5921 * vec.c (vec_descriptor): Likewise.
5922
43fcece8 59232009-04-30 Eric Botcazou <ebotcazou@adacore.com>
35debead
EB
5924
5925 * Makefile.in (dce.o): Add $(EXCEPT_H).
5926 * dce.c: Include except.h and delete redundant vector definitions.
5927 (deletable_insn_p): Return false for non-call insns that can throw
5928 if DF is running.
5929
df35c271
SB
59302009-04-30 Steven Bosscher <steven@gcc.gnu.org>
5931
5932 * gcse.c (ae_gen): Remove.
5933 (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
5934 and make non-static function to make it available in store-motion.c.
5935 Update call sites with search-and-replace.
5936 (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
5937 extract_mentioned_regs, extract_mentioned_regs_helper,
5938 find_moveable_store, compute_store_table, load_kills_store, find_loads,
5939 store_killed_in_insn, store_killed_after, store_killed_before,
5940 build_store_vectors, insert_insn_start_basic_block, insert-store,
5941 remove_reachable_equiv_notes, replace_store_insn, delete_store,
5942 free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
5943 execute_rtl_store_motion, pass_rtl_store_motion): Move to...
5944 * store-motion.c: ...new file. Also copy data structures from gcse.c
5945 and clean up to remove parts not used by store motion.
5946 * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
5947 * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
5948
f711a87a
RR
59492009-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5950
5951 PR target/38571
5952 * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
5953 when optimizing for size.
5954
fa5ed76e
HPN
59552009-04-30 Hans-Peter Nilsson <hp@axis.com>
5956
5957 * gcse.c (gcse_constant_p): Fix typo in last change.
5958
0acbbdb0
RAE
59592009-04-30 Rafael Avila de Espindola <espindola@google.com>
5960
5961 * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
5962
82f5c05d
AK
59632009-04-30 Andreas Krebbel <krebbel1@de.ibm.com>
5964
5965 * gcse.c (gcse_constant_p): Make sure the constant is sharable.
5966
6d8f135b
JW
59672009-04-29 James E. Wilson <wilson@codesourcery.com>
5968
5969 * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
5970 CONST_HIGH_PART result.
5971
c21ca196
AS
59722009-04-29 Anatoly Sokolov <aesok@post.ru>
5973
5974 * config/avr/avr.c (initial_elimination_offset): Rename to
5975 avr_initial_elimination_offset.
5976 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
5977 change return type to bool.
5978 (avr_can_eliminate): New function.
5979 * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
5980 (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
5981 (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
0d50d55a 5982 * config/avr/avr-protos.h (initial_elimination_offset): Rename to
c21ca196
AS
5983 avr_initial_elimination_offset.
5984 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
5985 (avr_initial_elimination_offset): Define.
5986
2a34bece 59872009-04-29 Eric Botcazou <ebotcazou@adacore.com>
aa016ff7 5988 Steven Bosscher <steven@gcc.gnu.org>
2a34bece
EB
5989
5990 PR rtl-optimization/39938
5991 * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
5992 * cfgrtl.c: Include insn-attr.h.
5993 (rest_of_pass_free_cfg): New function.
5994 (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
5995 * resource.c (init_resource_info): Remove call to df_analyze.
5996
5dc7911e
RG
59972009-04-29 Richard Guenther <rguenther@suse.de>
5998
5999 PR target/39943
6000 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
6001 allow conversion to signed integers.
6002
1fe479fd
RG
60032009-04-29 Richard Guenther <rguenther@suse.de>
6004
6005 * tree-cfg.c (verify_gimple_assign_binary): Allow vector
6006 shifts of floating point vectors if the shift amount is
6007 a constant multiple of the element size.
6008
8e001680
AK
60092009-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
6010 Michael Matz <matz@suse.de>
6011
6012 PR middle-end/39927
6013 PR bootstrap/39929
6014 * tree-outof-ssa.c (emit_partition_copy): New function.
6015 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
6016 insert_part_to_rtx_on_edge): Perform the partition base var
6017 copy using emit_partition_copy.
6018 (insert_value_copy_on_edge): Convert constants to the right mode.
6019 (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
6020 (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
6021
e50e3081
BS
60222009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
6023
6024 * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
6025 scan backwards to try to find a constant to initialize it.
6026
4e5d521b
BS
6027 * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
6028 insn before the loop_end instruction, don't look past labels.
6029
7c90021d
RG
60302009-04-29 Richard Guenther <rguenther@suse.de>
6031
6032 PR middle-end/39937
6033 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
6034 loose type conversions.
6035 (forward_propagate_addr_expr): Fix tuplification bug. Remove
6036 stmts only if there are no uses of its definition.
6037
97a988bc
BS
60382009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
6039
6040 * config/bfin/bfin.h (splitting_loops): Declare.
6041 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
6042 Reorder bit definitions to be ascending.
6043 (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
6044 * config/bfin/bfin.c (splitting_loops): New variable.
6045 (bfin_cpus): Add WA_LOAD_LCREGS as needed.
6046 (struct loop_info): Remove members INIT and LOOP_INIT.
6047 (bfin_optimize_loop): Don't set them. Reorder the code that generates
aa016ff7
UB
6048 the LSETUP sequence. Allow LC to be loaded from any register, but
6049 also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
97a988bc
BS
6050 (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
6051 set to 1.
6052 * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
6053 of reload_completed.
aa016ff7 6054
97a988bc
BS
6055 From Jie Zhang:
6056 * config/bfin/bfin.md (movsi_insn): Refine constraints.
6057
0c463e16
RAE
60582009-04-29 Rafael Avila de Espindola <espindola@google.com>
6059
6060 * Makefile.in (PLUGIN_VERSION_H): New.
6061 (OBJS-common): Remove plugin-version.o.
6062 (plugin.o): Depend on (PLUGIN_VERSION_H).
6063 (plugin-version.o): Remove.
6064 * configure: Regenerate
6065 * configure.ac: Create plugin-version.h.
6066 * gcc-plugin.h (plugin_gcc_version): Remove.
6067 (plugin_default_version_check): Change signature.
6068 * plugin-version.c: Remove.
6069 * plugin.c: Include plugin-version.h.
6070 (str_plugin_gcc_version_name): Remove.
6071 (try_init_one_plugin): Pass gcc version to plugin_init.
6072 (plugin_default_version_check): Both gcc and plugin versions are now
6073 arguments.
6074
307e7eab
BS
60752009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
6076
6077 * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
6078 problematic last insns. Test for TYPE_CALL rather than CALL_P.
aa016ff7
UB
6079 Remove special case testing for last insn of inner loops. Don't fail
6080 if the loop ends with a jump, emit an extra nop instead.
307e7eab 6081
c5d96723
BS
6082 * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
6083 DREGS rather than comparing directly. Remove code that tries to
6084 account for latencies.
6085
de0b4ad5
RG
60862009-04-29 Richard Guenther <rguenther@suse.de>
6087
6088 PR tree-optimization/39941
6089 * tree-ssa-pre.c (eliminate): Schedule update-ssa after
6090 eliminating an indirect call.
6091
3a19701a
RG
60922009-04-29 Richard Guenther <rguenther@suse.de>
6093
6094 * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
6095 parameter. Allow invariants as base if !require_lvalue.
6096 (verify_gimple_assign_single): Adjust.
6097
a0a31d1e
BS
60982009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
6099
6100 * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
6101 (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
aa016ff7
UB
6102 ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
6103 ssubhi3, ssaddhi3_parts and sssubhi3_parts.
a0a31d1e
BS
6104 (flag_mulhi3_parts): Produce a HImode output rather than trying to set
6105 a VEC_SELECT.
aa016ff7
UB
6106 * config/bfin/bfin.c (bfin_expand_builtin,
6107 case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
a0a31d1e 6108
795bd26a
RG
61092009-04-28 Richard Guenther <rguenther@suse.de>
6110
6111 * tree-vect-loop.c (get_initial_def_for_induction): Use
6112 correct types for pointer increment.
6113
04be270f
KG
61142009-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6115
6116 * toplev.c (print_version): Update GMP version string calculation.
6117
e1a3b85c
EB
61182009-04-28 Eric Botcazou <ebotcazou@adacore.com>
6119
6120 PR rtl-optimization/39938
6121 * resource.c (init_resource_info): Add call to df_analyze.
6122
8224166e
UB
61232009-04-28 Uros Bizjak <ubizjak@gmail.com>
6124
6125 * config/alpha/alpha.md (usegp): Cast the result of
6126 alpha_find_lo_sum_using_gp to enum attr_usegp.
6127 * config/alpha/alpha.c (override_options): Remove end-of-structure
6128 marker element from cpu_table. Use array size of cpu_table to handle
6129 -mcpu and -mtune options.
6130 (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
6131
c5f0fe67
JM
61322009-04-28 Joseph Myers <joseph@codesourcery.com>
6133
6134 * config.gcc (powerpc*-*-* | rs6000-*-*): Add
6135 rs6000/option-defaults.h to tm_file. Support cpu_32, cpu_64,
6136 tune_32 and tune_64.
6137 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
6138 support on PowerPC.
6139 * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
6140 * config/rs6000/option-defaults.h: ... here. New file.
6141 (OPT_64, OPT_32): Define.
6142 (MASK_64BIT): Define to 0 if not already defined.
6143 (OPT_ARCH64, OPT_ARCH32): Define.
6144 (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
6145 and tune_64.
6146
0c48a567
RR
61472009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6148
6149 * config/arm/arm.c (arm_override_options): Emit error on using
6150 fpa with AAPCS.
6151
f1028b9d
UB
61522009-04-28 Uros Bizjak <ubizjak@gmail.com>
6153
6154 PR rtl-optimization/39914
6155 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
6156 registers for allocnos created from user-defined variables only
6157 when not optimizing.
6158
e0dd989a
RG
61592009-04-28 Richard Guenther <rguenther@suse.de>
6160
6161 PR middle-end/39937
6162 * fold-const.c (fold_binary): Use distribute_real_division only
6163 on float types.
6164
9a17c91d
SE
61652009-04-28 Steve Ellcey <sje@cup.hp.com>
6166
6167 * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
6168 add hpux-stdint.h to tm_file.
6169 (hppa[12]*-*-hpux11*): Ditto.
6170 (ia64*-*-hpux*): Ditto.
6171 * config/hpux-stdint.h: New.
60839f5d 6172 * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
9a17c91d 6173 __STDC_EXT__ for all compiles.
60839f5d
EB
6174 * config/pa/pa-hpux.h: Ditto.
6175 * config/pa/pa-hpux10.h: Ditto.
6176 * config/pa/pa-hpux11.h: Ditto.
9a17c91d 6177
af04e659
CM
61782009-04-28 Catherine Moore <clm@codesourcery.com>
6179
6180 * debug.h (set_name): Add comment.
6181
04ef80ce
AP
61822009-04-28 Andrew Pinski <pinskia@gmail.com>
6183
6184 PR target/39929
6185 * config/darwin.c (machopic_gen_offset): Check
6186 currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
6187 * config/arm/arm.c (require_pic_register): Likewise.
6188
65ad77af
PB
61892009-04-28 Paolo Bonzini <bonzini@gnu.org>
6190
8224166e
UB
6191 * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
6192 m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
6193 m32c_promote_prototypes): Delete.
65ad77af 6194
1b15a008
MM
61952009-04-28 Michael Matz <matz@suse.de>
6196
6197 PR middle-end/39922
6198 * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
6199 constants.
6200
7569a6cc
RG
62012009-04-28 Richard Guenther <rguenther@suse.de>
6202
f1028b9d 6203 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
7569a6cc 6204
ead204d9
RR
62052009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6206
6207 * config/arm/arm-cores.def: Add support for arm1156t2f-s.
6208 * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
6209 * config/arm/arm-tune.md: Regenerate.
6210
f2c45f08 62112009-04-28 Alexander Monakov <amonakov@ispras.ru>
60839f5d 6212
f2c45f08
AM
6213 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
6214 block if there are complex incoming edges.
6215 (sel_merge_blocks): Remove useless assert.
6216 (sel_redirect_edge_and_branch): Check that edge was redirected.
6217 * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
6218 (sel_find_rgns): Delete declaration.
6219 * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
6220 the region when it is not a preheader.
6221
7a00d767
UB
62222009-04-28 Uros Bizjak <ubizjak@gmail.com>
6223
6224 PR c/39323
6225 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
6226
448ee662
RG
62272009-04-28 Richard Guenther <rguenther@suse.de>
6228
6229 * tree.h (SSA_NAME_VALUE): Remove.
6230 (struct tree_ssa_name): Remove value_handle member.
6231 * tree-vrp.c (execute_vrp): Initialize/free the value-handle
6232 array for jump threading.
6233 * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
6234 SSA_NAME_VALUEs.
6235 * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
6236 * tree-flow.h (threadedge_initialize_values): Declare.
6237 (threadedge_finalize_values): Likewise.
6238 * tree-ssa-threadedge.c (ssa_name_values): New global variable.
6239 (SSA_NAME_VALUE): Define.
6240 (threadedge_initialize_values): New function.
6241 (threadedge_finalize_values): Likewise.
6242 * tree-ssa-dom.c (ssa_name_values): New global variable.
6243 (SSA_NAME_VALUE): Define.
f1028b9d 6244 (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
448ee662 6245
8644a673
IR
62462009-04-28 Ira Rosen <irar@il.ibm.com>
6247
6248 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
6249 Use REPORT_VECTORIZED_LOCATIONS instead
6250 REPORT_VECTORIZED_LOOPS.
6251 * tree-vectorizer.c (vect_verbosity_level): Make static.
6252 (vect_loop_location): Rename to vect_location.
6253 (vect_set_verbosity_level): Update comment.
6254 (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
6255 and vect_location.
6256 (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
6257 and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
6258 instead REPORT_UNVECTORIZED_LOOPS.
fbdf817d
UB
6259 * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
6260 and vect_loop_def to vect_external_def and vect_internal_def.
8644a673 6261 (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
7a00d767 6262 and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and
8644a673
IR
6263 REPORT_UNVECTORIZED_LOCATIONS.
6264 (enum vect_relevant): Update comment. Rename vect_unused_in_loop
6265 and vect_used_in_loop and to vect_unused_in_scope and
6266 vect_used_in_scope.
6267 (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
6268 (vect_verbosity_level): Remove declaration.
6269 (vect_analyze_operations): Likewise.
6270 (vect_analyze_stmt): Declare.
6271 * tree-vect-loop.c (vect_determine_vectorization_factor): Use
6272 REPORT_UNVECTORIZED_LOCATIONS.
6273 (vect_get_loop_niters): Fix indentation.
6274 (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
6275 (vect_analyze_loop_operations): New function.
6276 (vect_analyze_loop): Call vect_analyze_loop_operations instead of
6277 vect_analyze_operations.
6278 (vect_is_simple_reduction): Use new names.
6279 (vectorizable_live_operation, vect_transform_loop): Likewise.
fbdf817d
UB
6280 * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
6281 to specify whether the data references can be a part of interleaving
6282 chain.
8644a673
IR
6283 (vect_analyze_data_ref_dependence): Use new names.
6284 (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
6285 (vect_create_addr_base_for_vector_ref): Remove redundant code.
6286 * tree-vect-patterns.c (widened_name_p): Use new names.
6287 (vect_recog_dot_prod_pattern): Likewise.
6288 * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
6289 (process_use, vect_mark_stmts_to_be_vectorized,
6290 vect_model_simple_cost, vect_model_store_cost,
6291 vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
6292 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
6293 vectorizable_operation, vectorizable_type_demotion,
6294 vectorizable_type_promotion, vectorizable_store, vectorizable_load,
6295 vectorizable_condition): Likewise.
6296 (vect_analyze_operations): Split into vect_analyze_loop_operations
6297 and ...
6298 (vect_analyze_stmt): ... new function.
6299 (new_stmt_vec_info): Use new names.
6300 (vect_is_simple_use): Use new names and fix comment.
6301 * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
6302 (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
6303
b91322f2
UB
63042009-04-28 Uros Bizjak <ubizjak@gmail.com>
6305
6306 PR target/39911
6307 * config/i386/i386.c (print_operand) ['Z']: Handle floating point
6308 and integer modes for x87 operands. Do not ICE for unsupported size,
6309 generate error instead. Generate error for unsupported operand types.
6310 ['z']: Do not handle HImode memory operands specially. Warning
6311 for floating-point operands. Fallthru to 'Z' for unsupported operand
6312 types. Do not ICE for unsupported size, generate error instead.
6313 (output_387_binary_op): Use %Z to output operands.
6314 (output_fp_compare): Ditto.
6315 (output_387_reg_move): Ditto.
6316
b2ed71b6
BE
63172009-04-28 Ben Elliston <bje@au.ibm.com>
6318
6319 PR c++/35652
6320 Revert:
6321
6322 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6323
6324 * builtins.c (c_strlen): Do not warn here.
6325 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
6326 * c-common.c (pointer_int_sum): Take an explicit location.
6327 Warn about offsets out of bounds.
6328 * c-common.h (pointer_int_sum): Adjust declaration.
6329
81f40b79
ILT
63302009-04-27 Ian Lance Taylor <iant@google.com>
6331
6332 * collect2.c (is_ctor_dtor): Change type of ret field in struct
6333 names to symkind.
6334 * dce.c (run_fast_df_dce): Change type of old_flags to int.
6335 * df-core.c (df_set_flags): Change return type to int. Change
6336 type of old_flags to int.
6337 (df_clear_flags): Likewise.
6338 * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
6339 (df_get_conditional_uses): Likewise.
6340 * df.h (df_set_flags, df_clear_flags): Update declarations.
6341 * dwarf2out.c (struct indirect_string_node): Change type of form
6342 field to enum dwarf_form.
6343 (AT_string_form): Change return type to enum dwarf_form.
6344 * fixed-value.c (fixed_compare): Add cast to enum type.
6345 * fwprop.c (update_df): Change 0 to VOIDmode.
6346 * gensupport.c: Change 0 to UNKNOWN.
6347 * gimple.h (gimple_cond_code): Add cast to enum type.
6348 * haifa-sched.c (reemit_notes): Add cast to enum type.
6349 * hooks.c (hook_int_void_no_regs): Remove function.
6350 * hooks.h (hook_int_void_no_regs): Remove declaration.
6351 * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
7a00d767 6352 * predict.c (combine_predictions_for_insn): Add casts to enum type.
81f40b79
ILT
6353 * real.c (real_arithmetic): Add cast to enum type.
6354 (real_compare): Likewise.
6355 * target.h (struct gcc_target): Change return type of
6356 branch_target_register_class to enum reg_class.
6357 * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
6358 default_branch_target_register_class.
7a00d767 6359 * targhooks.c (default_branch_target_register_class): New function.
81f40b79 6360 * targhooks.h (default_branch_target_register_class): Declare.
7a00d767 6361 * tree-data-ref.c (print_direction_vector): Add cast to enum type.
81f40b79
ILT
6362 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
6363 cast to int.
6364 * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
6365 ERROR_MARK.
6366 * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
6367 vect_uninitialized_def. Change 0 to ERROR_MARK.
6368 * tree-vect-stmts.c (supportable_widening_operation): Don't
6369 initialize icode1 and icode2.
7a00d767 6370 * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
81f40b79
ILT
6371 * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
6372 and to STD_C89.
6373 (cmn_err_flag_specs): Change 0 to STD_C89.
6374 (cmn_err_char_table): Likewise.
6375 * config/arm/arm.c (get_arm_condition_code): Change type of code
6376 to enum arm_cond_code.
6377 (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
6378 (IWMMXT_BUILTIN2): Likewise.
6379 (neon_builtin_type_bits): Don't define typedef.
6380 (neon_builtin_datum): Change type of bits field to int.
6381 (arm_expand_neon_args): Add cast to enum type.
6382 * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
6383 TLS_MODEL_NONE.
6384 * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN. Add
6385 casts to enum type.
6386 * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
6387 MIPS_FP_COND_f.
6388 * config/mips/mips.md (jal_macro): Return enum constant.
6389 (single_insn): Likewise.
6390 * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
6391 CODE_FOR_nothing.
6392 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
6393 casts to enum type.
6394 * config/s390/s390.c (s390_tune_flags): Change type to int.
6395 (s390_arch_flags): Likewise.
7a00d767 6396 (s390_handle_arch_option): Change flags field of struct pta to int.
81f40b79
ILT
6397 * config/s390/s390.h (s390_tune_flags): Update declaration.
6398 (s390_arch_flags): Likewise.
6399 * config/sh/sh.c (prepare_move_operands): Compare
6400 tls_symbolic_operand result with enum constant.
6401 (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
6402 (sh_expand_prologue): Add cast to enum type.
6403 (sh_expand_epilogue): Likewise.
6404 (tls_symbolic_operand): Change return type to enum tls_model.
6405 (fpscr_set_from_mem): Add cast to enum type.
6406 (legitimize_pic_address): Compare tls_symbolic_operand result with
6407 enum constant.
6408 (sh_target_reg_class): Change return type to enum reg_class.
6409 * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
6410 PROCESSOR_xxx.
7a00d767
UB
6411 * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
6412 * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
81f40b79
ILT
6413 * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
6414 (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
6415 (delayed_branch, tls_call_delay): Likewise.
6416 (eligible_for_sibcall_delay): Likewise.
6417 (eligible_for_return_delay): Likewise.
6418 * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
6419 (spu_expand_builtin_1): Likewise.
6420
6421 * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
6422 for all types of conversions.
6423 (output_init_element): Issue -Wc++-compat warning if needed when
6424 initializing a bitfield with enum type.
6425 * c-parser.c (c_parser_expression): Set original_type to
6426 original_type of right hand operand of comman operator.
6427
e4ae5e77
RW
64282009-04-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6429
6430 * doc/c-tree.texi (Types, Functions, Expression trees): Fix
6431 grammar nits.
7a00d767 6432 * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
e4ae5e77
RW
6433 * doc/cpp.texi (Standard Predefined Macros)
6434 (Implementation-defined behavior): Likewise.
7a00d767 6435 * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
e4ae5e77
RW
6436 * doc/gimple.texi (GIMPLE Exception Handling)
6437 (@code{GIMPLE_ASSIGN}): Likewise.
7a00d767 6438 * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
e4ae5e77
RW
6439 * doc/invoke.texi (Warning Options, Optimize Options)
6440 (AVR Options, Darwin Options): Likewise.
6441 (Optimize Options): Reformulate -fwhole-program description.
6442 * doc/loop.texi (Lambda): Likewise.
6443 * doc/md.texi (Output Template, Define Constraints)
6444 (Standard Names, Insn Splitting): Likewise.
6445 * doc/options.texi (Option properties): Likewise.
6446 * doc/passes.texi (Tree-SSA passes): Likewise.
6447 * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
6448 * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
6449 (File Names and DBX): Likewise.
6450 * doc/trouble.texi (Incompatibilities): Likewise.
6451
1883802f 64522009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
6e37f6d4
TS
6453
6454 * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
6455 instruction is correct.
6456
1883802f 64572009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
5345cf68
TS
6458
6459 Allow non-constant arguments to conversion intrinsics.
6460 * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
6461 * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
6462 * spu.c (print_operand): Handle 'v' and 'w'.
6463 (exp2_immediate_p, spu_gen_exp2): Define.
6464 * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
6465 spu_convtf_1): Update parameter descriptions.
7a00d767 6466 * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
5345cf68
TS
6467 * constraints.md ('v', 'w'): New.
6468 * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
6469 Remove.
6470 (i2f, I2F): New define_mode_attr.
6471 (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
6472 floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
6473 fixuns_truncv4sfv4si2): Update to use mode attribute.
6474 (float<mode><i2f>2_mul, float<mode><i2f>2_div,
6475 fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
6476 floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
6477 patterns for combine.
6478
5f39ad47
SB
64792009-04-27 Steven Bosscher <steven@gcc.gnu.org>
6480
6481 * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
6482 (cprop, hoist, pre, store_motion): New debug counters.
6483 * tree-pass.h (pass_tracer): Move to list of gimple passes, it
6484 is not an RTL pass anymore.
6485 (pass_profiling): Remove extern decl for pass removed in 2005.
6486 (pass_gcse, pass_jump_bypass): Remove.
6487 * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
6488 to 0 for clean state.
6489 * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
6490 * cse.c (gate_handle_cse_after_global_opts,
6491 rest_of_handle_cse_after_global_opts): New functions.
6492 (pass_cse_after_global_opts): New pass, does local CSE.
6493 * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
6494 (TV_CPROP): New timevar.
6495 * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
6496 (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
6497 (gcse_main, recompute_all_luids): Remove.
6498 (compute_hash_table_work): Call max_reg_num instead of reading
6499 max_gcse_regno.
6500 (cprop_jump): Don't set run_jump_opt_after_gcse.
6501 (constprop_register): Always allow to alter jumps.
6502 (cprop_insn): Likewise.
6503 (do_local_cprop): Likewise.
6504 (local_cprop_pass): Likewise. Return non-zero if something changed.
6505 (cprop): Remove function, fold interesting bits into one_cprop_pass.
6506 (find_implicit_sets): Add note about missed optimization opportunity.
6507 (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
6508 pass_rtl_cprop execute function.
6509 Don't bother tracking the pass number, each pass gets its own dumpfile
6510 now anyway.
6511 Always allow to alter jumpsand bypass jumps.
6512 (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
6513 will just find no suitable set.
6514 (pre_edge_insert): Fix dumping, this function is for PRE only.
6515 (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
6516 pass_rtl_pre execute function.
6517 (hoist_code): Return non-zero if something changed. Keep track of
6518 substitutions and insertions for statistics gathering similar to PRE.
6519 (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
6520 called from the pass_rtl_hoist execute function. Show pass statistics.
6521 (compute_store_table): Use max_reg_num directly instead of using the
6522 formerly global max_gcse_regno.
6523 (build_store_vectors): Likewise.
6524 (replace_store_insn): Fix dumping.
6525 (store_motion): Rename to ...
6526 (one_store_motion_pass): ... this. Rewrite to be "the" STORE_MOTION
6527 pass, called from the pass_rtl_store_motion execute function. Keep
6528 track of substitutions and insertions for statistics gathering similar
6529 to PRE.
6530 (bypass_jumps): Remove, fold interesting bits into ...
6531 (one_cprop_pass): ... this. Rewrite to be "the" CPROP pass, called
6532 from the pass_rtl_cprop execute function.
6533 (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
6534 pass_jump_bypass): Remove.
6535 (gate_handle_gcse, rest_of_handle_gcse): Remove.
6536 (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
6537 (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
6538 (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
6539 (gate_rtl_store_motion, execute_rtl_store_motion,
6540 pass_rtl_store_motion): New.
6541 * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
6542 make it clear that -fcse-skip-blocks is a no-op for backward compat.
6543 * passes.c (init_optimization_passes): Remove pass_gcse and
6544 pass_jump_bypass. Schedule cprop, pre, hoist, cprop, store_motion,
6545 and cse_after_global_opts in place of pass_gcse. Schedule cprop
6546 instead of pass_jump_bypass.
6547
c685de4a
RG
65482009-04-27 Richard Guenther <rguenther@suse.de>
6549
6550 PR middle-end/39928
6551 * gimplify.c (gimplify_expr): If we are required to create
6552 a temporary make sure it ends up as register.
6553
72d41f29
L
65542009-04-27 H.J. Lu <hongjiu.lu@intel.com>
6555
6556 PR target/39903
6557 * config/i386/i386.c (construct_container): Don't call
6558 gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
6559 X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
6560
e97809c6
MM
65612009-04-27 Michael Matz <matz@suse.de>
6562
6563 * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
6564 (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
6565 * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
6566 (dump_replaceable_exprs): Take a bitmap.
6567 * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
6568 array.
6569 (expand_gimple_basic_block): Likewise.
6570 * tree-ssa-ter.c (struct temp_expr_table_d): Make
6571 replaceable_expressions member a bitmap.
6572 (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
6573 (mark_replaceable): Likewise.
6574 (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
6575 * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
6576
211ca15c
RG
65772009-04-27 Richard Guenther <rguenther@suse.de>
6578
6579 * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
6580 (verify_stmts): Dispatch to gimple/type verification code.
6581 * tree-inline.c (remap_gimple_op_r): Work around C++ FE
6582 issue with call argument types.
6583
fca5f3d1
MM
65842009-04-27 Michael Matz <matz@suse.de>
6585
6586 * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
6587 (init_update_ssa, delete_update_ssa, update_ssa): Remove references
6588 to above.
6589
a1fa3e79 65902009-04-27 Richard Sandiford <rdsandiford@googlemail.com>
8224166e 6591 Eric Botcazou <ebotcazou@adacore.com>
a1fa3e79
EB
6592
6593 * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
6594 a label's basic block.
6595 (mark_target_live_regs): Tidy and rework obsolete comments.
6596 Change back DF problem to LIVE. If a label starts a basic block,
6597 assume that all registers that used to be live then still are.
6598 (init_resource_info): If a label starts a basic block, set its
6599 BLOCK_FOR_INSN accordingly.
6600 (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
6601
33b223c0
RG
66022009-04-27 Richard Guenther <rguenther@suse.de>
6603
6604 * tree-flow-inline.h (function_ann): Remove.
6605 (get_function_ann): Likewise.
6606 * tree-dfa.c (create_function_ann): Remove.
6607 * tree-flow.h (struct static_var_ann_d): Remove.
6608 (struct function_ann_d): Likewise.
6609 (union tree_ann_d): Remove fdecl member.
6610 (function_ann_t): Remove.
6611 (function_ann, get_function_ann, create_function_ann): Remove
6612 declarations.
6613
e3136fa2
UB
66142009-04-27 Uros Bizjak <ubizjak@gmail.com>
6615
6616 * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
6617
f87c9042
JH
66182009-04-27 Jan Hubicka <jh@suse.cz>
6619
6620 * ipa-pure-const.c (struct funct_state_d): New fields
6621 state_previously_known, looping_previously_known; remove
6622 state_set_in_source.
6623 (analyze_function): Use new fields.
6624 (propagate): Avoid assumption that state_set_in_source imply
6625 nonlooping.
6626
6627 * tree-ssa-loop-niter.c (finite_loop_p): New function.
6628 * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
6629 * cfgloop.h (finite_loop_p): Declare.
6630
33abd718
MM
66312009-04-26 Michael Matz <matz@suse.de>
6632
e3136fa2 6633 * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
33abd718 6634
ddc34084
MM
66352009-04-26 Michael Matz <matz@suse.de>
6636
6637 * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
6638 pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
6639 * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
6640 pass_mark_used_blocks): Remove.
6641 * tree-optimize.c (pass_free_datastructures,
6642 execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
6643 * passes.c (init_optimization_passes): Don't call
6644 pass_mark_used_blocks, remove dead code.
6645
1fec7ed4
L
66462009-04-26 H.J. Lu <hongjiu.lu@intel.com>
6647
6648 * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
6649 * tree-ssa-live.h (register_ssa_partition): Likewise.
6650
4e3825db
MM
66512009-04-26 Michael Matz <matz@suse.de>
6652
6653 Expand from SSA.
6654 * builtins.c (fold_builtin_next_arg): Handle SSA names.
6655 * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
6656 * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
6657 SSA names.
6658 (compare_pairs): Swap cost comparison.
6659 (coalesce_ssa_name): Don't use change_partition_var.
6660 * tree-nrv.c (struct nrv_data): Add modified member.
6661 (finalize_nrv_r): Set it.
6662 (tree_nrv): Use it to update statements.
6663 (pass_nrv): Require PROP_ssa.
6664 * tree-mudflap.c (mf_decl_cache_locals,
6665 mf_build_check_statement_for): Use make_rename_temp.
6666 (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
6667 * alias.c (find_base_decl): Handle SSA names.
6668 * emit-rtl (set_reg_attrs_for_parm): Make non-static.
6669 (component_ref_for_mem_expr): Don't leak SSA names into RTL.
6670 * rtl.h (set_reg_attrs_for_parm): Declare.
6671 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
6672 to "optimized", remove unused locals at finish.
6673 (execute_free_datastructures): Make global, call
6674 delete_tree_cfg_annotations.
6675 (execute_free_cfg_annotations): Don't call
6676 delete_tree_cfg_annotations.
6677
6678 * ssaexpand.h: New file.
6679 * expr.c (toplevel): Include ssaexpand.h.
e3136fa2 6680 (expand_assignment): Handle SSA names the same as register variables.
4e3825db
MM
6681 (expand_expr_real_1): Expand SSA names.
6682 * cfgexpand.c (toplevel): Include ssaexpand.h.
6683 (SA): New global variable.
6684 (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
6685 (SSAVAR): New macro.
6686 (set_rtl): New helper function.
6687 (add_stack_var): Deal with SSA names, use set_rtl.
6688 (expand_one_stack_var_at): Likewise.
6689 (expand_one_stack_var): Deal with SSA names.
6690 (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
6691 before unique numbers.
6692 (expand_stack_vars): Use set_rtl.
6693 (expand_one_var): Accept SSA names, add asserts for them, feed them
6694 to above subroutines.
6695 (expand_used_vars): Expand all partitions (without default defs),
6696 then only the local decls (ignoring those expanded already).
6697 (expand_gimple_cond): Remove edges when jumpif() expands an
6698 unconditional jump.
6699 (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
6700 or remove abnormal edges. Ignore insns setting the LHS of a TERed
6701 SSA name.
6702 (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
6703 members of SA; deal with PARM_DECL partitions here; expand
6704 all PHI nodes, free tree datastructures and SA. Commit instructions
6705 on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
6706 (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
6707 info and statements at start, collect garbage at finish.
6708 * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
6709 (VAR_ANN_PARTITION) Remove.
6710 (change_partition_var): Don't declare.
6711 (partition_to_var): Always return SSA names.
6712 (var_to_partition): Only accept SSA names.
6713 (register_ssa_partition): Only check argument.
6714 * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
6715 member.
6716 (delete_var_map): Don't free it.
6717 (var_union): Only accept SSA names, simplify.
6718 (partition_view_init): Mark only useful SSA names as used.
6719 (partition_view_fini): Only deal with SSA names.
6720 (change_partition_var): Remove.
6721 (dump_var_map): Use ssa_name instead of partition_to_var member.
6722 * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
6723 basic blocks.
6724 * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
6725 (struct _elim_graph): New member const_dests; nodes member vector of
6726 ints.
6727 (set_location_for_edge): New static helper.
6728 (create_temp): Remove.
6729 (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
e3136fa2 6730 insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
4e3825db
MM
6731 (new_elim_graph): Allocate const_dests member.
6732 (clean_elim_graph): Truncate const_dests member.
6733 (delete_elim_graph): Free const_dests member.
6734 (elim_graph_size): Adapt to new type of nodes member.
6735 (elim_graph_add_node): Likewise.
6736 (eliminate_name): Likewise.
6737 (eliminate_build): Don't take basic block argument, deal only with
6738 partition numbers, not variables.
6739 (get_temp_reg): New static helper.
6740 (elim_create): Use it, deal with RTL temporaries instead of trees.
6741 (eliminate_phi): Adjust all calls to new signature.
6742 (assign_vars, replace_use_variable, replace_def_variable): Remove.
6743 (rewrite_trees): Only do checking.
6744 (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
6745 (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
6746 init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
6747 contains_tree_r, MAX_STMTS_IN_LATCH,
6748 process_single_block_loop_latch, analyze_edges_for_bb,
6749 perform_edge_inserts): Remove.
6750 (expand_phi_nodes): New global function.
6751 (remove_ssa_form): Take ssaexpand parameter. Don't call removed
6752 functions, initialize new parameter, remember partitions having a
6753 default def.
6754 (finish_out_of_ssa): New global function.
6755 (rewrite_out_of_ssa): Make global. Adjust call to remove_ssa_form,
6756 don't reset in_ssa_p here, don't disable TER when mudflap.
6757 (pass_del_ssa): Remove.
6758 * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
6759 partition members.
6760 (execute_free_datastructures): Declare.
6761 * Makefile.in (SSAEXPAND_H): New variable.
6762 (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
6763 * basic-block.h (commit_one_edge_insertion): Declare.
6764 * passes.c (init_optimization_passes): Move pass_nrv and
6765 pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
6766 pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
6767 * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
6768 (redirect_branch_edge): Deal with super block when expanding, split
6769 out jump patching itself into ...
6770 (patch_jump_insn): ... here, new static helper.
6771
17c665a9
MM
67722009-04-26 Michael Matz <matz@suse.de>
6773
6774 * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
6775 beyond num_ssa_names.
6776 * tree-ssa-ter.c (free_temp_expr_table): Likewise.
6777 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
6778
92061771
JJ
67792009-04-26 Jakub Jelinek <jakub@redhat.com>
6780
ce372372
JJ
6781 PR inline-asm/39543
6782 * fwprop.c (forward_propagate_asm): New function.
6783 (forward_propagate_and_simplify): Propagate also into __asm, if it
6784 doesn't increase the number of referenced registers.
6785
92061771
JJ
6786 PR c/39889
6787 * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
6788
67892009-04-26 Jakub Jelinek <jakub@redhat.com>
77f2a970
JJ
6790
6791 * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
6792 note_nonlocal_vla_type for nonlocal VLAs.
6793 (note_nonlocal_vla_type, note_nonlocal_block_vlas,
6794 contains_remapped_vars, remap_vla_decls): New functions.
6795 (convert_nonlocal_reference_stmt): If not optimizing, call
6796 note_nonlocal_block_vlas on GIMPLE_BIND block vars.
6797 (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
6798 if it wasn't found in var_map.
6799 (finalize_nesting_tree_1): Call remap_vla_decls. If outermost
6800 GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
6801 to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
6802 declare_vars.
6803 * gimplify.c (nonlocal_vlas): New variable.
6804 (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
6805 referenced VLAs.
6806 (gimplify_body): Create and destroy nonlocal_vlas.
a9548ddf 6807
4561e242
JJ
6808 * dwarf2out.c (loc_descr_plus_const): New function.
6809 (build_cfa_aligned_loc, tls_mem_loc_descriptor,
6810 mem_loc_descriptor, loc_descriptor_from_tree_1,
6811 descr_info_loc, gen_variable_die): Use it.
6812
a9548ddf
JJ
6813 * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
6814 !TREE_STATIC VAR_DECLs.
6815 * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
6816 DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
6817 (gen_variable_die): Likewise. Don't look at TREE_PRIVATE if
6818 DECL_BY_REFERENCE is valid.
6819 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
6820 for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
6821 * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
6822 Copy DECL_BY_REFERENCE.
6823 (struct nesting_copy_body_data): New type.
6824 (nesting_copy_decl): New function.
6825 (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
6826 if they have variable length.
6827
10555d08
MM
68282009-04-26 Michael Matz <matz@suse.de>
6829
6830 * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
6831 mark new temporaries for renaming.
6832
e11187cc
JM
68332009-04-26 Joseph Myers <joseph@codesourcery.com>
6834
6835 PR c/39581
6836 * c-decl.c (global_bindings_p): Return negative value.
6837 (c_variable_size): New. Based on variable_size from
6838 stor-layout.c.
6839 (grokdeclarator): Call c_variable_size not variable_size.
6840
f6a51d31
UB
68412009-04-26 Uros Bizjak <ubizjak@gmail.com>
6842
6843 * config/i386/i386.c (print_operand) ['z']: Fix typo.
6844
4b97723d
KT
68452009-04-26 Kai Tietz <kai.tietz@onevision.com>
6846
6847 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
6848 Redefine it to just use mingw/include.
6849 (ASM_SPEC): Rules for -m32 and -m64.
6850 (LINK_SPEC): Use Likewise.
6851 (SPEC_32): New define.
6852 (SPEC_64): Likewise.
6853 (SUB_LINK_SPEC): Likewise.
6854 (MULTILIB_DEFAULTS): New define.
6855 * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
6856 Add multilib options.
6857 (MULTILIB_DIRNAMES): Likewise.
6858 (MULTILIB_OSDIRNAMES): Likewise.
6859 (LIBGCC): Likewise.
6860 (INSTALL_LIBGCC): Likewise.
6861
991d6621
JM
68622009-04-26 Joseph Myers <joseph@codesourcery.com>
6863
6864 PR c/39556
6865 * c-tree.h (enum c_inline_static_type): New.
6866 (record_inline_static): Declare.
6867 * c-decl.c (struct c_inline_static, c_inline_statics,
6868 record_inline_static, check_inline_statics): New.
6869 (pop_file_scope): Call check_inline_statics.
6870 (start_decl): Call record_inline_static instead of pedwarning
6871 directly for static in inline function.
6872 * c-typeck.c (build_external_ref): Call record_inline_static
6873 instead of pedwarning directly for static referenced in inline
6874 function.
6875
4a81774c
SB
68762009-04-26 Steven Bosscher <steven@gcc.gnu.org>
6877
6878 * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
6879 not new but only being rescanned.
6880 * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
6881 reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
6882 alloc_reg_set_mem, free_reg_set_mem, record_one_set,
6883 record_set_info, compute_set, grealloc): Remove.
6884 (recompute_all_luids): New function.
6885 (gcse_main): Don't compute sets, and don't do related memory
6886 allocations/free-ing. If something changed before the end of the
6887 pass, update LUIDs using recompute_all_luids.
6888 (alloc_gcse_mem): Don't compute LUIDs. Don't allocate reg_set memory.
6889 (free_gcse_mem): Don't free it either.
6890 (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
6891 Use the df insn LUIDs.
6892 (load_killed_in_block): Likewise.
6893 (compute_hash_table_work): Don't compute reg_set_in_block.
6894 (compute_transp): Use DF_REG_DEF_CHAINs.
6895 (local_cprop_pass): Don't use compute_sets and related functions.
6896 (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
6897 Use get_max_uid() instead of max_cuid.
6898 (insert_insn_end_basic_block, pre_insert_copy_insn,
6899 update_ld_motion_stores): Don't try to
6900 keep reg_set tables up to date.
6901 (pre_insert_copies): Use df insn LUIDs.
6902 (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
6903 (reg_set_info): Don't use extra bitmap argument.
6904 (compute_store_table): Don't compute reg_set_in_block. Use DF scan
6905 information to compute regs_set_in_block.
6906 (free_store_memory, store_motion): Don't nullify reg_set_in_block.
6907 (bypass_jumps): Don't use compute_sets and friends.
6908
e8f99a9d
RW
69092009-04-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6910
6911 PR testsuite/39710
6912 * opts.c (undocumented_msg): Do not leave blank even with
6913 ENABLE_CHECKING.
6914
6895bac8
JM
69152009-04-25 Joseph Myers <joseph@codesourcery.com>
6916
6917 * c-decl.c (build_enumerator): Allow values folding to integer
6918 constants but not integer constant expressions with a pedwarn if
6919 pedantic.
6920
24070fcb
JM
69212009-04-25 Joseph Myers <joseph@codesourcery.com>
6922
6923 PR c/39582
6924 * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
6925 with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
6926 type is an integer constant.
6927
d6d89aa1
UB
69282009-04-25 Uros Bizjak <ubizjak@gmail.com>
6929
6930 PR target/39897
6931 * config/i386/i386.c (print_operand) ['z']: Revert handling of
6932 HImode operands.
6933
92f6fd0b
JM
69342009-04-25 Joseph Myers <joseph@codesourcery.com>
6935
6936 PR c/39564
6937 * c-decl.c (grokdeclarator): Diagnose declarations of functions
6938 with variably modified return type and no storage class
6939 specifiers, except for the case of nested functions. Distinguish
6940 extern declarations of functions with variably modified return
6941 types from those of objects with variably modified types.
6942
a3710436
JH
69432009-04-25 Jan Hubicka <jh@suse.cz>
6944
6945 * tree.c (list_equal_p): New function.
6946 * tree.h (list_equal_p): Declare.
6947 * coretypes.h (edge_def, edge, const_edge, basic_block_def
6948 basic_block_def, basic_block, const_basic_block): New.
6949 * tree-eh.c (make_eh_edge): EH edges are not abnormal.
6950 (redirect_eh_edge): New function.
6951 (make_eh_edge_update_phi): EH edges are not abnormal.
6952 * except.c: Include tree-flow.h.
6953 (list_match): New function.
6954 (eh_region_replaceable_by_p): New function.
6955 (replace_region): New function.
6956 (hash_type_list): New function.
6957 (hash_eh_region): New function.
6958 (eh_regions_equal_p): New function.
6959 (merge_peers): New function.
6960 (remove_unreachable_regions): Verify EH tree when checking;
6961 merge peers.
6962 (copy_eh_region_1): New function.
6963 (copy_eh_region): New function.
6964 (push_reachable_handler): New function.
6965 (build_post_landing_pads, dw2_build_landing_pads): Be ready for
6966 regions without label but with live RESX.
6967 * except.h (redirect_eh_edge_to_label): New.
6968 * tree-flow.h (redirect_eh_edge): New.
6969 * coretypes.h (edge_def, edge, const_edge, basic_block_def
6970 basic_block_def, basic_block, const_basic_block): Remove.
6971 * Makefile.in (except.o): Add dependency on tree-flow.h
6972 * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
6973 * basic-block.h (edge, const_edge, basic_block, const_basic_block):
6974 Remove.
6975
3764d512
EB
69762009-04-25 Eric Botcazou <ebotcazou@adacore.com>
6977
6978 PR bootstrap/39645
6979 * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
6980 on the destination of memcpy.
6981
1c62e8f2
PB
69822009-04-25 Paolo Bonzini <bonzini@gnu.org>
6983
6984 * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
6985 REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
6986 REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
6987
496a4ef5
JH
69882009-04-25 Jan Hubicka <jh@suse.cz>
6989
6990 * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
6991 (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
6992 to be reached by different label than left.
6993 (update_eh_edges): Update comment; remove edge_to_remove if possible
6994 and return true if suceeded.
6995 (cleanup_empty_eh): Accept sharing map; handle shared regions.
6996 (cleanup_eh): Compute sharing map.
6997 * except.c (remove_eh_handler_and_replace): Add argument if we should
6998 update regions.
6999 (remove_unreachable_regions): Update for label sharing.
7000 (label_to_region_map): Likewise.
7001 (get_next_region_sharing_label): New function.
7002 (remove_eh_handler_and_replace): Add update_catch_try parameter; update
7003 prev_try pointers.
7004 (remove_eh_handler): Update.
7005 (remove_eh_region_and_replace_by_outer_of): New function.
7006 * except.h (struct eh_region): Add next_region_sharing_label.
7007 (remove_eh_region_and_replace_by_outer_of,
7008 get_next_region_sharing_label): Declare.
7009 * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
7010
70112009-04-25 Jan Hubicka <jh@suse.cz>
7012
7013 * tree-cfg.c (split_critical_edges): Split also edges where we can't
7014 insert code even if they are not critical.
7015
70162009-04-25 Jan Hubicka <jh@suse.cz>
7017
7018 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
7019 (gimple_can_remove_branch_p): EH edges won't remove branch by
7020 redirection.
7021 * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
7022 updating of non-abnormal EH edges.
7023 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
7024 (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
7025 (split_critical_edges): Split also edges where emitting code on them
7026 will lead to splitting later.
7027
a3a5e3d1
UB
70282009-04-25 Uros Bizjak <ubizjak@gmail.com>
7029 H.J. Lu <hongjiu.lu@intel.com>
7030
7031 PR target/39590
7032 * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
7033 the configured assembler supports fildq and fistpq mnemonics.
7034 (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
7035 * configure: Regenerated.
7036 * config.in: Ditto.
7037
7038 * config/i386/i386.c (print_operand): Handle 'Z'.
7039 ['z']: Remove handling of special fild/fist suffixes.
7040 (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
7041 * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
7042 suffix of fild insn.
7043 (*floatsi<mode>2_vector_mixed): Ditto.
7044 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
7045 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
7046 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
7047 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
7048 * config/i386/gas.h (GAS_MNEMONICS): Remove.
7049
23750d7f
BE
70502009-04-25 Ben Elliston <bje@au.ibm.com>
7051
7052 * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
7053 the source of a set operation.
7054
e6ff3083
AS
70552009-04-25 Anatoly Sokolov <aesok@post.ru>
7056
7057 * target.h (struct gcc_target): Add case_values_threshold field.
7058 * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
7059 (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
7060 * targhooks.c (default_case_values_threshold): New function.
7061 * targhooks.h (default_case_values_threshold): Declare function.
7062 * stmt.c (expand_case): Use case_values_threshold target hook.
7063 * expr.h (case_values_threshold): Remove declartation.
7064 * expr.c (case_values_threshold): Remove function.
7065 * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
7066
7067 * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
7068 * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
7069 (avr_case_values_threshold): Declare as static.
7070 * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
7071
7072 * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
7073 * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
7074 (mn10300_case_values_threshold): New function.
7075
569c72fc
L
70762009-04-24 H.J. Lu <hongjiu.lu@intel.com>
7077
7078 * ira.c (setup_cover_and_important_classes): Add enum cast.
7079
ff3cb468
VM
70802009-04-24 Vladimir Makarov <vmakarov@redhat.com>
7081
7082 * genpreds.c (write_enum_constraint_num): Output definition of
7083 CONSTRAINT_NUM_DEFINED_P macro.
7084 * ira.c (setup_cover_and_important_classes): Use
7085 CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
7086
4f7be849
DD
70872009-04-24 DJ Delorie <dj@redhat.com>
7088
7089 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
7090 __SH2A_SINGLE_ONLY__ also.
7091
735b94a7
SE
70922009-04-24 Steve Ellcey <sje@cup.hp.com>
7093
7094 * config/ia64/ia64.md (movfs_internal): Allow flt constants.
7095 (movdf_internal): Ditto.
7096 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
7097 SFmode and DFmode constants.
7098 (ia64_print_operand): Add 'G' format for printing
7099 floating point constants.
7100
77a30264
RG
71012009-04-24 Richard Guenther <rguenther@suse.de>
7102
7103 * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
7104 from unsigned additions.
7105
2b6da65c
JM
71062009-04-24 Joseph Myers <joseph@codesourcery.com>
7107
7108 * c-typeck.c (set_init_index): Allow array designators that are
7109 not integer constant expressions with a pedwarn if pedantic.
7110
f5a17c43
BS
71112009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
7112
7113 * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
7114 zero if no overlap in nonzero bits between the operands.
7115
32e8bb8e
ILT
71162009-04-24 Ian Lance Taylor <iant@google.com>
7117
7118 * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
7119 (record_dead_and_set_regs): Likewise.
7120 * df.h (struct df_mw_hardreg): Change flags field to int.
7121 (struct df_base_ref): Likewise.
7122 (struct df): Change changeable_flags field to int.
7123 * df-scan.c (df_defs_record): Change clobber_flags to int.
7124 * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
7125 constants rather than #define macros.
7126 (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
7127 (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
7128 (enum dwarf_calling_convention): Likewise.
7129 (enum dwarf_line_number_x_ops): Likewise.
7130 (enum dwarf_call_frame_info): Likewise.
7131 (enum dwarf_source_language): Likewise.
7132 * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
7133 (add_calling_convention_attribute): Likewise.
a3a5e3d1
UB
7134 * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
7135 (combine_comparisons): Change compcode to int. Add cast to enum type.
32e8bb8e
ILT
7136 * genrecog.c (maybe_both_true_2): Change c to int.
7137 (write_switch): Likewise. Add cast to enum type.
7138 * gimplify.c (gimplify_omp_for): Handle return values from
7139 gimplify_expr using MIN rather than bitwise or.
7140 (gimplify_expr): Add cast to enum type.
7141 * ipa-prop.c (update_jump_functions_after_inlining): Change
7142 IPA_BOTTOM to IPA_JF_UNKNOWN.
a3a5e3d1
UB
7143 * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
7144 Add casts to enum type.
32e8bb8e
ILT
7145 (setup_cover_and_important_classes): Change cl to int. Add casts
7146 to enum type.
7147 (setup_class_translate): Change cl and mode to int.
7148 (ira_init_once): Change mode to int.
7149 (free_register_move_costs): Likewise.
7150 (setup_prohibited_mode_move_regs): Add casts to enum type.
7151 * langhooks.c (add_builtin_function_common): Rework assertion that
7152 value fits bitfield.
7153 * mcf.c (add_fixup_edge): Change type parameter to edge_type.
7154 * omega.c (omega_do_elimination): Avoid math on enum types.
7155 * optabs.c (expand_vec_shift_expr): Remove casts to int.
7156 * opts.c (set_debug_level): Change 2 to enum constant. Use new
7157 int local to handle integral_argment value.
7158 * regmove.c (try_auto_increment): Change PUT_MODE to
7159 PUT_REG_NOTE_KIND.
7160 * reload.c (push_secondary_reload): Add casts to enum type.
7161 (secondary_reload_class, find_valid_class): Likewise.
7162 * reload1.c (emit_input_reload_insns): Likewise.
7163 * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
7164 * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
7165 * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
7166 constant.
7167 * tree.c (build_common_builtin_nodes): Add casts to enum type.
7168 * tree-complex.c (complex_lattice_t): Typedef to int rather than
7169 enum type.
7170 (expand_complex_libcall): Add casts to enum type.
7171 * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
7172 * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
7173 with ERROR_MARK, not NUM_TREE_CODES.
7174 (vect_create_epilog_for_reduction): Likewise.
7175 (vectorizable_reduction): Don't initialize epiloc_reduc_code.
a3a5e3d1 7176 When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
32e8bb8e
ILT
7177 * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
7178 enum machine_mode.
7179 * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
7180 vect_unused_in_loop. Change 0 to loop_vect.
a3a5e3d1 7181 * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
32e8bb8e
ILT
7182 * var-tracking.c (get_init_value): Change return type to enum
7183 var_init_status.
7184 * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
7185 * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
7186 arm_fp_model.
7187 (arm_override_options): Add casts to enum type.
7188 (arm_emit_tls_decoration): Likewise.
7189 * config/i386/i386.c (ix86_function_specific_restore): Add casts
7190 to enum type.
7191 * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
7192 * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
7193 * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
7194 enum type.
7195 * config/s390/s390.c (code_for_builtin_64): Change to array of
7196 enum insn_code.
7197 (code_for_builtin_31): Likewise.
7198 (s390_expand_builtin): Change code_for_builtin to enum insn_code
7199 const *.
7200 * config/sparc/sparc.c (sparc_override_options): Change value
7201 field in struct code_model to enum cmodel. In initializer change
7202 0 to NULL and add cast to enum type.
7203
7204 * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
7205 Change all callers. Issue a -Wc++-compat warning using
7206 lhs_origtype if necessary.
7207 (convert_for_assignment): Issue -Wc++-compat warnings about
7208 invalid conversions to enum type on assignment.
7209 * c-common.h (build_modify_expr): Update declaration.
7210
ac4fc08a
NC
72112009-04-24 Nick Clifton <nickc@redhat.com>
7212
7213 * config/iq2000/iq2000.c (function_arg): Handle TImode values.
7214 (function_arg_advance): Likewise.
7215 * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
7216 5th alternative.
7217
f22e891a
AK
72182009-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
7219
7220 * config/s390/constraints.md ('I', 'J'): Fix condition.
7221
ad58aabe
DN
72222009-04-24 Diego Novillo <dnovillo@google.com>
7223
7224 * gengtype-parse.c (parse_error): Add newline after message.
7225
879a4a01
L
72262009-04-24 H.J. Lu <hongjiu.lu@intel.com>
7227
7228 * config/i386/sse.md (avxmodesuffixs): Removed.
7229 (*avx_pinsr<avxmodesuffixs>): Renamed to ...
7230 (*avx_pinsr<ssevecsize>): This.
7231
f63426af
BS
72322009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
7233
7234 * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
7235 follow chains of regs with a single definition, and allow expressions
7236 that are function_invariant_p.
ce72fe6c 7237 (simple_rhs_p): Allow expressions that are function_invariant_p.
f63426af 7238
30349c74
PB
72392009-04-24 Paolo Bonzini <bonzini@gnu.org>
7240
7241 PR middle-end/39867
7242 * fold-const.c (fold_cond_expr_with_comparison): When folding
7243 > and >= to MAX, make sure the MAX uses the same type as the
7244 comparison's operands.
7245
8d8256c1
NC
72462009-04-24 Nick Clifton <nickc@redhat.com>
7247
7248 * config/frv/frv.c (frv_frame_access): Do not use reg+reg
7249 addressing for DImode accesses.
7250 (frv_print_operand_address): Handle PLUS case.
a3a5e3d1 7251 * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
8d8256c1 7252
6216f94e
JJ
72532009-04-24 Jakub Jelinek <jakub@redhat.com>
7254
7255 PR rtl-optimization/39794
7256 * alias.c (canon_true_dependence): Add x_addr argument.
7257 * rtl.h (canon_true_dependence): Adjust prototype.
7258 * cse.c (check_dependence): Adjust canon_true_dependence callers.
7259 * cselib.c (cselib_invalidate_mem): Likewise.
7260 * gcse.c (compute_transp): Likewise.
7261 * dse.c (scan_reads_nospill): Likewise.
7262 (record_store, check_mem_read_rtx): Likewise. For non-const-or-frame
7263 addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
7264 canon_base_addr of the group, plus optional offset.
7265 (struct group_info): Rename canon_base_mem to
7266 canon_base_addr.
7267 (get_group_info): Set canon_base_addr to canon_rtx of base, not
7268 canon_rtx of base_mem.
7269
6de7a512
PB
72702009-04-23 Paolo Bonzini <bonzini@gnu.org>
7271
7272 * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
7273 Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
7274
4a3a2376
UW
72752009-04-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7276
7277 * config/spu/spu-builtins.h: Delete file.
7278
7279 * config/spu/spu.h (enum spu_builtin_type): Move here from
7280 spu-builtins.h.
7281 (struct spu_builtin_description): Likewise. Add GTY marker.
7282 Do not use enum spu_function_code or enum insn_code.
7283 (spu_builtins): Add extern declaration.
7284
7285 * config/spu/spu.c: Do not include "spu-builtins.h".
7286 (enum spu_function_code, enum spu_builtin_type_index,
7287 V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
7288 V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
7289 unsigned_V8HI_type_node, unsigned_V4SI_type_node,
7290 unsigned_V2DI_type_node): Move here from spu-builtins.h.
7291 (spu_builtin_types): Make static. Add GTY marker.
7292 (spu_builtins): Add extern declaration with GTY marker.
7293 Include "gt-spu.h".
7294
7295 * config/spu/spu-c.c: Do not include "spu-builtins.h".
7296 (spu_resolve_overloaded_builtin): Do not use spu_function_code.
7297 Check programmatically whether all parameters are scalar.
7298
7299 * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
7300
bbaba73f
EB
73012009-04-23 Eric Botcazou <ebotcazou@adacore.com>
7302
7303 * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
7304 assignment from the constructor either if the target is volatile.
7305
ee93c1c6
DJ
73062009-04-23 Daniel Jacobowitz <dan@codesourcery.com>
7307
7308 * config/arm/arm.md (insv): Do not share operands[0].
7309
b2f21330
NS
73102009-04-23 Nathan Sidwell <nathan@codesourcery.com>
7311
7312 * config/vxlib-tls.c (active_tls_threads): Delete.
7313 (delete_hook_installed): New.
7314 (tls_delete_hook): Don't delete the delete hook.
7315 (tls_destructor): Delete it here.
7316 (__gthread_set_specific): Adjust installing the delete hook.
7317 (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
7318 __gthread_leave_tsd_dtor_context.
7319
4782dfa7
RAE
73202009-04-23 Rafael Avila de Espindola <espindola@google.com>
7321
7322 * c-format.c (gcc_tdiag_char_table): Add support for %E.
7323
bf758008
UB
73242009-04-23 Uros Bizjak <ubizjak@gmail.com>
7325
7326 * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
7327 enum type.
7328 (alpha_rtx_costs): Ditto.
7329 (emit_unlikely_jump): Use add_reg_note.
7330 (emit_frame_store_1): Ditto.
7331 (alpha_expand_prologue): Ditto.
7332 (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
7333 * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
7334
7323a100
NC
73352009-04-23 Nick Clifton <nickc@redhat.com>
7336
7337 * config/v850/v850.md (epilogue): Remove suppressed code.
7338 (return): Rename to return_simple and remove test of frame size.
7339 * config/v850/v850.c (expand_epilogue): Rename call to gen_return
7340 to gen_return_simple.
7341
360032ba
JY
73422009-04-22 Jing Yu <jingyu@google.com>
7343
7344 PR testsuite/39781
7345 * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
7346
53650abe
AP
73472009-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
7348
7349 PR C/31499
7350 * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
7351 and RECORD_TYPE/UNION_TYPE. When outputing the actual element and the
7352 value is a VECTOR_CST, the element type is the element type of the
7353 vector.
7354
89043e8a
DD
73552009-04-22 DJ Delorie <dj@redhat.com>
7356
7357 * config/m32c/m32c.h: Update GTY annotations to new syntax.
7358
023f059b
JJ
73592009-04-22 Jakub Jelinek <jakub@redhat.com>
7360
7361 * alias.c (find_base_term): Move around LO_SUM case, so that
7362 CONST falls through into PLUS/MINUS handling.
7363
2c0eba5a
JJ
7364 PR c/39855
7365 * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
7366 into 0, use omit_one_operand.
7367
9a461028
BE
73682009-04-23 Ben Elliston <bje@au.ibm.com>
7369
7370 * config/rs6000/linux-unwind.h (get_regs): Remove type
7371 puns. Change the type of `pc' to an array of unsigned ints and
7372 update all users. Constify frame24.
7373
653e2568
DD
73742009-04-22 DJ Delorie <dj@redhat.com>
7375
7376 * config/m32c/m32c.c (m32c_special_page_vector_p): Move
7377 declarations before code.
7378 (current_function_special_page_vector): Likewise.
7379 (m32c_expand_insv): Silence a warning.
7380
60839f5d 73812009-04-21 Taras Glek <tglek@mozilla.com>
d1b38208
TG
7382
7383 * alias.c: Update GTY annotations to new syntax.
7384 * basic-block.h: Likewise.
7385 * bitmap.h: Likewise.
7386 * c-common.h: Likewise.
7387 * c-decl.c: Likewise.
7388 * c-parser.c: Likewise.
7389 * c-pragma.c: Likewise.
7390 * c-tree.h: Likewise.
7391 * cfgloop.h: Likewise.
7392 * cgraph.h: Likewise.
7393 * config/alpha/alpha.c: Likewise.
7394 * config/arm/arm.h: Likewise.
7395 * config/avr/avr.h: Likewise.
7396 * config/bfin/bfin.c: Likewise.
7397 * config/cris/cris.c: Likewise.
7398 * config/darwin.c: Likewise.
7399 * config/frv/frv.c: Likewise.
7400 * config/i386/i386.c: Likewise.
7401 * config/i386/i386.h: Likewise.
7402 * config/i386/winnt.c: Likewise.
7403 * config/ia64/ia64.h: Likewise.
7404 * config/iq2000/iq2000.c: Likewise.
7405 * config/mips/mips.c: Likewise.
7406 * config/mmix/mmix.h: Likewise.
7407 * config/pa/pa.c: Likewise.
7408 * config/pa/pa.h: Likewise.
7409 * config/rs6000/rs6000.c: Likewise.
7410 * config/s390/s390.c: Likewise.
7411 * config/sparc/sparc.c: Likewise.
7412 * config/xtensa/xtensa.c: Likewise.
7413 * cselib.h: Likewise.
7414 * dbxout.c: Likewise.
7415 * dwarf2out.c: Likewise.
7416 * except.c: Likewise.
7417 * except.h: Likewise.
7418 * fixed-value.h: Likewise.
7419 * function.c: Likewise.
7420 * function.h: Likewise.
7421 * gimple.h: Likewise.
7422 * integrate.c: Likewise.
7423 * optabs.c: Likewise.
7424 * output.h: Likewise.
7425 * real.h: Likewise.
7426 * rtl.h: Likewise.
7427 * stringpool.c: Likewise.
7428 * tree-data-ref.c: Likewise.
7429 * tree-flow.h: Likewise.
7430 * tree-scalar-evolution.c: Likewise.
7431 * tree-ssa-address.c: Likewise.
7432 * tree-ssa-alias.h: Likewise.
7433 * tree-ssa-operands.h: Likewise.
7434 * tree.c: Likewise.
7435 * tree.h: Likewise.
7436 * varasm.c: Likewise.
7437 * varray.h: Likewise.
7438 * vec.h: Likewise.
bf758008 7439 * coretypes.h: Do not define GTY macro if it is already defined.
d1b38208
TG
7440 * doc/gty.texi: Update GTY documentation to new syntax.
7441 * gengtype-lex.l: Enforce attribute-like syntax for GTY
7442 annotations on structs.
7443 * gengtype-parse.c: Likewise.
7444
a123d175
MH
74452009-04-22 Mark Heffernan <meheff@google.com>
7446
bf758008 7447 * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
a123d175 7448
4c7c486a
KH
74492009-04-22 Kazu Hirata <kazu@codesourcery.com>
7450
7451 * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
7452 where appropriate.
7453
6e782a29
KH
74542009-04-22 Kazu Hirata <kazu@codesourcery.com>
7455
7456 * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
7457 the same as a PLUS without a shift. Increase the cost of a
7458 CONST_INT in MULT.
7459
38d2336a
MLI
74602009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7461
7462 * Makefile.in: Update dependencies.
bf758008 7463 * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
38d2336a
MLI
7464 * errors.h: Remove bogus comment about compatibility.
7465 (warning): Update declaration.
7466 * genautomata.c: Update all calls to warning.
7467 * gimple.c: Do not include errors.h. Include toplev.h.
7468 * tree-ssa-structalias.c: Do not include errors.h.
7469 * omega.c: Likewise.
7470 * tree-ssa-reassoc.c: Likewise.
7471 * config/spu/spu-c.c: Likewise.
7472 * config/spu/t-spu-elf: Update dependencies.
7473
aea4deba
RG
74742009-04-22 Richard Guenther <rguenther@suse.de>
7475
7476 PR tree-optimization/39824
7477 * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
7478 make sure the types are compatible.
7479
cfc93532
MLI
74802009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7481
7482 PR c++/14875
7483 * c-common.c (c_parse_error): Take a token_flags parameter.
7484 Use token_type for the token type instead.
7485 Pass token_flags to cpp_type2name.
7486 * c-common.h (c_parse_error): Update declaration.
7487 * c-parser.c (c_parser_error): Pass 0 as token flags.
7488
8632d02a
AB
74892009-04-22 Andrey Belevantsev <abel@ispras.ru>
7490
7491 PR rtl-optimization/39580
7492 * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert.
7493
4c33221c
UW
74942009-04-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7495
7496 * function.c (expand_function_end): Do not emit a jump to the "naked"
7497 return label for fall-through returns.
7498 * except.c (sjlj_emit_function_exit): Always place the call to the
7499 unregister function at the location installed by expand_function_end.
7500
9925bce0
RG
75012009-04-22 Richard Guenther <rguenther@suse.de>
7502
7503 PR tree-optimization/39845
7504 * tree-switch-conversion.c (build_arrays): Add new referenced vars.
7505 (gen_inbound_check): Likewise.
7506
24a40b35
NS
75072009-04-22 Nathan Sidwell <nathan@codesourcery.com>
7508
7509 * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
7510 padding for PPC.
7511 (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
7512 * config/vxlib.c (__gthread_once): Add race guard for PPC.
7513
6c34a092
PB
75142009-04-22 Paolo Bonzini <bonzini@gnu.org>
7515
7516 * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
7517 sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
7518 shift counts to avoid out-of-bounds array accesses.
7519
baa48dfa
PB
75202009-04-22 Paolo Bonzini <bonzini@gnu.org>
7521
7522 * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
7523 (Pmode): Move above.
7524
7d83f4f5
UB
75252009-04-22 Uros Bizjak <ubizjak@gmail.com>
7526
7527 * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
7528 NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
7529 GET_CODE macro. Use IN_RANGE macro where appropriate.
7530 * config/alpha/alpha.h: Ditto.
7531 * config/alpha/alpha.md: Ditto.
7532 * config/alpha/constraints.md: Ditto.
7533 * config/alpha/predicates.md: Ditto.
7534
3ad606bc
PB
75352009-04-22 Paolo Bonzini <bonzini@gnu.org>
7536
7537 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
7538 * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7539 * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7540 * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7541 * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7542 * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7543 * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7544 * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7545 * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7546 * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7547 * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7548 * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7549 * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7550 * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7551 * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7552 * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7553 * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7554 * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7555 * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7556 * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7557 * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7558 * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7559 * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7560 * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7561 * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7562 * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7563 * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7564
3cabd6d1
LB
75652009-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
7566
7567 * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
7568 references from comments.
7569 * cfgbuild.c: (count_basic_blocks): Delete.
7570 (find_basic_blocks_1): Delete.
7571 (find_basic_blocks): Delete.
7572 * except.c (finish_eh_generation): Make static. Move comment from
7d83f4f5 7573 except.h here. Remove find_basic_blocks references from comments.
3cabd6d1
LB
7574 * except.h (finish_eh_generation): Delete.
7575 * basic-block.h (find_basic_blocks): Delete.
7576 * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
7577
270d1bcd
DK
75782009-04-22 Dave Korn <dave.korn.cygwin@gmail.com>
7579
7580 * sdbout.c (sdbout_symbol): Pass VOIDmode to eliminate_regs.
7581 (sdbout_parms): Likewise.
7582
b757d36f
KK
75832009-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
7584
7585 * config/sh/sh.c (prepare_cbranch_operands): Use
7586 LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
7587 (expand_cbranchdi4): Likewise.
7588 (from_compare): Add cast to enum type.
7589 (expand_cbranchsi4): Use add_reg_note.
7590 (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
7591 (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
7592 (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
7593 (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
7594 * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
7595 instead of CODE_FOR_nothing.
7596 (cbranchdi4): Likewise. Fix the order of arguments for
7597 gen_rtx_fmt_ee.
7598 (push_fpscr): Use add_reg_note.
7599 (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
7600 reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
7601
ad41bd84
JM
76022009-04-21 Joseph Myers <joseph@codesourcery.com>
7603
7604 * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
7605 ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
7606 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
7607 ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
7608 ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
7609 FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
7610 config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
7611 config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
7612 config/alpha/x-vms, config/arc/t-arc,
7613 config/arm/README-interworking, config/arm/arm-c.c,
7614 config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
7615 config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
7616 config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
7617 config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
7618 config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
7619 config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
7620 config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
7621 config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
7622 config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
7623 config/cris/t-elfmulti, config/crx/t-crx,
7624 config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
7625 config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
7626 config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
7627 config/h8300/t-h8300, config/i386/athlon.md,
7628 config/i386/darwin-libgcc.10.4.ver,
7629 config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
7630 config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
7631 config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
7632 config/i386/t-linux64, config/i386/t-nwld,
7633 config/i386/t-rtems-i386, config/i386/t-sol2-10,
7634 config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
7635 config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
7636 config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
7637 config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
7638 config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
7639 config/iq2000/t-iq2000, config/libgcc-glibc.ver,
7640 config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
7641 config/m32r/t-m32r, config/m68hc11/t-m68hc11,
7642 config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
7643 config/m68k/t-uclinux, config/mcore/t-mcore,
7644 config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
7645 config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
7646 config/mips/crtn.asm, config/mips/irix-crti.asm,
7647 config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
7648 config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
7649 config/mips/mips-fixed.md, config/mips/sb1.md,
7650 config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
7651 config/mips/t-iris6, config/mips/t-isa3264,
7652 config/mips/t-libgcc-mips16, config/mips/t-linux64,
7653 config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
7654 config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
7655 config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
7656 config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
7657 config/mn10300/t-linux, config/mn10300/t-mn10300,
7658 config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
7659 config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
7660 config/picochip/libgccExtras/clzsi2.asm,
7661 config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
7662 config/rs6000/darwin-libgcc.10.4.ver,
7663 config/rs6000/darwin-libgcc.10.5.ver,
7664 config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
7665 config/rs6000/t-aix43, config/rs6000/t-aix52,
7666 config/rs6000/t-darwin, config/rs6000/t-fprules,
7667 config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
7668 config/rs6000/t-lynx, config/rs6000/t-netbsd,
7669 config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
7670 config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
7671 config/rs6000/t-rtems, config/rs6000/t-spe,
7672 config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
7673 config/score/t-score-elf, config/sh/divcost-analysis,
7674 config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
7675 config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
7676 config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
7677 config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
7678 config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
7679 config/stormy16/stormy-abi, config/stormy16/t-stormy16,
7680 config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
7681 config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
7682 config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
7683 config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
7684 config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
7685 gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
7686 java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
7687 limitx.h, version.c, xcoff.h: Add copyright and license notices.
7688 * config/h8300/genmova.sh: Include copyright and license notices
7689 in generated output.
7690 * config/h8300/mova.md: Regenerate.
7691 * doc/install.texi2html: Include word "Copyright" in copyright
7692 notice and use name "Free Software Foundation, Inc.".
7693 * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
7694 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
7695 ChangeLog-2007, ChangeLog-2008: Correct dates.
7696
ca80e52b
EB
76972009-04-21 Eric Botcazou <ebotcazou@adacore.com>
7698
7699 * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
7700 NE_EXPR operations as well.
7701 * c-parser.c (c_parser_condition): Do not set location information on
7702 the condition.
7703 (c_parser_conditional_expression): Likewise.
7704 (c_parser_binary_expression): Set location information on operators.
7705 * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
7706 TRUTH_NOT_EXPR has been folded.
7707 * fold-const.c (fold_truth_not_expr): Copy location information from
7708 the incoming expression to the outgoing one.
7709 * gimplify.c (shortcut_cond_r): Add locus parameter. Pass it to
7710 recursive calls on the LHS of the operator but pass that of the
7711 operator to recursive calls on the RHS of the operator. Set it
7712 on the COND_EXPR.
7713 (shortcut_cond_expr): Set the locus of the operator on the second
7714 COND_EXPR and that of the expression on the first in degenerate cases.
7715 Pass the locus of the expression to calls to shortcut_cond_r.
7716 Set the locus of the 'then' block on the associated jump, if any.
7717 (gimplify_boolean_expr): Add locus parameter. Set it on the COND_EXPR.
7718 (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
7719 expression to call to gimplify_boolean_expr.
7720
35091630
KT
77212009-04-21 Kai Tietz <kai.tietz@onevision.com>
7722
7723 * config.gcc: Add additional configuration for
7724 i686-w64-mingw* and x86_64-w64-mingw* triplet.
7725 * config/i386/mingw-w64.h: New mingw-w64 specific header.
7726 (CPP_SPEC): Redefine for allowing -municode option.
7727 (STARTFILE_SPEC): Likewise.
7728 * config/i386/t-mingw-w64: New.
7729 * config/i386/mingw-w64.opt: New.
7730 (municode): Add new target option.
7731 * doc/invoke.texi (municode): Add documentation for new option.
7732
0267afc4
ILT
77332009-04-21 Ian Lance Taylor <iant@google.com>
7734
7735 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
7736 Correct test for number of arguments.
7737 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
7738
2ba9daa7
AS
77392009-04-21 Andreas Schwab <schwab@linux-m68k.org>
7740
7741 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
7742 argument of emit_library_call.
7743
ad8a1ac0
RG
77442009-04-21 Richard Guenther <rguenther@suse.de>
7745
7746 PR middle-end/39829
7747 * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
7748 inside VIEW_CONVERT_EXPRs.
7749
7156c8ab
MJ
77502009-04-21 Martin Jambor <mjambor@suse.cz>
7751
7752 * tree-switch-conversion.c (build_constructors): Split a long line.
7753 (constructor_contains_same_values_p): New function.
7d83f4f5
UB
7754 (build_one_array): Create assigns of constants if possible, do not
7755 call mark_sym_for_renaming, call update_stmt.
7156c8ab
MJ
7756 (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
7757 make_rename_temp. Do not call mark_symbols_for_renaming, call
7758 update_stmt.
7759 (gen_def_assigns): Do not call mark_symbols_for_renaming or
7760 find_new_referenced_vars, call update_stmt.
7761 (gen_inbound_check): Use create_tmp_var and create ssa names manually
7762 instead of calling make_rename_temp. Do not call
7763 find_new_referenced_vars or mark_symbols_for_renaming, call
7764 update_stmt.
7765
2970ccb3
RG
77662009-04-21 Richard Guenther <rguenther@suse.de>
7767
7768 PR tree-optimization/39827
7d83f4f5 7769 * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
2970ccb3
RG
7770 (tree_ssa_phiprop): Pass the correct array size.
7771
47f402d1
UB
77722009-04-21 Uros Bizjak <ubizjak@gmail.com>
7773
7774 * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
7775
1e4ae551
MLI
77762009-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
7777
7778 PR 16202
7779 * c-typeck.c (lvalue_p): Move declaration ...
7780 * c-common.h (lvalue_p): ... to here.
7781 * c-common.c (candidate_equal_p): New.
7782 (add_tlist): Use it.
7783 (merge_tlist): Use it.
7784 (warn_for_collisions_1): Likewise.
7785 (warning_candidate_p): Accept more candidates.
7786 (verify_tree): A warning candidate can be an expression. Use
7787 candidate_equal_p.
7788
244609a6
BE
77892009-04-21 Ben Elliston <bje@au.ibm.com>
7790
7791 PR target/5267
7792 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
7793 for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
7794 options. Remove -mcall-solaris documentation.
7795
9c650d90
MLI
77962009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7797
7798 PR c++/13358
7799 * doc/invoke.texi (-Wlong-long): Update description.
7800 * c-lex (interpret_integer): Only warn if there was no previous
7801 overflow and -Wlong-long is enabled.
7802 * c-decl.c (declspecs_add_type): Drop redundant flags.
7803 * c.opt (Wlong-long): Init to -1.
7804 * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
7805 and front-end warn_long_long. Wlong-long only depends on other
7806 flags if it is uninitialized.
7807 * c-parser.c (disable_extension_diagnostics): warn_long_long is
7808 the same for CPP and FE.
7809 (restore_extension_diagnostics): Likewise.
7810
bbbbb16a
ILT
78112009-04-20 Ian Lance Taylor <iant@google.com>
7812
7813 Fix enum conversions which are invalid in C++:
47f402d1
UB
7814 * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
7815 * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
7816 * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
7817 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
47f402d1 7818 * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
bbbbb16a 7819 (dbxout_parms): Likewise.
47f402d1 7820 * df-core.c (df_set_flags): Change changeable_flags parameter to int.
bbbbb16a
ILT
7821 (df_clear_flags): Likewise.
7822 * df-problems.c (df_rd_bb_local_compute_process_def): Change
7823 top_flag parameter to int.
7824 (df_chain_create_bb_process_use): Likewise.
47f402d1
UB
7825 (df_chain_add_problem): Change chain_flags parameter to unsigned int.
7826 Remove cast.
bbbbb16a
ILT
7827 * df-scan.c (df_ref_create): Change ref_flags parameter to int.
7828 (df_ref_create_structure, df_def_record_1): Likewise.
7829 (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
7830 (df_notes_rescan): Change 0 to VOIDmode in function call.
7831 (df_get_call_refs, df_insn_refs_collect): Likewise.
7832 (df_bb_regs_collect): Likewise.
7833 (df_entry_block_defs_collect): Likewise.
7834 (df_exit_block_uses_collect): Likewise.
7835 * df.h: Update declarations.
7836 * double-int.c (double_int_divmod): Add cast to enum type.
7837 * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
7838 * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
7839 (based_loc_descr): Likewise.
7840 (loc_descriptor_from_tree_1): Change first_op and second_op to
7841 enum dwarf_location_atom. Add cast to enum type.
7842 * expmed.c (init_expmed): Change 0 to SET in function call.
47f402d1 7843 * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
7844 (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
7845 (do_store_flag): Likewise.
7846 * fixed-value.h (struct fixed_value): Change mode to enum
7847 machine_mode.
47f402d1 7848 * function.c (assign_parms): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
7849 * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
7850 function call.
7851 (insert_insn_decl, insert_decl, insert_state): Likewise.
7852 (automata_list_finish): Likewise.
7853 * genrecog.c (process_define_predicate): Add cast to enum type.
7854 * gensupport.c (init_predicate_table): Add cast to enum type.
7855 * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
7856 function call.
7857 (gimple_build_call_1, gimple_build_label): Likewise.
7858 (gimple_build_goto, gimple_build_asm_1): Likewise.
7859 (gimple_build_switch_1, gimple_build_cdt): Likewise.
47f402d1 7860 * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
bbbbb16a
ILT
7861 (enum fallback): Rename from enum fallback_t.
7862 (fallback_t): Typedef as int.
7863 * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
7864 GSI_SAME_STMT in function call.
7865 * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
7866 enum type.
7867 (setup_reg_class_relations): Likewise.
47f402d1 7868 (setup_reg_class_nregs): Change cl to int. Add casts to enum type.
bbbbb16a
ILT
7869 (setup_prohibited_class_mode_regs): Add cast to enum type.
7870 (setup_prohibited_mode_move_regs): Likewise.
47f402d1 7871 * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
bbbbb16a
ILT
7872 (record_address_regs): Change i to enum reg_class.
7873 * lists.c (alloc_EXPR_LIST): Add cast to enum type.
7874 * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
7875 (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
7876 (GET_MODE_2XWIDER_MODE): Likewise.
7877 (GET_CLASS_NARROWEST_MODE): Likewise.
7878 * omp-low.c (expand_omp_for): Add cast to enum type.
7879 * optabs.c (debug_optab_libfuncs): Add casts to enum type.
7880 * opts.c (enable_warning_as_error): Change kind to diagostic_t.
7881 * postreload.c (reload_cse_simplify_operands): Change rclass local
7882 to enum reg_class.
7883 * predict.c (combine_predictions_for_insn): Change best_predictor
7884 and predictor to enum br_predictor.
7885 (combine_predictions_for_bb): Likewise.
7886 (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
7887 use SET_PREDICT_EXPR_OUTCOME.
47f402d1 7888 * real.c (real_arithmetic): Change icode to code in function call.
bbbbb16a
ILT
7889 * reginfo.c (init_move_cost): Add casts to enum type.
7890 (init_reg_sets_1, init_fake_stack_mems): Likewise.
7891 * regmove.c (regclass_compatible_p): Change class0 and class1 to
7892 enum reg_class.
7893 * reload.c (find_valid_class): Add casts to enum type.
7894 (push_reload): Change 0 to NO_REGS in function call.
7895 (find_reloads): Change this_alternative to array of enum
7896 reg_class. Remove some now-unnecessary casts.
7897 (make_memloc): Change 0 to VOIDmode in function call.
7898 * reload1.c (reload): Change 0 to VOIDmode in function call.
7899 (eliminate_regs_1, elimination_effects): Likewise.
7900 (eliminate_regs_in_insn): Likewise.
7901 (emit_input_reload_insns): Add cast to enum type.
7902 (delete_output_reload): Change 0 to VOIDmode in function call.
7903 * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
7904 to enum type in function call.
7905 * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
7906 (SET_PREDICT_EXPR_OUTCOME): Define.
47f402d1 7907 * tree-dump.c (get_dump_file_info): Change phase parameter to int.
bbbbb16a
ILT
7908 (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
7909 (dump_initialized_p, dump_flag_name, dump_end): Likewise.
7910 (dump_function): Likewise.
7911 * tree-dump.h: Update declarations.
7912 * tree-pass.h: Update declarations.
7913 * varasm.c (assemble_integer): Change mclass to enum mode_class.
7914 * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
7915 enum type.
7916 (arm_rtx_costs_1): Correct parenthesization.
7917 (arm_rtx_costs): Add casts to enum type.
7918 (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
7919 (vfp_emit_fstmd): Use add_rg_note.
7920 (emit_multi_reg_push, emit_sfm): Likewise.
7921 (thumb_set_frame_pointer): Likewise.
7922 (arm_expand_prologue): Likewise.
7923 (arm_regno_class): Change return type to enum reg_class.
7924 (thumb1_expand_prologue): Use add_reg_note.
7925 * config/arm/arm-protos.h (arm_regno_class): Update declaration.
7926 * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
7927 in function call.
7928 * config/arm/gentune.sh: Add cast to enum type.
7929 * config/arm/arm-tune.md: Rebuild.
7930 * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
7931 (ix86_split_fp_branch, predict_jump): Likewise.
7932 (ix86_expand_multi_arg_builtin): Change sub_code from enum
7933 insn_code to enum rtx_code.
7934 (ix86_builtin_vectorized_function): Add cast to enum type.
7935 * config/i386/i386.md (truncdfsf2): Change slot to enum
7936 ix86_stack_slot.
7937 (truncxf<mode>2, isinf<mode>2): Likewise.
7938 * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
7939 enum type.
7940 * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
7941 (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
7942 (insert_bundle_state): Change 1 to INSERT in function call.
7943 (ia64_add_bundle_selector_before): Likewise.
7944 * config/ia64/ia64.md (cpu attr): Add cast to enum type.
7945 (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
7946 (restore_stack_nonlocal): Likewise.
7947 * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
7948 function call.
7949 * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
7950 function call.
7951 (mips_rtx_costs): Likewise.
7952 (mips_override_options): Add casts to enum type.
7953 * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
7954 in function call.
7955 * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
7956 (store_reg, set_reg_plus_d): Likewise.
7957 (hppa_expand_prologue, hppa_profile_hook): Likewise.
7958 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
7959 cast to enum type.
7960 (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
7961 function call.
7962 (emit_unlikely_jump): Use add_reg_note.
7963 (rs6000_emit_allocate_stack): Likewise.
7964 (rs6000_frame_related, rs6000_emit_prologue): Likewise.
7965 (output_toc): Change 1 to INSERT in function call.
7966 (output_profile_hook): Change 0 to LCT_NORMAL in function call.
7967 (rs6000_initialize_trampoline): Likewise.
7968 (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
7969 function call.
7970 * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
7971 (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
7972 (s390_expand_setmem, s390_expand_cmpmem): Likewise.
7973 (save_gprs): Use add_reg_note.
7974 (s390_emit_prologue): Likewise.
47f402d1 7975 (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
7976 * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
7977 (sparc_fold_builtin): Add cast to enum type.
7978 * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
7979 enum insn_code.
7980 (spu_expand_prologue): Use add_reg_note.
47f402d1 7981 (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
7982
79832009-04-20 Ian Lance Taylor <iant@google.com>
7984
7985 * c-parser.c (c_parser_attributes): Change VEC back to tree list.
7986 (c_parser_postfix_expression_after_primary): Get VEC for list of
7987 arguments. Get original types of arguments. Call
7988 build_function_call_vec.
7989 (cached_expr_list_1, cached_expr_list_2): New static variables.
7990 (c_parser_expr_list): Change return type to VEC *. Add
7991 p_orig_types parameter. Change all callers.
7992 (c_parser_release_expr): New static function.
7993 (c_parser_vec_to_tree_list): New static function.
7994 * c-typeck.c (build_function_call): Rewrite to build a VEC and
7995 call build_function_call_vec.
7996 (build_function_call_vec): New function, based on old
7997 build_function_call.
7998 (convert_arguments): Remove nargs and argarray parameters. Change
7999 values to a VEC. Add origtypes parameter.
47f402d1 8000 (build_modify_expr): Add rhs_origtype parameter. Change all callers.
bbbbb16a
ILT
8001 (convert_for_assignment): Add origtype parameter. Change all
8002 callers. If warn_cxx_compat, check for conversion to an enum
8003 type when calling a function.
8004 (store_init_value): Add origtype parameter. Change all callers.
8005 (digest_init): Likewise.
8006 (struct init_node): Add origtype field.
8007 (add_pending_init): Add origtype parameter. Change all callers.
8008 (output_init_element): Likewise.
8009 (output_pending_init_elements): Pass origtype from init_node to
8010 output_init_element.
f28a61ab 8011 (process_init_element): Pass origtype from c_expr to
bbbbb16a
ILT
8012 output_init_element.
8013 (c_finish_return): Add origtype parameter. Change all callers.
8014 * c-common.c (sync_resolve_size): Change params to VEC *. Change
8015 caller.
8016 (sync_resolve_params): Likewise.
47f402d1 8017 (sync_resolve_return): Change params to first_param. Change caller.
bbbbb16a 8018 (resolve_overloaded_builtins): Change params to VEC *. Change
47f402d1 8019 callers. Save first parameter around call to build_function_call_vec.
bbbbb16a
ILT
8020 * c-decl.c (finish_decl): Add origtype parameter. Change all
8021 callers. Call build_function_call_vec rather than
8022 build_function_call for cleanup.
8023 * c-tree.h: Update declarations.
8024 * c-common.h: Update declarations.
8025 * stub-objc.c (objc_rewrite_function_call): Change parameter from
8026 params to first_param.
8027 * target.h (struct gcc_target): Change resolve_overloaded_builtin
8028 params parameter from tree to void *.
8029 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
8030 Change arglist parameter to have type void *, and to be a pointer
8031 to a VEC.
8032 * config/rs6000/rs6000-protos.h
8033 (altivec_resolve_overloaded_builtin): Update declaration.
8034 * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
8035 fnargs parameter to have type void *, and to be a pointer to a
8036 VEC. Call build_function_call_vec instead of
8037 build_function_call.
47f402d1 8038 * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
bbbbb16a 8039
6ff078d4 80402009-04-20 Joey Ye <joey.ye@intel.com>
60839f5d 8041 Xuepeng Guo <xuepeng.guo@intel.com>
6ff078d4
JY
8042 H.J. Lu <hongjiu.lu@intel.com>
8043
8044 * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
8045
8046 * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
8047 (IX86_LEA_PRIORITY): Likewise.
8048 (distance_non_agu_define): New function.
8049 (distance_agu_use): Likewise.
8050 (ix86_lea_for_add_ok): Likewise.
8051 (ix86_dep_by_shift_count): Likewise.
8052
8053 * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
8054 should split for LEA.
8055
8056 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
8057 function.
8058 (ix86_dep_by_shift_count): Likewise.
8059
87a5b4cc
RG
80602009-04-20 Richard Guenther <rguenther@suse.de>
8061
8062 * expr.c (handled_component_p): Move ...
8063 * tree.h (handled_component_p): ... here.
8064 * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
8065 ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
8066 and REALPART_EXPR to be in one group.
8067
438c239d
RG
80682009-04-20 Richard Guenther <rguenther@suse.de>
8069
8070 * basic-block.h (get_all_dominated_blocks): Declare.
8071 * dominance.c (get_all_dominated_blocks): New function.
8072 * tree-cfg.c (get_all_dominated_blocks): Remove.
8073 (remove_edge_and_dominated_blocks): Adjust.
8074 * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
8075 (tree_ssa_phiprop): ... here. Use get_all_dominated_blocks
8076 instead of recursing.
8077
fed5ae11
DK
80782009-04-20 Doug Kwan <dougkwan@google.com>
8079
8080 * cgraph.h (cgraph_node_ptr): New type for vector functions.
8081 (struct cgraph_node_set_def): New type.
8082 (cgraph_node_set) New type. Also declare vector functions.
8083 (struct cgraph_node_set_element_def): New type.
8084 (cgraph_node_set_element): Ditto.
8085 (cgraph_node_set_iterator): New iterator type.
8086 (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
8087 cgraph_node_set_remove, dump_cgraph_node_set,
8088 debug_cgraph_node_set): New prototypes.
8089 (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
8090 cgraph_node_set_size): New inlines.
8091 * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
8092 including cgraph.h.
8093 (struct ipa_opt_pass): Add struct cgraph_node_set_def
8094 argument to function 'write_summary'.
8095 * ipa.c: Include ggc.h.
8096 (hash_cgraph_node_set_element,
8097 eq_cgraph_node_set_element, cgraph_node_set_new,
8098 cgraph_node_set_add, cgraph_node_set_remove,
8099 cgraph_node_set_find, dump_cgraph_node_set,
8100 debug_cgraph_node_set): New functions.
8101 * Makefile.in (ipa.o): Add dependency on GGC_H.
8102
c4551b28
IR
81032009-04-20 Ira Rosen <irar@il.ibm.com>
8104
8105 PR tree-optimization/39675
2ba9daa7 8106 * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
47f402d1
UB
8107 check of the return code of vect_schedule_slp. Check that
8108 stmt_vec_info still exists for the statement, before checking its
8109 vectorization type.
c4551b28 8110
21a495fb
MM
81112009-04-20 Michael Matz <matz@suse.de>
8112
8113 * Makefile.in (generated_files): Take out $(simple_generated_c).
8114
8e208874
DK
81152009-04-19 Dave Korn <dave.korn.cygwin@gmail.com>
8116
8117 * config/i386/cygwin-stdint.h (INTPTR_TYPE): Remove "long".
8118 (UINTPTR_TYPE): Likewise.
8119
a45e580b
JM
81202009-04-19 Joseph Myers <joseph@codesourcery.com>
8121
8122 PR c/37481
8123 * c-typeck.c (digest_init): Check for initializing an array with a
8124 string literal.
8125
20845d35
JM
81262009-04-19 Joseph Myers <joseph@codesourcery.com>
8127
8128 PR c/19771
8129 * c-semantics.c (pop_stmt_list): Propagate
8130 STATEMENT_LIST_HAS_LABEL to parent statement list.
8131
28143fdd
AN
81322009-04-19 Adam Nemet <anemet@caviumnetworks.com>
8133
8134 * config/mips/mips.h (mips_tune_attr): New macro.
8135 * config/mips/mips.md (cpu): Use it.
8136
da377db9
JM
81372009-04-19 Joseph Myers <joseph@codesourcery.com>
8138
8139 PR c/38243
8140 * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
8141 declaring a tag.
8142
3baf459d
DN
81432009-04-19 Diego Novillo <dnovillo@google.com>
8144
8145 * toplev.c (compile_file): Move call to coverage_finish ...
8146 * cgraphunit.c (ipa_passes): ... here.
8147 Call cgraph_process_new_functions.
8148 * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
8149 * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
8150
b6fa5b01
JH
81512009-04-19 Jan Hubicka <jh@suse.cz>
8152
47f402d1
UB
8153 * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
8154 cfun.
b6fa5b01
JH
8155 (dump_cgraph_node): Dump can throw external flag.
8156 * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
8157
ca409efd
MLI
81582009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
8159
8160 PR c/32061
8161 PR c++/36954
8162 * doc/invoke.texi: Add -Wlogical-op to -Wextra.
8163 * common.opt (Wlogical-op): Move from here...
8164 * c.opt (Wlogical-op): ... to here.
8165 * c-typeck.c (parser_build_binary_op): Update call to
8166 warn_logical_operator.
8167 * c-opts.c (c_common_post_options): Enable warn_logical_op with
8168 extra_warnings.
8169 * c-common.c (warn_logical_op): Update.
8170 * c-common.h (warn_logical_op): Update declaration.
8171
9db4cdd3
EB
81722009-04-19 Eric Botcazou <ebotcazou@adacore.com>
8173
8174 * tree.c (protected_set_expr_location): Fix formatting.
8175
f37acdf9
JM
81762009-04-18 Joseph Myers <joseph@codesourcery.com>
8177
8178 PR c/27676
8179 * c-typeck.c (readonly_warning): new.
8180 (build_unary_op, build_modify_expr): Use readonly_warning for
8181 storing into something readonly but not const-qualified.
8182
2b4b7036
JM
81832009-04-18 Joseph Myers <joseph@codesourcery.com>
8184
8185 PR c/22367
8186 * c-typeck.c (build_unary_op): Check for taking address of
8187 expression of type void.
8188
3ce62965
JM
81892009-04-18 Joseph Myers <joseph@codesourcery.com>
8190
8191 PR c/35210
8192 * c-typeck.c (build_function_call): Check for calling a function
8193 with qualified void return types. Call require_complete_type when
8194 generating a trap.
8195
2505c5ed
JH
81962009-04-18 Jan Hubicka <jh@suse.cz>
8197
8198 * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
8199 Set nothrow flag.
8200 * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
8201 can_throw_external flag.
8202 * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
8203 * ipa-pure-const.c (ignore_edge): New function.
8204 (propagate): Compute order for NOTHROW computation; set NOTHROWs
8205 only over can_throw_external edges.
8206 (local_pure_const): Add nothrow flag.
8207 * ipa-utils.c (searchc): Add ignore_edge callback.
8208 (ipa_utils_reduced_inorder): Add ignore_edge callback.
8209 * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
8210 (set_nothrow_function_flags): Update cgraph.
8211 * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
8212
2586ba4b
RG
82132009-04-18 Richard Guenther <rguenther@suse.de>
8214
8215 PR middle-end/39804
8216 * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
8217 (fold_stmt): ... this and ...
8218 (fold_stmt_inplace): ... this.
8219 (fold_stmt_1): Fold references in calls and asms.
8220 * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
8221
1eefab17
KH
82222009-04-18 Kazu Hirata <kazu@codesourcery.com>
8223
8224 * tree-vrp.c (ssa_name_nonzero_p): Remove.
8225 * tree.h: Remove the prototype for ssa_name_nonzero_p.
8226
aa424b01
KH
82272009-04-18 Kazu Hirata <kazu@codesourcery.com>
8228
8229 * tree.c (function_args_count): Remove.
8230 * tree.h: Remove the prototype for function_args_count.
8231
613a896b
KH
82322009-04-18 Kazu Hirata <kazu@codesourcery.com>
8233
8234 * tree-iterator.c (expr_only): Remove.
8235 * tree.h: Remove the prototype for expr_only.
8236
579e694c
KH
82372009-04-18 Kazu Hirata <kazu@codesourcery.com>
8238
8239 * reginfo.c (cannot_change_mode_set_regs): Remove.
8240 * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
8241
ee7e3ad3
AS
82422009-04-08 Anatoly Sokolov <aesok@post.ru>
8243
8244 * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
8245 whether operands 0 and 1 overlaps.
8246
92ef7fb1
MLI
82472009-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
8248
8249 PR middle-end/36902
8250 * tree-vrp.c (check_array_ref): Pass a location_t instead of a
8251 pointer. Use warning_at instead of warning.
8252 (search_for_addr_array): Likewise.
8253 (check_array_bounds): Likewise.
8254 (check_all_array_refs): Check that the incoming edge is not in the
8255 list of edges to be removed.
8256 (check_all_array_refs): Avoid the temporal pointer.
8257 (vrp_visit_cond_stmt): Fix typo.
8258 (simplify_switch_using_ranges): Handle the case where the switch
8259 index is an integer constant.
8260
0e097268
AN
82612009-04-18 Adam Nemet <anemet@caviumnetworks.com>
8262
8263 * config/mips/mips.c (mips_final_postscan_insn): Make it static.
8264
c782f1dd
KH
82652009-04-18 Kazu Hirata <kazu@codesourcery.com>
8266
8267 * doc/extend.texi, doc/invoke.texi: Fix typos.
8268
668fb0e8
CC
82692009-04-17 Cary Coutant <ccoutant@google.com>
8270
8271 * tree-flow-inline.h (get_lineno): Fix inverted test.
8272
4d4014c1
DN
82732009-04-17 Diego Novillo <dnovillo@google.com>
8274
8275 * tree-ssa-pre.c (create_expression_by_pieces): Remove
8276 assertion for AVAIL_OUT.
8277
2984e1b6
MF
82782009-04-17 Mike Frysinger <vapier@gentoo.org>
8279
8280 PR target/38627
8281 * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
8282 * config/sh/linux-atomic.asm: Likewise.
8283
9994a182
DN
82842009-04-17 Diego Novillo <dnovillo@google.com>
8285
8286 * except.c (debug_eh_tree): New.
8287 (struct eh_region, struct eh_status): Move ...
8288 * except.h: ... here.
8289 (add_type_for_runtime): Declare extern.
8290 (lookup_type_for_runtime): Likewise.
8291 (debug_eh_tree): Declare.
8292 * Makefile.in (GTFILES): List except.h before except.c
8293
07485407
DN
82942009-04-17 Diego Novillo <dnovillo@google.com>
8295
47f402d1 8296 * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
07485407
DN
8297 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
8298 * tree-dfa.c (find_referenced_vars_in): Factor out of ...
8299 (find_vars_r): ... here.
8300 * tree-flow.h (find_referenced_vars_in): Declare.
8301 * tree-ssa-pre.c (create_expression_by_pieces): Assert
8302 that AVAIL_OUT exists for BLOCK.
8303 * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
8304 (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
8305 (tree-parloops.o): Likewise.
8306
4e53d196
SB
83072009-04-17 Simon Baldwin <simonb@google.com>
8308
8309 * toplev.c (default_tree_printer): Add handling for %E format.
8310
413d3aa8
DN
83112009-04-17 Diego Novillo <dnovillo@google.com>
8312
47f402d1
UB
8313 * tree-pretty-print.c (dump_generic_node): Add break after
8314 TREE_BINFO handler. Handle COMPLEX_TYPE, REAL_TYPE and
8315 FIXED_POINT_TYPE. Handle NULL TREE_TYPEs. Handle METHOD_TYPE and
8316 FUNCTION_TYPE together. Call print_struct_decl when printing
8317 structures and TDF_SLIM is not given.
413d3aa8
DN
8318 (print_struct_decl): Fix logic for detecting recursion.
8319
5a691e98
RAE
83202009-04-17 Rafael Avila de Espindola <espindola@google.com>
8321
8322 PR 31567
8323 * gcc.c (create_at_file): New.
8324 (compile_input_file_p): New.
8325 (do_spec_1): Use @args files for %i. Use create_at_file for %o.
8326 * main.c (main): Update call to toplev_main.
8327 * toplev.c (toplev_main): Change signature. Call expandargv.
8328 * toplev.h (toplev_main): Change signature.
8329
9eacf7a6
EB
83302009-04-17 Eric Botcazou <ebotcazou@adacore.com>
8331
8332 * dwarf2out.c (field_byte_offset): Use the type size as the field size
8333 if the latter is not constant.
8334
58298177
DE
83352009-04-17 David Edelsohn <edelsohn@gnu.org>
8336
8337 * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
8338
5b4c43d7
EB
83392009-04-17 Eric Botcazou <ebotcazou@adacore.com>
8340
8341 * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
8342 * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
8343
b51605c4
RG
83442009-04-17 Richard Guenther <rguenther@suse.de>
8345
8346 * tree-ssa-structalias.c (get_constraint_for_component_ref):
8347 Handle component references view-converting an invariant address.
8348
9e3be889
AN
83492009-04-17 Adam Nemet <anemet@caviumnetworks.com>
8350
8351 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
8352 TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
8353 TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
8354 TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
8355 Use @deftypevr rather than @deftypevar.
8356
7c3e9dc3
RG
83572009-04-17 Richard Guenther <rguenther@suse.de>
8358
47f402d1 8359 * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
7c3e9dc3
RG
8360 (get_prop_source_stmt): Likewise.
8361 (can_propagate_from): Likewise.
8362
aca600aa
AS
83632009-04-17 Andrew Stubbs <ams@codesourcery.com>
8364
8365 * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
8366 TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
8367 (--with-multilib-list): Add default value.
8368 * configure: Regenerate.
8369 * Makefile.in (TM_ENDIAN_CONFIG): Define.
8370 (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
8371 * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
8372 TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
8373 Don't add default cpu to multilib list unnecessarily, but do enable
8374 the relevant compiler option..
8375 Add support for --with-multilib-list=<blank> and
8376 --with-multilib-list=!<somelib> to supress unwanted multilibs.
8377 * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
8378 (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
8379 (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
8380 TM_MULTILIB_CONFIG.
8381 (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
8382 (MULTILIB_OSDIRNAMES): New variable.
8383 * config/sh/t-1e: Delete file.
8384 * config/sh/t-mlib-sh1: Delete file.
8385 * config/sh/t-mlib-sh2: Delete file.
8386 * config/sh/t-mlib-sh2a: Delete file.
8387 * config/sh/t-mlib-sh2a-nofpu: Delete file.
8388 * config/sh/t-mlib-sh2a-single: Delete file.
8389 * config/sh/t-mlib-sh2a-single-only: Delete file.
8390 * config/sh/t-mlib-sh2e: Delete file.
8391 * config/sh/t-mlib-sh3e: Delete file.
8392 * config/sh/t-mlib-sh4: Delete file.
8393 * config/sh/t-mlib-sh4-nofpu: Delete file.
8394 * config/sh/t-mlib-sh4-single: Delete file.
8395 * config/sh/t-mlib-sh4-single-only: Delete file.
8396 * config/sh/t-mlib-sh4a: Delete file.
8397 * config/sh/t-mlib-sh4a-nofpu: Delete file.
8398 * config/sh/t-mlib-sh4a-single: Delete file.
8399 * config/sh/t-mlib-sh4a-single-only: Delete file.
8400 * config/sh/t-mlib-sh4al: Delete file.
8401 * config/sh/t-mlib-sh5-32media: Delete file.
8402 * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
8403 * config/sh/t-mlib-sh5-64media: Delete file.
8404 * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
8405 * config/sh/t-mlib-sh5-compact: Delete file.
8406 * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
8407 * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
8408 * doc/install.texi (Options specification): Add
8409 --with-multilib-list and --with-endian.
8410
cf8aba7f
RAE
84112009-04-17 Rafael Avila de Espindola <espindola@google.com>
8412
8413 * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
8414 REVISION_c.
8415 (OBJS-common): Add plugin-version.o.
8416 (plugin-version.o): New.
8417 * gcc-plugin.h (plugin_gcc_version): New.
8418 (plugin_default_version_check): New.
8419 (plugin_init_func, plugin_init): Add version argument.
8420 * plugin-version.c: New.
8421 * plugin.c (str_plugin_gcc_version_name): New.
8422 (try_init_one_plugin): Read plugin_gcc_version from the plugin and
8423 pass it to the init function.
8424 (plugin_default_version_check): New.
8425
61e20b90
RG
84262009-04-17 Richard Guenther <rguenther@suse.de>
8427
8428 * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
8429 for decl-vs-decl disambiguation.
8430
90c6fd8a
AK
84312009-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
8432
8433 * config/s390/s390.h (s390_tune_attr): New macro definition.
8434 * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
8435
9fe9fe04
RG
84362009-04-17 Richard Guenther <rguenther@suse.de>
8437
8438 * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
8439 (fold_stmt_r): Likewise.
8440 (maybe_fold_reference): New function.
8441 (fold_gimple_assign): Handle cases fold_stmt_r did.
8442 (fold_stmt): Do not use fold_stmt_r.
8443 (fold_stmt_inplace): Likewise.
8444
7e673273
RG
84452009-04-17 Richard Guenther <rguenther@suse.de>
8446
8447 * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
8448 (record_equivalences_from_stmt): Remove useless checks and
8449 simplifications.
8450 * tree-ssa-pre.c (eliminate): Avoid converting a constant if
8451 the type is already suitable.
8452
fabf2749
PB
84532009-04-17 Paolo Bonzini <bonzini@gnu.org>
8454
8455 * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
8456
68f7b061
UB
84572009-04-17 Uros Bizjak <ubizjak@gmail.com>
8458
8459 * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
8460 (CMPtype): Define as __gcc_CMPtype.
8461
532bfb0a
AJ
84622009-04-17 Aurelien Jarno <aurelien@aurel32.net>
8463
8464 * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
8465 for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
8466
e3ac77ff
RG
84672009-04-17 Richard Guenther <rguenther@suse.de>
8468
8469 PR tree-optimization/39746
8470 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
8471 special-casing for builtins and static variable use/def.
8472 (call_may_clobber_ref_p_1): Likewise.
8473
7072a650
ILT
84742009-04-16 Ian Lance Taylor <iant@google.com>
8475
8476 * df.h: Include "timevar.h".
8477 (struct df_problem): Change tv_id field to timevar_id_t.
8478 * tree-pass.h: Include "timevar.h".
8479 (struct opt_pass): Change tv_id field to timevar_id_t.
8480 * timevar.h (timevar_id_t): Define TV_NONE.
8481 * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
8482 TV_NONE rather than tv_id != 0.
8483 (execute_one_pass): Likewise.
8484 * Makefile.in (DF_H): Add $(TIMEVAR_H).
8485 (TREE_PASS_H): Define. Change all instances of tree-pass.h in
8486 dependencies to $(TREE_PASS_H).
8487 * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
8488 to TV_NONE.
8489 (pass_branch_target_load_optimize2): Likewise.
8490 * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
8491 (pass_outof_cfg_layout_mode): Likewise.
8492 * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
8493 (pass_rebuild_cgraph_edges): Likewise.
8494 (pass_remove_cgraph_callee_edges): Likewise.
8495 * df-core.c (pass_df_initialize_opt): Likewise.
8496 (pass_df_initialize_no_opt): Likewise.
8497 (pass_df_finish): Likewise.
8498 * emit-rtl.c (pass_unshare_all_rtl): Likewise.
8499 * except.c (pass_set_nothrow_function_flags): Likewise.
8500 (pass_convert_to_eh_region_ranges): Likewise.
8501 * final.c (pass_compute_alignments): Likewise.
8502 * function.c (pass_instantiate_virtual_regs): Likewise.
8503 (pass_init_function): Likewise.
8504 (pass_leaf_regs): Likewise.
8505 (pass_match_asm_constraints): Likewise.
8506 * gimple-low.c (pass_lower_cf): Likewise.
8507 (pass_mark_used_blocks): Likewise.
8508 * init-regs.c (pass_initialize_regs): Likewise.
8509 * integrate.c (pass_initial_value_sets): Likewise.
8510 * ira.c (pass_ira): Likewise.
8511 * jump.c (pass_cleanup_barriers): Likewise.
8512 * omp-low.c (pass_expand_omp): Likewise.
8513 (pass_lower_omp): Likewise.
8514 * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
8515 * recog.c (pass_split_all_insns): Likewise.
8516 (pass_split_after_reload): Likewise.
8517 (pass_split_before_regstack): Likewise.
8518 (pass_split_before_sched2): Likewise.
8519 (pass_split_for_shorten_branches): Likewise.
8520 * reginfo.c (pass_reginfo_init): Likewise.
8521 (pass_subregs_of_mode_init): Likewise.
8522 (pass_subregs_of_mode_finish): Likewise.
8523 * passes.c (pass_postreload): Likewise.
8524 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
8525 * tree-cfg.c (pass_remove_useless_stmts): Likewise.
8526 (pass_warn_function_return): Likewise.
8527 (pass_warn_function_noreturn): Likewise.
8528 * tree-complex.c (pass_lower_complex): Likewise.
8529 (pass_lower_complex_O0): Likewise.
8530 * tree-if-conv.c (pass_if_conversion): Likewise.
8531 * tree-into-ssa.c (pass_build_ssa): Likewise.
8532 * tree-mudflap.c (pass_mudflap_1): Likewise.
8533 (pass_mudflap_2): Likewise.
8534 * tree-nomudflap.c (pass_mudflap_1): Likewise.
8535 (pass_mudflap_2): Likewise.
8536 * tree-nrv.c (pass_return_slot): Likewise.
8537 * tree-object-size.c (pass_object_sizes): Likewise.
8538 * tree-optimize.c (pass_all_optimizations): Likewise.
8539 (pass_early_local_passes): Likewise.
8540 (pass_all_early_optimizations): Likewise.
8541 (pass_cleanup_cfg): Likewise.
8542 (pass_cleanup_cfg_post_optimizing): Likewise.
8543 (pass_free_datastructures): Likewise.
8544 (pass_free_cfg_annotations): Likewise.
8545 (pass_fixup_cfg): Likewise.
8546 (pass_init_datastructures): Likewise.
8547 * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
8548 (pass_late_warn_uninitialized): Likewise.
8549 (pass_update_address_taken): Likewise.
8550 * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
8551 * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
8552 (pass_cse_sincos): Likewise.
8553 (pass_convert_to_rsqrt): Likewise.
8554 * tree-ssa-structalias.c (pass_build_alias): Likewise.
8555 * tree-stdarg.c (pass_stdarg): Likewise.
8556 * tree-tailcall.c (pass_tail_recursion): Likewise.
8557 (pass_tail_calls): Likewise.
8558 * tree-vect-generic.c (pass_lower_vector): Likewise.
8559 (pass_lower_vector_ssa): Likewise.
8560 * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
8561
0051ef59
JM
85622009-04-16 Joseph Myers <joseph@codesourcery.com>
8563
8564 * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
8565 XLR entry.
8566 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
8567 Handle -march=xlr.
8568 * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
8569 logical and signext.
8570
b3f8558a
KK
85712009-04-16 Kaz Kojima <kkojima@gcc.gnu.org>
8572
8573 PR target/39767
8574 * config/sh/predicates.md (arith_operand): Check if the operand
8575 of TRUNCATE is a REG.
8576
f57597d9
KH
85772009-04-16 Kazu Hirata <kazu@codesourcery.com>
8578
8579 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
8580 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
8581
b172d063
KH
85822009-04-16 Kazu Hirata <kazu@codesourcery.com>
8583
8584 * tree-iterator.c (tsi_split_statement_list_after,
8585 tsi_split_statement_list_before): Remove.
8586 * tree-iterator.h: Remove the prototypes for
532bfb0a 8587 tsi_split_statement_list_after and tsi_split_statement_list_before.
b172d063 8588
78fe4f1f
KH
85892009-04-16 Kazu Hirata <kazu@codesourcery.com>
8590
8591 * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
8592 * tree-ssa-propagate.h: Remove the prototype for
8593 stmt_makes_single_load.
8594
43dd3201
KH
85952009-04-16 Kazu Hirata <kazu@codesourcery.com>
8596
8597 * emit-rtl.c (set_mem_attrs_from_reg): Remove.
8598 * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
8599
4252a4aa
KH
86002009-04-16 Kazu Hirata <kazu@codesourcery.com>
8601
8602 * tree-iterator.c (EXPR_LAST_BODY): Remove.
8603
bfb69968
KH
86042009-04-16 Kazu Hirata <kazu@codesourcery.com>
8605
8606 * except.c (eh_region_outer_p): Remove.
8607 * except.h: Remove the prototype for eh_region_outer_p.
8608
c7db7fa5
KH
86092009-04-16 Kazu Hirata <kazu@codesourcery.com>
8610
8611 * function.c (current_function_assembler_name): Remove.
8612 * function.h: Remove the prototype for
8613 current_function_assembler_name.
8614
efc0b2bd
ILT
86152009-04-16 Ian Lance Taylor <iant@google.com>
8616
532bfb0a 8617 * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
efc0b2bd
ILT
8618 (add_reg_note): Call alloc_reg_note.
8619 * rtl.h (alloc_reg_note): Declare.
8620 * combine.c (try_combine): Use alloc_reg_note.
8621 (recog_for_combine, move_deaths): Likewise.
8622 (distribute_notes): Use alloc_reg_note and add_reg_note.
8623 * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
8624 * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
8625 * reload1.c (eliminate_regs_1): Use alloc_reg_note.
8626
6080348f
VM
86272009-04-16 Vladimir Makarov <vmakarov@redhat.com>
8628
8629 PR rtl-optimization/39762
8630 * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
8631 ira_may_move_out_cost): Add comments about way of their usage.
532bfb0a 8632 (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
2ba9daa7 8633
6080348f
VM
8634 * ira-conflicts.c (process_regs_for_copy): Use function
8635 ira_get_register_move_cost instead of global
8636 ira_register_move_cost.
8637
8638 * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
8639 color_pass, move_spill_restore, update_curr_costs): Ditto.
8640
8641 * ira-lives.c (process_single_reg_class_operands): Ditto.
8642
8643 * ira-emit.c (emit_move_list): Ditto.
8644
8645 * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
8646 (record_reg_classes): Ditto. Use functions
8647 ira_get_register_move_cost and ira_get_may_move_cost instead of
8648 global vars ira_register_move_cost, ira_may_move_out_cost and
8649 ira_may_move_in_cost.
8650 (record_address_regs): Don't call ira_init_register_move_cost.
8651 Use function ira_get_may_move_cost instead of global
8652 ira_may_move_in_cost.
8653 (process_bb_node_for_hard_reg_moves): Use function
532bfb0a 8654 ira_get_register_move_cost instead of global ira_register_move_cost.
6080348f 8655 (ira_costs): Don't call ira_init_register_move_cost.
2ba9daa7 8656
646bea10
RG
86572009-04-16 Richard Guenther <rguenther@suse.de>
8658
8659 * tree-cfg.c (verify_gimple_assign_binary):
8660 Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
8661 * ipa-struct-reorg.c (gen_size): Fold the built expressions.
8662 (create_general_new_stmt): Note that this function is broken.
8663
02e819ff
RAE
86642009-04-16 Rafael Avila de Espindola <espindola@google.com>
8665
8666 * common.opt (fhelp): Add Var(help_flag).
8667 * gcc-plugin.h (plugin_info): Add help.
8668 * plugin.c (plugin_name_args): Add help.
8669 (register_plugin_info): Set plugin->help.
8670 (print_help_one_plugin): New.
8671 (print_plugins_help): New.
8672 * plugin.h (print_plugins_help): New.
8673 * toplev.c (toplev_main): Call print_plugins_help if needed.
8674
ccacdf06
RG
86752009-04-16 Richard Guenther <rguenther@suse.de>
8676
8677 * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
8678 (gimple_ior_addresses_taken_1): New function.
8679 (gimple_ior_addresses_taken): Likewise.
8680 * gimple.h (struct gimple_statement_with_ops_base): Remove
8681 addresses_taken member.
8682 (gimple_ior_addresses_taken): Declare.
8683 (gimple_addresses_taken, gimple_addresses_taken_ptr,
8684 gimple_set_addresses_taken): Remove.
8685 * ipa-reference.c (mark_address): New function.
8686 (scan_stmt_for_static_refs): Use it for marking addresses taken.
8687 * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
8688 (mark_address_taken): ... this. Just set TREE_ADDRESSABLE.
8689 (gimple_add_to_addresses_taken): Remove.
8690 (get_tmr_operands): Call mark_address_taken.
8691 (get_asm_expr_operands): Likewise.
8692 (get_expr_operands): Likewise.
8693 (build_ssa_operands): Do not clear the addresses_taken bitmap.
8694 (free_stmt_operands): Do not free it.
8695 * tree-ssa.c (delete_tree_ssa): Likewise.
8696 (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
8697
346ef3fa
RG
86982009-04-16 Richard Guenther <rguenther@suse.de>
8699
8700 * gimple.h (walk_stmt_load_store_addr_ops): Declare.
8701 (walk_stmt_load_store_ops): Likewise.
8702 * gimple.c (get_base_loadstore): New function.
8703 (walk_stmt_load_store_addr_ops): Likewise.
8704 (walk_stmt_load_store_ops): Likewise.
8705 * ipa-pure-const.c (check_op): Simplify.
8706 (check_load, check_store): New functions.
8707 (check_stmt): Use walk_stmt_load_store_ops.
8708 * ipa-reference.c (mark_load): Adjust signature.
8709 (mark_store): Likewise.
8710 (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
8711
44e9f006
RAE
87122009-04-16 Rafael Avila de Espindola <espindola@google.com>
8713
8714 * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
8715 (plugin_info): New.
8716 * opts.c (common_handle_option): Don't call print_version.
8717 * plugin.c (plugin_name_args): Add version.
8718 (register_plugin_info): New.
8719 (register_callback): Handle PLUGIN_INFO.
8720 (try_init_one_plugin): New.
8721 (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
8722 if failed to init.
8723 (finalize_one_plugin): New.
8724 (finalize_plugins): New.
8725 (print_one_plugin): New.
8726 (print_plugins_versions): New.
8727 * plugin.h (print_plugins_versions): New.
8728 (finalize_plugins): New.
8729 * toplev.c (compile_file): Don't call initialize_plugins.
8730 (print_version): Call print_plugins_versions.
8731 (toplev_main): Call initialize_plugins. Print version if needed.
8732 Call finalize_plugins.
8733
41fd0f9b
RAE
87342009-04-16 Rafael Avila de Espindola <espindola@google.com>
8735
8736 * common.opt (fversion): New.
8737 * gcc.c (print_version): New.
8738 (process_command): Don't print the version. Just set print_version.
8739 (main): Print version. Call subprocesses if print_version and
8740 verbose_flag are set.
8741 * opts.c (common_handle_option): Handle OPT_fversion.
8742
550918ca 87432009-04-16 Richard Guenther <rguenther@suse.de>
532bfb0a 8744 Ira Rosen <irar@il.ibm.com>
550918ca
RG
8745
8746 PR tree-optimization/39698
8747 * tree-vect-loop.c (get_initial_def_for_reduction): Use the
8748 type of the reduction variable. Only generate the def if
8749 it is needed.
8750
8751 * omp-low.c (expand_omp_for_generic): When converting to a pointer
8752 make sure to first convert to an integer of the same precision.
8753 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
8754 the type of the evolution correctly in computing the new
8755 induction variable base.
8756
54634841
RG
87572009-04-16 Richard Guenther <rguenther@suse.de>
8758
8759 PR middle-end/39625
8760 * tree-cfg.c (make_blocks): Split statements with to-be
8761 abnormal SSA names on the lhs.
8762
b6fc2cdb
PB
87632009-04-16 Paolo Bonzini <bonzini@gnu.org>
8764
8765 * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
8766 Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
8767 * c-typeck.c (really_start_incremental_init): Likewise.
8768 * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
8769 (TARGET_INITIALIZER): Remove it.
8770 * target.h (struct target): Remove vector_opaque_p.
8771 * tree.c (build_opaque_vector_type): New.
8772 * tree.h (TYPE_VECTOR_OPAQUE): New.
8773 (build_opaque_vector_type): Declare.
8774 * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
8775 * config/rs6000/rs6000.c (build_opaque_vector_type,
8776 rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
8777 (rs6000_init_builtins): Use build_opaque_vector_type for
8778 opaque_V4SI_type_node.
8779
a417cdd9
CM
87802009-04-15 Catherine Moore <clm@codesourcery.com>
8781
532bfb0a
AJ
8782 * debug.h (set_name): Declare.
8783 * dwarf2out.c (dwarf2out_set_name): Declare.
8784 (dwarf2_debug_hooks): Add set_name.
8785 (find_AT_string): New.
8786 (add_AT_string): Call find_AT_string.
8787 (dwarf2out_set_name): New.
8788 * cp/decl.c (grokdeclarator): Call set_name.
8789 * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
8790 * debug.c (do_nothing_debug_hooks): Likewise.
8791 * dbxout.c (dbx_debug_hooks): Likewise.
8792 * sdbout.c (sdb_debug_hooks): Likewise.
a417cdd9 8793
60839f5d 87942009-04-15 Michael Eager <eager@eagercon.com>
2c5cac98 8795
532bfb0a
AJ
8796 * config/rs6000/rs6000.c (rs6000_function_value): Set function return
8797 reg for single-precision FPU.
8798 * config/rs6000/rs6000.md (movsi_internal1): Only for
8799 !TARGET_SINGLE_FPU.
8800 (movsi_internal1_single): New. Add pattern to move SI values to/from
2c5cac98
ME
8801 single-precision FP regs.
8802
ada39f0b
RG
88032009-04-15 Richard Guenther <rguenther@suse.de>
8804
8805 * omp-low.c (lower_rec_input_clauses): Build correct address
8806 expressions.
8807 (expand_omp_for_generic): Fix multiplication type.
532bfb0a 8808 * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
ada39f0b
RG
8809 (generate_memset_zero): Fix types.
8810 * tree-profile.c (prepare_instrumented_value): Correctly
8811 widen a pointer.
8812
6866c6e8
ILT
88132009-04-15 Ian Lance Taylor <iant@google.com>
8814
8815 * c.opt (Wenum-compare): Enable for C and Objc. Initialize to -1.
8816 * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
8817 for -Wall and for -Wc++-compat.
8818 (c_common_post_options): For C++, set warn_enum_compare if not
8819 already set.
8820 * c-tree.h (struct c_expr): Add field original_type.
8821 (build_external_ref): Update declaration.
8822 * c-parser.c (c_parser_braced_init): Set original_type.
8823 (c_parser_initelt): Likewise.
8824 (c_parser_expr_no_commas): Likewise.
8825 (c_parser_conditional_expression): Likewise.
8826 (c_parser_cast_expression): Likewise.
8827 (c_parser_unary_expression): Likewise. Pull setting of
8828 original_code to top of function.
8829 (c_parser_sizeof_expression): Set original_type.
8830 (c_parser_alignof_expression): Likewise.
8831 (c_parser_postfix_expression): Likewise. Pull setting of
8832 original_code to top of function.
532bfb0a 8833 (c_parser_postfix_expression_after_paren_type): Set original_type.
6866c6e8
ILT
8834 (c_parser_postfix_expression_after_primary): Likewise.
8835 (c_parser_expression): Likewise.
8836 * c-typeck.c (build_external_ref): Add type parameter. Change all
8837 callers.
8838 (c_expr_sizeof_expr): Set original_type field.
8839 (parser_build_unary_op): Likewise.
8840 (parser_build_binary_op): Likewise. Optionally warn about
8841 comparisons of enums of different types.
8842 (digest_init): Set original_type field.
8843 (really_start_incremental_init): Likewise.
8844 (push_init_level, pop_init_level): Likewise.
8845 * doc/invoke.texi (Warning Options): -Wenum-compare now
8846 supported in C.
8847
f116fecf
RG
88482009-04-15 Richard Guenther <rguenther@suse.de>
8849
8850 * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
8851 out a necessary conversion.
8852 * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
8853 names we didn't value number.
8854 * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
8855
25e20805
RG
88562009-04-15 Richard Guenther <rguenther@suse.de>
8857
8858 PR tree-optimization/39764
8859 * tree-ssa-ccp.c (get_value): Canonicalize value with
8860 canonicalize_float_value.
8861
90cc3676
JH
88622009-04-15 Jan Hubicka <jh@suse.cz>
8863
8864 * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
8865 Wrong version of patch.
8866
6d14c006
JH
88672009-04-15 Jan Hubicka <jh@suse.cz>
8868
8869 * builtins.def (va_start, va_end, va_copy): Mark nothrow.
8870
5afaa917
NS
88712009-04-15 Nathan Sidwell <nathan@codesourcery.com>
8872
8873 * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
8874 our distinct integral and vector types.
8875
3b482fca
RAE
88762009-04-15 Rafael Avila de Espindola <espindola@google.com>
8877
8878 * class.c (build_vtbl_ref_1): Remove call to assemble_external.
8879 * init.c (build_vtbl_address): Remove call to assemble_external.
8880
6cd1d2e2
DJ
88812009-04-14 Daniel Jacobowitz <dan@codesourcery.com>
8882
8883 * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
8884 output for other floating point modes.
8885
dab71827
DN
88862009-04-14 Diego Novillo <dnovillo@google.com>
8887
8888 * diagnostic.c (diagnostic_report_diagnostic): Do not
8889 warn about loaded plugins for DK_ERROR and DK_WARNING.
8890 * c-decl.c (declspecs_add_type): Move call to
8891 invoke_plugin_callbacks ...
8892 * c-parser.c (c_parser_declspecs): ... here.
8893 * plugin.c (dump_active_plugins): Tidy output.
8894
68a607d8
DN
88952009-04-14 Diego Novillo <dnovillo@google.com>
8896 Le-Chun Wu <lcwu@google.com>
8897
8898 * configure.ac: Add --enable-plugin support.
8899 Define ENABLE_PLUGIN and PLUGINLIBS when specified.
8900 * Makefile.in (PLUGIN_H): Define.
8901 Export ENABLE_PLUGIN and GMPINC to site.exp.
8902 Add PLUGINLIBS to link command.
8903 Add/modify dependencies for plugin.o and files including plugin.h.
8904 (plugin.o): New.
8905 * config.in: Regenerate.
2ba9daa7 8906
68a607d8
DN
8907 * opts.c (common_handle_option): Handle OPT_fplugin_ and
8908 OPT_fplugin_arg_.
8909
89102009-04-14 Le-Chun Wu <lcwu@google.com>
8911
8912 * tree-pass.h (register_one_dump_file): Add a prototype for
8913 register_one_dump_file.
8914 * toplev.c (compile_file): Call initialize_plugins.
8915 (do_compile): Call invoke_plugin_callbacks.
8916 (toplev_main): Call invoke_plugin_callbacks.
8917 * common.opt: Add -fplugin= and -fplugin-arg-.
8918 * gcc-plugin.h: New public header file for plugins to include.
8919 * plugin.c: New source file.
8920 * plugin.h: New internal header file.
8921 * passes.c (register_one_dump_file): Make it external.
2ba9daa7 8922
68a607d8
DN
8923 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
8924
89252009-04-14 Diego Novillo <dnovillo@google.com>
8926
8927 * doc/plugins.texi: New.
8928 * doc/gccint.texi: Add reference to Plugins chapter.
8929 * doc/invoke.texi: Document -fplugin and -fplugin-arg
8930 * diagnostic.c (diagnostic_report_diagnostic): Warn about
8931 loaded plugins, if any.
8932 * timevar.def (TV_PLUGIN_INIT): Define.
8933 (TV_PLUGIN_RUN): Define.
8934 * plugin.c: Include timevar.h
8935 (plugins_active_p): New.
8936 (dump_active_plugins): New.
8937 (debug_active_plugins): New.
8938
50617257
JM
89392009-04-14 Joseph Myers <joseph@codesourcery.com>
8940
8941 * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
8942 library paths.
8943 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
8944
b32f6fff
KH
89452009-04-14 Kazu Hirata <kazu@codesourcery.com>
8946
8947 * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
8948 the same as a minus without a shift.
8949
85d04fa2
NC
89502009-04-14 Nick Clifton <nickc@redhat.com>
8951
8952 * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
8953 comparisons with small integers will always produce a short
8954 branch.
8955
e495a0c8
RAE
89562009-04-14 Rafael Avila de Espindola <espindola@google.com>
8957
8958 Merge:
e495a0c8
RAE
8959 2008-12-19 Diego Novillo <dnovillo@google.com>
8960
532bfb0a 8961 * cgraph.c (dump_cgraph_node): Show memory address of NODE.
e495a0c8 8962
ad41bd84 89632009-04-14 Richard Guenther <rguenther@suse.de>
587aa063
RG
8964
8965 * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
8966 verification.
8967 (verify_gimple_assign_binary): Likewise. Handle shifts and
8968 rotates correctly.
8969 (verify_gimple_phi): Print the mismatched argument position.
8970 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
8971 Fix types.
8972 (vect_update_init_of_dr): Likewise.
8973 * matrix-reorg.c (transform_access_sites): Do what the
8974 comment suggests.
8975 * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
8976
60839f5d 89772009-04-13 Michael Eager <eager@eagercon.com>
9eca1774
ME
8978
8979 * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
8980 _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
8981 * config/rs6000/xilinx.h: New. Spec for powerpc-xilinx-eabi
2ba9daa7 8982 * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
9eca1774
ME
8983 remove duplicate config
8984
b0e2d008
DR
89852009-04-13 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
8986
8987 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
8988 file_name:line_number type locator of the call site.
2ba9daa7 8989
1244a8b7
VM
89902009-04-13 Vladimir Makarov <vmakarov@redhat.com>
8991
8992 * genautomata.c: Put blank after comma.
8993 (automaton_decls): New.
8994 (struct unit_usage): Add comments to member next.
8995 (store_alt_unit_usage): Keep the list ordered.
8996 (unit_present_on_list_p, equal_alternatives_p): New.
8997 (check_regexp_units_distribution): Check units distribution
8998 correctness correctly.
8999 (main): Don't write automata if error is found. Return correct
9000 exit code.
2ba9daa7 9001
1244a8b7
VM
9002 * config/m68k/cf.md (cfv4_ds): Remove.
9003 (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
9004 cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
9005
9006 * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
9007 power4-load-ext, power4-store, power4-store-update,
9008 power4-fpstore, power4-fpstore-update, power4-two, power4-three,
9009 power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
9010 power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
9011 power4-sqrt, power4-isync): Modify reservation to make correct
9012 unit distribution to automata.
9013
9014 * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
9015 power5-store-update, power5-two, power5-three, power5-lmul,
9016 power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
2ba9daa7 9017
f7dd1864
AN
90182009-04-13 Adam Nemet <anemet@caviumnetworks.com>
9019
9020 * except.c (pass_set_nothrow_function_flags): Set name and add
9021 TODO_dump_func.
9022 (set_nothrow_function_flags): Mention in the dump file when
9023 changing a function to nothrow.
9024
59a1171f
OS
90252009-04-13 Ozkan Sezer <sezeroz@gmail.com>
9026
9027 PR/39066
9028 * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
9029 instead of unsigned long.
9030
934c2060
RR
90312009-04-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9032
f7dd1864
AN
9033 * config/arm/arm.c (return_used_this_function): Remove.
9034 (arm_output_function_prologue): Remove use of
934c2060 9035 return_used_this_function.
f7dd1864 9036 (output_return_instruction): Replace use of
934c2060
RR
9037 return_used_this_function
9038 by cfun->machine->return_used_this_function.
f7dd1864
AN
9039 (arm_output_epilogue): Likewise.
9040 (arm_output_function_epilogue): Likewise.
9041 (thumb_unexpanded_epilogue): Likewise.
9042 * config/arm/arm.h (struct machine_function):
934c2060 9043 New member return_used_this_function.
f7dd1864 9044
ae5cc016
MM
90452009-04-12 Mark Mitchell <mark@codesourcery.com>
9046
9047 * doc/install.texi: Correct description of default directory for
9048 --with-gxx-include-dir.
9049
a0ce68df 90502009-04-12 Eric Botcazou <ebotcazou@adacore.com>
849d624b
EB
9051
9052 * fold-const.c (build_range_check): Properly deal with enumeral and
9053 boolean base types.
9054
3906a4a1
SB
90552009-04-12 Steven Bosscher <steven@gcc.gnu.org>
9056
9057 * doc/invoke.texi (max_gcse_passes): Remove documentation.
9058 * params.def (PARAM_MAX_GCSE_PASSES): Remove.
9059 * params.h (MAX_GCSE_PASSES): Remove.
9060 * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
9061 in sequence. Remove ability to run multiple passes.
9062 (bypass_jumps): Report run as third CPROP pass.
9063
efaadb93
AN
90642009-04-12 Adam Nemet <anemet@caviumnetworks.com>
9065
9066 PR middle-end/39651
9067 * except.c (can_throw_external): Look at each insn in a SEQUENCE
9068 when deciding whether the whole SEQUENCE can throw.
9069
4c48007b
UB
90702009-04-12 Uros Bizjak <ubizjak@gmail.com>
9071
9072 PR target/39740
9073 * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
9074 offseted label references.
9075
b4104018
JH
90762009-04-11 Jan Hubicka <jh@suse.cz>
9077
9078 * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
9079
32848948
RG
90802009-04-11 Richard Guenther <rguenther@suse.de>
9081
9082 PR middle-end/39732
9083 * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
9084 return variables as TREE_ADDRESSABLE.
9085
8810712e
RG
90862009-04-11 Richard Guenther <rguenther@suse.de>
9087
9088 PR tree-optimization/39713
9089 * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
9090 reference trees have SSA_NAME operands.
9091
fa78c0c1
RG
90922009-04-11 Richard Guenther <rguenther@suse.de>
9093
9094 PR c/39712
9095 * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
9096 address expressions.
9097
4d722130
DK
90982009-04-11 Dave Korn <dave.korn.cygwin@gmail.com>
9099
9100 * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE): Update to
9101 match changes in Cygwin 1.7
9102 (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
9103 UINT_FAST16_TYPE, UINT_FAST32_TYPE): Likewise.
9104
567a90f5
PB
91052009-04-10 Paolo Bonzini <bonzini@gnu.org>
9106
9107 PR tree-optimization/39701
9108 * doc/invoke.texi (Optimization Options): Document change in
9109 meaning and initialization of -fdelete-null-pointer-checks.
9110
1ad2f450
L
91112009-04-10 H.J. Lu <hongjiu.lu@intel.com>
9112
9113 PR middle-end/39701
9114 * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
9115
9116 * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
9117 here.
9118
9119 * doc/invoke.texi: Update -fdelete-null-pointer-checks.
9120
1afc5373
CF
91212009-04-10 Chao-ying Fu <fu@mips.com>
9122
9123 * doc/tm.texi (Instruction Output): Document
9124 TARGET_ASM_FINAL_POSTSCAN_INSN.
9125 * target.h (final_postscan_insn): New field in asm_out.
9126 * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
9127 (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
9128 * final.c (final_scan_insn): Call
9129 targetm.asm_out.final_postscan_insn after outputting
9130 an asm macro and a normal instruction.
9131
9132 * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
9133 * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
9134 * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
9135 (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
9136 (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
9137
4d35e75c
PB
91382009-04-10 Paolo Bonzini <bonzini@gnu.org>
9139
9140 PR middle-end/39701
1ad2f450
L
9141 * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
9142 variables as non-NULL even with -fdelete-null-pointer-checks.
4d35e75c 9143
62c49b83
L
91442009-04-10 H.J. Lu <hongjiu.lu@intel.com>
9145
9146 * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
9147
80558628
L
91482009-04-09 H.J. Lu <hongjiu.lu@intel.com>
9149
9150 PR target/39678
9151 * config/i386/i386.c (classify_argument): Handle SCmode with
9152 (bit_offset % 64) != 0.
9153
8c70d28b
SL
91542009-04-09 Sandra Loosemore <sandra@codesourcery.com>
9155
9156 * doc/invoke.texi (Optimize Options): Add cross-reference to
9157 -Q --help=optimizers examples.
9158
e1ff19bf
BE
91592009-04-10 Ben Elliston <bje@au.ibm.com>
9160
9161 PR target/36800
9162 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
9163 regalign for the reg == fpr and TDmode case.
9164
52daca75
DA
91652009-04-09 David Ayers <ayers@fsfe.org>
9166
9167 PR objc/29200
9168 * objc/objc-act.c (warn_with_method): Remove helper function.
9169 (check_duplicates): Call warning and inform directly.
9170 (really_start_method): Likewise.
9171
b45f0e58
PB
91722009-04-09 Paolo Bonzini <bonzini@gnu.org>
9173
9174 * expmed.c (expand_divmod): Always use a comparison for a division
9175 by a large unsigned integer.
9176
1ad2f450
L
9177 * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
9178 for things others than variables or functions as nonzero.
b45f0e58 9179
748086b7
JJ
91802009-04-09 Nick Clifton <nickc@redhat.com>
9181
9182 * unwind-compat.c: Change copyright header to refer to version
9183 3 of the GNU General Public License with version 3.1 of the
9184 GCC Runtime Library Exception and to point readers at the
7a715bba 9185 COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
748086b7
JJ
9186 * config/alpha/crtfastmath.c: Likewise.
9187 * config/alpha/linux-unwind.h: Likewise.
9188 * config/alpha/qrnnd.asm: Likewise.
9189 * config/alpha/vms-crt0-64.c: Likewise.
9190 * config/alpha/vms-crt0.c: Likewise.
9191 * config/alpha/vms-dwarf2.asm: Likewise.
9192 * config/alpha/vms-dwarf2eh.asm: Likewise.
9193 * config/alpha/vms-psxcrt0-64.c: Likewise.
9194 * config/alpha/vms-psxcrt0.c: Likewise.
9195 * config/alpha/vms_tramp.asm: Likewise.
9196 * config/arc/initfini.c: Likewise.
9197 * config/arc/lib1funcs.asm: Likewise.
9198 * config/arm/bpabi-v6m.S: Likewise.
9199 * config/arm/bpabi.S: Likewise.
9200 * config/arm/bpabi.c: Likewise.
9201 * config/arm/crti.asm: Likewise.
9202 * config/arm/crtn.asm: Likewise.
9203 * config/arm/ieee754-df.S: Likewise.
9204 * config/arm/ieee754-sf.S: Likewise.
9205 * config/arm/lib1funcs.asm: Likewise.
9206 * config/arm/libunwind.S: Likewise.
9207 * config/arm/linux-atomic.c: Likewise.
9208 * config/arm/mmintrin.h: Likewise.
9209 * config/arm/pr-support.c: Likewise.
9210 * config/arm/unaligned-funcs.c: Likewise.
9211 * config/arm/unwind-arm.c: Likewise.
9212 * config/arm/unwind-arm.h: Likewise.
9213 * config/avr/libgcc.S: Likewise.
9214 * config/bfin/crti.s: Likewise.
9215 * config/bfin/crtlibid.s: Likewise.
9216 * config/bfin/crtn.s: Likewise.
9217 * config/bfin/lib1funcs.asm: Likewise.
9218 * config/bfin/linux-unwind.h: Likewise.
9219 * config/cris/arit.c: Likewise.
9220 * config/cris/cris_abi_symbol.c: Likewise.
9221 * config/darwin-64.c: Likewise.
9222 * config/darwin-crt2.c: Likewise.
9223 * config/darwin-crt3.c: Likewise.
9224 * config/darwin.h: Likewise.
9225 * config/dbxelf.h: Likewise.
9226 * config/dfp-bit.c: Likewise.
9227 * config/dfp-bit.h: Likewise.
9228 * config/elfos.h: Likewise.
9229 * config/fixed-bit.c: Likewise.
9230 * config/fixed-bit.h: Likewise.
9231 * config/fp-bit.c: Likewise.
9232 * config/fp-bit.h: Likewise.
9233 * config/fr30/crti.asm: Likewise.
9234 * config/fr30/crtn.asm: Likewise.
9235 * config/fr30/lib1funcs.asm: Likewise.
9236 * config/freebsd-spec.h: Likewise.
9237 * config/frv/cmovd.c: Likewise.
9238 * config/frv/cmovh.c: Likewise.
9239 * config/frv/cmovw.c: Likewise.
9240 * config/frv/frvbegin.c: Likewise.
9241 * config/frv/frvend.c: Likewise.
9242 * config/frv/lib1funcs.asm: Likewise.
9243 * config/glibc-stdint.h: Likewise.
9244 * config/h8300/clzhi2.c: Likewise.
9245 * config/h8300/crti.asm: Likewise.
9246 * config/h8300/crtn.asm: Likewise.
9247 * config/h8300/ctzhi2.c: Likewise.
9248 * config/h8300/fixunssfsi.c: Likewise.
9249 * config/h8300/lib1funcs.asm: Likewise.
9250 * config/h8300/parityhi2.c: Likewise.
9251 * config/h8300/popcounthi2.c: Likewise.
9252 * config/i386/ammintrin.h: Likewise.
9253 * config/i386/att.h: Likewise.
9254 * config/i386/avxintrin.h: Likewise.
9255 * config/i386/biarch64.h: Likewise.
9256 * config/i386/bmmintrin.h: Likewise.
9257 * config/i386/cpuid.h: Likewise.
9258 * config/i386/cross-stdarg.h: Likewise.
9259 * config/i386/crtfastmath.c: Likewise.
9260 * config/i386/crtprec.c: Likewise.
9261 * config/i386/cygming-crtbegin.c: Likewise.
9262 * config/i386/cygming-crtend.c: Likewise.
9263 * config/i386/cygwin.asm: Likewise.
9264 * config/i386/emmintrin.h: Likewise.
9265 * config/i386/gmm_malloc.h: Likewise.
9266 * config/i386/gthr-win32.c: Likewise.
9267 * config/i386/i386.h: Likewise.
9268 * config/i386/immintrin.h: Likewise.
9269 * config/i386/linux-unwind.h: Likewise.
9270 * config/i386/linux64.h: Likewise.
9271 * config/i386/mm3dnow.h: Likewise.
9272 * config/i386/mmintrin-common.h: Likewise.
9273 * config/i386/mmintrin.h: Likewise.
9274 * config/i386/nmmintrin.h: Likewise.
9275 * config/i386/pmm_malloc.h: Likewise.
9276 * config/i386/pmmintrin.h: Likewise.
9277 * config/i386/smmintrin.h: Likewise.
9278 * config/i386/sol2-c1.asm: Likewise.
9279 * config/i386/sol2-ci.asm: Likewise.
9280 * config/i386/sol2-cn.asm: Likewise.
9281 * config/i386/sol2-gc1.asm: Likewise.
9282 * config/i386/tmmintrin.h: Likewise.
9283 * config/i386/unix.h: Likewise.
9284 * config/i386/w32-unwind.h: Likewise.
9285 * config/i386/wmmintrin.h: Likewise.
9286 * config/i386/x86-64.h: Likewise.
9287 * config/i386/x86intrin.h: Likewise.
9288 * config/i386/xmmintrin.h: Likewise.
9289 * config/ia64/crtbegin.asm: Likewise.
9290 * config/ia64/crtend.asm: Likewise.
9291 * config/ia64/crtfastmath.c: Likewise.
9292 * config/ia64/crti.asm: Likewise.
9293 * config/ia64/crtn.asm: Likewise.
9294 * config/ia64/fde-glibc.c: Likewise.
9295 * config/ia64/lib1funcs.asm: Likewise.
9296 * config/ia64/linux-unwind.h: Likewise.
9297 * config/ia64/quadlib.c: Likewise.
9298 * config/ia64/unwind-ia64.c: Likewise.
9299 * config/linux.h: Likewise.
9300 * config/m32c/m32c-lib1.S: Likewise.
9301 * config/m32c/m32c-lib2-trapv.c: Likewise.
9302 * config/m32c/m32c-lib2.c: Likewise.
9303 * config/m32r/initfini.c: Likewise.
9304 * config/m68hc11/larith.asm: Likewise.
9305 * config/m68hc11/m68hc11-crt0.S: Likewise.
9306 * config/m68k/cf.md: Likewise.
9307 * config/m68k/crti.s: Likewise.
9308 * config/m68k/crtn.s: Likewise.
9309 * config/m68k/lb1sf68.asm: Likewise.
9310 * config/m68k/linux-unwind.h: Likewise.
9311 * config/mcore/crti.asm: Likewise.
9312 * config/mcore/crtn.asm: Likewise.
9313 * config/mcore/lib1.asm: Likewise.
9314 * config/mips/linux-unwind.h: Likewise.
9315 * config/mips/loongson.h: Likewise.
9316 * config/mips/mips16.S: Likewise.
9317 * config/mmix/crti.asm: Likewise.
9318 * config/mmix/crtn.asm: Likewise.
9319 * config/pa/fptr.c: Likewise.
9320 * config/pa/hpux-unwind.h: Likewise.
9321 * config/pa/lib2funcs.asm: Likewise.
9322 * config/pa/linux-atomic.c: Likewise.
9323 * config/pa/linux-unwind.h: Likewise.
9324 * config/pa/milli64.S: Likewise.
9325 * config/pa/quadlib.c: Likewise.
9326 * config/pa/stublib.c: Likewise.
9327 * config/picochip/libgccExtras/adddi3.asm: Likewise.
9328 * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
9329 * config/picochip/libgccExtras/ashlsi3.c: Likewise.
9330 * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
9331 * config/picochip/libgccExtras/ashrsi3.c: Likewise.
9332 * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
9333 * config/picochip/libgccExtras/divmod15.asm: Likewise.
9334 * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
9335 * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
9336 * config/picochip/libgccExtras/longjmp.asm: Likewise.
9337 * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
9338 * config/picochip/libgccExtras/lshrsi3.c: Likewise.
9339 * config/picochip/libgccExtras/parityhi2.asm: Likewise.
9340 * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
9341 * config/picochip/libgccExtras/setjmp.asm: Likewise.
9342 * config/picochip/libgccExtras/subdi3.asm: Likewise.
9343 * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
9344 * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
9345 * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
9346 * config/rs6000/750cl.h: Likewise.
9347 * config/rs6000/altivec.h: Likewise.
9348 * config/rs6000/biarch64.h: Likewise.
9349 * config/rs6000/crtresfpr.asm: Likewise.
9350 * config/rs6000/crtresgpr.asm: Likewise.
9351 * config/rs6000/crtresxfpr.asm: Likewise.
9352 * config/rs6000/crtresxgpr.asm: Likewise.
9353 * config/rs6000/crtsavfpr.asm: Likewise.
9354 * config/rs6000/crtsavgpr.asm: Likewise.
9355 * config/rs6000/darwin-asm.h: Likewise.
9356 * config/rs6000/darwin-fallback.c: Likewise.
9357 * config/rs6000/darwin-fpsave.asm: Likewise.
9358 * config/rs6000/darwin-ldouble.c: Likewise.
9359 * config/rs6000/darwin-tramp.asm: Likewise.
9360 * config/rs6000/darwin-unwind.h: Likewise.
9361 * config/rs6000/darwin-vecsave.asm: Likewise.
9362 * config/rs6000/darwin-world.asm: Likewise.
9363 * config/rs6000/e500crtres32gpr.asm: Likewise.
9364 * config/rs6000/e500crtres64gpr.asm: Likewise.
9365 * config/rs6000/e500crtres64gprctr.asm: Likewise.
9366 * config/rs6000/e500crtrest32gpr.asm: Likewise.
9367 * config/rs6000/e500crtrest64gpr.asm: Likewise.
9368 * config/rs6000/e500crtresx32gpr.asm: Likewise.
9369 * config/rs6000/e500crtresx64gpr.asm: Likewise.
9370 * config/rs6000/e500crtsav32gpr.asm: Likewise.
9371 * config/rs6000/e500crtsav64gpr.asm: Likewise.
9372 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
9373 * config/rs6000/e500crtsavg32gpr.asm: Likewise.
9374 * config/rs6000/e500crtsavg64gpr.asm: Likewise.
9375 * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
9376 * config/rs6000/eabi-ci.asm: Likewise.
9377 * config/rs6000/eabi-cn.asm: Likewise.
9378 * config/rs6000/eabi.asm: Likewise.
9379 * config/rs6000/linux-unwind.h: Likewise.
9380 * config/rs6000/linux64.h: Likewise.
9381 * config/rs6000/paired.h: Likewise.
9382 * config/rs6000/paired.md: Likewise.
9383 * config/rs6000/ppc64-fp.c: Likewise.
9384 * config/rs6000/ppu_intrinsics.h: Likewise.
9385 * config/rs6000/rs6000.h: Likewise.
9386 * config/rs6000/si2vmx.h: Likewise.
9387 * config/rs6000/sol-ci.asm: Likewise.
9388 * config/rs6000/sol-cn.asm: Likewise.
9389 * config/rs6000/spe.h: Likewise.
9390 * config/rs6000/spu2vmx.h: Likewise.
9391 * config/rs6000/sysv4.h: Likewise.
9392 * config/rs6000/tramp.asm: Likewise.
9393 * config/rs6000/vec_types.h: Likewise.
9394 * config/s390/linux-unwind.h: Likewise.
9395 * config/s390/tpf-unwind.h: Likewise.
9396 * config/score/crti.asm: Likewise.
9397 * config/score/crtn.asm: Likewise.
9398 * config/sh/crt1.asm: Likewise.
9399 * config/sh/crti.asm: Likewise.
9400 * config/sh/crtn.asm: Likewise.
9401 * config/sh/divtab-sh4-300.c: Likewise.
9402 * config/sh/divtab-sh4.c: Likewise.
9403 * config/sh/divtab.c: Likewise.
9404 * config/sh/lib1funcs-4-300.asm: Likewise.
9405 * config/sh/lib1funcs-Os-4-200.asm: Likewise.
9406 * config/sh/lib1funcs.asm: Likewise.
9407 * config/sh/lib1funcs.h: Likewise.
9408 * config/sh/linux-atomic.asm: Likewise.
9409 * config/sh/linux-unwind.h: Likewise.
9410 * config/sh/shmedia.h: Likewise.
9411 * config/sh/sshmedia.h: Likewise.
9412 * config/sh/ushmedia.h: Likewise.
9413 * config/sparc/crtfastmath.c: Likewise.
9414 * config/sparc/linux-unwind.h: Likewise.
9415 * config/sparc/sol2-c1.asm: Likewise.
9416 * config/sparc/sol2-ci.asm: Likewise.
9417 * config/sparc/sol2-cn.asm: Likewise.
9418 * config/spu/divmodti4.c: Likewise.
9419 * config/spu/divv2df3.c: Likewise.
9420 * config/spu/float_disf.c: Likewise.
9421 * config/spu/float_unsdidf.c: Likewise.
9422 * config/spu/float_unsdisf.c: Likewise.
9423 * config/spu/float_unssidf.c: Likewise.
9424 * config/spu/mfc_multi_tag_release.c: Likewise.
9425 * config/spu/mfc_multi_tag_reserve.c: Likewise.
9426 * config/spu/mfc_tag_release.c: Likewise.
9427 * config/spu/mfc_tag_reserve.c: Likewise.
9428 * config/spu/mfc_tag_table.c: Likewise.
9429 * config/spu/multi3.c: Likewise.
9430 * config/spu/spu_internals.h: Likewise.
9431 * config/spu/spu_intrinsics.h: Likewise.
9432 * config/spu/spu_mfcio.h: Likewise.
9433 * config/spu/vec_types.h: Likewise.
9434 * config/spu/vmx2spu.h: Likewise.
9435 * config/stormy16/stormy16-lib2.c: Likewise.
9436 * config/svr4.h: Likewise.
9437 * config/sync.c: Likewise.
9438 * config/v850/lib1funcs.asm: Likewise.
9439 * config/vxlib-tls.c: Likewise.
9440 * config/vxlib.c: Likewise.
9441 * config/vxworks-dummy.h: Likewise.
9442 * config/xtensa/crti.asm: Likewise.
9443 * config/xtensa/crtn.asm: Likewise.
9444 * config/xtensa/ieee754-df.S: Likewise.
9445 * config/xtensa/ieee754-sf.S: Likewise.
9446 * config/xtensa/lib1funcs.asm: Likewise.
9447 * config/xtensa/lib2funcs.S: Likewise.
9448 * config/xtensa/linux-unwind.h: Likewise.
9449 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
9450 * config/xtensa/unwind-dw2-xtensa.h: Likewise.
9451 * coretypes.h: Likewise.
9452 * crtstuff.c: Likewise.
9453 * defaults.h: Likewise.
9454 * dwarf2.h: Likewise.
9455 * emutls.c: Likewise.
9456 * gbl-ctors.h: Likewise.
9457 * gcov-io.h: Likewise.
9458 * ginclude/float.h: Likewise.
9459 * ginclude/iso646.h: Likewise.
9460 * ginclude/stdarg.h: Likewise.
9461 * ginclude/stdbool.h: Likewise.
9462 * ginclude/stddef.h: Likewise.
9463 * ginclude/stdfix.h: Likewise.
9464 * ginclude/stdint-gcc.h: Likewise.
9465 * ginclude/tgmath.h: Likewise.
9466 * gthr-aix.h: Likewise.
9467 * gthr-dce.h: Likewise.
9468 * gthr-gnat.c: Likewise.
9469 * gthr-gnat.h: Likewise.
9470 * gthr-lynx.h: Likewise.
9471 * gthr-mipssde.h: Likewise.
9472 * gthr-nks.h: Likewise.
9473 * gthr-posix.c: Likewise.
9474 * gthr-posix.h: Likewise.
9475 * gthr-posix95.h: Likewise.
9476 * gthr-rtems.h: Likewise.
9477 * gthr-single.h: Likewise.
9478 * gthr-solaris.h: Likewise.
9479 * gthr-tpf.h: Likewise.
9480 * gthr-vxworks.h: Likewise.
9481 * gthr-win32.h: Likewise.
9482 * gthr.h: Likewise.
9483 * libgcc2.c: Likewise.
9484 * libgcc2.h: Likewise.
9485 * libgcov.c: Likewise.
9486 * tsystem.h: Likewise.
9487 * typeclass.h: Likewise.
9488 * unwind-c.c: Likewise.
9489 * unwind-compat.h: Likewise.
9490 * unwind-dw2-fde-compat.c: Likewise.
9491 * unwind-dw2-fde-darwin.c: Likewise.
9492 * unwind-dw2-fde-glibc.c: Likewise.
9493 * unwind-dw2-fde.c: Likewise.
9494 * unwind-dw2-fde.h: Likewise.
9495 * unwind-dw2.c: Likewise.
9496 * unwind-dw2.h: Likewise.
9497 * unwind-generic.h: Likewise.
9498 * unwind-pe.h: Likewise.
9499 * unwind-sjlj.c: Likewise.
9500 * unwind.inc: Likewise.
9501 * config/arm/neon-gen.ml: Change generated copyright header to
9502 refer to version 3 of the GNU General Public License with
9503 version 3.1 of the GCC Runtime Library Exception and to point
9504 readers at the COPYING3 and COPYING3.RUNTIME files and the
9505 FSF's license web page.
9506 * config/arm/arm_neon.h: Regenerate.
9507
95082009-04-09 Jakub Jelinek <jakub@redhat.com>
9509
9510 * config/cris/cris.md: Change copyright header to refer to version
9511 3 of the GNU General Public License.
9512 * doc/install.texi2html: Change copyright header to refer to version
9513 3 of the GNU General Public License and to point readers at the
9514 COPYING3 file and the FSF's license web page.
9515 * config/vax/linux.h: Likewise.
9516
4a77c72b
PB
95172009-04-09 Paolo Bonzini <bonzini@gnu.org>
9518
1ad2f450
L
9519 * config/i386/i386.md (cmpcc): New.
9520 * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
9521 (sync_compare_and_swap_cc*): Delete.
9522
9523 * config/s390/s390.c (s390_compare_emitted): Remove.
9524 (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
9525 s390_compare_emitted used to be handled. Assert that modes match.
9526 (s390_emit_compare_and_swap): Use s390_emit_compare, do not
9527 refer to sync_compare_and_swap_ccsi.
9528 * config/s390/s390.h (s390_compare_emitted): Remove.
9529 * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
9530 instead of s390_compare_emitted.
9531 (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
9532 instead of s390_compare_emitted.
9533 * config/s390/s390.md (cmpcc): New.
9534 (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
9535 CC_REGNUM, do not pretend it's set.
9536 (sync_compare_and_swap_cc*): Delete.
9537 * config/s390/predicates.md (cc_reg_operand): New.
9538
9539 * expr.c (sync_compare_and_swap_cc): Delete.
9540 * optabs.h (sync_compare_and_swap_cc): Delete.
9541 * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
9542 is being used with can_compare_p.
9543 (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
9544 (find_cc_set): New.
9545 (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
9546 look for a MODE_CC set instead. Use emit_store_flag.
9547 (expand_compare_and_swap_loop): Likewise, with some additional
9548 complication to avoid a force_reg when useless. Use
9549 emit_cmp_and_jump_insns.
9550 * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
9551 * doc/md.texi (sync_compare_and_swap_cc): Merge with
9552 sync_compare_and_swap documentation.
4a77c72b 9553
0c0efb33
JH
95542009-04-09 Jan Hubicka <jh@suse.cz>
9555
9556 * except.c (find_prev_try): Break out from ....
9557 (duplicate_eh_regions): ... here; properly update prev_try pointers
9558 when duplication part of tree.
9559 (dump_eh_tree): Improve dumping.
9560 (verify_eh_region): New.
9561 (verify_eh_tree): Use it.
9562
22a65a54
RG
95632009-04-06 Richard Guenther <rguenther@suse.de>
9564
9565 * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
9566 &ARRAY addresses by adjusting their types and prepending
9567 a conversion.
9568 * tree-cfg.c (verify_gimple_assign_single): Verify that
9569 addresses are correct.
9570
f76968e6
RG
95712009-04-09 Richard Guenther <rguenther@suse.de>
9572
9573 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
9574 indices into an array reference if possible.
9575 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
9576 Fold POINTER_PLUS_EXPR statements with invariant address.
9577
c90c5fb5
AM
95782009-04-09 Alan Modra <amodra@bigpond.net.au>
9579
9580 PR target/39634
9581 * config.gcc (powerpc64-*-linux*): Always build biarch.
9582
17cede2e
JM
95832009-04-09 Joseph Myers <joseph@codesourcery.com>
9584
9585 PR c/39613
9586 * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
9587 it and pedwarn if this results in an INTEGER_CST.
9588
a3337ea2
KG
95892009-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9590
9591 * doc/install.texi: Update minimum GMP version. Remove obsolete
9592 text in MPFR section.
9593
ce9ba79b
JJ
95942009-04-08 Jakub Jelinek <jakub@redhat.com>
9595
9596 * dwarf2out.c (class_scope_p): New static inline.
9597 (class_or_namespace_scope_p): Use it.
9598 (gen_variable_die): Use DW_TAG_member tag for static data member
9599 declarations instead of DW_TAG_variable.
9600
4f0ae266
JJ
9601 PR middle-end/39573
9602 * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
9603 variables.
9604
d27f0ddc
RG
96052009-04-08 Richard Guenther <rguenther@suse.de>
9606
9607 * tree-ssa-sccvn.c (valueize_refs): Do not continue to
9608 valueize random data.
9609
557cc596
DE
96102009-04-08 David Edelsohn <edelsohn@gnu.org>
9611
9612 * config.gcc (aix tm_file): Add aix-stdint.h.
9613 (aix tm clause use_gcc_stdint): Set to wrap.
9614 * config/rs6000/aix-stdint.h: New file.
2ba9daa7 9615
75ccc1e7
RG
96162009-04-08 Richard Guenther <rguenther@suse.de>
9617
9618 PR middle-end/36291
9619 * tree-dfa.c (add_referenced_var): Do not recurse into
9620 global initializers.
9621 * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
9622 exposed variables.
9623 (fold_const_aggregate_ref): Likewise.
9624
c6963675
PB
96252009-04-08 Paolo Bonzini <bonzini@gnu.org>
9626
6c44cf79
L
9627 * recog.c (ordered_comparison_operator): New.
9628 * gensupport.c (std_preds): Add it.
c6963675
PB
9629 * doc/md.texi (Machine-Independent Predicates): Document it.
9630
6d07ad98
JH
96312009-04-08 Jan Hubicka <jh@suse.cz>
9632
9633 * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
9634 * function.h (rtl_eh): Remove exception_handler_label_map.
9635 * except.c (ehl_hash, ehl_eq, add_ehl_entry,
9636 remove_exception_handler_label, for_each_eh_label_1): Remove.
9637 (rtl_remove_unreachable_regions): Remove.
9638 (convert_from_eh_region_ranges): Do not remove unreachable regions.
9639 (find_exception_handler_labels): Don't build the hashtable.
9640 (maybe_remove_eh_handler): Remove.
9641 (for_each_eh_label): Rewrite to walk the tree.
9642 (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
9643 * except.h (maybe_remove_eh_handler): Remove.
9644 * passes.c (init_optimization_passes): Schedule second EH cleanup
9645 before out-of-ssa.
9646 * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
9647 cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
9648
7ddf71e3
PB
96492009-04-08 Paolo Bonzini <bonzini@gnu.org>
9650
9651 * genoutput.c (validate_optab_operands): New.
9652 (gen_insn, gen_expand): Call it.
9653
9654 * genflags.c (gen_insn): Detect misused iterators.
9655 (main): Pass line_no to gen_insn, exit with status 1 on error.
9656
9657 * genextract.c (line_no): Make global.
9658 (VEC_safe_set_locstr): Change assertion to error message.
9659 (main): Exit with status 1 on error.
9660
4d84fe7c
JM
96612009-04-08 Joseph Myers <joseph@codesourcery.com>
9662
9663 PR c/39614
9664 PR c/39673
9665 * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
9666 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
9667 EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
9668 * c-convert.c (convert): Do not call fold on results of conversion
9669 functions when the result is a C_MAYBE_CONST_EXPR.
9670 * c-parser.c (c_parser_postfix_expression): Do not fold condition
9671 of __builtin_choose_expr.
9672 * c-typeck.c (remove_c_maybe_const_expr): New.
9673 (build_unary_op, build_conditional_expr, build_compound_expr,
9674 build_binary_op, c_objc_common_truthvalue_conversion): Call
9675 remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
9676 integer operands.
9677
60839f5d 96782009-04-08 Bingfeng Mei <bmei@broadcom.com>
d1d1c602 9679
2ba9daa7 9680 * fold-const.c (const_binop): Combine two VECTOR_CST under operation
6c44cf79 9681 CODE to produce a new one. Add a prototype to use fold_convert_const
d1d1c602 9682
8e481a2c
DS
96832009-04-08 Danny Smith <dannysmith@users.sourceforge.net>
9684
9685 PR bootstrap/39660
9686 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
9687 mix declarations and code.
9688
ee618c17
BE
96892009-04-08 Ben Elliston <bje@au.ibm.com>
9690
9691 * gcc.c: Replace `CC' with `GCC' throughout.
9692
f2a758a2
L
96932009-04-07 H.J. Lu <hongjiu.lu@intel.com>
9694
9695 * doc/invoke.texi: Document Atom support.
9696
6ea2bd47
JM
96972009-04-07 Jason Merrill <jason@redhat.com>
9698
9699 PR c++/25185
9700 * c-common.h, c-common.c: Add flag_pretty_templates.
9701 * c-opts.c (c_common_handle_option): Set it.
9702 * c.opt: Add -fno-pretty-templates.
9703 * doc/invoke.texi (C++ Dialect Options): Likewise.
9704
fcb82ab0
UB
97052009-04-07 Uros Bizjak <ubizjak@gmail.com>
9706
9707 * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
9708 (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
9709 (ia64_expand_builtin): Likewise.
9710
dc5e7298
MJ
97112009-04-07 Martin Jambor <mjambor@suse.cz>
9712
9713 * tree-ssa-alias.c (refs_may_alias_p_1): Check for
9714 is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
9715 ADDR_EXPRS are include too.
9716
0609b355
RG
97172009-04-07 Richard Guenther <rguenther@suse.de>
9718
9719 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
9720 decls are only used if passes as parameters or if they are
9721 local statics and the call is not to a builtin.
9722 (call_may_clobber_ref_p_1): Likewise.
9723
d8e535fa
PB
97242009-04-07 Paolo Bonzini <bonzini@gnu.org>
9725
9726 * expr.c (do_store_flag): Remove last argument. Simplify code
9727 to avoid duplication of tests already done by can_compare_p.
9728 (expand_expr_real_1): Adjust caller.
9729
c3c64f50
PB
97302009-04-07 Paolo Bonzini <bonzini@gnu.org>
9731
fcb82ab0
UB
9732 * optabs.c (can_compare_p): Test the predicate of a
9733 cbranch and cstore pattern.
c3c64f50 9734
9a53bc17
PB
97352009-04-07 Paolo Bonzini <bonzini@gnu.org>
9736
fcb82ab0
UB
9737 * expr.c (convert_move): Use emit_store_flag instead of
9738 "emulating" it.
9a53bc17 9739
67b8f1c1
PB
97402009-04-07 Paolo Bonzini <bonzini@gnu.org>
9741
fcb82ab0
UB
9742 * config/i386/i386.c (ix86_compare_emitted): Remove.
9743 (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
9744 ix86_compare_op0 like ix86_compare_emitted used to be handled.
9745 * config/i386/i386.h (ix86_compare_emitted): Remove.
9746 * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
9747 instead of ix86_compare_emitted.
9748 * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
67b8f1c1 9749
44509946
AS
97502009-04-07 Andrew Stubbs <ams@codesourcery.com>
9751
9752 * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
9753 Add t-sysroot-suffix to tmake_file.
9754 * config/print-sysroot-suffix.sh: New file.
9755 * config/t-sysroot-suffix: New file.
9756
ca22d882
BE
97572009-04-07 Ben Elliston <bje@au.ibm.com>
9758
9759 * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
9760 as the latter produces a warning when the target does not support
9761 infinity.
9762
95aac11b
BE
97632009-04-07 Ben Elliston <bje@au.ibm.com>
9764
9765 * dfp.c: Replace type punning assignments with memcpy throughout.
9766 * Makefile.in (dfp.o-warn): Remove.
2ba9daa7 9767
633dd061
AM
97682009-04-07 Alan Modra <amodra@bigpond.net.au>
9769
9770 PR target/39634
9771 * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
9772 Include soft-fp/t-softfp after rs6000/t-linux64.
9773
fe0a25ec
EB
97742009-04-06 Eric Botcazou <ebotcazou@adacore.com>
9775
9776 * stor-layout.c (set_sizetype): Use the full precision of their
9777 machine mode for bitsize types.
9778
0c011bc3
L
97792009-04-06 H.J. Lu <hongjiu.lu@intel.com>
9780
9781 * config/i386/i386.md: Revert 2 accidental checkins.
9782
b6837b94 97832009-04-06 Joey Ye <joey.ye@intel.com>
60839f5d 9784 Xuepeng Guo <xuepeng.guo@intel.com>
b6837b94
JY
9785 H.J. Lu <hongjiu.lu@intel.com>
9786
9787 Atom pipeline model, tuning and insn selection.
9788 * config.gcc (atom): Add atom config options and target.
9789
9790 * config/i386/atom.md: New.
9791
9792 * config/i386/i386.c (atom_cost): New cost.
9793 (m_ATOM): New macro flag.
9794 (initial_ix86_tune_features): Set m_ATOM.
9795 (x86_accumulate_outgoing_args): Likewise.
9796 (x86_arch_always_fancy_math_387): Likewise.
9797 (processor_target): Add Atom cost.
9798 (cpu_names): Add Atom cpu name.
9799 (override_options): Set Atom ISA.
9800 (ix86_issue_rate): New case PROCESSOR_ATOM.
9801 (ix86_adjust_cost): Likewise.
9802
9803 * config/i386/i386.h (TARGET_ATOM): New target macro.
9804 (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
9805 (TARGET_OPT_AGU): New target option.
9806 (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
9807 (processor_type): Add PROCESSOR_ATOM.
9808
9809 * config/i386/i386.md (cpu): Add new value "atom".
9810 (use_carry, movu): New attr.
9811 (atom.md): Include atom.md.
9812 (adddi3_carry_rex64): Set attr "use_carry".
9813 (addqi3_carry): Likewise.
9814 (addhi3_carry): Likewise.
9815 (addsi3_carry): Likewise.
9816 (*addsi3_carry_zext): Likewise.
9817 (subdi3_carry_rex64): Likewise.
9818 (subqi3_carry): Likewise.
9819 (subhi3_carry): Likewise.
9820 (subsi3_carry): Likewise.
9821 (x86_movdicc_0_m1_rex64): Likewise.
9822 (*x86_movdicc_0_m1_se): Likewise.
9823 (x86_movsicc_0_m1): Likewise.
9824 (*x86_movsicc_0_m1_se): Likewise.
9825 (*adddi_1_rex64): Emit add insn as much as possible.
9826 (*addsi_1): Likewise.
9827 (return_internal): Set atom_unit.
9828 (return_internal_long): Likewise.
9829 (return_pop_internal): Likewise.
9830 (*rcpsf2_sse): Set atom_sse_attr attr.
9831 (*qrt<mode>2_sse): Likewise.
9832 (*prefetch_sse): Likewise.
9833
9834 * config/i386/i386-c.c (ix86_target_macros_internal): New case
9835 PROCESSOR_ATOM.
9836 (ix86_target_macros_internal): Likewise.
9837
9838 * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
9839 (*prefetch_sse_rex): Likewise.
9840 (sse_rcpv4sf2): Likewise.
9841 (sse_vmrcpv4sf2): Likewise.
9842 (sse_sqrtv4sf2): Likewise.
9843 (<sse>_vmsqrt<mode>2): Likewise.
9844 (sse_ldmxcsr): Likewise.
9845 (sse_stmxcsr): Likewise.
9846 (*sse_sfence): Likewise.
9847 (sse2_clflush): Likewise.
9848 (*sse2_mfence): Likewise.
9849 (*sse2_lfence): Likewise.
9850 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
9851 (<sse>_movup<ssemodesuffixf2c>): Likewise.
9852 (avx_movdqu<avxmodesuffix>): Likewise.
9853 (avx_lddqu<avxmodesuffix>): Likewise.
9854 (sse2_movntv2di): Change attr "type" to "ssemov".
9855 (sse2_movntsi): Likewise.
9856 (rsqrtv8sf2): Change attr "type" to "sseadd".
9857 (sse3_addsubv2df3): Set attr "atom_unit".
9858 (sse3_h<plusminus_insn>v4sf3): Likewise.
9859 (*sse2_pmaddwd): Likewise.
9860 (*vec_extractv2di_1_rex64): Likewise.
9861 (*vec_extractv2di_1_avx): Likewise.
9862 (sse2_psadbw): Likewise.
9863 (ssse3_phaddwv8hi3): Likewise.
9864 (ssse3_phaddwv4hi3): Likewise.
9865 (ssse3_phadddv4si3): Likewise.
9866 (ssse3_phadddv2si3): Likewise.
9867 (ssse3_phaddswv8hi3): Likewise.
9868 (ssse3_phaddswv4hi3): Likewise.
9869 (ssse3_phsubwv8hi3): Likewise.
9870 (ssse3_phsubwv4hi3): Likewise.
9871 (ssse3_phsubdv4si3): Likewise.
9872 (ssse3_phsubdv2si3): Likewise.
9873 (ssse3_phsubswv8hi3): Likewise.
9874 (ssse3_phsubswv4hi3): Likewise.
9875 (ssse3_pmaddubsw128): Likewise.
9876 (sse3_pmaddubsw: Likewise.
9877 (ssse3_palignrti): Likewise.
9878 (ssse3_palignrdi): Likewise.
9879
53e350d3
GP
98802009-04-06 Gerald Pfeifer <gerald@pfeifer.com>
9881
9882 * doc/install.texi (Specific): Fix two cross-references to MinGW.
9883
439ef907
RG
98842009-04-06 Richard Guenther <rguenther@suse.de>
9885
9886 PR tree-optimization/28868
9887 * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
9888 of which PHI results we inserted.
9889 (insert_into_preds_of_block): Record inserted PHIs.
9890 (eliminate): Eliminate redundant PHI nodes.
9891 (init_pre): Init inserted_phi_names.
9892
4bad83f5
RG
98932009-04-06 Richard Guenther <rguenther@suse.de>
9894
9895 PR tree-optimization/39643
9896 * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
9897 IMAGPART_EXPRs of complex constants.
9898 (execute_fold_all_builtins): If we folded a call queue
9899 TODO_update_address_taken.
9900
570c4247
JH
99012009-04-06 Jan Hubicka <jh@suse.cz>
9902
9903 PR middle-end/39659
9904 * except.c (remove_unreachable_regions): Propagate may_contain_throw
9905 flag.
9906
a460d7a1
AS
99072009-04-06 Andrew Stubbs <ams@codesourcery.com>
9908
9909 * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
9910 delay slot.
9911 (ic_invalidate_array): Likewise.
9912
60839f5d 99132009-04-06 Hariharan Sandanagobalane <hariharan@picochip.com>
6bdf8c2e
HS
9914
9915 * calls.c (emit_library_call_value_1): Fix a problem with parameter
9916 alignment for library calls.
9917
7d253f6e
DS
99182009-04-06 Danny Smith <dannysmith@users.sourceforge.net>
9919
9920 * config.gcc (mingw32 tm_file): Add mingw-stdint.h.
9921 (mingw32 tm clause use_gcc_stdint): Set to wrap.
9922 * config/i386/mingw-stdint.h: New file.
9923
941c3614
RB
99242009-04-05 Richard Guenther <rguenther@suse.de>
9925
9926 PR tree-optimization/39648
9927 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
9928 our &A vs. &A[0] IL deficiencies.
9929
12633413
JH
99302009-04-04 Jan Hubicka <jh@suse.cz>
9931
941c3614
RB
9932 * except.c (sjlj_find_directly_reachable_regions): Be ready for
9933 removed toplevel regions.
12633413
JH
9934 (sjlj_mark_call_sites): Likewise.
9935
bb2aaded
DK
99362009-04-04 Dave Korn <dave.korn.cygwin@gmail.com>
9937
9938 * config.gcc (cygwin tm_file): Add cygwin-stdint.h.
9939 (cygwin tm clause use_gcc_stdint): Set to wrap.
9940 * config/i386/cygwin-stdint.h: New file.
9941
86290011
RG
99422009-04-04 Richard Guenther <rguenther@suse.de>
9943
9944 * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
9945 * tree-ssa-copy.c (init_copy_prop): Do not propagate through
9946 single-argument PHIs if we are in loop-closed SSA form.
9947 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
9948 for the pre-condition.
9949 (slpeel_tree_peel_loop_to_edge): Likewise.
9950 (vect_build_loop_niters): Take an optional sequence to append stmts.
9951 (vect_generate_tmps_on_preheader): Likewise.
9952 (vect_do_peeling_for_loop_bound): Take extra guards for the
9953 pre-condition.
9954 (vect_do_peeling_for_alignment): Adjust. Unconditionally apply
9955 the cost model check.
9956 (vect_loop_versioning): Take stmt and stmt list to put pre-condition
7a715bba 9957 guards if we are going to peel. Do not apply versioning in that case.
86290011
RG
9958 * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
9959 (vect_do_peeling_for_loop_bound): Likewise.
9960 * tree-vect-loop.c (vect_transform_loop): If we are peeling for
9961 loop bound only record extra pre-conditions, do not apply loop
9962 versioning.
9963
5eeeac64
RG
99642009-04-04 Richard Guenther <rguenther@suse.de>
9965
9966 * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
9967 renaming code.
9968
1ff7d06b
JH
99692009-04-04 Jan Hubicka <jh@suse.cz>
9970
9971 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
9972 last_basic_block for size of bb->index indexed array.
9973 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
9974 compute_out, link_btr_uses, build_btr_def_use_webs,
9975 build_btr_def_use_webs, migrate_btr_defs): Likewise.
9976
14925fcd
JH
99772009-04-04 Jan Hubicka <jh@suse.cz>
9978
9979 * except.c (remove_eh_handler_and_replace): Break out from ...
9980 (remove_eh_handler): ... here.
9981 (bring_to_root): New function.
9982 (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
9983 handled ones, bring others to root of tree.
9984
4e6d1743
JH
99852009-04-04 Jan Hubicka <jh@suse.cz>
9986
4cb735f7
JH
9987 * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
9988 (all_phis_safe_to_merge): New function.
9989 (update_info): New structure.
9990 (make_eh_edge_and_update_phi, update_eh_edges): New functions.
9991 (cleanup_empty_eh): Update SSA if possible.
4e6d1743 9992
c6803d43
RG
99932009-04-04 Richard Guenther <rguenther@suse.de>
9994
9995 * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
9996 * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
9997 (append_vuse): Likewise.
9998
54f5943c
JJ
99992009-04-04 Jakub Jelinek <jakub@redhat.com>
10000
10001 * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
10002 * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
10003 instead of REG_UNSAVED for DW_CFA_undefined.
10004 (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
10005 (uw_update_context): If RA column is REG_UNDEFINED, mark it as
10006 outermost frame.
10007
aad2bccb
RE
100082009-04-04 Richard Earnshaw <rearnsha@arm.com>
10009
10010 PR target/39501
10011 * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
10012 * testsuite/gcc.c-torture/execute/pr39501.c: New file.
10013 * testsuite/gcc.c-torture/execute/pr39501.x: New file.
10014
aa7069aa
RG
100152009-04-04 Richard Guenther <rguenther@suse.de>
10016
10017 PR tree-optimization/8781
10018 PR tree-optimization/37892
10019 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
10020 * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
10021 (valueize_refs): Call it for *& valueizations.
10022 (shared_reference_ops_from_ref): Rename to ...
10023 (valueize_shared_reference_ops_from_ref): ... this and valueize.
10024 (shared_reference_ops_from_call): Rename to ...
10025 (valueize_shared_reference_ops_from_call): ... this and valueize.
10026 (vn_reference_lookup): Update.
10027 (visit_reference_op_call): Likewise.
10028 * tree-ssa-pre.c (phi_translate_1): Fold *&.
10029 (eliminate): Value-replace the call address in call statements.
10030
cd15ad3e
RG
100312009-04-04 Richard Guenther <rguenther@suse.de>
10032
10033 PR tree-optimization/39636
10034 * tree-ssa-forwprop.c
10035 (forward_propagate_addr_into_variable_array_index): Check for
10036 GIMPLE_ASSIGN before accessing the rhs code.
10037
462f3262
JM
100382009-04-03 Jason Merrill <jason@redhat.com>
10039
10040 * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
10041
6adb807e
SE
100422009-04-03 Steve Ellcey <sje@cup.hp.com>
10043
10044 * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
10045 truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
10046 fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
10047 floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
10048 fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
10049 smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
10050 divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
10051 umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
10052 *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
10053 *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
10054 adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
10055 smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
10056 *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
10057 *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
10058 sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
10059 Use fr_reg_or_fp01_operand instead of fr_register_operand
10060
10061 * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
10062 recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
10063 divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
10064
174b3107
VM
100652009-04-03 Vladimir Makarov <vmakarov@redhat.com>
10066
b844e5d8
L
10067 PR rtl-optimization/39607
10068 PR rtl-optimization/39631
7a715bba
UB
10069
10070 Revert:
2ba9daa7 10071
174b3107
VM
10072 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
10073 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
10074 instead of DF_LR_OUT.
10075 * ira-lives.c (process_bb_node_lives): Ditto.
10076 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
10077 instead of DF_LR_{OUT,IN}.
10078 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
10079 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
10080
535b544a
SB
100812009-04-03 Steven Bosscher <steven@gcc.gnu.org>
10082
10083 * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
10084 (execute_lower_omp): Always run but take the short way out if -fopenmp
10085 is not given.
10086 (gate_lower_omp): Remove, forcing the pass manager to always run the
10087 pass and always set PROP_gimple_lomp.
10088 (pass_lower_omp): Remove gate function.
10089 * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
10090 PROP_trees. Instead, require it.
10091 * ipa-cp.c (pass_ipa_cp): Likewise.
10092 * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
10093 (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
10094 * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
10095 and PROP_gimple_leh.
10096
5006671f
RG
100972009-04-03 Richard Guenther <rguenther@suse.de>
10098
10099 PR middle-end/13146
10100 PR tree-optimization/23940
10101 PR tree-optimization/33237
10102 PR middle-end/33974
10103 PR middle-end/34093
10104 PR tree-optimization/36201
10105 PR tree-optimization/36230
10106 PR tree-optimization/38049
10107 PR tree-optimization/38207
10108 PR tree-optimization/38230
10109 PR tree-optimization/38301
10110 PR tree-optimization/38585
10111 PR middle-end/38895
10112 PR tree-optimization/38985
10113 PR tree-optimization/39299
10114 * tree-ssa-structalias.h: Remove.
10115 * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
10116 (NULL_DEF_OPERAND_P): Make of type def_operand_p.
10117 (struct vuse_element_d): Remove.
10118 (struct vuse_vec_d): Likewise.
10119 (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
10120 VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
10121 SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
10122 VUSE_ELEMENT_VAR): Likewise.
10123 (struct voptype_d): Likewise.
10124 (NUM_VOP_FREE_BUCKETS): Likewise.
10125 (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
10126 (struct stmt_operands_d): Remove.
10127 (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
10128 VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
10129 VDEF_NUM, VDEF_VECT): Likewise.
10130 (copy_virtual_operands): Remove.
10131 (operand_build_cmp): Likewise.
10132 (create_ssa_artificial_load_stmt): Likewise.
10133 (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
10134 (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
10135 vuse_index and mayuse_index members. Pack and move done and iter_type
10136 members to the front.
10137 (SSA_OP_VMAYUSE): Remove.
10138 (SSA_OP_VIRTUAL_USES): Adjust.
10139 (FOR_EACH_SSA_VDEF_OPERAND): Remove.
10140 (unlink_stmt_vdef): Declare.
10141 (add_to_addressable_set): Remove.
10142 * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
10143 (vrp_visit_stmt): Likewise.
10144 * doc/tree-ssa.texi (Alias analysis): Update.
10145 * doc/invoke.texi (max-aliased-vops): Remove docs.
10146 (avg-aliased-vops): Likewise.
10147 * tree-into-ssa.c (syms_to_rename): Remove.
10148 (need_to_update_vops_p): Likewise.
10149 (need_to_initialize_update_ssa_p): Rename to ...
10150 (update_ssa_initialized_fn): ... this. Track function we are
10151 initialized for.
10152 (symbol_marked_for_renaming): Simplify.
10153 (add_new_name_mapping): Do not set need_to_update_vops_p.
10154 (dump_currdefs): Use SYMS_TO_RENAME.
10155 (rewrite_update_stmt): Always walk all uses/defs.
10156 (dump_update_ssa): Adjust.
10157 (init_update_ssa): Take function argument. Track what we are
10158 initialized for.
10159 (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
10160 (create_new_def_for): Initialize for cfun, assert we are initialized
10161 for cfun.
10162 (mark_sym_for_renaming): Simplify.
10163 (mark_set_for_renaming): Do not initialize update-ssa.
10164 (need_ssa_update_p): Simplify. Take function argument.
10165 (name_mappings_registered_p): Assert we ask for the correct function.
10166 (name_registered_for_update_p): Likewise.
10167 (ssa_names_to_replace): Likewise.
10168 (release_ssa_name_after_update_ssa): Likewise.
10169 (update_ssa): Likewise. Use SYMS_TO_RENAME.
10170 (dump_decl_set): Do not print a newline.
10171 (debug_decl_set): Do it here.
10172 (dump_update_ssa): And here.
10173 * tree-ssa-loop-im.c (move_computations): Adjust.
10174 (movement_possibility): Likewise.
10175 (determine_max_movement): Likewise.
10176 (gather_mem_refs_stmt): Likewise.
10177 * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
10178 or NAME_MEMORY_TAG.
10179 * tree-complex.c (update_all_vops): Remove.
10180 (expand_complex_move): Adjust.
10181 * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
10182 Simplify test for memory referencing statement. Exclude
10183 non-invariant ADDR_EXPRs.
10184 * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
10185 * tree-loop-distribution.c (generate_memset_zero): Adjust.
10186 (rdg_flag_uses): Likewise.
10187 * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
10188 related code.
10189 (tree_optimize_tail_calls_1): Also split the
10190 edge from the entry block if we have degenerate PHI nodes in
10191 the first basic block.
10192 * tree.c (init_ttree): Remove memory-tag related code.
10193 (tree_code_size): Likewise.
10194 (tree_node_structure): Likewise.
10195 (build7_stat): Re-write to be build6_stat.
10196 * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
10197 (SSA_VAR_P): Adjust.
10198 (struct tree_memory_tag): Remove.
10199 (struct tree_memory_partition_tag): Likewise.
10200 (union tree_node): Adjust.
10201 (build7): Re-write to be build6.
10202 * tree-pass.h (pass_reset_cc_flags): Remove.
10203 (TODO_update_address_taken): New flag.
10204 (pass_simple_dse): Remove.
10205 * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
10206 * params.h (MAX_ALIASED_VOPS): Remove.
10207 (AVG_ALIASED_VOPS): Likewise.
10208 * omp-low.c (expand_omp_taskreg): Update SSA form.
10209 * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
10210 aliases the lhs in a copy stmt.
10211 * tree-ssa-dse.c (struct address_walk_data): Remove.
10212 (memory_ssa_name_same): Likewise.
10213 (memory_address_same): Likewise.
10214 (get_kill_of_stmt_lhs): Likewise.
10215 (dse_possible_dead_store_p): Simplify, use the oracle. Handle
10216 unused stores. Look through PHI nodes into post-dominated regions.
10217 (dse_optimize_stmt): Simplify. Properly remove stores.
10218 (tree_ssa_dse): Compute dominators.
10219 (execute_simple_dse): Remove.
10220 (pass_simple_dse): Likewise.
10221 * ipa-reference.c (scan_stmt_for_static_refs): Open-code
10222 gimple_loaded_syms and gimple_stored_syms computation.
10223 * toplev.c (dump_memory_report): Dump alias and pta stats.
10224 * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
10225 (vn_reference_eq): Likewise.
10226 (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
10227 copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
10228 valueize_vuses): Remove.
10229 (get_def_ref_stmt_vuses): Simplify. Rename to ...
10230 (get_def_ref_stmt_vuse): ... this.
10231 (vn_reference_lookup_2): New function.
10232 (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
10233 walking equivalent vuses. Simplify.
10234 (vn_reference_lookup): Likewise.
10235 (vn_reference_insert): Likewise.
10236 (vn_reference_insert_pieces): Likewise.
10237 (visit_reference_op_call): Simplify.
10238 (visit_reference_op_load): Likewise.
10239 (visit_reference_op_store): Likewise.
10240 (init_scc_vn): Remove shared_lookup_vuses initialization.
10241 (free_scc_vn): Remove shared_lookup_vuses freeing.
10242 (sort_vuses, sort_vuses_heap): Remove.
10243 (get_ref_from_reference_ops): Export.
10244 * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
10245 vector with single vuse pointer.
10246 (vn_reference_lookup_pieces, vn_reference_lookup,
10247 vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
10248 (shared_vuses_from_stmt): Remove.
10249 (get_ref_from_reference_ops): Declare.
10250 * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
10251 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
10252 memory-tag related code.
10253 * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
10254 (likely_value): Add comment, skip static-chain of call statements.
10255 (surely_varying_stmt_p): Adjust.
10256 (gimplify_and_update_call_from_tree): Likewise.
10257 (execute_fold_all_builtins): Do not rebuild alias info.
10258 (gimplify_and_update_call_from_tree): Properly update VOPs.
10259 * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
10260 (copy_ref_info): Remove memory-tag related code.
10261 * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
10262 * ipa-pure-const.c (check_decl): Remove memory-tag related code.
10263 (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
10264 computation.
10265 * tree-ssa-dom.c (gimple_p): Remove typedef.
10266 (eliminate_redundant_computations): Adjust.
10267 (record_equivalences_from_stmt): Likewise.
10268 (avail_expr_hash): Likewise.
10269 (avail_expr_eq): Likewise.
7a715bba 10270 * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
5006671f
RG
10271 (stmt_makes_single_load): Likewise.
10272 (stmt_makes_single_store): Likewise.
10273 * tree-ssa-alias.c: Rewrite completely.
10274 (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
10275 debug_mem_sym_stats, dump_mem_sym_stats_for_var,
10276 debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
10277 delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
10278 dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
10279 Remove public functions.
10280 (pass_reset_cc_flags): Remove.
10281 (pass_build_alias): Move ...
10282 * tree-ssa-structalias.c (pass_build_alias): ... here.
10283 * tree-ssa-alias.c (may_be_aliased): Move ...
10284 * tree-flow-inline.h (may_be_aliased): ... here.
10285 tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
10286 count_uses_and_derefs): Move ...
10287 * gimple.c: ... here.
10288 * gimple.h (count_uses_and_derefs): Declare.
10289 * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
10290 ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
10291 same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
10292 indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
10293 ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
10294 call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
10295 get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
10296 New functions.
10297 * tree-dfa.c (refs_may_alias_p): Move ...
10298 * tree-ssa-alias.c (refs_may_alias_p): ... here. Extend.
10299 * tree-ssa-alias.h: New file.
10300 * tree-ssa-sink.c (is_hidden_global_store): Adjust.
10301 (statement_sink_location): Likewise.
10302 * opts.c (decode_options): Do not adjust max-aliased-vops or
10303 avg-aliased-vops values.
10304 * timevar.def (TV_TREE_MAY_ALIAS): Remove.
10305 (TV_CALL_CLOBBER): Likewise.
10306 (TV_FLOW_SENSITIVE): Likewise.
10307 (TV_FLOW_INSENSITIVE): Likewise.
10308 (TV_MEMORY_PARTITIONING): Likewise.
10309 (TV_ALIAS_STMT_WALK): New timevar.
10310 * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
10311 * tree-ssa-address.c (create_mem_ref_raw): Use build6.
10312 (get_address_description): Remove memory-tag related code.
10313 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
10314 * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
10315 * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
10316 and immediate uses in statements. Document.
10317 * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
10318 (dump_symbols): Remove.
10319 (dump_gimple_mem_ops): Do not dump loaded or stored syms.
10320 * alias.c (get_deref_alias_set): New function split out from ...
10321 (get_alias_set): ... here.
10322 * alias.h (get_deref_alias_set): Declare.
10323 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
10324 type parameter. Remove restrict pointer handling. Create a
10325 ref-all pointer in case type-based alias sets do not conflict.
10326 (vect_analyze_data_refs): Remove SMT related code.
10327 * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
10328 (vectorizable_load): Likewise.
10329 * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
10330 (DR_SYMBOL_TAG, DR_VOPS): Remove.
10331 * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
10332 Ignore vops and SMTs.
10333 (dr_analyze_alias): Likewise..
10334 (free_data_ref): Likewise.
10335 (create_data_ref): Likewise.
10336 (analyze_all_data_dependences): Likewise.
10337 (get_references_in_stmt): Adjust.
10338 * tree-flow-inline.h (gimple_aliases_computed_p,
10339 gimple_addressable_vars, gimple_call_clobbered_vars,
10340 gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
10341 factoring_name_p, mark_call_clobbered, clear_call_clobbered,
10342 compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
10343 gimple_mem_ref_stats): Remove.
10344 (gimple_vop): New function.
10345 (op_iter_next_use): Remove vuses and mayuses cases.
10346 (op_iter_next_def): Remove vdefs case.
10347 (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
10348 (clear_and_done_ssa_iter): Do not set removed fields.
10349 (op_iter_init): Likewise. Skip vuse and/or vdef if requested.
10350 Assert we are not iterating over vuses or vdefs if not also
10351 iterating over uses or defs.
10352 (op_iter_init_use): Likewise.
10353 (op_iter_init_def): Likewise.
10354 (op_iter_next_vdef): Remove.
10355 (op_iter_next_mustdef): Likewise.
10356 (op_iter_init_vdef): Likewise.
10357 (compare_ssa_operands_equal): Likewise.
10358 (link_use_stmts_after): Handle vuse operand.
10359 (is_call_used): Use is_call_clobbered.
10360 (is_call_clobbered): Global variables are always call clobbered,
10361 query the call-clobbers bitmap.
10362 (mark_call_clobbered): Ignore global variables.
10363 (clear_call_clobbered): Likewise.
10364 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
10365 virtual operands sanity check.
10366 * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
10367 Remove.
10368 (TARGET_MEM_REF): Remove TMR_TAG operand.
10369 * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
10370 Remove call-clobber related code.
10371 (remove_referenced_var): Likewise. Do not clear mpt or symbol_mem_tag.
10372 (dump_variable): Do not dump SMTs, memory stats, may-aliases or
10373 partitions or escape reason.
10374 (get_single_def_stmt, get_single_def_stmt_from_phi,
10375 get_single_def_stmt_with_phi): Remove.
10376 (dump_referenced_vars): Tidy.
10377 (get_ref_base_and_extent): Allow bare decls.
10378 (collect_dfa_stats): Adjust.
10379 * graphite.c (rename_variables_in_stmt): Adjust.
10380 (graphite_copy_stmts_from_block): Likewise.
10381 (translate_clast): Likewise.
10382 * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
10383 (EXPR_DIES): New.
10384 (translate_vuse_through_block): Use the oracle.
10385 (phi_translate_1): Adjust.
10386 (value_dies_in_block_x): Use the oracle. Cache the outcome
10387 in EXPR_DIES.
10388 (valid_in_sets): Check if the VUSE for
10389 a REFERENCE is available.
10390 (eliminate): Do not remove stmts during elimination,
10391 instead queue and remove them afterwards.
10392 (do_pre): Do not rebuild alias info.
10393 (pass_pre): Run TODO_rebuild_alias before PRE.
10394 * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
10395 * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
10396 (mark_all_v_defs_stmt): Remove.
10397 (mark_all_v_defs_seq): Adjust.
10398 (sra_replace): Likewise.
10399 (scalarize_use): Likewise.
10400 (scalarize_copy): Likewise.
10401 (scalarize_init): Likewise.
10402 (scalarize_ldst): Likewise.
10403 (todoflags): Remove.
10404 (tree_sra): Do not rebuild alias info.
10405 (tree_sra_early): Adjust.
10406 (pass_sra): Run TODO_update_address_taken before SRA.
10407 * tree-predcom.c (set_alias_info): Remove.
10408 (prepare_initializers_chain): Do not call it.
10409 (mark_virtual_ops_for_renaming): Adjust.
10410 (mark_virtual_ops_for_renaming_list): Remove.
10411 (initialize_root_vars): Adjust.
10412 (initialize_root_vars_lm): Likewise.
10413 (prepare_initializers_chain): Likewise.
10414 * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
10415 (may_propagate_copy_into_stmt): Likewise.
10416 (merge_alias_info): Do nothing for now.
10417 (propagate_tree_value_into_stmt): Adjust.
10418 (stmt_may_generate_copy): Likewise.
10419 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
10420 not mark symbols for renaming.
10421 (forward_propagate_addr_expr): Match up push/pop_stmt_changes
10422 with the same statement, make sure to update the new pointed-to one.
10423 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
10424 call statements, do not mark symbols for renaming.
10425 (mark_operand_necessary): Dump something.
10426 (ref_may_be_aliased): New function.
10427 (mark_aliased_reaching_defs_necessary_1): New helper function.
10428 (mark_aliased_reaching_defs_necessary): Likewise.
10429 (mark_all_reaching_defs_necessary_1): Likewise.
10430 (mark_all_reaching_defs_necessary): Likewise.
10431 (propagate_necessity): Do not process virtual PHIs. For
10432 non-aliased loads mark all reaching definitions as necessary.
10433 For aliased loads and stores mark the immediate dominating
10434 aliased clobbers as necessary.
10435 (visited): New global static.
10436 (perform_tree_ssa_dce): Free visited bitmap after propagating
10437 necessity.
10438 (remove_dead_phis): Perform simple dead virtual PHI removal.
10439 (remove_dead_stmt): Properly unlink virtual operands when
10440 removing stores.
10441 (eliminate_unnecessary_stmts): Schedule PHI removal after
10442 stmt removal.
10443 * tree-ssa-ter.c (is_replaceable_p): Adjust.
10444 (process_replaceable): Likewise.
10445 (find_replaceable_in_bb): Likewise.
10446 * tree-ssa.c (verify_ssa_name): Verify all VOPs are
10447 based on the single gimple vop.
10448 (verify_flow_insensitive_alias_info): Remove.
10449 (verify_flow_sensitive_alias_info): Likewise.
10450 (verify_call_clobbering): Likewise.
10451 (verify_memory_partitions): Likewise.
10452 (verify_alias_info): Likewise.
10453 (verify_ssa): Adjust..
10454 (execute_update_addresses_taken): Export. Update SSA
10455 manually. Optimize only when optimizing. Use a local bitmap.
10456 (pass_update_address_taken): Remove TODO_update_ssa, add
10457 TODO_dump_func.
10458 (pass_update_address_taken): Just use TODO_update_address_taken.
10459 (init_tree_ssa): Do not initialize addressable_vars.
10460 (verify_ssa): Verify new VUSE / VDEF properties.
10461 Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
10462 Do not call verify_alias_info.
10463 (delete_tree_ssa): Clear the VUSE, VDEF operands.
10464 Do not free the loaded and stored syms bitmaps. Reset the escaped
10465 and callused solutions. Do not free addressable_vars.
10466 Remove memory-tag related code.
10467 (warn_uninitialized_var): Aliases are always available.
10468 * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
10469 * lambda-code.c (can_put_in_inner_loop): Adjust.
10470 (can_put_after_inner_loop): Likewise.
10471 (perfect_nestify): Likewise.
10472 * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
10473 (vect_gen_widened_results_half): Remove CALL_EXPR handling.
10474 (vectorizable_conversion): Do not mark symbols for renaming.
10475 * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
10476 (expand_call_inline): Unlink the calls virtual operands before
10477 replacing it.
10478 (tree_function_versioning): Do not call update_ssa if we are not
10479 updating clones. Simplify.
10480 * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
10481 (propagate_with_phi): Likewise..
10482 * tree-outof-ssa.c (create_temp): Remove memory tag and call
10483 clobber code. Assert we are not aliased or global.
10484 * tree-flow.h: Include tree-ssa-alias.h
10485 (enum escape_type): Remove.
10486 (struct mem_sym_stats_d): Likewise.
10487 (struct mem_ref_stats_d): Likewise.
10488 (struct gimple_df): Add vop member. Remove global_var,
10489 call_clobbered_vars, call_used_vars, addressable_vars,
10490 aliases_compted_p and mem_ref_stats members. Add syms_to_rename,
10491 escaped and callused members.
10492 (struct ptr_info_def): Remove all members, add points-to solution
10493 member pt.
10494 (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
10495 call_clobbered, escape_mask, mpt and symbol_mem_tag members.
10496 * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
10497 (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
10498 (tree-ssa-alias.o): Likewise.
10499 (toplev.o): Add tree-ssa-alias.h
10500 (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
10501 * gimple.c (gimple_set_bb): Fix off-by-one error.
10502 (is_gimple_reg): Do not handle memory tags.
10503 (gimple_copy): Also copy virtual operands.
10504 Delay updating the statement. Do not reset loaded and stored syms.
10505 (gimple_set_stored_syms): Remove.
10506 (gimple_set_loaded_syms): Likewise.
10507 (gimple_call_copy_skip_args): Copy the virtual operands
10508 and mark the new statement modified.
10509 * tree-ssa-structalias.c (may_alias_p): Remove.
10510 (set_uids_in_ptset): Take the alias set to prune with as
10511 parameter. Fold in the alias test of may_alias_p.
10512 (compute_points_to_sets): Compute whether a ptr is dereferenced
10513 in a local sbitmap.
10514 (process_constraint): Deal with &ANYTHING on the lhs, reject all
10515 other ADDRESSOF constraints on the lhs.
10516 (get_constraint_for_component_ref): Assert that we don't get
10517 ADDRESSOF constraints from the base of the reference.
10518 Properly generate UNKNOWN_OFFSET for DEREF if needed.
10519 (struct variable_info): Remove collapsed_to member.
10520 (get_varinfo_fc): Remove.
10521 (new_var_info): Do not set collapsed_to.
10522 (dump_constraint): Do not follow cycles.
10523 (dump_constraint_graph): Likewise.
10524 (build_pred_graph): Likewise.
10525 (build_succ_graph): Likewise.
10526 (rewrite_constraints): Likewise.
10527 (do_simple_structure_copy): Remove.
10528 (do_rhs_deref_structure_copy): Remove.
10529 (do_lhs_deref_structure_copy): Remove.
10530 (collapse_rest_of_var): Remove.
10531 (do_structure_copy): Re-implement.
10532 (pta_stats): New global variable.
10533 (dump_pta_stats): New function.
10534 (struct constraint_expr): Make offset signed.
10535 (UNKNOWN_OFFSET): Define special value.
10536 (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
10537 (solution_set_expand): New helper function split out from ...
10538 (do_sd_constraint): ... here.
10539 (solution_set_add): Handle UNKNOWN_OFFSET. Handle negative offsets.
10540 (do_ds_constraint): Likewise.
10541 (do_sd_constraint): Likewise. Do not special-case ESCAPED = *ESCAPED
10542 and CALLUSED = *CALLUSED.
10543 (set_union_with_increment): Make inc argument signed.
10544 (type_safe): Remove.
10545 (get_constraint_for_ptr_offset): Handle unknown and negative
10546 constant offsets.
10547 (first_vi_for_offset): Handle offsets before start. Bail
10548 out early for offsets beyond the variable extent.
10549 (first_or_preceding_vi_for_offset): New function.
10550 (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
10551 Together with ESCAPED = *ESCAPED this properly computes reachability.
10552 (find_what_var_points_to): New function.
10553 (find_what_p_points_to): Implement in terms of find_what_var_points_to.
10554 (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
10555 pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
10556 pt_solutions_intersect): New functions.
10557 (compute_call_used_vars): Remove.
10558 (compute_may_aliases): New main entry into PTA computation.
10559 * gimple.h (gimple_p): New typedef.
10560 (struct gimple_statement_base): Remove references_memory_p.
10561 (struct gimple_statement_with_memory_ops_base): Remove
10562 vdef_ops, vuse_ops, stores and loads members. Add vdef and vuse
10563 members.
10564 (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
10565 gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
10566 gimple_set_references_memory): Remove.
10567 (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
10568 gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
10569 New functions.
10570 * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
10571 (verify_expr): Allow RESULT_DECL.
10572 (gimple_duplicate_bb): Do not copy virtual operands.
10573 (gimple_duplicate_sese_region): Adjust.
10574 (gimple_duplicate_sese_tail): Likewise.
10575 (mark_virtual_ops_in_region): Remove.
10576 (move_sese_region_to_fn): Do not call it.
10577 * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
10578 and pass_simple_dse.
10579 (execute_function_todo): Handle TODO_update_address_taken,
10580 call execute_update_addresses_taken for TODO_rebuild_alias.
10581 (execute_todo): Adjust.
10582 (execute_one_pass): Init dump files early.
10583 * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
10584 call-clobbered.
10585 (create_general_new_stmt): Clear vops.
10586 * tree-ssa-reassoc.c (get_rank): Adjust.
10587 * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
10588 symbols for renaming.
10589 * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
10590 (PARAM_AVG_ALIASED_VOPS): Likewise.
10591 * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
10592 (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
7a715bba 10593 * tree-ssa-operands.c: Simplify for new virtual operand representation.
5006671f
RG
10594 (operand_build_cmp, copy_virtual_operands,
10595 create_ssa_artificial_load_stmt, add_to_addressable_set,
10596 gimple_add_to_addresses_taken): Remove public functions.
10597 (unlink_stmt_vdef): New function.
10598
457d1d00
AM
105992009-04-03 Alan Modra <amodra@bigpond.net.au>
10600
10601 * config.gcc (powerpc-*-linux*): Merge variants.
10602
e19da24c 106032009-04-02 Chao-ying Fu <fu@mips.com>
60839f5d 10604 James Grosbach <james.grosbach@microchip.com>
e19da24c
CF
10605
10606 * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
10607 num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
10608 cop0_sp_offset.
10609 (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
10610 keep_interrupts_masked_p, use_debug_exception_return_p.
10611 (mips_attribute_table): Add interrupt, use_shadow_register_set,
10612 keep_interrupts_masked, use_debug_exception_return.
10613 (mips_interrupt_type_p, mips_use_shadow_register_set_p,
10614 mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
10615 New functions.
10616 (mips_function_ok_for_sibcall): Return false for interrupt handlers.
10617 (mips_print_operand): Process COP0 registers to print $0 .. $31
10618 correctly for GAS to process.
10619 (mips_interrupt_extra_call_saved_reg_p): New function.
10620 (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
10621 extra registers.
10622 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
10623 (mips_compute_frame_info): Add supports for interrupt context that
10624 includes doubleword accumulators and COP0 registers.
10625 (mips_for_each_saved_acc): New function.
10626 (mips_for_each_saved_gpr_and_fpr): Change the function name from
10627 mips_for_each_saved_reg.
10628 (mips_save_reg): Save accumulators.
10629 (mips_kernel_reg_p): A new for_each_rtx callback.
10630 (mips_expand_prologue): Support interrupt handlers.
10631 (mips_restore_reg): Restore accumulators.
10632 (mips_expand_epilogue): Support interrupt handlers.
10633 (mips_can_use_return_insn): Return false for interrupt handlers.
10634 (mips_epilogue_uses): New function.
10635 * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
10636 UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
10637 (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
10638 cop0_move): New instructions.
10639 * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
10640 * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
10641 defines.
10642 (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
10643 New defines.
10644 (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
10645 (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
10646 interrupt handlers, we use K0 as the temporary register.
10647 (EPILOGUE_USES): Change to a function call.
10648 * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
10649 handlers, we use K0 as the temporary register.
2ba9daa7 10650
e19da24c
CF
10651 * doc/extend.texi (Function Attributes): Document interrupt,
10652 use_shadow_register_set, keep_interrupts_masked,
10653 use_debug_exception_return for MIPS attributes.
10654
aa1ca044
AM
106552009-04-03 Alan Modra <amodra@bigpond.net.au>
10656
10657 * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
10658 Remove a number of t-files from tmake_file.
10659 * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
10660 * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
10661 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
10662 target_prototype, not TARGET_PROTOTYPE.
10663 (LINK_OS_GNU_SPEC): Define.
10664 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
10665 and darwin-ldoubdle.c.
10666
14fdc613
MM
106672009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
10668
10669 PR driver/39293
10670 * gcc.c (save_temps_flag): Add support for -save-temps=obj.
10671 (cpp_options): Ditto.
10672 (default_compilers): Ditto.
10673 (display_help): Ditto.
10674 (process_command): Ditto.
10675 (do_spec_1): Ditto.
10676 (set_input): Use lbasename instead of duplicate code.
10677 (save_temps_prefix): New static for -save-temps=obj.
10678 (save_temps_length): Ditto.
2ba9daa7 10679
14fdc613
MM
10680 * doc/invoke.texi (-save-temps=obj): Document new variant to
10681 -save-temps switch.
10682
d3aa398e
JL
106832009-04-02 Jeff Law <law@redhat.com>
10684
10685 * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
10686 variable.
10687
83f0ccb8
L
106882009-04-02 H.J. Lu <hongjiu.lu@intel.com>
10689
10690 * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
10691 * configure: Regenerated.
10692
dcb6e951
RAE
106932009-04-02 Rafael Avila de Espindola <espindola@google.com>
10694
10695 * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
10696 share the argument list.
10697
d85478c2
RAE
106982009-04-02 Rafael Avila de Espindola <espindola@google.com>
10699
10700 Merge
10701
10702 2009-02-12 Diego Novillo <dnovillo@google.com>
10703
83f0ccb8
L
10704 * varpool.c (debug_varpool): New.
10705 * cgraph.h (debug_varpool): Declare.
d85478c2 10706
34f42a49
JH
107072009-04-02 Jan Hubicka <jh@suse.cz>
10708
10709 * passes.c (init_optimization_passes): Remove two copies of ehcleanup
10710 pass.
10711
a4747b4a
L
107122009-04-02 H.J. Lu <hongjiu.lu@intel.com>
10713
10714 * config/i386/i386.c (ix86_abi): Move initialization to ...
10715 (override_options): Here.
10716
63a9de54
CB
107172009-04-02 Christian Bruel <christian.bruel@st.com>
10718
10719 * config/sh/sh.c (sh_dwarf_register_span): New function.
10720 (TARGET_DWARF_REGISTER_SPAN): Define.
10721 * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
2ba9daa7 10722
2f0fa28e
IR
107232009-04-02 Ira Rosen <irar@il.ibm.com>
10724
10725 PR tree-optimization/39595
2ba9daa7 10726 * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
2f0fa28e
IR
10727 interleaved loads group is not greater than the SLP group size.
10728
bbf7ce11
RAE
107292009-04-02 Rafael Avila de Espindola <espindola@google.com>
10730
10731 * builtins.c (is_builtin_name): New.
10732 (called_as_built_in): Use is_builtin_name.
10733 * tree.h (is_builtin_name): New.
10734 * varasm.c (incorporeal_function_p): Use is_builtin_name
10735
47e4dfcf
AS
107362009-04-02 Andrew Stubbs <ams@codesourcery.com>
10737
10738 * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
10739
d0940d56
DS
107402009-04-02 Dodji Seketeli <dodji@redhat.com>
10741
10742 PR c++/26693
532bfb0a 10743 * c-decl.c (clone_underlying_type): Move this ...
d0940d56
DS
10744 * c-common.c (set_underlying_type): ... here.
10745 Also, make sure the function properly sets TYPE_STUB_DECL() on
10746 the newly created typedef variant type.
10747 * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
7a715bba
UB
10748 * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
10749 points.
d0940d56 10750
bf1cbdc6
RG
107512009-04-02 Richard Guenther <rguenther@suse.de>
10752
10753 PR tree-optimization/37221
10754 * tree-flow.h (degenerate_phi_result): Declare.
10755 * tree-ssa-dom.c (degenerate_phi_result): Export.
10756 * tree-scalar-evolution.c (analyze_initial_condition): If
10757 the initial condition is defined by a degenerate PHI node
10758 use the degenerate value.
10759
87cfb32c
EB
107602009-04-01 Eric Botcazou <ebotcazou@adacore.com>
10761
10762 PR rtl-optimization/39588
10763 * combine.c (merge_outer_ops): Do not set the constant when this
10764 is not necessary.
10765 (simplify_shift_const_1): Do not modify it either in this case.
10766
bbb6eae8
SB
107672009-04-01 Steven Bosscher <steven@gcc.gnu.org>
10768
10769 * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
10770 tuning is deprecated if -mtune value is set to an Itanium1 variant.
10771
839a3b8a
JJ
107722009-04-01 Janis Johnson <janis187@us.ibm.com>
10773
10774 PR c/29027
10775 * c-lex.c (interpret_float): Default (no suffix) is double.
10776
667e8acb
XDL
107772009-04-1 Xinliang David Li <davidxl@google.com>
10778
10779 * config/i386/i386.c (legitimate_constant_p): Recognize
10780 all one vector constant.
10781
60839f5d 107822009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10783
60839f5d 10784 * config/vax/vax.c: Add #includes to silence warnings.
c4e75102
MT
10785 Change #include order to silence two warnings.
10786
60839f5d 107872009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10788
60839f5d 10789 * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
c4e75102
MT
10790 (ASM_SPEC): Pass -k to the assembler for PIC code.
10791
60839f5d 107922009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10793
60839f5d
EB
10794 * config.gcc: Add vax-*-linux* to the switch.
10795 * config/vax/linux.h: New file. (TARGET_VERSION,
c4e75102
MT
10796 TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
10797
60839f5d 107982009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10799
60839f5d 10800 * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
c4e75102 10801 Use predicate macros instead of GET_CODE() == foo.
60839f5d 10802 * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
c4e75102
MT
10803 ashlsi3, rotrsi3, <unnamed>): Likewise.
10804
60839f5d 108052009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10806
60839f5d 10807 * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
c4e75102 10808 jbbccihi, jbbccisi): Remova trailing whitespace.
60839f5d
EB
10809 * config/vax/constraints.md: Likewise.
10810 * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
10811 * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
10812 * config/vax/predicates.md: Likewise.
10813 * config/vax/vax.c (print_operand_address, vax_output_int_move,
c4e75102 10814 vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
60839f5d
EB
10815 * config/vax/vax.h: Likewise.
10816 * config/vax/vax.md (nonlocal_goto): Likewise.
c4e75102 10817
60839f5d 108182009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10819
60839f5d 10820 * config/vax/vax.c (vax_float_literal, vax_output_int_move)
c4e75102
MT
10821 (indirectable_address_p, adjacent_operands_p): Add spaces around
10822 braces.
60839f5d 10823 * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
c4e75102 10824
60839f5d 108252009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10826
60839f5d 10827 * config/vax/vax.c (legitimate_constant_address_p,
c4e75102
MT
10828 legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
10829 index_term_p, reg_plus_index_p, legitimate_address_p,
10830 vax_mode_dependent_address_p): Update comments to match functions
10831 modified by the recent int->bool conversion.
10832
60839f5d 108332009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10834
60839f5d
EB
10835 * config/vax/builtins.md: Update copyright message.
10836 * config/vax/constraints.md: Likewise.
10837 * config/vax/netbsd-elf.h: Likewise.
10838 * config/vax/predicates.md: Likewise.
10839 * config/vax/vax-protos.h: Likewise.
10840 * config/vax/vax.c: Likewise.
10841 * config/vax/vax.h: Likewise.
10842 * config/vax/vax.md: Likewise.
10843 * config/vax/vax.opt: Likewise.
c4e75102 10844
60839f5d 108452009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10846
60839f5d 10847 * config/vax/builtins.md (ffssi2, ffssi2_internal,
c4e75102 10848 sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
60839f5d
EB
10849 * config/vax/constraints.md (B, R): Likewise.
10850 * config/vax/predicates.md (external_memory_operand,
c4e75102 10851 nonimmediate_addsub_di_operand): Likewise.
60839f5d
EB
10852 * config/vax/vax.c (vax_output_int_add): Likewise.
10853 * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
c4e75102
MT
10854 untyped_call): Likewise.
10855
60839f5d 108562009-04-01 Matt Thomas <matt@3am-software.com>
c4e75102 10857
7a715bba
UB
10858 * config/vax/predicates.md: New file.
10859 (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
c4e75102
MT
10860 external_const_operand, nonsymbolic_operand, external_memory_operand,
10861 indirect_memory_operand, indexed_memory_operand,
10862 illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
10863 nonimmediate_addsub_di_operand, general_addsub_di_operand): New
10864 predicate.
7a715bba
UB
10865 * config/vax/constraints.md: New file.
10866 (Z0, U06, U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
10867 New constraint.
10868 * config/vax/builtins.md: New file.
10869 (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
10870 jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
10871 jbbccisi): Define.
c4e75102
MT
10872 * config/vax/vax.opt (mqmath): Add option.
10873 * config/vax/vax.md (isfx): Extend with DI.
10874 (VAXintQH, VAXintQHSD): Define.
10875 (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
10876 mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
10877 and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
10878 one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
10879 (movdi): Update constraints and use vax_output_int_move().
10880 (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
10881 movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
10882 pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
10883 nonlocal_goto): New.
10884 (mov<mode>): Extend accepted operand types.
10885 (subdi3_old): Rename from subdi3, change update constraints and use
10886 a new implementation.
60839f5d 10887 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
c4e75102
MT
10888 (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
10889 MOVE_RATIO, CLEAR_RATIO): Define.
10890 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
10891 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
10892 (PRINT_OPERAND): Redefine using a function instead of inlined code.
60839f5d 10893 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
c4e75102
MT
10894 (split_quadword_operands): Make static and really allow variable
10895 splitting.
10896 (print_operand_address): Update for PIC generation.
10897 (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
10898 indexable_address_p, fixup_mathdi_operand,
10899 vax_expand_addsub_di_operands, adjacent_operands_p): New.
10900 (vax_float_literal, legitimate_constant_p,
10901 indirectable_constant_address_p, index_term_p,
10902 reg_plus_index_p): Return bool instead of int.
10903 (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
10904 where needed.
10905 (vax_output_int_move, vax_output_int_add): Extend to allow PIC
10906 generation.
10907 (vax_output_conditional_branch): Indent.
10908 (legitimate_constant_address_p, indirectable_constant_address_p,
10909 indirectable_address_p, nonindexed_address_p, legitimate_address_p,
10910 vax_mode_dependent_address_p): Return bool instead of int, update for
10911 PIC generation.
10912 * config/vax/vax-protos.h (legitimate_constant_address_p,
10913 legitimate_constant_p, legitimate_address_p,
10914 vax_mode_dependent_address_p): Change declaration to bool.
10915 (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
10916 vax_expand_addsub_di_operands, vax_output_int_subtract,
10917 vax_output_movmemsi): Declare.
10918 (split_quadword_operands, vax_float_literal): Delete declaration.
10919 * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
10920 * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
10921 VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
10922 ASM_OUTPUT_DWARF_PCREL): Define.
10923 (ASM_SPEC): Change definition to allow PIC generation.
10924
9332c6eb
L
109252009-04-01 Steve Ellcey <sje@cup.hp.com>
10926
10927 * doc/sourcebuild.texi: Update front-end requirements.
10928
d93e052c
JJ
109292009-04-01 Jakub Jelinek <jakub@redhat.com>
10930
10931 PR target/39226
10932 * config/rs6000/rs6000.md (andsi3_internal5_nomc,
10933 anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
10934 (booldi3_internal3): Use boolean_or_operator instead of
10935 boolean_operator.
10936
6ccb2a4a
JM
109372009-04-01 Joseph Myers <joseph@codesourcery.com>
10938
10939 PR c/39605
10940 * c-decl.c (grokdeclarator): Pedwarn for file-scope array
10941 declarator whose size is not an integer constant expression but
10942 folds to an integer constant, then treat it as a constant
10943 subsequently.
10944
299b87f8
RG
109452009-04-01 Richard Guenther <rguenther@suse.de>
10946
10947 * fold-const.c (fold_plusminus_mult_expr): Do not fold
10948 i * 4 + 2 to (i * 2 + 1) * 2.
10949
b85eb797
JJ
109502009-04-01 Jakub Jelinek <jakub@redhat.com>
10951
10952 PR c/37772
10953 * c-parser.c (c_parser_asm_statement): Skip until close paren and
10954 return if c_parser_asm_string_literal returned NULL.
10955
235e1fe8
NC
109562009-04-01 Nick Clifton <nickc@redhat.com>
10957
10958 * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
10959 already defined.
10960 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
10961 * config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the
10962 other typedefs to avoid conflicts with libgcc2.c. Define labels
10963 to gain 16-bit bit-manipulation functions from libgcc2.c and then
10964 include it.
10965 * config/m32c/m32c-lib2-trapv.c: New file. Define labels
10966 to gain 16-bit trapping arithmetic functions from libgcc2.c and
10967 then include it.
10968
d6868399
RAE
109692009-04-01 Rafael Avila de Espindola <espindola@google.com>
10970
7a715bba
UB
10971 * varasm.c (default_function_rodata_section): Declare DOT as
10972 const char*.
d6868399 10973
73d21f56 109742009-04-01 Kai Tietz <kai.tietz@onevision.com>
60839f5d 10975 Andrey Galkin <agalkin@hypercom.com>
73d21f56
KT
10976
10977 PR/39492
10978 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
10979 Make object_name unique for each process.
10980
03742a9b
JJ
109812009-04-01 Jakub Jelinek <jakub@redhat.com>
10982
10983 PR other/39591
10984 * omp-low.c (remove_exit_barrier): Don't optimize if there are any
10985 addressable variables in the parallel that could go out of scope while
10986 running queued tasks.
10987
4223ff5f
AS
109882009-04-01 Anatoly Sokolov <aesok@post.ru>
10989
10990 * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
10991 (CASE_VALUES_THRESHOLD): Redefine.
10992 * config/avr/avr.c (avr_override_options): Remove initialization of
10993 avr_case_values_threshold variable.
10994 (avr_case_values_threshold): Remove variable. Add new function.
10995 * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
10996 * config/avr/avr.opt (mno-tablejump): Remove option.
10997 * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
10998
e893f6f3
DD
109992009-04-01 DJ Delorie <dj@redhat.com>
11000
11001 * varasm.c (default_function_rodata_section): Don't assume
11002 anything about where the first '.' in the section name is.
11003
b246d100
AM
110042009-04-01 Alan Modra <amodra@bigpond.net.au>
11005
11006 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
11007 rs6000_emit_stack_tie.
11008
d3e37a9e
ILT
110092009-03-31 Ian Lance Taylor <iant@google.com>
11010
11011 * tree-eh.c (tree_remove_unreachable_handlers): Compare
11012 gimple_code with GIMPLE_RESX, not RESX.
11013
c1b61fca
JM
110142009-03-31 Joseph Myers <joseph@codesourcery.com>
11015
11016 * c-common.c (c_get_ident): New.
7a715bba 11017 (c_common_nodes_and_builtins): Call it for type names that may be NULL.
c1b61fca 11018
c2d2ad48
BE
110192009-04-01 Ben Elliston <bje@au.ibm.com>
11020
11021 * config/rs6000/sysv4.opt (msdata): Improve option description.
11022
13d1a6e7
SE
110232009-03-31 Steve Ellcey <sje@cup.hp.com>
11024
11025 * config/ia64/ia64.md (divsf3_internal_lat): Remove.
11026 (divdf3_internal_lat): Remove.
11027 (divxf3_internal_lat): Remove.
11028 (divxf3_internal_thr): Remove.
11029 (divxf): Use divxf3_internal.
11030 * config/ia64/div.md (divsf3_internal_lat): New.
11031 (divdf3_internal_lat): New.
11032 (divxf3_internal): New.
11033
207bf79d
JM
110342009-03-31 Joseph Myers <joseph@codesourcery.com>
11035
11036 PR c/448
11037 * Makefile.in (USE_GCC_STDINT): Define.
11038 (stmp-int-hdrs): Install stdint.h if applicable.
11039 * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
11040 if known.
11041 (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
11042 (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
11043 UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
11044 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
11045 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
11046 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
11047 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
11048 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
11049 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
11050 (c_common_nodes_and_builtins): Initialize
11051 underlying_wchar_type_node. Do not initialize
11052 signed_wchar_type_node or unsigned_wchar_type_node. Initialize
11053 nodes for new types.
11054 (c_stddef_cpp_builtins): Define macros for new types.
11055 * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
11056 Remove.
11057 (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
11058 CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
11059 CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
11060 CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
11061 CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
11062 CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
11063 CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
11064 CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
11065 CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
11066 (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
11067 (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
11068 int16_type_node, int32_type_node, int64_type_node,
11069 uint8_type_node, uint16_type_node, c_uint32_type_node,
11070 c_uint64_type_node, int_least8_type_node, int_least16_type_node,
11071 int_least32_type_node, int_least64_type_node,
11072 uint_least8_type_node, uint_least16_type_node,
11073 uint_least32_type_node, uint_least64_type_node,
11074 int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
11075 int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
11076 uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
11077 uintptr_type_node): Define.
11078 * c-cppbuiltin.c (builtin_define_constants,
11079 builtin_define_type_minmax): New.
11080 (builtin_define_stdint_macros): Define more macros.
11081 (c_cpp_builtins): Define more limit macros.
11082 (type_suffix): New.
11083 (builtin_define_type_max): Define in terms of
11084 builtin_define_type_minmax. Remove is_long parameter. All
11085 callers changed.
11086 * config.gcc (use_gcc_stdint): Define.
11087 (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
11088 Add newlib-stdint.h for generic targets.
11089 * config/glibc-stdint.h, config/newlib-stdint.h,
11090 ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
11091 * config/m32c/m32c.h (UINTPTR_TYPE): Define.
11092 * config/score/score.h (UINTPTR_TYPE): Define.
11093 * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
11094 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
11095 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
11096 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
11097 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
11098 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
11099 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
11100 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
11101 * config/spu/spu.h (STDINT_LONG32): Define.
11102 * configure.ac (use_gcc_stdint): Substitute.
11103 * configure: Regenerate.
11104 * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
11105 __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
11106 __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
11107 __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
11108 __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
11109 __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
11110 __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
11111 __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
11112 __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
11113 __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
11114 __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
11115 __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
11116 __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
11117 __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
11118 __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
11119 __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
11120 __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
11121 __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
11122 __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
11123 __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
11124 __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
11125 * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
11126 INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
11127 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
11128 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
11129 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
11130 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
11131 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
11132 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
11133
ed853664
BS
111342009-03-31 Bernd Schmidt <bernd.schmidt@analog.com>
11135
11136 * loop-iv.c (suitable_set_for_replacement): Renamed from
11137 simplify_using_assignment; changed to return bool and to accept new
11138 args DEST and SRC. Return true iff we find a source/destination pair
11139 that can be used to make a replacement, and fill SRC and DEST if so.
11140 Remove arg ALTERED. Don't deal with altered regs here. All callers
11141 changed.
11142 (simplify_using_initial_values): Deal with altered regs here and track
11143 more precisely the effect they have on the validity of our expression.
11144
1569e190
BS
11145 * loop-iv.c (simplify_using_condition): A condition of the form
11146 (EQ REG CONST) can be used to simply make a substitution.
11147 (simplify_using_initial_values): Keep track of conditions we have seen
11148 and keep using them to simplify new expressions, while applying the
11149 same substitutions to them as to the expression.
11150
1d1eb80c
BS
11151 * simplify-rtx.c (simplify_relational_operation_1): Simplify
11152 (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
11153 GEU/LTU reversed.
11154
28af33b0
BS
11155 * loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers
11156 changed. Use this when trying to improve the upper bound.
11157 Generate the comparison by using simplify_gen_relational.
11158
b30321cd
BS
11159 * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
11160
60081874
BS
11161 * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
11162 functions.
2ba9daa7 11163 (simplify_using_assignment, simplify_using_initial_values): Call
60081874
BS
11164 replace_in_expr to make replacements. Call replace_single_def_regs
11165 once on the initial version of the expression.
11166
bebc6e07
RR
111672009-03-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11168
fcb82ab0 11169 PR target/27237
bebc6e07 11170 * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
2ba9daa7 11171
6b12efe9
RG
111722009-03-31 Richard Guenther <rguenther@suse.de>
11173
11174 PR middle-end/31029
11175 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
11176 equality comparisons. Fold C - X CMP X if C % 2 == 1.
11177
108f6c2f
RG
111782009-03-31 Richard Guenther <rguenther@suse.de>
11179
11180 * tree.h (div_if_zero_remainder): Declare.
11181 * fold-const.c (div_if_zero_remainder): Export.
11182 * tree-ssa-forwprop.c
11183 (forward_propagate_addr_into_variable_array_index): Handle
11184 constant array index addition outside of the variable index.
11185
8f612190
JM
111862009-03-31 Joseph Myers <joseph@codesourcery.com>
11187
11188 PR target/39592
11189 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
11190 define_splits, floatunssi<mode>2): Require x87 conversions from
11191 DImode to be permitted.
11192
47580d22
JM
111932009-03-31 Joseph Myers <joseph@codesourcery.com>
11194
11195 PR preprocessor/15638
11196 * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
11197
ba4d8f9d
RG
111982009-03-31 Richard Guenther <rguenther@suse.de>
11199
11200 PR middle-end/23401
11201 PR middle-end/27810
11202 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
11203 (struct tree_decl_with_vis): Remove gimple_formal_temp member.
11204 * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
11205 a separate statement.
11206 * gimplify.c (pop_gimplify_context): Remove formal temp handling.
11207 (lookup_tmp_var): Likewise.
11208 (is_gimple_formal_tmp_or_call_rhs): Remove.
11209 (is_gimple_reg_or_call_rhs): Rename to ...
11210 (is_gimple_reg_rhs_or_call): ... this.
11211 (is_gimple_mem_or_call_rhs): Rename to ...
11212 (is_gimple_mem_rhs_or_call): ... this.
11213 (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set
11214 DECL_GIMPLE_REG_P only if is_formal is true.
11215 (gimplify_compound_lval): Use is_gimple_reg. Remove workaround
11216 for non-proper post-modify expression gimplification.
11217 (gimplify_self_mod_expr): For post-modify expressions gimplify
11218 the lvalue to a minimal lvalue.
11219 (rhs_predicate_for): Remove formal temp case.
11220 (gimplify_modify_expr_rhs): Likewise.
11221 (gimplify_addr_expr): Use is_gimple_reg.
11222 (gimplify_expr): Remove formal temp cases.
11223 (gimple_regimplify_operands): Likewise.
11224 * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
11225 and FILTER_EXPR like constants.
11226 * gimple.c (walk_gimple_op): Fix val_only initialization, use
11227 is_gimple_reg.
11228 (is_gimple_formal_tmp_rhs): Remove.
11229 (is_gimple_reg_rhs): Remove special casing.
11230 (is_gimple_mem_rhs): Fix.
11231 (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
11232 (is_gimple_formal_tmp_var): Remove.
11233 (is_gimple_formal_tmp_reg): Likewise.
11234 (is_gimple_min_lval): Allow invariant component ref parts.
11235 * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
11236 is_gimple_formal_tmp_reg): Remove declarations.
11237 * tree-cfg.c (verify_expr): Verify that variables with address
11238 taken do not have DECL_GIMPLE_REG_P set.
11239 * tree-mudflap.c (mf_build_check_statement_for): Use
11240 force_gimple_operand instead of gimplify_expr.
11241
8de9b877
AZ
112422009-03-31 Ayal Zaks <zaks@il.ibm.com>
11243
11244 * modulo-sched.c (sms_schedule_by_order): Pass the actual
11245 schedulable rows to compute_split_row.
11246
b5e3caf2
BE
112472009-03-31 Ben Elliston <bje@au.ibm.com>
11248
11249 PR target/31635
11250 * config/rs6000/rs6000.c (rs6000_handle_option): Handle
11251 OPT_mvrsave.
11252
9752c4ad
AM
112532009-03-31 Alan Modra <amodra@bigpond.net.au>
11254
11255 * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
11256 * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
11257 * configure: Regenerate.
11258 * config.in: Regenerate.
11259 * config/rs6000/rs6000.opt (mtls-markers): Add.
11260 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
11261 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
11262 (tls_ld_aix, tls_ld_sysv): Likewise.
11263 (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
11264 (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
11265
b597d1b6
AM
112662009-03-31 Alan Modra <amodra@bigpond.net.au>
11267
11268 * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
11269
a203a221
JH
112702009-03-30 Jan Hubicka <jh@suse.cz>
11271
b597d1b6
AM
11272 * tree-eh.c (make_eh_edges): Set probability 100% to first edge
11273 out of RESX.
11274 (tree_remove_unreachable_handlers): Cleanup EH predecestor
11275 detection and label handling.
a203a221 11276
5b0c0b2c
VM
112772009-03-30 Vladimir Makarov <vmakarov@redhat.com>
11278
11279 * ira-int.h (ira_allocno): Rename left_conflicts_num to
11280 left_conflicts_size.
11281 (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
11282 ALLOCNO_LEFT_CONFLICTS_SIZE.
11283
11284 * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
11285 remove_allocno_from_bucket_and_push,
11286 allocno_spill_priority_compare, push_allocnos_to_stack,
11287 setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
11288 instead of ALLOCNO_LEFT_CONFLICTS_NUM.
11289 (setup_allocno_left_conflicts_num): Ditto. Rename to
11290 setup_allocno_left_conflicts_size.
11291 (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
11292 instead of ALLOCNO_LEFT_CONFLICTS_NUM and
11293 setup_allocno_left_conflicts_size instead of
11294 setup_allocno_left_conflicts_num.
11295
11296 * ira-build.c (ira_create_allocno): Use
11297 ALLOCNO_LEFT_CONFLICTS_SIZE instead of
11298 ALLOCNO_LEFT_CONFLICTS_NUM.
2ba9daa7 11299
9a48a93f
VM
113002009-03-30 Vladimir Makarov <vmakarov@redhat.com>
11301
11302 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
11303 instead of DF_LR_OUT.
11304
11305 * ira-lives.c (process_bb_node_lives): Ditto.
11306
11307 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
11308 instead of DF_LR_{OUT,IN}.
11309
11310 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
11311
11312 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
11313
4c936d4f
JH
113142009-03-30 Jan Hubicka <jh@suse.cz>
11315
11316 * except.c (label_to_region_map): Fix thinko.
11317
f4d9f129
SE
113182009-03-30 Steve Ellcey <sje@cup.hp.com>
11319
11320 PR middle-end/38237
11321 * tree.h (tree_find_value): New declaration.
11322 * tree.c (tree_find_value): New function.
11323 * varasm.c (assemble_external): Avoid duplicate entries on lists.
11324
b3f27c15
JJ
113252009-03-30 Jakub Jelinek <jakub@redhat.com>
11326
11327 PR debug/39563
11328 * c-decl.c (struct c_binding): Add locus field.
11329 (bind): Add locus argument, set locus field from it.
11330 (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
11331 add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
11332 (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
11333 implicitly_declare, undeclared_variable, lookup_label,
11334 declare_label, c_make_fname_decl, c_builtin_function,
11335 c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
11336 bind callers.
11337
ad41bd84 113382009-03-30 H.J. Lu <hongjiu.lu@intel.com>
680e8a00
L
11339
11340 PR target/38781
11341 * config/i386/i386.c (classify_argument): Check total size of
11342 structure.
11343
133f9369
MJ
113442009-03-30 Martin Jambor <mjambor@suse.cz>
11345
11346 * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
11347 IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
11348 IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
11349 respectively.
11350
11351 * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
11352 seen_variable_array_ref while also traversing a union.
11353
11354 * tree-inline.c (optimize_inline_calls): Do not call
11355 cgraph_node_remove_callees.
11356 * cgraphbuild.c (remove_cgraph_callee_edges): New function.
11357 (pass_remove_cgraph_callee_edges): New variable.
11358 * passes.c (init_optimization_passes): Add
11359 pass_remove_cgraph_callee_edges after early inlining and before all
11360 late intraprocedural passes.
11361
11362 * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
11363
1190f2eb
PB
113642009-03-30 Paolo Bonzini <bonzini@gnu.org>
11365
11366 * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
11367 Fix typos in names.
11368
fedc1775
PB
113692009-03-30 Paolo Bonzini <bonzini@gnu.org>
11370
fcb82ab0
UB
11371 * combine.c (simplify_comparison): Use have_insn_for.
11372 * dojump.c (do_jump): Likewise.
fedc1775 11373
65c5ae8b
PB
113742009-03-30 Paolo Bonzini <bonzini@gnu.org>
11375
11376 * config/sparc/sparc.c (sparc_compare_emitted): Remove.
11377 (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
11378 sparc_compare_op0 like sparc_compare_emitted used to be handled.
11379 (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
11380 instead of sparc_compare_emitted.
11381 * config/sparc/sparc.h (sparc_compare_emitted): Remove.
11382 * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
11383 instead of sparc_compare_emitted.
11384
d25aa7ab
PB
113852009-03-30 Paolo Bonzini <bonzini@gnu.org>
11386
11387 * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
11388 enter/exit cfglayout mode.
11389 (pass_partition_block): Require it.
11390 * combine.c (find_single_use, reg_dead_at_p): Use CFG.
11391 (combine_instructions): Track basic blocks instead of labels.
11392 (update_cfg_for_uncondjump): New.
11393 (try_combine): Use it. Update jumps after rescanning.
11394 (pass_combine): Require PROP_cfglayout.
11395 * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
11396
9c9e26f5
PB
113972009-03-30 Paolo Bonzini <bonzini@gnu.org>
11398
fcb82ab0
UB
11399 * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
11400 Provide/destroy PROP_cfglayout respectively.
11401 * gcse.c (pass_jump_bypass, pass_gcse): Require it.
11402 * tree-pass.h (PROP_cfglayout): New.
9c9e26f5 11403
28ddeea1
PB
114042009-03-30 Paolo Bonzini <bonzini@gnu.org>
11405
11406 * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
11407 fold_convert_const_fixed_from_fixed,
11408 fold_convert_const_fixed_from_int,
11409 fold_convert_const_fixed_from_real, fold_negate_const): Do not
11410 set TREE_CONSTANT_OVERFLOW.
11411 * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
11412 * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
11413
ebfd146a
IR
114142009-03-30 Ira Rosen <irar@il.ibm.com>
11415
11416 * tree-vect-loop-manip.c: New file.
11417 * tree-vectorizer.c: Update documentation and included files.
11418 (vect_loop_location): Make extern.
11419 (rename_use_op): Move to tree-vect-loop-manip.c
2ba9daa7
AS
11420 (rename_variables_in_bb, rename_variables_in_loop,
11421 slpeel_update_phis_for_duplicate_loop,
ebfd146a
IR
11422 slpeel_update_phi_nodes_for_guard1,
11423 slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
11424 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
11425 slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
2ba9daa7 11426 set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
ebfd146a
IR
11427 find_loop_location): Likewise.
11428 (new_stmt_vec_info): Move to tree-vect-stmts.c.
11429 (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
11430 get_vectype_for_scalar_type, vect_is_simple_use,
11431 supportable_widening_operation, supportable_narrowing_operation):
11432 Likewise.
11433 (bb_in_loop_p): Move to tree-vect-loop.c.
2ba9daa7
AS
11434 (new_loop_vec_info, destroy_loop_vec_info,
11435 reduction_code_for_scalar_code, report_vect_op,
ebfd146a
IR
11436 vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
11437 (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
11438 (vect_supportable_dr_alignment): Likewise.
11439 * tree-vectorizer.h (tree-data-ref.h): Include.
11440 (vect_loop_location): Declare.
11441 Reorganize function declarations according to the new file structure.
11442 * tree-vect-loop.c: New file.
2ba9daa7 11443 * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
ebfd146a
IR
11444 tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
11445 * tree-vect-data-refs.c: New file.
11446 * tree-vect-patterns.c (timevar.h): Don't include.
11447 * tree-vect-stmts.c: New file.
2ba9daa7 11448 * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
ebfd146a 11449 tree-vect-slp.c, tree-vect-loop.c.
2ba9daa7
AS
11450 * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
11451 tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
ebfd146a
IR
11452 tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
11453 (tree-vect-analyze.o): Remove.
11454 (tree-vect-transform.o): Likewise.
11455 (tree-vect-data-refs.o): Add rule.
2ba9daa7 11456 (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
ebfd146a
IR
11457 tree-vect-slp.o): Likewise.
11458 (tree-vect-patterns.o): Remove redundant dependencies.
11459 (tree-vectorizer.o): Likewise.
11460 * tree-vect-slp.c: New file.
11461
40a1cfba
RW
114622009-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11463
11464 * optc-gen.awk: Warn if an option flag has multiple different
11465 help strings.
11466
a9a7a9a2
SP
114672009-03-30 Sebastian Pop <sebastian.pop@amd.com>
11468
11469 * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
11470 -floop-block): Document dependences on PPL, CLooG and Graphite.
11471
8ce94e44
JM
114722009-03-30 Joseph Myers <joseph@codesourcery.com>
11473
11474 PR rtl-optimization/323
11475 * c-common.c (c_fully_fold, convert_and_check,
11476 c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
11477 (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
11478 * c-common.def (EXCESS_PRECISION_EXPR): New.
11479 * c-cppbuiltin.c (builtin_define_float_constants): Define
11480 constants with enough digits for long double.
11481 * c-lex.c (interpret_float): Interpret constant with excess
11482 precision where appropriate.
11483 * c-opts.c (c_common_post_options): Set
11484 flag_excess_precision_cmdline. Give an error for
11485 -fexcess-precision=standard for C++ for processors where the
11486 option is significant.
11487 * c-parser.c (c_parser_conditional_expression): Handle excess
11488 precision in condition.
11489 * c-typeck.c (convert_arguments): Handle arguments with excess
11490 precision.
11491 (build_unary_op): Move excess precision outside operation.
11492 (build_conditional_expr): Likewise.
11493 (build_compound_expr): Likewise.
11494 (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
11495 (build_modify_expr): Handle excess precision in RHS.
11496 (convert_for_assignment): Handle excess precision in converted
11497 value.
11498 (digest_init, output_init_element, process_init_element): Handle
11499 excess precision in initializer.
11500 (c_finish_return): Handle excess precision in return value.
11501 (build_binary_op): Handle excess precision in operands and add
11502 excess precision as needed for operation.
11503 * common.opt (-fexcess-precision=): New option.
11504 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
11505 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
11506 For standard excess precision, output explicit conversion to and
11507 truncation from XFmode.
11508 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
11509 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
11510 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
11511 define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
11512 define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
11513 floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
11514 divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
11515 *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
11516 *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
11517 define_splits, sqrt<mode>2): Disable where appropriate for
11518 standard excess precision.
11519 * convert.c (convert_to_real): Do not shorten arithmetic to type
11520 for which excess precision would be used.
11521 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
11522 * doc/invoke.texi (-fexcess-precision=): Document option.
11523 (-mfpmath=): Correct index entry.
11524 * flags.h (enum excess_precision, flag_excess_precision_cmdline,
11525 flag_excess_precision): New.
11526 * langhooks.c (lhd_post_options): Set
11527 flag_excess_precision_cmdline.
11528 * opts.c (common_handle_option): Handle -fexcess-precision=.
11529 * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
11530 init_excess_precision): New.
11531 (lang_dependent_init_target): Call init_excess_precision.
11532 * tree.c (excess_precision_type): New.
11533 * tree.h (excess_precision_type): Declare.
11534
1e57bf47
JM
115352009-03-30 Joseph Myers <joseph@codesourcery.com>
11536
11537 PR c/35235
11538 * c-typeck.c (build_component_ref): Do not copy qualifiers from
11539 non-lvalue to component.
11540
148e4216
JM
115412009-03-29 Joseph Myers <joseph@codesourcery.com>
11542
11543 PR preprocessor/34695
11544 * Makefile.in (c-opts.o): Depend on c-tree.h.
11545 * c-common.c: Move down include of diagnostic.h.
11546 (done_lexing, c_cpp_error): New.
11547 * c-common.h (done_lexing): Declare.
11548 * c-decl.c (c_write_global_declarations): Don't check cpp_errors
11549 (parse_in).
11550 * c-opts.c: Include c-tree.h.
11551 (c_common_init_options): Set preprocessor error callback.
11552 (c_common_handle_option): Do not set preprocessor
11553 inhibit_warnings, warnings_are_errors, warn_system_headers,
11554 pedantic_errors or inhibit_warnings flags.
11555 (c_common_post_options): Do not check cpp_errors (parse_in).
11556 (c_common_finish): Do not output dependencies if there were
11557 errors. Do not check return value of cpp_finish.
11558 * c-ppoutput.c (pp_file_change): Set input_location.
11559 * c-tree.h (c_cpp_error): Declare.
11560 * diagnostic.c (diagnostic_set_info_translated): Also initialize
11561 override_column.
11562 (diagnostic_build_prefix): Check override_column.
11563 * diagnostic.h (diagnostic_info): Add override_column field.
11564 (diagnostic_override_column): Define.
11565
2ec5deb5
PB
115662009-03-28 Paolo Bonzini <bonzini@gnu.org>
11567
ba20e309
UB
11568 * c-common.c (c_expand_expr, c_staticp): Remove.
11569 * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
11570 * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
11571 COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
11572 * c-gimplify.c (gimplify_compound_literal_expr,
11573 optimize_compound_literals_in_ctor): Remove.
11574 (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
11575 * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
11576 * c-semantics.c (emit_local_var): Remove.
11577
11578 * langhooks-def.h (lhd_expand_expr): Remove.
11579 * langhooks.c (lhd_expand_expr): Remove.
11580 * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
11581
11582 * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
11583 handling from c-semantics.c; don't call into langhook.
11584 (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
11585 * gimplify.c (gimplify_compound_literal_expr,
11586 optimize_compound_literals_in_ctor): Move from c-gimplify.c.
11587 (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
11588 (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
11589 as was done in c-gimplify.c.
11590 * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
11591 * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
11592 Move from c-common.h.
11593 * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
2ec5deb5
PB
11594
11595 * tree.c (staticp): Do not call langhook.
11596 * langhooks.c (lhd_staticp): Delete.
11597 * langhooks-def.h (lhd_staticp): Delete prototype.
11598 (LANG_HOOKS_STATICP): Delete.
11599 (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
11600
ba20e309
UB
11601 * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
11602 instead of DECL_STMTs.
2ec5deb5 11603
928c19bb
JM
116042009-03-29 Joseph Myers <joseph@codesourcery.com>
11605
11606 PR c/456
11607 PR c/5675
11608 PR c/19976
11609 PR c/29116
11610 PR c/31871
11611 PR c/35198
11612 * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
11613 void_type_node.
11614 (fold_call_expr): Return a NOP_EXPR from folding rather than the
11615 contained expression.
ba20e309 11616 * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
928c19bb
JM
11617 (c_common_truthvalue_conversion): Use c_save_expr. Do not fold
11618 conditional expressions for C.
11619 (decl_constant_value_for_optimization): Move from
ba20e309 11620 decl_constant_value_for_broken_optimization in c-typeck.c. Check
928c19bb
JM
11621 whether optimizing and that the expression is a VAR_DECL not of
11622 array type instead of doing such checks in the caller. Do not
11623 check pedantic. Call gcc_unreachable for C++.
11624 * c-common.def (C_MAYBE_CONST_EXPR): New.
11625 * c-common.h (c_fully_fold, c_save_expr,
11626 decl_constant_value_for_optimization): New prototypes.
11627 (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
11628 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
11629 EXPR_INT_CONST_OPERANDS): Define.
11630 * c-convert.c (convert): Strip nops from expression.
11631 * c-decl.c (groktypename): Take extra parameters expr and
11632 expr_const_operands. Update call to grokdeclarator.
11633 (start_decl): Update call to grokdeclarator. Add statement for
11634 expressions used in type of decl.
11635 (grokparm): Update call to grokdeclarator.
11636 (push_parm_decl): Update call to grokdeclarator.
11637 (build_compound_literal): Add parameter non_const and build a
11638 C_MAYBE_COSNT_EXPR if applicable.
11639 (grokdeclarator): Take extra parameters expr and
11640 expr_const_operands. Track expressions used in declaration
11641 specifiers and declarators. Fold array sizes and track whether
11642 they are constant expressions and whether they are integer
11643 constant expressions.
11644 (parser_xref_tag): Set expr and expr_const_operands fields in
11645 return value.
11646 (grokfield): Update call to grokdeclarator.
11647 (start_function): Update call to grokdeclarator.
11648 (build_null_declspecs): Set expr and expr_const_operands fields in
11649 return value.
11650 (declspecs_add_type): Handle expressions in typeof specifiers.
11651 * c-parser.c (c_parser_declspecs): Set expr and
11652 expr_const_operands fields for declaration specifiers.
11653 (c_parser_enum_specifier): Likewise.
11654 (c_parser_struct_or_union_specifier): Likewise.
11655 (c_parser_typeof_specifier): Likewise. Update call to
11656 groktypename. Fold expression as needed. Return expressions with
11657 type instead of adding statements.
11658 (c_parser_attributes): Update calls to c_parser_expr_list.
11659 (c_parser_statement_after_labels): Fold expression before passing
11660 to objc_build_throw_stmt.
11661 (c_parser_condition): Fold expression.
11662 (c_parser_asm_operands): Fold expression.
11663 (c_parser_conditional_expression): Use c_save_expr. Update call
11664 to build_conditional_expr.
11665 (c_parser_alignof_expression): Update call to groktypename.
11666 (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
11667 original_code. Fold expression argument of va_arg. Create
11668 C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
11669 argument to va_arg. Update calls to groktypename. Fold array
11670 index for offsetof. Verify that first argument to
11671 __builtin_choose_expr has integer type.
11672 (c_parser_postfix_expression_after_paren_type): Update calls to
11673 groktypename and build_compound_literal. Handle expressions with
11674 side effects in type name.
11675 (c_parser_postfix_expression_after_primary): Update call to
11676 c_parser_expr_list. Set original_code for calls to
11677 __builtin_constant_p.
11678 (c_parser_expr_list): Take extra parameter fold_p. Fold
11679 expressions if requested.
11680 (c_parser_objc_type_name): Update call to groktypename.
11681 (c_parser_objc_synchronized_statement): Fold expression.
11682 (c_parser_objc_receiver): Fold expression.
11683 (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
11684 (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
11685 c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
11686 * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
11687 (struct c_typespec): Add elements expr and expr_const_operands.
11688 (struct c_declspecs): Add elements expr and expr_const_operands.
11689 (groktypename, build_conditional_expr, build_compound_literal):
11690 Update prototypes.
11691 (in_late_binary_op): Declare.
11692 * c-typeck.c (note_integer_operands): New function.
11693 (in_late_binary_op): New variable.
11694 (decl_constant_value_for_broken_optimization): Move to c-common.c
11695 and rename to decl_constant_value_for_optimization.
11696 (default_function_array_conversion): Do not strip nops.
11697 (default_conversion): Do not call
11698 decl_constant_value_for_broken_optimization.
11699 (build_array_ref): Do not fold result.
11700 (c_expr_sizeof_expr): Fold operand. Use C_MAYBE_CONST_EXPR for
11701 result when operand is a VLA.
11702 (c_expr_sizeof_type): Update call to groktypename. Handle
11703 expressions included in type name. Use C_MAYBE_CONST_EXPR for
11704 result when operand names a VLA type.
11705 (build_function_call): Update call to build_compound_literal.
11706 Only fold result for calls to __builtin_* functions. Strip
11707 NOP_EXPR from INTEGER_CST returned from such functions. Fold
11708 the function designator.
11709 (convert_arguments): Fold arguments. Update call to
11710 convert_for_assignment.
11711 (build_unary_op): Handle increment and decrement of
11712 C_MAYBE_CONST_EXPR. Move lvalue checks for increment and
11713 decrement earlier. Fold operand of increment and decrement.
11714 Handle address of C_MAYBE_CONST_EXPR. Only fold expression being
11715 built for integer operand. Wrap returns that are INTEGER_CSTs
11716 without being integer constant expressions or that have integer
11717 constant operands without being INTEGER_CSTs.
11718 (lvalue_p): Handle C_MAYBE_CONST_EXPR.
11719 (build_conditional_expr): Add operand ifexp_bcp. Track whether
11720 result is an integer constant expression or can be used in
11721 unevaluated parts of one and avoid folding and wrap as
11722 appropriate. Fold operands before possibly doing -Wsign-compare
11723 warnings.
11724 (build_compound_expr): Wrap result for C99 if operands can be used
11725 in integer constant expressions.
11726 (build_c_cast): Update call to digest_init. Do not ignore
11727 overflow from casting floating-point constants to integers. Wrap
11728 results that could be confused with integer constant expressions,
11729 null pointer constants or floating-point constants.
11730 (c_cast_expr): Update call to groktypename. Handle expressions
11731 included in type name.
11732 (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR. Fold
11733 lhs inside possible SAVE_EXPR. Fold RHS before assignment.
11734 Update calls to convert_for_assignment.
11735 (convert_for_assignment): Take new parameter
11736 null_pointer_constant. Do not strip nops or call
11737 decl_constant_value_for_broken_optimization. Set
11738 in_late_binary_op for conversions to boolean.
11739 (store_init_value): Update call to digest_init.
11740 (digest_init): Take new parameter null_pointer_constant. Do not
11741 call decl_constant_value_for_broken_optimization. pedwarn for
11742 initializers not constant expressions. Update calls to
11743 convert_for_assignment.
11744 (constructor_nonconst): New.
11745 (struct constructor_stack): Add nonconst element.
11746 (really_start_incremental_init, push_init_level, pop_init_level):
11747 Handle constructor_nonconst and nonconst element.
11748 (set_init_index): Call constant_expression_warning for array
11749 designators.
11750 (output_init_element): Fold value. Set constructor_nonconst as
11751 applicable. pedwarn for initializers not constant expressions.
11752 Update call to digest_init. Call constant_expression_warning
11753 where constant initializers are required.
11754 (process_init_element): Use c_save_expr.
11755 (c_finish_goto_ptr): Fold expression.
11756 (c_finish_return): Fold return value. Update call to
11757 convert_for_assignment.
11758 (c_start_case): Fold switch expression.
11759 (c_process_expr_stmt): Fold expression.
11760 (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
ba20e309 11761 ensure statement expression is not evaluated in constant expression.
928c19bb
JM
11762 (build_binary_op): Track whether results are integer constant
11763 expressions or may occur in such, disable folding and wrap results
11764 as applicable. Fold operands for -Wsign-compare warnings unless
11765 in_late_binary_op.
11766 (c_objc_common_truthvalue_conversion): Handle results folded to
11767 integer constants that are not integer constant expressions.
11768 * doc/extend.texi: Document when typeof operands are evaluated,
11769 that condition of __builtin_choose_expr is an integer constant
11770 expression, and more about use of __builtin_constant_p in
11771 initializers.
11772
5babbcc0
RG
117732009-03-29 Richard Guenther <rguenther@suse.de>
11774
11775 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
11776 propagate addresses of array references.
11777
0340f2ba
SB
117782009-03-29 Steven Bosscher <steven@gcc.gnu.org>
11779
11780 * regmove.c (perhaps_ends_bb_p): Remove.
11781 (optimize_reg_copy_1): Don't call perhaps_ends_bb_p. Get basic block
11782 from INSN and check that the main loop stays within that basic block.
11783 (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
11784 (regmove_forward_pass): Split out from regmove_optimize. Use
11785 FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
11786 (regmove_backward_pass): Split out from regmove_optimize. Use
11787 FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
11788 (regmove_optimize): Simplify.
11789
eeae74a1
L
117902009-03-29 H.J. Lu <hongjiu.lu@intel.com>
11791
11792 PR target/39545
11793 * config/i386/i386.c (classify_argument): Ignore flexible array
11794 member in struct and warn ABI change.
11795
a24078b2
L
117962009-03-29 H.J. Lu <hongjiu.lu@intel.com>
11797
11798 * config/i386/i386-protos.h (ix86_agi_dependent): New.
11799
11800 * config/i386/i386.c (ix86_agi_dependent): Rewrite.
11801 (ix86_adjust_cost): Updated.
11802
a8da523f
JH
118032009-03-29 Jan Hubicka <jh@suse.cz>
11804
11805 PR middle-end/28850
11806 * tree-pass.h (pass_cleanup_eh): New function.
11807 (remove_unreachable_regions): Break code handling RTL
11808 to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
11809 that can not be reached by runtime.
11810 (can_be_reached_by_runtime): New function.
11811 (label_to_region_map): New function.
11812 (num_eh_regions): New function.
11813 (rtl_remove_unreachable_regions): New function.
11814 (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
11815 (remove_eh_region): New function.
11816 * except.h: Include sbitmap and vecprim.
11817 (remove_eh_region, remove_unreachable_regions, label_to_region_map,
11818 num_eh_regions): Declare.
11819 * passes.c (init_optimization_passes): Schedule cleanup_eh.
ba20e309 11820 * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
a8da523f
JH
11821 * tree-eh.c (tree_remove_unreachable_handlers): New function.
11822 (tree_empty_eh_handler_p): New function.
11823 (cleanup_empty_eh): New function.
11824 (cleanup_eh): New function.
11825 (pass_cleanup_eh): New function.
11826
98f358e5
JH
118272009-03-29 Jan Hubicka <jh@suse.cz>
11828
11829 * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
11830 for removed regions.
11831
13a9fa44
JH
118322009-03-29 Jan Hubicka <jh@suse.cz>
11833
11834 * except.c (dump_eh_tree): Dump all datastructures.
11835
e38cf733
JH
118362009-03-29 Jan Hubicka <jh@suse.cz>
11837
11838 * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
11839 (duplicate_eh_regions_1): Likewise.
11840 (duplicate_eh_regions): Likewise; cleanup code gorwing the region
11841 vector; call EH verification.
11842 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
11843 Be ready for region being removed.
11844
12802c2b
JH
118452009-03-29 Jan Hubicka <jh@suse.cz>
11846
11847 * bitmap.c (bitmap_last_set_bit): New function.
11848 * bitmap.h (bitmap_last_set_bit): Declare.
11849
4ea80a41
DA
118502009-03-29 David Ayers <ayers@fsfe.org>
11851
11852 PR objc/27377
11853 * c-typeck.c (build_conditional_expr): Emit ObjC warnings
11854 by calling objc_compare_types and surpress warnings about
11855 incompatible C pointers that are compatible ObjC pointers.
2ba9daa7 11856
4ea80a41 118572009-03-29 Adam Nemet <anemet@caviumnetworks.com>
3dc9eaa6
AN
11858
11859 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
11860 call initialize_inline_failed.
11861 (initialize_inline_failed): Move it from here ...
11862 * cgraph.c (initialize_inline_failed): ... to here.
11863 (cgraph_create_edge): Call initialize_inline_failed rather than
11864 setting inline_failed directly.
11865
7fb0ee07
BE
118662009-03-29 Ben Elliston <bje@au.ibm.com>
11867
11868 PR target/32542
11869 * sysv4.opt (msdata): Improve comment.
11870 * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
11871 * sysv4.h (SVR4_ASM_SPEC): Likewise.
11872
0be77bf2
BE
118732009-03-29 Ben Elliston <bje@au.ibm.com>
11874
11875 PR target/30451
11876 * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
11877 load and store attributes.
11878
593812b6
BE
118792009-03-29 Ben Elliston <bje@au.ibm.com>
11880
11881 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
11882 (ix86_init_builtins): Add built-in function __builtin_huge_valq.
11883 (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
11884 * doc/extend.texi (X86 Built-in Functions): Add index entries for
11885 __builtin_infq and __builtin_huge_valq.
11886
8272d11d
AS
118872009-03-28 Anatoly Sokolov <aesok@post.ru>
11888
11889 * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
11890 atmega8m1 devices.
11891 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
11892 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
11893
74fe548b
XDL
118942009-03-28 Xinliang David Li <davidxl@google.com>
11895
2ba9daa7 11896 * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
74fe548b
XDL
11897 (do_dbg_cnt): New function.
11898
33977f81
JH
118992009-03-28 Jan Hubicka <jh@suse.cz>
11900
11901 Merge from pretty-ipa:
11902
11903 2009-03-27 Jan Hubicka <jh@suse.cz>
ba20e309 11904
33977f81
JH
11905 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
11906 * tree-pass.h (function_called_by_processed_nodes_p): Declare.
11907 * passes.c (function_called_by_processed_nodes_p): New.
11908 * ipa-pure-const.c (check_call): Fix handling of operands.
11909 (analyze_function): Dump debug output for skipped bodies.
11910 (local_pure_const): Use function_called_by_processed_nodes_p.
11911 * dwarf2out.c (reference_to_unused): Use output.
11912 * passes.c (do_per_function_toporder): Likewise.
11913
11914 2008-11-12 Jan Hubicka <jh@suse.cz>
11915
11916 * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
11917 * ipa-pure-const.c (funct_state_d): Add can throw field; make
11918 state_set_in_source enum
11919 (check_decl): Ignore memory tags; do not set fake looping flags;
11920 dump diagnostics.
11921 (check_operand, check_tree, check_rhs_var, check_lhs_var,
11922 get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
11923 (check_call, analyze_function): Rewrite.
11924 (check_stmt): New.
11925 (add_new_function): Update call of analyze_function.
11926 (generate_summary): Add call of analyze_function.
11927 (propagate): Propagate can_throw; handle state_set_in_source correctly.
11928 (local_pure_const): New function.
11929 (pass_local_pure_const): New pass.
11930 * ipa-inline.c (inline_transform): Set after_inlining.
11931 * tree-eh.c (stmt_can_throw_external): New.
11932 * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
11933 work with aliasing built.
11934 * tree-flow.h (stmt_can_throw_external): New.
11935 * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
11936 and local pure/const pass in early and late optimization queue.
ba20e309 11937
617f3897
MJ
119382009-03-28 Martin Jambor <mjambor@suse.cz>
11939
11940 * fold-const.c (get_pointer_modulus_and_residue): New parameter
11941 allow_func_align.
11942 (fold_binary): Allow function decl aligment consideration is the
11943 second argument is integer constant one.
11944 * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
11945 (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
11946 with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
11947
fe89fbc5
JH
119482009-03-28 Jan Hubicka <jh@suse.cz>
11949
11950 * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
11951 * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
11952 * function.h (rtl_data): Add nothrow flag.
11953 * except.c (set_nothrow_function_flags): Use crtl->nothrow;
11954 set DECL_NOTHROW for AVAILABLE functions.
11955
574872ff
JJ
119562009-03-28 Jakub Jelinek <jakub@redhat.com>
11957
b3bf8855
JJ
11958 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
11959 following vector keyword has expansion starting with pixel or bool
11960 keyword, expand vector to __vector and pixel or bool to __pixel or
11961 __bool.
11962
574872ff
JJ
11963 PR c++/39554
11964 * opts.c (warning_disallowed_functions, warn_disallowed_functions,
11965 warn_if_disallowed_function_p): Removed.
11966 (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
11967 * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
11968 warning_if_disallowed_function_p.
11969 * flags.h (warn_if_disallowed_function_p,
11970 warn_disallowed_functions): Removed.
11971 * common.opt (Wdisallowed-function-list=): Removed.
11972 * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
11973
b005da11
RG
119742009-03-28 Richard Guenther <rguenther@suse.de>
11975
11976 PR tree-optimization/38723
11977 * tree-ssa-pre.c (compute_avail): Add all default definitions to
11978 the entry block.
11979
1de812a6
JH
119802009-03-28 Jan Hubicka <jh@suse.cz>
11981
11982 * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
11983 test introduced by my previous patch.
11984
fbb789d4
RG
119852009-03-28 Richard Guenther <rguenther@suse.de>
11986
11987 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
11988 the PHIs value undefined.
11989
6f1873a1
JH
119902009-03-28 Jan Hubicka <jh@suse.cz>
11991
11992 * tree-pass.h (pass_fixup_cfg): New pass.
11993 * ipa-inline.c (inline_transform): Set
11994 always_inline_functions_inlined/after_inlining.
11995 * tree-optimize.c (execute_fixup_cfg): Do not set them here.
11996 (pass_fixup_cfg): New pass.
11997 * passes.c (init_optimization_passes): Add fixup_cfg.
11998
17021bc8
RG
119992009-03-28 Richard Guenther <rguenther@suse.de>
12000
12001 PR tree-optimization/38458
12002 * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
12003 argument use the arguments copy-of value.
12004
e8114fba
RG
120052009-03-28 Richard Guenther <rguenther@suse.de>
12006
12007 PR tree-optimization/38180
12008 * tree-ssa-ccp.c (get_default_value): Simplify.
12009 (likely_value): Likewise.
12010 (surely_varying_stmt_p): Properly handle VOP case.
12011 (ccp_initialize): Likewise.
12012 (ccp_fold): Handle propagating through *&.
12013 (fold_const_aggregate_ref): Also handle decls.
12014
257eb6e3
JH
120152009-03-28 Jan Hubicka <jh@suse.cz>
12016
12017 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
12018 * cgraph.h (cgraph_node): Likewise.
12019 * cgraphunit.c (cgraph_process_new_functions): Set process flag.
12020 (cgraph_reset_node): Use process flag.
12021 (cgraph_mark_functions_to_output): Likewise.
12022 (cgraph_expand_function): Likewise.
12023 (cgraph_expand_all_functions): Likewise.
12024 (cgraph_output_in_order): Likewise.
12025 * dwarf2out.c (reference_to_unused): Likewise.
12026 * passes.c do_per_function_toporder): Likewise.
12027
61a05df1
JH
120282009-03-28 Jan Hubicka <jh@suse.cz>
12029
12030 Bring from lto-branch:
ba20e309 12031
61a05df1
JH
12032 2008-09-03 Doug Kwan <dougkwan@google.com>
12033
12034 * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
12035 enums instead of reason strings.
12036 * cgraph.c (cgraph_create_edge): Same.
12037 (cgraph_inline_failed_string): New function.
12038 * cgraph.h (cgraph_inline_failed_t): New enum type.
12039 (cgraph_inline_failed_string): New prototype.
12040 (struct cgraph_edge): Change type of INLINED_FAILED from constant
12041 char pointer to cgraph_inline_failed_t.
12042 (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
12043 (cgraph_default_inline_p): Ditto.
60839f5d 12044 * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
61a05df1
JH
12045 to cgraph_inline_failed_t pointer.
12046 * cif-code.def: New file.
12047 * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
12048 reason string.
12049 (cgraph_check_inline_limits): Change type of REASON to pointer to
12050 cgraph_inline_failed_t. Replace reason strings with enums.
12051 (cgraph_default_inline_p): Ditto.
12052 (cgraph_recursive_inlining_p): Ditto.
12053 (update_caller_keys): Change type of FAILED_REASON to
12054 cgraph_inline_failed_t.
12055 (cgraph_set_inline_failed): Change type of REASON to pointer to
12056 cgraph_inline_failed_t. Call cgraph_inline_failed_string to
12057 convert enums to strings for text output.
12058 (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
12059 to be of type cgraph_inline_failed_t. Replace reason strings with
12060 enums. Call cgraph_inline_failed_string to covert enums
12061 to strings for text output.
12062 (cgraph_decide_inlining): Replace reason strings with enums.
12063 (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
12064 to cgraph_inline_failed_t type. Call cgraph_inline_failed_string
12065 for text output.
12066 * tree-inline.c (expand_call_inline): Change type of REASON
12067 to cgraph_inline_failed_t. Replace reason strings with enums.
12068 Call cgraph_inline_failed_string for text output.
12069 * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
12070 (cgraph.o): Ditto.
12071
144e8aac
JH
120722009-03-28 Jan Hubicka <jh@suse.cz>
12073
12074 * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
12075 cgraph_clone_node): Remove master clone handling.
12076 (cgraph_is_master_clone, cgraph_master_clone): Remove.
12077 * cgraph.h (master_clone): Remove.
12078 (cgraph_is_master_clone, cgraph_master_clone): Remove.
12079 * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
12080 (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
12081
4a371c8d
JH
120822009-03-28 Jan Hubicka <jh@suse.cz>
12083
12084 * cgraph.c (cgraph_function_body_availability): Functions declared
12085 inline are always safe to assume that it is not going to be replaced.
12086
6cdb0ee3
RG
120872009-03-28 Richard Guenther <rguenther@suse.de>
12088
12089 PR tree-optimization/38513
12090 * tree-ssa-pre.c (eliminate): Remove redundant stores.
12091 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
12092 EXC_PTR_EXPR and FILTER_EXPR.
12093 (get_ref_from_reference_ops): Likewise.
12094
8ca1fd76
RG
120952009-03-28 Richard Guenther <rguenther@suse.de>
12096
12097 PR tree-optimization/38968
12098 * tree-vect-analyze.c (vect_compute_data_ref_alignment):
12099 Use FLOOR_MOD_EXPR to compute misalignment.
12100
a254e44d
RG
121012009-03-28 Richard Guenther <rguenther@suse.de>
12102
12103 PR tree-optimization/37795
12104 * tree.h (combine_comparisons): Declare.
12105 * fold-const.c (combine_comparisons): Export.
12106 * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
12107 comparisons.
12108 (ifcombine_iforif): Use combine_comparisons.
12109
a8ee227c
JH
121102009-03-28 Jan Hubicka <jh@suse.cz>
12111
12112 * tree-eh.c (inlinable_call_p): New function.
12113 (make_eh_edges): Use it.
12114 (verify_eh_edges): Use it.
12115 (stmt_can_throw_external, stmt_can_throw_internal): Use it.
12116 * except.c (reachable_next_level): Add inlinable_function argument
12117 (sjlj_find_directly_reachable_regions): Update.
12118 (add_reachable_handler): Do not set saw_any_handlers.
12119 (reachable_next_level): Handle MUST_NOT_THROW more curefully.
12120 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
12121 Add new inlinable call parameter.
12122 (can_throw_internal, can_throw_external): Update.
12123 * except.h (can_throw_internal_1, can_throw_external_1,
12124 foreach_reachable_handler): Update declaration.
12125
52c0e446
JM
121262009-03-28 Joseph Myers <joseph@codesourcery.com>
12127
12128 * config/arm/t-arm-coff, config/h8300/coff.h,
12129 config/i386/i386-aout.h, config/i386/i386-coff.h,
12130 config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
12131 config/pdp11/2bsd.h, config/rs6000/aix41.h,
12132 config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
12133 fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
12134 scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
12135 sys-types.h: Remove.
12136 * Makefile.in: Remove protoize and fixproto support and references
12137 in comments.
12138 (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
12139 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
12140 Remove.
12141 (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
12142 (MOSTLYCLEANFILES): Remove protoize$(exeext) and
12143 unprotoize$(exeext).
12144 (rest.encap): Don't depend on $(STMP_FIXPROTO)
12145 (.PHONY): Don't depend on proto.
12146 (libgcc-support): Don't depend on $(STMP_FIXPROTO).
12147 (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
12148 protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
12149 deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
12150 build/gen-protos.o, build/scan.o, xsys-protos.h,
12151 build/fix-header$(build_exeext), build/fix-header.o,
12152 build/scan-decls.o, fixhdr.ready, stmp-fixproto,
12153 stmp-install-fixproto): Remove.
12154 (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
12155 SYSCALLS.c or fixproto files.
12156 (install-common): Don't install protoize.
12157 (install-headers-tar, install-headers-cpio, install-headers-cp):
12158 Don't depend on $(STMP_FIXPROTO).
12159 (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't
12160 install fixproto files or write out fixproto settings.
12161 (uninstall): Don't uninstall protoize.
12162 * config.gcc (use_fixproto): Remove.
12163 (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
12164 i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
12165 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
12166 * config/m32r/t-linux (STMP_FIXPROTO): Remove.
12167 * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
12168 * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
12169 * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
12170 * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
12171 * config/t-svr4 (FIXPROTO_DEFINES): Remove.
12172 * config/t-vxworks (STMP_FIXPROTO): Remove.
12173 * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
12174 STMP_FIXPROTO): Remove.
12175 * config.in, configure: Regenerate.
12176 * crtstuff.c (gid_t, uid_t): Don't undefine.
12177 * doc/install.texi: Change m68k-coff to m68k-elf in example.
12178 (arm-*-coff, arm-*-aout: Remove target entries.
12179 (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
12180 Remove mention of AIX 4.1.
12181 (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
12182 * doc/invoke.texi (Running Protoize): Remove.
12183 * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
12184 (Protoize Caveats): Remove.
12185 * tsystem.h: Update comments on headers assumed to exist.
12186
20a07f44
VM
121872009-03-27 Vladimir Makarov <vmakarov@redhat.com>
12188
12189 * genautomata.c: Add a new year to the copyright. Add a new
12190 reference.
12191 (struct insn_reserv_decl): Add comments for member bypass_list.
12192 (find_bypass): Remove.
12193 (insert_bypass): New.
12194 (process_decls): Use insert_bypass.
12195 (output_internal_insn_latency_func): Output all bypasses with the
12196 same input insn in one switch case.
12197
12198 * rtl.def (define_bypass): Describe bypass choice.
12199 * doc/md.texi (define_bypass): Ditto.
12200
3a0d06c1
RB
122012009-03-27 Richard Guenther <rguenther@suse.de>
12202
12203 * gimplify.c (mark_addressable): Export.
12204 * tree-flow.h (mark_addressable): Declare.
12205 * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
12206 * tree-ssa.c (verify_phi_args): Verify that address taken
12207 variables have TREE_ADDRESSABLE set.
12208
122092009-03-27 Richard Guenther <rguenther@suse.de>
12210
12211 * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
12212 (build_fold_addr_expr_with_type): ... this. Remove in_fold handling.
12213 Do not mark decls TREE_ADDRESSABLE.
12214 (build_fold_addr_expr): Adjust.
12215 (fold_addr_expr): Remove.
12216 (fold_unary): Use build_fold_addr_expr.
12217 (fold_comparison): Likewise.
12218 (split_address_to_core_and_offset): Likewise.
12219 * coverage.c (tree_coverage_counter_addr): Mark the array decl
12220 TREE_ADDRESSABLE.
12221 * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
12222 (gimplify_modify_expr_to_memcpy): Mark source and destination
12223 addressable.
12224 * omp-low.c (create_omp_child_function): Mark the object decl
12225 TREE_ADDRESSABLE.
12226 (lower_rec_input_clauses): Mark the var we take the address of
12227 TREE_ADDRESSABLE.
12228 (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
12229
2ac26e15
L
122302009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12231
12232 PR middle-end/39315
12233 * cfgexpand.c (expand_one_stack_var_at): Change alignment
12234 limit to MAX_SUPPORTED_STACK_ALIGNMENT.
12235
472c7fbd
RG
122362009-03-27 Richard Guenther <rguenther@suse.de>
12237
12238 PR tree-optimization/39120
12239 * tree-ssa-structalias.c (handle_rhs_call): Fill out return
12240 constraints.
12241 (handle_lhs_call): Process return constraints. Add escape
12242 constraints if necessary.
12243 (handle_const_call): Fill out return constraints. Make nested
12244 case more precise. Avoid consttmp if possible.
12245 (handle_pure_call): Fill out return constraints. Avoid
12246 callused if possible.
12247 (find_func_aliases): Simplify call handling.
12248
122492009-03-27 Richard Guenther <rguenther@suse.de>
12250
12251 PR tree-optimization/39120
12252 * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
12253 as a representative.
12254 (solve_graph): Do propagate CALLUSED.
12255 (handle_pure_call): Use a scalar constraint from CALLUSED for
12256 the return value.
12257 (find_what_p_points_to): CALLUSED shall not appear in poins-to
12258 solutions.
12259
d9223014
L
122602009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12261
12262 PR c/39323
12263 * c-common.c (handle_aligned_attribute): Properly check alignment
12264 overflow. Use (1U << i) instead of (1 << i).
12265
ba20e309 12266 * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
d9223014
L
12267
12268 * expr.h (get_mem_align_offset): Updated.
12269
12270 * tree.h (tree_decl_common): Change align to "unsigned int" and
12271 move it before pointer_alias_set.
12272
689b689c
L
122732009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12274 Jakub Jelinek <jakub@redhat.com>
12275
12276 PR target/38034
12277 * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
12278 gr_register_operand with gr_reg_or_0_operand.
12279 (cmpxchg_rel_di): Likewise.
12280 (sync_lock_test_and_set<mode>): Likewise.
12281
c619e982
L
122822009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12283
12284 * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
12285 (true_regnum): Likewise.
12286
12287 * rtlanal.c (subreg_info): Moved to ...
12288 * rtl.h (subreg_info): Here. New.
12289 (subreg_get_info): New.
12290
12291 * rtlanal.c (subreg_get_info): Make it extern.
12292
51212b32
L
122932009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12294
12295 PR target/39472
12296 * config/i386/i386.c (ix86_abi): New.
12297 (override_options): Handle -mabi=.
ba20e309 12298 (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
51212b32
L
12299 (ix86_call_abi_override): Likewise.
12300 (init_cumulative_args): Likewise.
12301 (function_arg_advance): Likewise.
12302 (function_arg_64): Likewise.
12303 (function_arg): Likewise.
12304 (ix86_pass_by_reference): Likewise.
12305 (ix86_function_value_regno_p): Likewise.
12306 (ix86_build_builtin_va_list_abi): Likewise.
12307 (setup_incoming_varargs_64): Likewise.
12308 (is_va_list_char_pointer): Likewise.
12309 (ix86_init_machine_status): Likewise.
ba20e309 12310 (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
51212b32
L
12311 (ix86_function_type_abi): Return enum calling_abi. Rewrite
12312 for 64bit. Replace DEFAULT_ABI with ix86_abi.
ba20e309 12313 (ix86_function_abi): Make it static and return enum calling_abi.
51212b32
L
12314 (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI
12315 with ix86_abi.
12316 (ix86_fn_abi_va_list): Updated.
12317
12318 * config/i386/i386.h (ix86_abi): New.
12319 (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
12320 (CONDITIONAL_REGISTER_USAGE): Likewise.
12321 (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
12322 (machine_function): Likewise.
12323
12324 * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
12325 with ix86_abi.
12326 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
12327 (STACK_BOUNDARY): Likewise.
12328 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
12329
12330 * config/i386/i386.opt (mabi=): New.
12331
12332 * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
12333 return enum calling_abi.
12334 (ix86_function_type_abi): Likewise.
12335 (ix86_function_abi): Removed.
12336
12337 * doc/invoke.texi: Document -mabi= option for x86.
12338
7338ea63
KG
123392009-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12340
12341 * builtins.c (real_dconstp): Delete.
12342 (fold_builtin_logarithm): Remove inaccurate log(e) special case.
12343
68599f33
DS
123442009-03-27 Dodji Seketeli <dodji@redhat.com>
12345 Jakub Jelinek <jakub@redhat.com>
12346
12347 PR debug/37959
12348 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
12349 (gen_subprogram_die): When a function is explicit, generate the
12350 DW_AT_explicit attribute.
12351 * langhooks.h (struct lang_hooks_for_decls): Add
12352 function_decl_explicit_p langhook.
12353 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
12354 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
12355
9f5e9983
JJ
123562009-03-27 Jakub Jelinek <jakub@redhat.com>
12357
64d7685c
JJ
12358 * builtins.c (fold_builtin_memory_op): Optimize memmove
12359 into memcpy if we can prove source and destination don't overlap.
12360
9f5e9983
JJ
12361 * tree-inline.c: Include gt-tree-inline.h.
12362 (clone_fn_id_num): New variable.
12363 (clone_function_name): New function.
12364 (tree_function_versioning): Use it.
12365 * Makefile.in (GTFILES): Add tree-inline.c.
12366
e54d52a8
MM
123672009-03-27 Mark Mitchell <mark@codesourcery.com>
12368
12369 * BASE-VER: Change to 4.5.0.
12370
e9d51dc6
XDL
123712009-03-27 Xinliang David Li <davidxl@google.com>
12372
12373 PR tree-optimization/39557
12374 * tree-ssa.c (warn_uninitialized_vars): free postdom info.
12375
4577cea1
XDL
123762009-03-27 Xinliang David Li <davidxl@google.com>
12377
12378 PR tree-optimization/39548
2ba9daa7 12379 * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
4577cea1
XDL
12380 candidate check.
12381
0f7464f4
L
123822009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12383
12384 * c-common.c (pointer_int_sum): Use %wd on return from
12385 tree_low_cst.
12386
a8847a7f
L
123872009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12388
12389 * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
12390 on return from tree_low_cst.
12391
b0957daf
AP
123922009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com>
12393
12394 PR c++/36799
ba20e309
UB
12395 * ginclude/stdarg.h (va_copy): Define also for
12396 __GXX_EXPERIMENTAL_CXX0X__.
b0957daf 12397
a5f805df
MLI
123982009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
12399
12400 PR c++/35652
12401 * builtins.h (c_strlen): Do not warn here.
12402 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
12403 * c-common.c (pointer_int_sum): Take an explicit location.
12404 Warn about offsets out of bounds.
12405 * c-common.h (pointer_int_sum): Adjust declaration.
12406
6f401211
RW
124072009-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12408
a5f805df
MLI
12409 * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
12410 markup glitch.
6f401211 12411
5a59b39e
JJ
124122009-03-26 Jakub Jelinek <jakub@redhat.com>
12413
12414 PR c++/39554
12415 * opts.c (warn_if_disallowed_function_p): Don't assume
12416 get_callee_fndecl must return non-NULL.
12417
d5f89b53
VM
124182009-03-26 Vladimir Makarov <vmakarov@redhat.com>
12419
12420 PR rtl-optimization/39522
12421 * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
12422 when reg_reloaded_valid is set.
12423
61238a79
UW
124242009-03-26 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12425
12426 * config/spu/divv2df3.c: New file.
12427 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
12428 (DPBIT_FUNCS): Filter out _div_df.
12429
03f8829b
BS
124302009-03-26 Bernd Schmidt <bernd.schmidt@analog.com>
12431
12432 * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
12433 a jump insn, count that jump in the distance to the loop start.
12434
9fdcdc74
KK
124352009-03-25 Kaz Kojima <kkojima@gcc.gnu.org>
12436
12437 PR target/39523
12438 * config/sh/sh.c (calc_live_regs): Fix condition for global
12439 registers except PIC_OFFSET_TABLE_REGNUM.
12440
46994828
KT
124412009-03-25 Kai Tietz <kai.tietz@onevision.com>
12442
12443 PR/39518
12444 * doc/invoke.texi (-mconsole): New.
12445 (-mcygwin): New.
12446 (-mno-cygwin): New.
12447 (-mdll): New.
12448 (-mnop-fun-dllimport): New.
12449 (-mthread): New.
12450 (-mwin32): New.
12451 (-mwindows): New.
12452 (sub section "i386 and x86-64 Windows Options"): New.
12453
60839f5d 124542009-03-25 Ralf Corsépius <ralf.corsepius@rtems.org>
370017b4
RC
12455
12456 * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
12457 * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
12458
ae560440
RG
124592009-03-25 Richard Guenther <rguenther@suse.de>
12460
12461 PR middle-end/39497
12462 * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
12463 of -Wno-error.
12464
cd510f15
AM
124652009-03-25 Andrey Belevantsev <abel@ispras.ru>
12466
12467 * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
12468 neither of haifa/selective schedulers are working.
12469
44ab0f0e
RW
124702009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12471
12472 * doc/invoke.texi (Debugging Options): Fix description of
12473 -fno-merge-debug-strings.
12474
ad9646c7
HPN
124752009-03-24 Hans-Peter Nilsson <hp@axis.com>
12476
e6142656
HPN
12477 * config/cris/libgcc.ver: New version-script.
12478 * config/cris/t-linux (SHLIB_MAPFILES): Use it.
12479
ad9646c7
HPN
12480 * configure.ac <GAS features, nop mnemonic>: Add pattern
12481 crisv32-*-* for "nop".
ba20e309 12482 <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
ad9646c7
HPN
12483 * configure: Regenerate.
12484
09ac4473
IR
124852009-03-24 Ira Rosen <irar@il.ibm.com>
12486
12487 PR tree-optimization/39529
12488 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
12489 mark_sym_for_renaming for the tag copied to the new vector
12490 pointer.
12491
d94a427e
AL
124922009-03-24 Arthur Loiret <aloiret@debian.org>
12493
ba20e309 12494 * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
d94a427e
AL
12495 * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
12496 EXTRA_SPEC_FUNCTIONS.
12497 (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
12498 * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
12499 * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
12500 -march and -mtune options.
12501
60839f5d 125022009-03-24 Ralf Corsépius <ralf.corsepius@rtems.org>
722d07aa
RC
12503
12504 * config/m68k/t-rtems: Add m5329 multilib.
12505
603f5959
DS
125062009-03-24 Dodji Seketeli <dodji@redhat.com>
12507 Jakub Jelinek <jakub@redhat.com>
12508
12509 PR debug/39524
12510 * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
12511 nodes.
12512
c5cdb03f
JJ
125132009-03-23 Jakub Jelinek <jakub@redhat.com>
12514
12515 PR c/39495
12516 * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
12517 instead of c_parser_expression_conv, if original_code isn't one of the
12518 4 allowed comparison codes, fail.
12519
3691626c
RG
125202009-03-23 Richard Guenther <rguenther@suse.de>
12521
12522 * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
12523 * tree.h (struct tree_type): Likewise.
12524 * reload.h (struct insn_chain): Likewise.
12525 * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
12526 * function.h (struct function): Likewise.
12527 * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
12528
88ccb72a
JJ
125292009-03-23 Jakub Jelinek <jakub@redhat.com>
12530
12531 PR tree-optimization/39516
12532 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
12533
60839f5d 125342009-03-23 Bingfeng Mei <bmei@broadcom.com>
a583a67e 12535
2ba9daa7 12536 * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
a583a67e
BM
12537 should be set true if BITS_PER_WORD of target is bigger than 32
12538
f82162f8
HPN
125392009-03-22 Hans-Peter Nilsson <hp@axis.com>
12540
12541 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
12542 Translate -B-options to -rpath-link. Correct existing
12543 rpath-link and conditionalize on !nostdlib.
12544
048fd785
RW
125452009-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12546
12547 * doc/extend.texi (Function Attributes, Variable Attributes):
12548 Fix typos.
12549 * doc/invoke.texi (Debugging Options, Optimize Options)
12550 (i386 and x86-64 Options, MCore Options): Likewise.
12551
6e75c1a9
JJ
125522009-03-20 Jakub Jelinek <jakub@redhat.com>
12553
12554 PR debug/37890
12555 * dwarf2out.c (gen_namespace_die): Add context_die argument and use
12556 it for block local namespace aliases.
12557 (gen_decl_die): Pass context_die to gen_namespace_die.
12558
ea1199ee
JJ
125592009-03-19 Jakub Jelinek <jakub@redhat.com>
12560
12561 PR c/39495
12562 * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
12563 minimum or maximum value.
12564
58929c10
AO
125652009-03-19 Alexandre Oliva <aoliva@redhat.com>
12566
12567 * reginfo.c (globalize_reg): Recompute derived reg sets.
12568
60839f5d 125692009-03-19 Ozkan Sezer <sezeroz@gmail.com>
234952b3
OS
12570
12571 PR target/39063
12572 * libgcc2.c (mprotect): Do not use signed arguments for
12573 VirtualProtect, use DWORD arguments. Also fix the 'may
12574 be used uninitialized' warning for the np variable.
12575
f57c2f04
JJ
125762009-03-19 Jakub Jelinek <jakub@redhat.com>
12577
12578 PR target/39496
12579 * config/i386/i386.c (ix86_function_regparm): Don't optimize local
12580 functions using regparm calling conventions when not optimizing.
12581 (ix86_function_sseregparm): Similarly for sseregparm calling
12582 conventions.
12583
9e517d61
LF
125842009-03-19 Li Feng <nemokingdom@gmail.com>
12585
12586 PR middle-end/39500
12587 * tree-data-ref.c (analyze_subscript_affine_affine): There is no
12588 dependence if the first conflict is after niter iterations.
12589
8ef20026
HPN
125902009-03-19 Hans-Peter Nilsson <hp@axis.com>
12591
12592 PR middle-end/38609
12593 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
12594 functions with dynamic stack-pointer adjustments.
12595
64e4a1a6
BE
125962009-03-19 Ben Elliston <bje@au.ibm.com>
12597
12598 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
12599 option; change to -msdata=data.
12600
9a0f3e86
RW
126012009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12602
12603 * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
12604 and -fopenmp.
12605
09bc5979
EB
126062009-03-18 Eric Botcazou <ebotcazou@adacore.com>
12607
12608 PR target/35180
12609 * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
12610
332459cd
SL
126112009-03-18 Sandra Loosemore <sandra@codesourcery.com>
12612
12613 * doc/invoke.texi (Code Gen Options): Expand discussion of
12614 -fno-common.
12615
8f5929e1
JJ
126162009-03-18 Jakub Jelinek <jakub@redhat.com>
12617
12618 * dse.c (struct group_info): Reorder fields for 64-bit hosts.
12619 * matrix-reorg.c (struct matrix_info): Likewise.
12620 * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
12621 * rtl.h (struct mem_attrs): Likewise.
12622 * df.h (struct df): Likewise.
12623 * tree-data-ref.h (struct data_dependence_relation): Likewise.
12624 * ira-int.h (struct ira_allocno): Likewise.
12625 * df-scan.c (struct df_collection_rec): Likewise.
12626 * ira.c (struct equivalence): Likewise.
12627 * function.c (struct temp_slot): Likewise.
12628 * cfgloop.h (struct loop): Likewise.
12629
d130d647
JJ
12630 PR debug/39485
12631 * function.c (use_register_for_decl): When not optimizing, disregard
12632 register keyword for variables with types containing methods.
12633
9968d233
SP
126342009-03-18 Sebastian Pop <sebastian.pop@amd.com>
12635
12636 PR middle-end/39447
12637 * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
12638 (is_simple_operand): Call contains_component_ref_p before calling data
12639 reference analysis that would fail on COMPONENT_REFs.
12640
12641 * tree-vrp.c (search_for_addr_array): Fix formatting.
12642
69484bfd
RG
126432009-03-18 Richard Guenther <rguenther@suse.de>
12644
12645 * tree-vect-transform.c (vect_loop_versioning): Fold the
12646 generated comparisons.
12647 * tree-vectorizer.c (set_prologue_iterations): Likewise.
12648 (slpeel_tree_peel_loop_to_edge): Likewise.
12649
66811228
RW
126502009-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12651
0631b69f
RW
12652 PR middle-end/37805
12653 * opts.c (print_specific_help): In addition to `undocumented',
12654 accept `separate' and `joined' flags if passed alone. Describe
12655 output by the first matched one of those.
12656 (common_handle_option): Skip over empty strings.
12657 * gcc.c (display_help): Fix help string for `--help='.
12658 * doc/invoke.texi (Option Summary, Overall Options): With
12659 `--help=', classes and qualifiers can both be repeated, but
12660 only the latter can be negated. One should not pass only
12661 negated qualifiers. Fix markup and examples.
12662
66811228
RW
12663 Revert
12664 2008-10-14 Jakub Jelinek <jakub@redhat.com>
12665 PR middle-end/37805
12666 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
12667 and -fhelp=separate.
12668
3c072c6b
JY
126692009-03-17 Jing Yu <jingyu@google.com>
12670
12671 PR middle-end/39378
80c65208
JY
12672 * function.h (struct rtl_data): Move is_thunk from here...
12673 (struct function): ...to here.
12674 * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
3c072c6b
JY
12675 * varasm.c (assemble_start_function): Change is_thunk from crtl to
12676 cfun.
80c65208
JY
12677 * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
12678 cfun.
12679 (alpha_does_function_need_gp, alpha_start_function): Likewise.
12680 (alpha_output_function_end_prologue): Likewise.
12681 (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
12682 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
12683 (rs6000_output_function_epilogue): Likewise.
12684 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
3c072c6b 12685
9ade279b
UB
126862009-03-17 Uros Bizjak <ubizjak@gmail.com>
12687
12688 PR target/39482
12689 * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
12690 from different units in a single alternative.
12691 (*truncdfsf_i387): Ditto.
12692 (*truncxfsf2_mixed): Ditto.
12693 (*truncxfdf2_mixed): Ditto.
12694
16e60c17
JJ
126952009-03-17 Jakub Jelinek <jakub@redhat.com>
12696
98381eb4
JJ
12697 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
12698 non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
12699
df5deb18
JJ
12700 PR debug/39474
12701 * tree-ssa-live.c (remove_unused_locals): Don't remove local
12702 unused non-artificial variables when not optimizing.
12703
a3f596ba
JJ
12704 PR debug/39471
12705 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
12706 DW_TAG_imported_module even if decl is IMPORTED_DECL with
12707 NAMESPACE_DECL in its DECL_INITIAL.
12708
6b2b8871
JJ
12709 PR middle-end/39443
12710 * optabs.c (set_user_assembler_libfunc): New function.
12711 * expr.h (set_user_assembler_libfunc): New prototype.
12712 * c-common.c: Include libfuncs.h.
12713 (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
12714 for memcmp, memset, memcpy, memmove and abort.
12715 * Makefile.in (c-common.o): Depend on libfuncs.h.
12716
16e60c17
JJ
12717 PR debug/39412
12718 * dwarf2out.c (gen_inlined_enumeration_type_die,
12719 gen_inlined_structure_type_die, gen_inlined_union_type_die,
12720 gen_tagged_type_instantiation_die): Removed.
12721 (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
12722 do nothing.
12723
4d936aca
JJ
127242009-03-17 Janis Johnson <janis187@us.ibm.com>
12725
12726 PR testsuite/38526
12727 * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
12728 its use.
12729 (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
12730 (check-parallel-%): Ditto.
12731 (check-consistency): Ditto.
12732
4e9b2e50
KT
127332009-03-17 Kai Tietz <kai.tietz@onevision.com>
12734
12735 * ipa-struct-reorg.c (create_general_new_stmt): Initialize
12736 local variable rhs by NULL_TREE.
12737
21440b2d
L
127382009-03-17 H.J. Lu <hongjiu.lu@intel.com>
12739
12740 PR target/39477
9ade279b 12741 * doc/extend.texi: Correct register behavior for regparm on Intel 386.
21440b2d 12742
d8905c6a
L
127432009-03-17 H.J. Lu <hongjiu.lu@intel.com>
12744
12745 PR target/39476
9ade279b 12746 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
d8905c6a
L
12747
127482009-03-17 H.J. Lu <hongjiu.lu@intel.com>
435a61d3
L
12749
12750 PR target/39473
12751 * config/i386/i386.c (ix86_expand_call): Check extra clobbers
12752 for ms->sysv ABI calls only in 64bit mode.
12753
12754 * config/i386/i386.md (untyped_call): Support 32bit.
12755
cdcabece
L
127562009-03-16 H.J. Lu <hongjiu.lu@intel.com>
12757
12758 * doc/extend.texi: Replace x86_65 with x86_64.
12759
97b4ba9f
JJ
127602009-03-16 Jakub Jelinek <jakub@redhat.com>
12761
12762 PR tree-optimization/39455
12763 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
12764 mismatches for POINTER_TYPE_P (type).
12765 (number_of_iterations_le): Likewise.
12766
60839f5d 127672009-03-16 Hariharan Sandanagobalane <hariharan@picochip.com>
83c191e1
HS
12768
12769 * config/picochip/picochip.c: Removed profiling support.
12770 * config/picochip/picochip.md: Removed profiling instruction.
12771 * config/picochip/picochip.h: Removed profiling builtin.
12772
f38095f3
JM
127732009-03-16 Joseph Myers <joseph@codesourcery.com>
12774
12775 * doc/install.texi (--with-host-libstdcxx): Document.
12776
2cb4817b
AS
127772009-03-14 Anatoly Sokolov <aesok@post.ru>
12778
12779 PR target/34299
12780 * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
12781 generate a warning if the function name does not begin with
12782 "__vector" and the function has either the 'signal' or 'interrupt'
12783 attribute, from here to ...
12784 (avr_declare_function_name): ...here. New function.
12785 * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
12786 * config/avr/avr-protos.h (avr_declare_function_name): Declare.
12787
39b2ac74
JJ
127882009-03-14 Jakub Jelinek <jakub@redhat.com>
12789
12790 PR bootstrap/39454
12791 * cse.c (fold_rtx): Don't modify original const_arg1 when
12792 canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
12793 separate variable instead.
12794 * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
12795 from out of range shift counts.
12796 (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
12797
ad41bd84 127982009-03-13 Catherine Moore <clm@codesourcery.com>
f7a82dee 12799
60839f5d 12800 * config/i386/x-mingw32 (host-mingw32.o): Replace
f7a82dee
CM
12801 diagnostic.h with $(DIAGNOSTIC_H).
12802
ad41bd84 128032009-03-12 Jakub Jelinek <jakub@redhat.com>
03a18198
JJ
12804
12805 PR target/39431
12806 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
12807 predicate.
12808 * config/i386/sync.md (sync_compare_and_swap<mode>,
12809 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
12810 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
12811 into a register.
12812 (sync_double_compare_and_swapdi_pic,
12813 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
12814 cmpxchg8b_pic_memory_operand instead of just memory_operand.
12815
122c59c7
L
128162009-03-12 H.J. Lu <hongjiu.lu@intel.com>
12817
12818 PR target/39445
9ade279b 12819 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
122c59c7 12820
cec8874f
L
128212009-03-12 H.J. Lu <hongjiu.lu@intel.com>
12822
12823 PR target/39327
12824 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
12825 (avx_addsubv4df3): Likewise.
12826 (*avx_addsubv4sf3): Likewise.
12827 (sse3_addsubv4sf3): Likewise.
12828
bbb52802
L
128292009-03-12 H.J. Lu <hongjiu.lu@intel.com>
12830
12831 PR target/38824
9ade279b 12832 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
bbb52802 12833
a812fb07
VM
128342009-03-12 Vladimir Makarov <vmakarov@redhat.com>
12835
12836 PR debug/39432
12837 * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
12838 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
12839 registers for allocnos created from user-defined variables.
12840
4caab5ba
UW
128412009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12842
12843 PR target/39181
12844 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
12845 of non-integer mode as well.
12846
498e51ca
AN
128472009-03-11 Adam Nemet <anemet@caviumnetworks.com>
12848
12849 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
12850 for functions for which the parameter types are unknown.
12851
9bfaf89d
JJ
128522009-03-11 Jakub Jelinek <jakub@redhat.com>
12853
12854 PR target/39137
9ade279b 12855 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
9bfaf89d
JJ
12856 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
12857 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
12858 * config/i386/i386.c (ix86_local_alignment): For
12859 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
12860 long long variables on the stack to avoid dynamic realignment.
12861 Allow the first argument to be a decl rather than type.
12862 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
12863
18a3bdcb
NC
128642009-03-11 Nick Clifton <nickc@redhat.com>
12865
12866 PR target/5362
40190a76
NC
12867 * config/mcore/mcore.opt: Remove deprecated m4align and m8align
12868 options.
12869 Add description to mno-lsim option.
12870 * config/mcore/mcore.h: Remove comment about deprecated m4align
12871 option.
12872 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
12873 * doc/invoke.texi: Add description of mno-lsim and
12874 mstack-increment options.
12875
18a3bdcb
NC
12876 * config/fr30/fr30.opt: Document the -mno-lsim option.
12877 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
12878 and -mno-lsim options.
12879
dc215785
UW
128802009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12881
12882 * fold-const.c (fold_comparison): Only call fold_inf_compare
12883 if the mode supports infinities.
12884
7716876b
JM
128852009-03-11 Jason Merrill <jason@redhat.com>
12886
12887 PR debug/39086
12888 * tree-nrv.c (tree_nrv): Don't do this optimization if the front
12889 end already did. Notice GIMPLE_CALL modifications of the result.
12890 Don't copy debug information from an ignored decl or a decl from
12891 another function.
12892
ddef83d2
RG
128932009-03-10 Richard Guenther <rguenther@suse.de>
12894 Nathan Froyd <froydnj@codesourcery.com>
12895
12896 PR middle-end/37850
9ade279b 12897 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
ddef83d2
RG
12898 (__divMODE3): Likewise.
12899
9a9ba8d9
JJ
129002009-03-09 Jakub Jelinek <jakub@redhat.com>
12901
12902 PR tree-optimization/39394
12903 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
12904 DECL_SIZE_UNIT of variable length FIELD_DECLs.
12905
929b7fc3
AK
129062009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12907
12908 * recog.c (verfiy_changes): Disallow renaming of hard regs in
12909 inline asms for register asm ("") declarations.
12910
1803581d
EB
129112009-03-09 Eric Botcazou <ebotcazou@adacore.com>
12912
12913 * fold-const.c (fold_unary): Fix comment.
12914
8454d27e
JH
129152009-03-07 Jan Hubicka <jh@suse.cz>
12916
12917 PR target/39361
969a5433
JJ
12918 * tree-inline.c (setup_one_parameter): Do replacement of const
12919 argument by constant in SSA form.
8454d27e 12920
3a695389
UW
129212009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12922
12923 PR middle-end/38028
12924 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
12925 determine alignment passed to assign_stack_local.
12926 (assign_parms_unsplit_complex): Likewise.
12927 * except.c (sjlj_build_landing_pads): Likewise.
12928
9f0e7885
JJ
129292009-03-06 Jakub Jelinek <jakub@redhat.com>
12930
65401a0b
JJ
12931 PR middle-end/39360
12932 * tree-flow.h (add_referenced_var): Return bool instead of void.
12933 * tree-dfa.c (add_referenced_var): Return result of
12934 referenced_var_check_and_insert call.
12935 * tree-inline.c (expand_call_inline): Call add_referenced_var instead
12936 of referenced_var_check_and_insert.
12937
9f0e7885 12938 PR debug/39372
9ade279b 12939 * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
9f0e7885
JJ
12940 (gen_variable_die): Emit DW_AT_location on abstract static variable's
12941 DIE, don't emit it if abstract origin already has it.
12942 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
12943 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
12944
3b664bd1
JBG
129452009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
12946
ba20e309 12947 * genpreds.c (needs_variable): Fix parentheses at variable name
3b664bd1
JBG
12948 detection.
12949 (write_tm_constrs_h): Indent generated code.
12950
d8f8ca80
RR
129512009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12952
12953 * doc/extend.texi (Function Attributes): Add documentation
12954 for isr attributes.
12955
6c3d550c
JJ
129562009-03-06 Jakub Jelinek <jakub@redhat.com>
12957
12958 PR debug/39387
12959 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
12960 take locus from its DECL_SOURCE_LOCATION instead of input_location.
12961
f9e96751
BS
129622009-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
12963
12964 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
12965 the loop as bad.
12966
ee0ee7e2
JJ
129672009-03-05 Jakub Jelinek <jakub@redhat.com>
12968
12969 PR debug/39379
12970 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
12971 with blocks containing IMPORTED_DECLs in BLOCK_VARS.
12972
6c6094f1
UB
129732009-03-05 Uros Bizjak <ubizjak@gmail.com>
12974
12975 * config/i386/i386.md (R8_REG, R9_REG): New constants.
12976 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
12977 constants instead of magic numbers.
12978 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
12979 (QI_REG_P): Ditto.
12980 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
12981 (x86_64_ms_abi_int_parameter_registers): Ditto.
12982 (x86_64_int_return_registers): Ditto.
09f8a8d3 12983 (ix86_maybe_switch_abi): Ditto.
6c6094f1
UB
12984 (ix86_expand_call): Ditto for clobbered_registers array.
12985 (ix86_hard_regno_mode_ok): Ditto.
12986 (x86_extended_QIreg_mentioned_p): Ditto.
12987
b267bd41
R
129882009-03-05 J"orn Rennecke <joern.rennecke@arc.com>
12989
6c6094f1 12990 PR tree-optimization/39349
1f3ad3f0
R
12991 * cse.c (cse_insn): Fix loop to stop at VOIDmode.
12992
b267bd41
R
12993 * combine.c (gen_lowpart_for_combine): Use omode when generating
12994 clobber.
12995
1242bc9d
R
129962009-03-04 J"orn Rennecke <joern.rennecke@arc.com>
12997
6c6094f1 12998 PR rtl-optimization/39235
1242bc9d
R
12999 * loop-iv.c (get_simple_loop_desc): Use XCNEW.
13000
48f03606
ZD
130012009-03-04 Zdenek Dvorak <ook@ucw.cz>
13002
13003 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
13004
b505e785
RG
130052009-03-04 Richard Guenther <rguenther@suse.de>
13006
13007 PR tree-optimization/39362
13008 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
13009 that occur in abnormal PHIs should be varying.
13010
f017bf5e
ZD
130112009-03-04 Zdenek Dvorak <ook@ucw.cz>
13012
13013 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
13014 Extend comments.
13015 (simple_iv): Take loop as an argument instead of statement.
13016 * tree-scalar-evolution.h (simple_iv): Declaration changed.
13017 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
13018 to simple_iv.
13019 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
13020 Ditto.
13021 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
13022 * matrix-reorg.c (analyze_transpose): Ditto.
13023 * tree-data-ref.c (dr_analyze_innermost): Ditto.
13024 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
13025 * tree-predcom.c (ref_at_iteration): Ditto.
13026 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
13027
6a66f28e
RG
130282009-03-04 Richard Guenther <rguenther@suse.de>
13029
13030 PR tree-optimization/39358
13031 * tree-ssa-structalias.c (do_sd_constraint): Fix check for
13032 escaped_id and callused_id.
13033 (solve_graph): Likewise.
13034
57e454ee
RG
130352009-03-04 Richard Guenther <rguenther@suse.de>
13036
13037 PR tree-optimization/39339
13038 * tree-sra.c (try_instantiate_multiple_fields): Make it
13039 no longer ICE on the above.
13040
a6fe9ed4
JM
130412009-03-03 Joseph Myers <joseph@codesourcery.com>
13042
13043 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
13044 that fits within Pmode.
13045
dc672951
SE
130462009-03-03 Steve Ellcey <sje@cup.hp.com>
13047
13048 PR middle-end/10109
13049 * tm.texi (LIBCALL_VALUE): Update description.
13050
8b9d598f
SE
130512009-03-03 Steve Ellcey <sje@cup.hp.com>
13052
13053 PR middle-end/34443
13054 * doc/extend.texi (section): Update description.
13055
13e4e36e
L
130562009-03-03 H.J. Lu <hongjiu.lu@intel.com>
13057
13058 PR middle-end/39345
13059 * tree-inline.c (remapped_type): New.
13060 (can_be_nonlocal): Call remapped_type instead of remap_type.
13061
067dd3c9
JJ
130622009-03-03 Jakub Jelinek <jakub@redhat.com>
13063
13064 PR fortran/39354
13065 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
13066 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
13067
9bd9f738
RG
130682009-03-03 Richard Guenther <rguenther@suse.de>
13069
13070 PR middle-end/39272
13071 * tree.c (tree_nonartificial_location): New function.
13072 * tree.h (tree_nonartificial_location): Declare.
13073 * builtins.c (expand_builtin_memory_chk): Provide location
13074 of the call location for artificial function pieces.
13075 (maybe_emit_chk_warning): Likewise.
13076 (maybe_emit_sprintf_chk_warning): Likewise.
13077 (maybe_emit_free_warning): Likewise.
13078 * expr.c (expand_expr_real_1): Likewise.
13079
f07049c8
JJ
130802009-03-03 Jakub Jelinek <jakub@redhat.com>
13081
13082 PR tree-optimization/39343
13083 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
13084 COMPONENT_REF t has ARRAY_TYPE.
13085
7d4fba4a
SP
130862009-03-02 Sebastian Pop <sebastian.pop@amd.com>
13087
13088 PR middle-end/39335
13089 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
13090 when the type precision of the induction variable should be
13091 larger than the type precision of nit.
13092 (gen_parallel_loop): Update use of canonicalize_loop_ivs.
13093 * graphite.c (graphite_loop_normal_form): Same.
13094 * tree-flow.h (canonicalize_loop_ivs): Update declaration.
13095
78168632
UB
130962009-03-02 Uros Bizjak <ubizjak@gmail.com>
13097
13098 * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
13099 (*call_1_rex64_ms_sysv): Use named constants instead of magic
6c6094f1 13100 numbers to describe clobbered registers.
78168632 13101 (*call_value_0_rex64_ms_sysv): Ditto.
6c6094f1
UB
13102 * config/i386/mmx.md (mmx_emms): Ditto.
13103 (mmx_femms): Ditto.
78168632 13104
63553059
RS
131052009-03-02 Richard Sandiford <rdsandiford@googlemail.com>
13106
13107 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
13108 of ABI_64.
13109
500a1f85
UW
131102009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13111
13112 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
13113 (spu_section_type_flags): New function.
13114
962aae34
UB
131152009-03-02 Uros Bizjak <ubizjak@gmail.com>
13116
13117 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
13118 reg_class_contents of FLOAT_REGS into a temporary.
13119
6dfb529c 131202009-03-02 Richard Guenther <rguenther@suse.de>
962aae34 13121 Ira Rosen <irar@il.ibm.com>
6dfb529c
RG
13122
13123 PR tree-optimization/39318
13124 * tree-vect-transform.c (vectorizable_call): Transfer the EH region
13125 information to the vectorized statement.
13126
6b5629db
UB
131272009-03-01 Uros Bizjak <ubizjak@gmail.com>
13128
434426d2
UB
13129 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
13130 variable. Use defined names instead of magic constants for REX SSE
13131 registers.
6b5629db 13132
14e5b285
RG
131332009-03-01 Richard Guenther <rguenther@suse.de>
13134
13135 PR tree-optimization/39331
13136 * omp-low.c (lower_send_shared_vars): Do not receive new
13137 values for the reference of DECL_BY_REFERENCE parms or results.
13138
526d73ab
JH
131392009-03-01 Jan Hubicka <jh@suse.cz>
13140
13141 PR debug/39267
13142 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
13143 BLOCK_NONLOCALIZED_VAR): New macros.
13144 (tree_block): Add nonlocalized_vars.
f4ea99bd
EB
13145 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
13146 gen_decl_die): Add origin argument. Allow generation of die with
13147 origin at hand only.
526d73ab 13148 (gen_member_die, gen_type_die_with_usage, force_decl_die,
f4ea99bd
EB
13149 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
13150 of gen_*.
526d73ab
JH
13151 (gen_block_die): Fix checking for unused blocks.
13152 (process_scope_var): Break out from .... ; work with origins only.
13153 (decls_for_scope) ... here; process nonlocalized list.
13154 (dwarf2out_ignore_block): Look for nonlocalized vars.
f4ea99bd
EB
13155 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
13156 vars.
526d73ab
JH
13157 (dump_scope_block): Dump them.
13158 * tree-inline.c (remap_decls): Handle nonlocalized vars.
13159 (remap_block): Likewise.
13160 (can_be_nonlocal): New predicate.
13161 (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
13162
7a9d3fe8
RW
131632009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13164
13165 * configure: Regenerate.
13166
b3cdf3cb
RW
131672009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13168
a16d1645 13169 * optc-gen.awk: No need to duplicate option flags twice.
9ade279b 13170 Reuse help texts for duplicate options which do not have any.
a16d1645 13171
1156c176
RW
13172 * gcc.c (display_help): Document --version.
13173
033505fc
RW
13174 * gcc.c (main): If print_help_list and verbose_flag, ensure
13175 driver output comes before subprocess output.
13176
4d077054
RW
13177 * optc-gen.awk: Assign all remaining fields to help string,
13178 space-separated, for multi-line help in *.opt.
13179
a072f1cf
RW
13180 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
13181 -Wno-pedantic-ms-format is for MinGW targets only.
13182
b3cdf3cb
RW
13183 * doc/options.texi (Option file format): Fix bad indentation,
13184 restoring dropped sentence.
13185
a3aadcc5
JH
131862009-02-28 Jan Hubicka <jh@suse.cz>
13187
13188 * tree-inline.c (tree_function_versioning): Output debug info.
13189
1cf5abb3
JH
131902009-02-28 Jan Hubicka <jh@suse.cz>
13191
13192 PR debug/39267
13193 * tree-inline.c (setup_one_parameter): Do not copy propagate
13194 arguments when not optimizing.
13195
c4d3f42f
L
131962009-02-28 H.J. Lu <hongjiu.lu@intel.com>
13197
13198 PR target/39327
13199 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
13200 (avx_addsubv4df3): Likewise.
13201 (*avx_addsubv4sf3): Likewise.
13202 (sse3_addsubv4sf3): Likewise.
13203 (*avx_addsubv2df3): Likewise.
13204 (sse3_addsubv2df3): Likewise.
13205 (avx_unpckhps256): Correct item selectors.
13206 (avx_unpcklps256): Likewise.
13207 (avx_unpckhpd256): Likewise.
13208 (avx_unpcklpd256): Likewise.
13209
eb50f5f4
JH
132102009-02-28 Jan Hubicka <jh@suse.cz>
13211
13212 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
13213 static vars.
13214 (copy_arguments_for_versioning): If var is declared don't declare it.
13215 (tree_function_versioning): First setup substitutions and then copy
13216 args.
13217
26140130
JH
132182009-02-27 Jan Hubicka <jh@suse.cz>
13219
13220 PR debug/39267
13221 * cgraph.h (varpool_output_debug_info): Remove.
13222 * cgraphunit.c (varpool_output_debug_info): Remove.
13223 * dwarf2out.c (deferred_locations_struct): New struct
13224 (deferred_locations): New type.
13225 (deferred_locations_list): New static var.
13226 (deffer_location): New function.
13227 (gen_variable_die): Use it.
13228 (decls_for_scope): Output info on local static vars.
13229 (dwarf2out_finish): Process deferred locations.
13230 * varpool.c (varpool_output_debug_info): Remove.
13231
cff7525f
JH
132322009-02-27 Jan Hubicka <jh@suse.cz>
13233
13234 PR debug/39267
13235 * tree.h (TREE_PROTECTED): Fix comment.
13236 (BLOCK_HANDLER_BLOCK): Remove.
13237 (struct tree_block): Remove handler_block add body_block.
13238 (inlined_function_outer_scope_p): New.
13239 (is_body_block): Remove.
13240 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
13241 * dwarf2out.c (is_inlined_entry_point): Remove.
13242 (add_high_low_attributes): Use inlined_function_outer_scope_p.
f10a1c6c
EB
13243 (gen_block_die): Use is_inlined_entry_point check. Remove body block
13244 code.
cff7525f
JH
13245 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
13246 * gimplify.c (gimplify_expr): Gimplify body blocks.
f10a1c6c
EB
13247 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
13248 block with multiple subblocks.
cff7525f
JH
13249 (dump_scope_block): Prettier output; dump more flags and info.
13250 (dump_scope_blocks): New.
13251 (remove_unused_locals): Use dump_scope_blocks.
13252 * tree-flow.h (dump_scope_blocks): Declare.
13253 * tree-cfg.c (execute_build_cfg): Dump scope blocks.
13254 * stmt.c (is_body_block): Remove.
13255 * tree-inline.c (remap_block): Copy BODY_BLOCK info.
13256 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
13257
c20993b9
SP
132582009-02-27 Sebastian Pop <sebastian.pop@amd.com>
13259
13260 PR middle-end/39308
2ba9daa7 13261 * graphite.c (graphite_loop_normal_form): Do not call
c20993b9
SP
13262 number_of_iterations_exit from a gcc_assert.
13263
e3cba5e5
AK
132642009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13265
60839f5d 13266 * config/s390/s390.c (s390_swap_cmp): Look for conditional
e3cba5e5
AK
13267 jumps if COND is NULL.
13268 (find_cond_jump): New function.
13269 (s390_z10_optimize_cmp): Handling for reg-reg compares added.
60839f5d 13270 * config/s390/s390.md: Remove z10_cobra attribute value.
e3cba5e5 13271
9dadeeb8
UB
132722009-02-26 Uros Bizjak <ubizjak@gmail.com>
13273
13274 * config/alpha/alpha.h (alpha_expand_mov): Return false if
13275 force_const_mem returns NULL_RTX.
13276
625d3251
EB
132772009-02-26 Jan Hubicka <jh@suse.cz>
13278
13279 PR debug/39267
13280 * cgraph.h (varpool_output_debug_info): Remove.
13281 * cgraphunit.c (varpool_output_debug_info): Remove.
13282 * dwarf2out.c (deferred_locations_struct): New struct
13283 (deferred_locations): New type.
13284 (deferred_locations_list): New static var.
13285 (deffer_location): New function.
13286 (gen_variable_die): Use it.
13287 (decls_for_scope): Output info on local static vars.
13288 (dwarf2out_finish): Process deferred locations.
13289 * varpool.c (varpool_output_debug_info): Remove.
13290
38432148 132912009-02-25 H.J. Lu <hongjiu.lu@intel.com>
8592acaf
L
13292
13293 PR rtl-optimization/39241
13294 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
13295 to subreg_offset_representable_p.
13296
62d049cf
PB
132972009-02-25 Paolo Bonzini <bonzini@gnu.org>
13298
13299 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
13300 execute function prototype. Get f and nregs from max_reg_num
13301 and get_insns. Remove the first backward pass as it's dead,
13302 guard the forward pass by flag_expensive_optimizations.
13303 (rest_of_handle_regmove): Delete.
13304 (pass_regmove): Replace it with regmove_optimize.
13305
f618d33e
MJ
133062009-02-25 Martin Jambor <mjambor@suse.cz>
13307
13308 PR tree-optimization/39259
13309 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
6c6094f1 13310 calls_alloca function flags.
f618d33e
MJ
13311 (copy_bb): Set calls_setjmp and alls_alloca function flags if such
13312 calls are detected.
13313
c8a05f7c
PB
133142009-02-25 Paolo Bonzini <bonzini@gnu.org>
13315
13316 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
13317 flags_set_1_rtx, flags_set_1_set): Delete.
13318 (regmove_optimize): Do not call mark_flags_life_zones.
13319
6d2538f5
JB
133202009-02-24 Julian Brown <julian@codesourcery.com>
13321
13322 PR target/35965
13323 * config/arm/arm.c (require_pic_register): Only set
13324 cfun->machine->pic_reg once per function.
13325
a2fa6772
SL
133262009-02-24 Sandra Loosemore <sandra@codesourcery.com>
13327
13328 * doc/invoke.texi (Link Options): Document an easier way to pass
9dadeeb8 13329 options that take arguments to the GNU linker using -Xlinker and -Wl.
a2fa6772 13330
5472de36
SE
133312009-02-24 Steve Ellcey <sje@cup.hp.com>
13332
13333 PR target/33785
13334 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
13335
844216f3
RG
133362009-02-24 Richard Guenther <rguenther@suse.de>
13337
13338 PR debug/39285
13339 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
13340
71adbef3 133412009-02-24 Richard Guenther <rguenther@suse.de>
8592acaf 13342 Zdenek Dvorak <ook@ucw.cz>
71adbef3
RG
13343
13344 PR tree-optimization/39233
13345 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
13346 from converting them to a generic type.
13347
f1a558e0
SP
133482009-02-23 Sebastian Pop <sebastian.pop@amd.com>
13349
13350 PR tree-optimization/39260
13351 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
13352 contains a condition with a real type.
13353 (build_scop_conditions_1): Conditions are always last_stmt of a bb.
13354
d8028f2c
JM
133552009-02-23 Jason Merrill <jason@redhat.com>
13356
13357 PR c++/38880
13358 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
13359 narrowing_initializer_constant_valid_p.
2ba9daa7 13360 (narrowing_initializer_constant_valid_p): Don't return
d8028f2c
JM
13361 null_pointer_node for adding a pointer to itself.
13362
9283b513
JH
133632009-02-23 Jan Hubicka <jh@suse.cz>
13364
13365 PR c/12245
9dadeeb8
UB
13366 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
13367 resizing.
9283b513 13368
61e04322
JH
133692009-02-23 Jan Hubicka <jh@suse.cz>
13370
9dadeeb8
UB
13371 PR tree-optimization/37709
13372 * tree.c (block_ultimate_origin): Move here from dwarf2out.
13373 * tree.h (block_ultimate_origin): Declare.
13374 * dwarf2out.c (block_ultimate_origin): Move to tree.c
61e04322
JH
13375 * tree-ssa-live.c (remove_unused_scope_block_p):
13376 Eliminate blocks containig no instructions nor live variables nor
13377 nested blocks.
13378 (dump_scope_block): New function.
13379 (remove_unused_locals): Enable removal of dead blocks by default;
9dadeeb8 13380 enable dumping at TDF_DETAILS.
61e04322 13381
38432148 133822009-02-21 H.J. Lu <hongjiu.lu@intel.com>
5339d3ea
L
13383
13384 * config/i386/i386.c (classify_argument): Don't allow COImode
13385 and OImode.
13386 (function_arg_advance_32): Don't allow OImode.
13387 (function_arg_32): Likewise.
13388 (function_value_32): Likewise.
13389 (return_in_memory_32): Likewise.
13390 (function_arg_64): Remove OImode comment.
13391
38432148 133922009-02-21 H.J. Lu <hongjiu.lu@intel.com>
f161e158
L
13393
13394 PR target/39261
13395 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
13396 ix86_expand_vector_set for V4DImode in 64bit mode only.
13397 (ix86_expand_vector_init_one_var): Likewise.
13398
dcd739a6
SP
133992009-02-21 Sebastian Pop <sebastian.pop@amd.com>
13400
13401 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
13402
6c3b938d
RS
134032009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
13404
8e361f23 13405 PR bootstrap/39257
6c3b938d
RS
13406 * loop-iv.c: Revert last change.
13407 * emit-rtl.c: Likewise.
13408
38432148 134092009-02-21 H.J. Lu <hongjiu.lu@intel.com>
4c64d3dd
L
13410
13411 PR target/39256
13412 * config/i386/i386.c (type_natural_mode): Remove an extra
13413 space in the warning message.
13414 (function_value_32): Handle 32-byte vector modes.
13415 (return_in_memory_32): Likewise.
13416
2ec62529
RS
134172009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
13418
13419 * loop-iv.c (truncate_value): New function.
13420 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
13421 of lowpart_subreg.
13422 (lowpart_subreg): Move to...
13423 * emit-rtl.c: ...here.
13424
ecb8c3cc 134252009-02-21 Danny Smith <dannysmith@users.sourceforge.net>
f814e489 13426
ecb8c3cc
DS
13427 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
13428 accidental and undocumented change at revision 140860.
13429
ae46a823
JM
134302009-02-21 Joseph Myers <joseph@codesourcery.com>
13431
13432 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
13433 take gimple_seq * arguments.
13434 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
13435 types_compatible_p langhook.
13436
07d8efe3 134372009-02-20 Mark Mitchell <mark@codesourcery.com>
f814e489 13438 Joseph Myers <joseph@codesourcery.com>
07d8efe3
MM
13439
13440 * config/arm/arm.c (arm_builtin_va_list): New function.
13441 (arm_expand_builtin_va_start): Likewise.
13442 (arm_gimplify_va_arg_expr): Likewise.
13443 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
13444 (TARGET_BUILD_BUILTIN_VA_START): Likewise.
13445 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
13446 (va_list_type): New variable.
13447 (arm_mangle_type): Mangle va_list_type appropriately.
13448
b1fb9f56
JJ
134492009-02-20 Jakub Jelinek <jakub@redhat.com>
13450
13451 PR middle-end/39157
13452 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
13453 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
13454 * params.def (loop-invariant-max-bbs-in-loop): New parameter.
13455 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
13456 parameter to 1000 for -O1 by default.
13457 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
13458 parameter.
13459 * loop-invariant.c: Include params.h.
13460 (move_loop_invariants): Don't call move_single_loop_invariants on
13461 very large loops.
13462
5bc0807c
JM
134632009-02-20 Jaka Mocnik <jaka@xlab.si>
13464
13465 * calls.c (emit_library_call_value_1): Use slot_offset instead of
13466 offset when calculating bounds for indexing stack_usage_map. Fixes
13467 a buffer overflow with certain target setups.
13468
c69cd1f5
JJ
134692009-02-20 Jakub Jelinek <jakub@redhat.com>
13470
13471 PR target/39240
13472 * calls.c (expand_call): Clear try_tail_call if caller and callee
13473 disagree in promotion of function return value.
13474
09812622
JJ
134752009-02-19 Jakub Jelinek <jakub@redhat.com>
13476
13477 PR target/39175
13478 * c-common.c (c_determine_visibility): If visibility changed and
13479 DECL_RTL has been already set, call make_decl_rtl to update symbol
13480 flags.
13481
68017cb4
L
134822009-02-19 H.J. Lu <hongjiu.lu@intel.com>
13483
13484 PR c++/39188
13485 * varasm.c (assemble_variable): Don't check DECL_NAME when
13486 globalizing a variable.
13487
ab4194da
JM
134882009-02-19 Joseph Myers <joseph@codesourcery.com>
13489
13490 PR c/38483
13491 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
13492 expression before any __builtin_trap call.
13493 * c-typeck.c (build_function_call): Convert and check function
13494 arguments before generating a call to a trap. Evaluate the
13495 function arguments before the trap.
13496
6b67572e
UB
134972009-02-19 Uros Bizjak <ubizjak@gmail.com>
13498
13499 PR target/39228
13500 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
13501 (UNSPEC_FXAM_MEM): New unspec.
13502 (fxam<mode>2_i387_with_temp): New insn and split pattern.
13503 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
13504 memory using fxam<mode>2_i387_with_temp to remove excess precision.
13505
9e39dba6
RG
135062009-02-19 Richard Guenther <rguenther@suse.de>
13507
13508 PR tree-optimization/39207
13509 PR tree-optimization/39074
13510 * tree-ssa-structalias.c (storedanything_id, var_storedanything,
13511 storedanything_tree): New.
13512 (do_ds_constraint): Simplify ANYTHING shortcutting. Update
6b67572e 13513 the STOREDANYTHING solution if the lhs solution contains ANYTHING.
9e39dba6
RG
13514 (build_succ_graph): Add edges from STOREDANYTHING to all
13515 non-direct nodes.
13516 (init_base_vars): Initialize STOREDANYTHING.
13517 (compute_points_to_sets): Free substitution info after
13518 building the succ graph.
13519 (ipa_pta_execute): Likewise.
13520
13521 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
13522 field.
13523 (do_ds_constraint): Do not add to special var or non-pointer
13524 field solutions.
13525 (type_could_have_pointers): Split out from ...
13526 (could_have_pointers): ... here. For arrays use the element type.
13527 (create_variable_info_for): Initialize may_have_pointers.
13528 (new_var_info): Likewise.
13529 (handle_lhs_call): Make the HEAP variable unknown-sized.
13530 (intra_create_variable_infos): Use a type with pointers for
13531 PARM_NOALIAS, make it unknown-sized.
13532
fd7b2603
L
135332009-02-18 H.J. Lu <hongjiu.lu@intel.com>
13534
13535 PR target/39224
6b67572e 13536 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
fd7b2603 13537
98b80692
JM
135382009-02-18 Jason Merrill <jason@redhat.com>
13539
13540 PR target/39179
13541 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
13542 value if DECL_EXTERNAL.
13543 * tree-sra.c (sra_walk_gimple_assign): Likewise.
13544 * target.h (gcc_target::binds_local_p): Clarify "module".
13545 * tree.h (TREE_PUBLIC): Clarify "module".
13546
0705d3f4
L
135472009-02-17 Xuepeng Guo <xuepeng.guo@intel.com>
13548
13549 PR target/38891
13550 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
13551 initialization for MS_ABI prior to the hunk of !TARGET_MMX.
13552
bce08d50
L
135532009-02-17 H.J. Lu <hongjiu.lu@intel.com>
13554
13555 PR target/39082
13556 * c.opt (Wabi): Support C and ObjC.
13557 (Wpsabi): New.
13558
13559 * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
13560
13561 * config/i386/i386.c (classify_argument): Warn once about the ABI
13562 change when passing union with long double.
13563
13564 * doc/invoke.texi: Update -Wabi for warning psABI changes.
13565
5600f233
JM
135662009-02-18 Joseph Myers <joseph@codesourcery.com>
13567
13568 PR c/35447
13569 * c-parser.c (c_parser_compound_statement): Always enter and leave
13570 a scope.
13571
8cd01fe6
JDA
135722009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13573
13574 PR target/34587
13575 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
13576
418df9d7
JJ
135772009-02-18 Jakub Jelinek <jakub@redhat.com>
13578
13579 PR tree-optimization/36922
13580 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
13581 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
13582 Likewise.
13583
082d2ebb
RS
135842009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
13585
13586 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
13587 to 0 for EABI64.
13588
17de576c
RS
135892009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
13590
13591 * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
13592
6d8d5435
RS
135932009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
13594
13595 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
13596 tree sharing.
13597
e69ff910
RB
135982009-02-17 Ruan Beihong <ruanbeihong@gmail.com>
13599 Richard Sandiford <rdsandiford@googlemail.com>
13600
13601 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
13602 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
13603 (loongson_biadd): ...this.
13604
6b24ee26
RG
136052009-02-17 Richard Guenther <rguenther@suse.de>
13606
13607 PR tree-optimization/39202
13608 * tree-ssa-structalias.c (do_structure_copy): Before collapsing
13609 a var make sure to follow existing collapses.
13610
91ab2c86
RG
136112009-02-17 Richard Guenther <rguenther@suse.de>
13612
13613 PR middle-end/39214
13614 * langhooks.c (lhd_print_error_function): Check for NULL block.
13615
73a63870
RG
136162009-02-17 Richard Guenther <rguenther@suse.de>
13617
13618 PR tree-optimization/39204
13619 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
13620 of the PHI arg.
13621
0e08f686
UB
136222009-02-17 Uros Bizjak <ubizjak@gmail.com>
13623
13624 * config/soft-fp/double.h: Update from glibc CVS.
13625
a60b7ddb
RG
136262009-02-17 Richard Guenther <rguenther@suse.de>
13627
13628 PR tree-optimization/39207
13629 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
13630 strict-aliasing warnings for pointers pointing to NULL.
13631
a47e20fd
JM
136322009-02-16 Joseph Myers <joseph@codesourcery.com>
13633
13634 PR c/35446
13635 * c-parser.c (c_parser_braced_init): Call pop_init_level when
13636 skipping until next close brace.
13637
50aab7dc
L
136382009-02-16 H.J. Lu <hongjiu.lu@intel.com>
13639
13640 PR target/37049
13641 * config/i386/i386.c (ix86_expand_push): Set memory alignment
13642 to function argument boundary.
13643
68e53db0
HS
136442009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com>
13645
13646 * config/picochip/picochip.md (lea_add): Allow any nonimmediate
13647 in the lea_add. Reload eventually constraints it properly.
0d50d55a 13648 * config/picochip/constraints.md: Remove the target constraint
68e53db0
HS
13649 "b", since it is not needed anymore.
13650
09e361bb
JJ
136512009-02-16 Jakub Jelinek <jakub@redhat.com>
13652
13653 * gthr-dce.h: Uglify function parameter and local variable names.
13654 * gthr-gnat.h: Likewise.
13655 * gthr-mipssde.h: Likewise.
13656 * gthr-nks.h: Likewise.
13657 * gthr-posix95.h: Likewise.
13658 * gthr-posix.h: Likewise.
13659 * gthr-rtems.h: Likewise.
13660 * gthr-single.h: Likewise.
13661 * gthr-solaris.h: Likewise.
13662 * gthr-tpf.h: Likewise.
13663 * gthr-vxworks.h: Likewise.
13664 * gthr-win32.h: Likewise.
13665
47f5a48f
L
136662009-02-15 H.J. Lu <hongjiu.lu@intel.com>
13667
13668 PR target/39196
13669 * config/i386/i386.md: Restrict the new peephole2 to move
13670 between MMX/SSE registers.
13671
68c9ab45
RG
136722009-02-15 Richard Guenther <rguenther@suse.de>
13673
13674 Revert
13675 2009-02-13 Richard Guenther <rguenther@suse.de>
13676
13677 * configure.ac: Enable LFS.
13678 * configure: Re-generate.
13679 * config.in: Likewise.
13680
d7815554
UW
136812009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13682
13683 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
13684 spu_srqwbyte, spu_srqwbytebc): Define.
13685 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
13686 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
13687 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
13688 "shrqby_<mode>"): New insn-and-split patterns.
13689 * config/spu/spu.c (expand_builtin_args): Determine and return
13690 number of operands using spu_builtin_description data.
13691 (spu_expand_builtin_1): Use it.
13692
c208436c
SE
136932009-02-13 Steve Ellcey <sje@cup.hp.com>
13694
13695 PR target/38056
13696 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
13697 TARGET_CONST_GP.
13698
c2e7ba7e
L
136992009-02-13 H.J. Lu <hongjiu.lu@intel.com>
13700
13701 PR target/39149
13702 * config/i386/i386.c (override_options): Correct warning
6c6094f1 13703 messages for -malign-loops, -malign-jumps and -malign-functions.
c2e7ba7e 13704
72f4e3a7
L
137052009-02-13 H.J. Lu <hongjiu.lu@intel.com>
13706
13707 PR target/39152
13708 * config/i386/i386.md: Restrict the new peephole2 to move
13709 between the general purpose registers.
13710
53f648e2
L
137112009-02-13 H.J. Lu <hongjiu.lu@intel.com>
13712
13713 PR target/39162
13714 * config/i386/i386.c (type_natural_mode): Add a new argument.
6b67572e 13715 Return the original mode and warn ABI change if vector size is 32byte.
53f648e2
L
13716 (function_arg_advance): Updated.
13717 (function_arg): Likewise.
13718 (ix86_function_value): Likewise.
13719 (ix86_return_in_memory): Likewise.
13720 (ix86_sol10_return_in_memory): Likewise.
13721 (ix86_gimplify_va_arg): Likewise.
13722 (function_arg_32): Don't warn ABX ABI change here.
13723 (function_arg_64): Likewise.
13724
38432148 137252009-02-13 Bernd Schmidt <bernd.schmidt@analog.com>
b1c92d54
BS
13726
13727 * loop-iv.c (implies_p): In the final case, test that operands 0
13728 of the two comparisons match.
13729
dd2139e7
BS
13730 * config/bfin/bfin.c (find_prev_insn_start): New function.
13731 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
13732 (find_next_insn_start): Move.
13733
601b3e1a
RG
137342009-02-13 Richard Guenther <rguenther@suse.de>
13735
13736 * configure.ac: Enable LFS.
13737 * configure: Re-generate.
13738 * config.in: Likewise.
13739
f007042e
JM
137402009-02-13 Joseph Myers <joseph@codesourcery.com>
13741
13742 PR c/35444
13743 * c-parser.c (c_parser_parms_list_declarator): Discard pending
13744 sizes on syntax error after some arguments have been parsed.
13745
3f238e8b
JJ
137462009-02-12 Jakub Jelinek <jakub@redhat.com>
13747
13748 * doc/invoke.texi (-fira): Remove.
13749
328e13b7
L
137502009-02-12 H.J. Lu <hongjiu.lu@intel.com>
13751
13752 * caller-save.c: Replace regclass.c with reginfo.c in comments.
13753 * recog.c: Likewise.
13754 * rtl.h: Likewise.
13755
c252db20
L
137562009-02-12 Uros Bizjak <ubizjak@gmail.com>
13757
13758 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
13759 (umul_ppmm): Likewise.
13760 (count_leading_zeros): Likewise.
13761 (count_trailing_zeros): Likewise.
13762 (UMUL_TIME): Likewise.
13763
137642009-02-12 H.J. Lu <hongjiu.lu@intel.com>
13765
ba181049
UB
13766 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
13767 soft-fp/t-softfp to tmake_file.
c252db20
L
13768
13769 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
ba181049
UB
13770 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
13771 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
13772 IA64_BUILTIN_INFQ]: New.
c252db20
L
13773 (ia64_init_builtins): Initialize __builtin_infq,
13774 __builtin_fabsq and __builtin_copysignq if not HPUX.
13775 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
13776 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
13777
13778 * config/ia64/lib1funcs.asm (__divtf3): Define only if
13779 SHARED is defined.
13780 (__fixtfti): Likewise.
13781 (__fixunstfti): Likewise.
13782 (__floattitf): Likewise.
13783
13784 * config/ia64/libgcc-glibc.ver: New.
13785 * config/ia64/t-fprules-softfp: Likewise.
13786 * config/ia64/sfp-machine.h: Likewise.
13787
13788 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
13789 (LIBGCC2_TF_CEXT): Likewise.
13790 (TF_SIZE): Likewise.
13791 (TARGET_INIT_LIBFUNCS): Likewise.
13792
ba181049 13793 * config/ia64/t-glibc (SHLINB_MAPFILES):
6b67572e 13794 Add $(srcdir)/config/ia64/libgcc-glibc.ver.
c252db20 13795
f13eae6a
L
137962009-02-12 H.J. Lu <hongjiu.lu@intel.com>
13797
13798 * config/i386/i386.c (construct_container): Rewrite processing
13799 BLKmode with X86_64_SSE_CLASS.
13800
12019aec
L
138012009-02-12 Paolo Bonzini <bonzini@gnu.org>
13802
13803 PR target/39152
13804 * config/i386/i386.md: Replace simplify_replace_rtx with
13805 replace_rtx in the new peephole2.
13806
28c11eb3
NS
138072009-02-12 Nathan Sidwell <nathan@codesourcery.com>
13808
13809 * doc/invoke.texi (Optimize Options): Stop claiming inlining and
13810 loop unrolling do not happen at -O2.
13811
c7b94907
MM
138122009-02-12 Michael Matz <matz@suse.de>
13813
13814 * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
13815
61e98967
JJ
138162009-02-12 Jakub Jelinek <jakub@redhat.com>
13817
13818 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
13819 for -g3.
13820
a2a237b5
BE
138212009-02-12 Ben Elliston <bje@au.ibm.com>
13822
13823 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
13824 patterns when updating the back chain. Missed in the 2009-02-10
13825 change.
13826
853eda8d
JJ
138272009-02-11 Janis Johnson <janis187@us.ibm.com>
13828
13829 * doc/extend.texi (Decimal Floating Types): Update identifier of
13830 draft TR and list of missing support.
13831
3ad6b266
JJ
138322009-02-11 Jakub Jelinek <jakub@redhat.com>
13833
13834 PR middle-end/39154
13835 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
13836 bit to variable length decl's flags, add it also to its
13837 pointer replacement variable.
13838
b058b753
UB
138392009-02-11 Uros Bizjak <ubizjak@gmail.com>
13840 Jakub Jelinek <jakub@redhat.com>
13841
13842 PR target/39118
13843 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
13844 (memory_blockage): New expander.
13845 (*memory_blockage): New insn pattern.
13846 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
13847 instead of general blockage at the end of function prologue when
13848 frame pointer is used to access red zone area. Do not emit blockage
13849 when profiling, it is emitted in generic code.
13850 (ix86_expand_epilogue): Emit memory_blockage at the beginning of
13851 function epilogue when frame pointer is used to access red zone area.
13852
bab64f23
PB
138532009-02-11 Paolo Bonzini <bonzini@gnu.org>
13854
0ce6dcfa 13855 PR target/38824
bab64f23
PB
13856 * config/i386/i386.md: Add two new peephole2 to avoid mov followed
13857 by arithmetic with memory operands.
13858 * config/i386/predicates.md (commutative_operator): New.
13859
8fd94bda
JJ
138602009-02-10 Janis Johnson <janis187@us.ibm.com>
13861
13862 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
13863 bulleted lists.
13864
794511d2
EB
138652009-02-10 Eric Botcazou <ebotcazou@adacore.com>
13866
13867 * alias.h (record_alias_subset): Declare.
13868 * alias.c (record_alias_subset): Make global.
13869
6da7fc87
NC
138702009-02-10 Nick Clifton <nickc@redhat.com>
13871
13872 * tree-parloops.c: Change license to GPLv3.
13873 * ipa-struct-reorg.c: Change license to GPLv3.
13874 * ipa-struct-reorg.h: Change license to GPLv3.
13875
a03813c8
SE
138762009-02-10 Steve Ellcey <sje@cup.hp.com>
13877
13878 PR c/39084
13879 * c-decl.c (start_struct): Return NULL on error.
13880
fc3103e7
JJ
138812009-02-10 Jakub Jelinek <jakub@redhat.com>
13882
9b43d37b
JJ
13883 PR middle-end/39124
13884 * cfgloopmanip.c (remove_path): Call remove_bbs after
13885 cancel_loop_tree, not before it.
13886
fc3103e7 13887 PR target/39139
b058b753 13888 * function.h (struct function): Add has_local_explicit_reg_vars bit.
fc3103e7
JJ
13889 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
13890 VAR_DECLs were seen.
13891 * tree-ssa-live.c (remove_unused_locals): Recompute
13892 cfun->has_local_explicit_reg_vars.
13893 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
13894 copies or clearings if cfun->has_local_explicit_reg_vars.
13895
dbf9ee15
UB
138962009-02-10 Uros Bizjak <ubizjak@gmail.com>
13897
13898 PR target/39118
13899 * config/i386/i386.c (expand_prologue): Emit blockage at the end
13900 of function prologue when frame pointer is used to access
13901 red zone area.
13902
bdec4dc7
RG
139032009-02-10 Richard Guenther <rguenther@suse.de>
13904
13905 PR middle-end/39127
13906 * gimplify.c (gimple_regimplify_operands): Always look if
13907 we need to create a temporary.
13908
7cae94fc
RG
139092009-02-10 Richard Guenther <rguenther@suse.de>
13910
13911 PR tree-optimization/39132
13912 * tree-loop-distribution.c (todo): New global var.
13913 (generate_memset_zero): Trigger TODO_rebuild_alias.
13914 (tree_loop_distribution): Return todo.
13915
a8800687
L
139162009-02-10 H.J. Lu <hongjiu.lu@intel.com>
13917
13918 PR target/39119
13919 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
13920 (x86_64_reg_class_name): Removed.
13921 (classify_argument): Return 0 if bytes > 32. Return 0 if the
13922 first one isn't X86_64_SSE_CLASS or any other ones aren't
13923 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn
13924 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
13925 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS
13926 and 3 X86_64_SSEUP_CLASS.
13927 (construct_container): Remove X86_64_AVX_CLASS. Handle 4
13928 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
13929
d4bacef0
BE
139302009-02-10 Ben Elliston <bje@au.ibm.com>
13931
13932 * config/rs6000/rs6000.md (allocate_stack): Always use an update
13933 form instruction to update the stack back chain word, even if the
13934 user has disabled the generation of update instructions.
13935 (movdi_<mode>_update_stack): New.
13936 (movsi_update_stack): Likewise.
13937 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
13938 always use an update form instruction to update the stack back
13939 chain word.
13940
01d7d2f3
SP
139412009-02-09 Sebastian Pop <sebastian.pop@amd.com>
13942
13943 PR middle-end/38953
b058b753
UB
13944 * graphite.c (if_region_set_false_region): After moving a region in
13945 the false branch of a condition, remove the empty dummy basic block.
01d7d2f3
SP
13946 (gloog): Remove wrong fix for PR38953.
13947
e41e2ab4
UW
139482009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13949
13950 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
13951 generation due to implicit sign extension.
13952
4bb07c5d
EB
139532009-02-09 Eric Botcazou <ebotcazou@adacore.com>
13954
13955 PR middle-end/38981
13956 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
13957 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
13958
f060a261
RG
139592009-02-09 Richard Guenther <rguenther@suse.de>
13960
13961 PR middle-end/35202
13962 * convert.c (convert_to_real): Disable (float)fn((double)x)
13963 to fnf(x) conversion if errno differences may occur and
13964 -fmath-errno is set.
13965
5a7e237c
AS
139662009-02-07 Anatoly Sokolov <aesok@post.ru>
13967
13968 * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
13969 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
13970 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
13971
feab5a67
JM
139722009-02-06 Joseph Myers <joseph@codesourcery.com>
13973
13974 PR c/35434
13975 * c-common.c (handle_alias_attribute): Disallow attribute for
13976 anything not a FUNCTION_DECL or VAR_DECL.
13977
90ef2296
JJ
139782009-02-06 Janis Johnson <janis187@us.ibm.com>
13979
13980 PR c/39035
13981 * real.c (do_compare): Special-case compare of zero against
13982 decimal float value.
13983
1de2c900
JM
139842009-02-06 Joseph Myers <joseph@codesourcery.com>
13985
13986 PR c/36432
13987 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
13988 as indicating flexible array members unless the field itself is
13989 being declarared as the incomplete array.
13990
e901811a
JH
139912009-02-06 Jan Hubicka <jh@suse.cz>
13992
13993 PR tree-optimization/38844
13994 * ipa-inline.c (try_inline): Stop inlining recursion when edge
13995 is already inlined.
13996
3cfa762b
RG
139972009-02-06 Richard Guenther <rguenther@suse.de>
13998
13999 PR middle-end/38977
14000 * tree-cfg.c (need_fake_edge_p): Force a fake edge for
14001 fork because we may expand it as __gcov_fork.
14002
8506528c
NC
140032009-02-06 Nick Clifton <nickc@redhat.com>
14004
dbf9ee15 14005 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
8506528c 14006
85169114
PB
140072009-02-06 Paolo Bonzini <bonzini@gnu.org>
14008
14009 PR tree-optimization/35659
14010 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
14011 vn_phi_eq): Shortcut if hashcode does not match.
14012 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
14013 NULL operands.
14014 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
14015 and avoid iterative_hash_expr.
14016 (FOR_EACH_VALUE_ID_IN_SET): New.
14017 (value_id_compare): Remove.
14018 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
14019 sort expressions by value id.
14020
6d39673d
KK
140212009-02-05 Kaz Kojima <kkojima@gcc.gnu.org>
14022
14023 PR target/38991
14024 * config/sh/predicates.md (general_movsrc_operand): Don't check
14025 the subreg of system registers here.
14026
e6e1c050
JJ
140272009-02-05 Jakub Jelinek <jakub@redhat.com>
14028
14029 PR c++/39106
14030 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
14031 on the copied decl.
14032
65a74b5d
PB
140332009-02-05 Paolo Bonzini <bonzini@gnu.org>
14034
14035 PR rtl-optimization/39110
14036 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
14037 addresses, not aligned ones.
14038
08e14b2a
DB
140392009-02-05 Daniel Berlin <dberlin@dberlin.org>
14040 Richard Guenther <rguenther@suse.de>
14041
14042 PR tree-optimization/39100
14043 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
14044 comment says and add edges.
14045
5006381c
JM
140462009-02-05 Joseph Myers <joseph@codesourcery.com>
14047
14048 PR c/35435
14049 * c-common.c (handle_tls_model_attribute): Ignore attribute for
14050 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
14051
2ba9daa7 140522009-02-04 Tobias Grosser <grosser@fim.uni-passau.de>
b0789219
TG
14053
14054 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
14055 sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
14056 register_bb_in_sese, new_sese, free_sese): Moved.
14057 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
14058 outermost_loop_in_scop, build_scop_iteration_domain,
14059 expand_scalar_variables_ssa_name, get_vdef_before_scop,
14060 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
14061 Use loop_in_sese_p instead of loop_in_scop_p.
14062 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
14063 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
14064 (scopdet_basic_block_info): Fix bug in scop detection.
14065 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
14066 eq_loop_to_cloog_loop): Remove.
14067 (nb_loops_around_loop_in_scop, nb_loop
14068 ref_nb_loops): Moved here...
14069 * graphite.h (ref_nb_loops): ... from here.
14070 (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
14071 (loop_domain_dim, loop_iteration_vector_dim): Remove.
14072 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
14073 * testsuite/gcc.dg/graphite/scop-19.c: New
14074
48e8382e
PB
140752009-02-04 Paolo Bonzini <bonzini@gnu.org>
14076 Hans-Peter Nilsson <hp@axis.com>
14077
14078 PR rtl-optimization/37889
14079 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
14080 Move offset handling from PLUS to before the switch. Use new
14081 arguments when considering SYMBOL_REFs too.
14082 (rtx_addr_can_trap_p): Pass dummy offset and size.
14083 (enum may_trap_p_flags): Remove.
14084 (may_trap_p_1): Pass size from MEM_SIZE.
14085
14086 PR rtl-optimization/38921
14087 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
14088 * rtl.h (may_trap_after_code_motion_p): Delete prototype.
14089 * rtlanal.c (may_trap_after_code_motion_p): Delete.
14090 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
14091
69349ea5
L
140922009-02-04 H.J. Lu <hongjiu.lu@intel.com>
14093
14094 AVX Programming Reference (January, 2009)
14095 * config/i386/sse.md (*vpclmulqdq): New.
14096
b545e411
JJ
140972009-02-04 Jakub Jelinek <jakub@redhat.com>
14098
14099 PR tree-optimization/38977
14100 PR gcov-profile/38292
bf9b2cc9 14101 * calls.c (special_function_p): Disregard __builtin_ prefix.
b545e411 14102
5b43bf05
HS
141032009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com>
14104
14105 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
14106 non-indexable addresses even before reload.
14107
062c4bb3
JM
141082009-02-03 Joseph Myers <joseph@codesourcery.com>
14109
14110 PR c/29129
14111 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
14112 as having variable size. Do not give an error for unnamed
14113 parameters with [*] declarators. Give a warning for type names
14114 with [*] declarators and mark them as variable size.
14115 * c-parser.c (c_parser_sizeof_expression): Do not give an error
14116 for sizeof applied to [*] type names.
14117
6175f578
AP
141182009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
14119
14120 PR C++/36607
14121 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
14122
d4f4bc84
JJ
141232009-02-03 Jakub Jelinek <jakub@redhat.com>
14124
14125 * gcc.c (process_command): Update copyright notice dates.
14126 * gcov.c (print_version): Likewise.
14127 * gcov-dump.c (print_version): Likewise.
14128 * mips-tfile.c (main): Likewise.
14129 * mips-tdump.c (main): Likewise.
14130
f6294de7
JM
141312009-02-03 Joseph Myers <joseph@codesourcery.com>
14132
14133 PR c/35433
14134 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
14135 for composite type involving a zero-length array type.
14136
754ccf7c
JJ
141372009-02-03 Jakub Jelinek <jakub@redhat.com>
14138
70f16287
JJ
14139 PR target/35318
14140 * function.c (match_asm_constraints_1): Skip over
14141 initial optional % in the constraint.
14142
754ccf7c
JJ
14143 PR inline-asm/39059
14144 * c-parser.c (c_parser_postfix_expression): If fixed point is not
14145 supported, don't accept FIXED_CSTs.
14146 * c-decl.c (finish_declspecs): Error if fixed point is not supported
14147 and _Sat is used without _Fract/_Accum. Set specs->type to
14148 integer_type_node for cts_fract/cts_accum if fixed point is not
14149 supported.
14150
965fdadf
CM
141512009-02-02 Catherine Moore <clm@codesourcery.com>
14152
dbf9ee15 14153 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
965fdadf 14154
2e8a796f
RS
141552009-02-02 Richard Sandiford <rdsandiford@googlemail.com>
14156
14157 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
14158 (ABI_HAS_64BIT_SYMBOLS): Use it.
14159 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
14160
e0079468
PB
141612009-02-02 Paul Brook <paul@codesourcery.com>
14162
14163 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
14164
eca72963
JJ
141652009-02-02 Jakub Jelinek <jakub@redhat.com>
14166
14167 PR inline-asm/39058
14168 * recog.h (asm_operand_ok): Add constraints argument.
14169 * recog.c (asm_operand_ok): Likewise. If it is set, for digits
14170 recurse on matching constraint.
14171 (check_asm_operands): Pass constraints as 3rd argument to
14172 asm_operand_ok. Don't look up matching constraint here.
14173 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
14174 to asm_operand_ok.
14175
b5bde9ff
BE
141762009-02-02 Ben Elliston <bje@au.ibm.com>
14177
14178 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
14179 TARGET_NARROW_VOLATILE_BITFIELD macro names.
14180
30f3e427
JDA
141812009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14182
be7659ba
JDA
14183 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
14184 information. Remove some obsolete information. Reorganize.
14185
30f3e427
JDA
14186 * config/pa/fptr.c: Revert license to GPL 2.
14187 * config/pa/milli64.S: Likewise.
14188
3cbfaf98
DK
141892009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
14190
14191 PR target/38904
14192 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass
14193 LIBRARY name in, instead of hard-coding it.
14194 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an
14195 extra target make frag to tmake_files according to EH model.
14196 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
14197 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target
14198 frags that define makefile variable EH_MODEL appropriately.
14199 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment.
14200 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or
14201 to "-sjlj" according to type of EH configured.
14202 (LIBGCC_SONAME): Concatenate it to shared library base name.
14203 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or
14204 to "_sjlj" according to type of EH configured.
14205 (LIBGCC_SONAME): Concatenate it to shared library base name.
14206 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL.
14207 (SHLIB_LINK): Add missing semicolon to if-else construct.
14208 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
14209 string value of "pe_dll" command-line option.
14210 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper.
14211 (SHLIB_SONAME): Use it when overriding t-cygming default.
14212 (SHLIB_IMPLIB): Override t-cygming default.
14213 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
14214 string value of "pe_dll" command-line option.
14215
8d0b6068
DK
142162009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
14217
14218 PR target/38952
14219 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
bf9b2cc9 14220 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
8d0b6068 14221
14c28276
RG
142222009-01-31 Richard Guenther <rguenther@suse.de>
14223
14224 PR tree-optimization/38937
14225 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
14226 computing the transitive closure.
14227
5f4d82c2
RG
142282009-01-30 Richard Guenther <rguenther@suse.de>
14229
14230 PR tree-optimization/39041
14231 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
14232 Propagate variable indices only if the types match for this stmt.
14233
d0728ae0
JJ
142342009-01-30 Jakub Jelinek <jakub@redhat.com>
14235
14236 PR target/39013
14237 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
14238 inline but never defined.
14239
6b67572e 142402009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com>
9fec758d
WG
14241
14242 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
14243 (*insv_h_di_reg_extimm): New insn.
14244 (*insv_l<mode>_reg_extimm): New insn.
14245
142462009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
9e8be1e4
HS
14247
14248 * config/picochip/picochip.c (flag_conserve_stack): set
14249 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
14250 fconserve-stack. Reduce call-overhead used by inliner.
14251
9fec758d 142522009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
df9198ab
HS
14253
14254 PR/38157
14255 * common.opt (flag_conserve_stack): Initialised to zero.
14256
7f1c539c
KT
142572009-01-30 Kai Tietz <kai.tietz@onevision.com>
14258
14259 PR/39002
14260 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
14261 (ix86_expand_epilogue): Take nsseregs in account to use proper restore
14262 method.
14263
3631be48
L
142642009-01-29 H.J. Lu <hongjiu.lu@intel.com>
14265
14266 * ira-color.c (allocno_reload_assign): Update comments.
14267 * regmove.c (regmove_optimize): Likewise.
14268
14269 * ra.h: Removed.
14270
416ac4d4
RM
142712009-01-29 Robert Millan <rmh@aybabtu.com>
14272
60839f5d
EB
14273 * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
14274 * config/i386/kopensolaris-gnu.h: New file. Undefine
416ac4d4 14275 `MD_UNWIND_SUPPORT'.
60839f5d 14276 * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
416ac4d4 14277
d5e54bc1
KH
142782009-01-29 Kazu Hirata <kazu@codesourcery.com>
14279
14280 PR tree-optimization/39007
14281 * tree-loop-distribution.c (generate_builtin): Use
14282 recompute_dominator to compute the immediate dominator of the
14283 basic block just after the loop.
14284
38432148 142852009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
e9e077fa
RO
14286
14287 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
14288 (ASM_OUTPUT_DWARF_PCREL): Define.
14289
38432148 142902009-01-29 Vladimir Makarov <vmakarov@redhat.com>
2af2dbdc
VM
14291
14292 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
14293 * doc/passes.texi: Remove entries about regclass, local-alloc, and
14294 global. Modify entries about regmove and IRA.
14295
14296 * ra-conflict.c: Remove the file.
14297
14298 * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
14299
14300 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
14301 (pass_regclass_init): Rename to pass_reginfo_init.
14302
14303 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
14304
14305 * toplev.h (flag_ira): Remove.
14306
14307 * caller-save.c (setup_save_areas): Remove flag_ira.
14308
bf9b2cc9 14309 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
2af2dbdc
VM
14310
14311 * global.c: Remove the file.
14312
ba20e309 14313 * opts.c (decode_options): Remove flag_ira.
2af2dbdc
VM
14314
14315 * hard-reg-set.h (losing_caller_save_reg_set): Remove.
14316
14317 * regmove.c: Modify file description.
14318 (find_use_as_address, try_auto_increment): Define them only if
14319 AUTO_INC_DEC is defined.
14320 (replacement_quality, replace_in_call_usage, fixup_match_1,
14321 stable_and_no_regs_but_for_p): Remove.
14322 (reg_set_in_bb): Make it static.
14323 (regmove_optimize): Remove flag_ira and code which worked for
14324 !flag_ira.
14325
14326 * local-alloc.c: Remove the file.
14327
14328 * common.opt (fira): Remove.
14329
14330 * ira.c: Include except.h.
14331 (eliminable_regset): Move from global.c.
14332 (mark_elimination): Ditto. Remove flag_ira.
14333 (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
14334 equiv_mem_modified, validate_equiv_mem_from_store,
14335 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
14336 contains_replace_regs, memref_referenced_p, memref_used_between_p,
14337 no_equiv, recorded_label_ref): Move from local-alloc.c.
14338 (update_equiv_regs): Ditto. Make it static.
14339 (print_insn_chain, print_insn_chains): Move it from global.c.
bf9b2cc9 14340 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira.
2af2dbdc
VM
14341 (build_insn_chain): Ditto. Make it static.
14342 (ra_init_live_subregs): Move from ra-conflict.c. Make it static.
14343 Rename to init_live_subregs.
14344 (gate_ira): Remove flag_ira.
14345
14346 * regclass.c: Rename reginfo.c. Change file description.
14347 (FORBIDDEN_INC_DEC_CLASSES): Remove.
dbf9ee15 14348 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
2af2dbdc
VM
14349 (init_reg_sets_1): Remove code for evaluation of
14350 reg_class_superclasses and losing_caller_save_reg_set.
14351 (init_regs): Remove init_reg_autoinc.
14352 (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
14353 ok_for_base_p_nonstrict): Remove.
bf9b2cc9 14354 (regclass_init): Rename to reginfo_init. Don't initialize init_cost.
2af2dbdc
VM
14355 (pass_regclass_init): Rename to pass_reginfo_init. Modify
14356 corresponding entries.
14357 (dump_regclass, record_operand_costs, scan_one_insn,
14358 init_reg_autoinc, regclass, record_reg_classes, copy_cost,
14359 record_address_regs, auto_inc_dec_reg_p): Remove.
14360 (gt-regclass.h): Rename to gt-reginfo.h.
14361
14362 * rtl.h (dump_global_regs, retry_global_alloc,
bf9b2cc9 14363 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
2af2dbdc
VM
14364
14365 * Makefile.in (RA_H): Remove.
14366 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
14367 Rename regclass.o to reginfo.o.
14368 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to
14369 gt-reginfo.h.
14370 (global.o, local-alloc.o, ra-conflict.o): Remove entries.
14371 (GTFILES): Rename regclass.c to reginfo.c.
14372
14373 * passes.c (init_optimization_passes): Remove pass_local_alloc and
bf9b2cc9 14374 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init.
2af2dbdc
VM
14375
14376 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
14377 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
14378 Remove flag_ira.
6b67572e 14379 (finish_spills): Ditto. Remove code for !flag_ira.
2ba9daa7 14380
c95b2534 143812009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
00b251a0
KZ
14382
14383 PR middle-end/35854
14384 * doc/invoke.texi (rtl debug options): Complete rewrite.
14385 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
14386 to auto_inc_dec".
14387 * mode-switching.c (pass_mode_switching): Rename pass from
14388 "mode-sw" to "mode_sw".
14389 * except.c (pass_convert_to_eh_ranges): Rename pass from
14390 "eh-ranges" to "eh_ranges".
14391 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
14392 to "subreg1".
2ba9daa7
AS
14393
14394
72a54528
AM
143952009-01-29 Andrey Belevantsev <abel@ispras.ru>
14396 Alexander Monakov <amonakov@ispras.ru>
14397
14398 PR middle-end/38857
14399 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
14400 register.
14401 (move_exprs_to_boundary): Change return type and pass through
14402 should_move from move_op. Relax assert. Update usage ...
14403 (schedule_expr_on_boundary): ... here. Use should_move instead of
14404 cant_move.
14405 (move_op_orig_expr_found): Indicate that insn was disconnected from
14406 stream.
14407 (code_motion_process_successors): Do not call after_merge_succs
14408 callback if original expression was not found when traversing any of
14409 the branches.
14410 (code_motion_path_driver): Change return type. Update prototype.
14411 (move_op): Update comment. Add a new parameter (should_move). Update
14412 prototype. Set *should_move based on indication provided by
14413 move_op_orig_expr_found.
14414
001b9eb6
PH
144152009-01-28 Pat Haugen <pthaugen@us.ibm.com>
14416
14417 * doc/invoke.texi (avoid-indexed-addresses): Document new option.
14418 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
14419 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
14420 * config/rs6000/rs6000.c (rs6000_override_options): Default
14421 avoid-indexed-addresses on for Power6, off for everything else.
14422 (avoiding_indexed_address_p): New function.
14423 (rs6000_legitimize_address): Use it.
14424 (rs6000_legitimate_address): Likewise.
14425 * config/rs6000/rs6000.md (movXX_updateX): Likewise
14426
59dc4898
KH
144272009-01-28 Kazu Hirata <kazu@codesourcery.com>
14428
14429 PR tree-optimization/38997
14430 * tree-loop-distribution.c (generate_memset_zero): Use
14431 POINTER_PLUS_EXPR for a pointer addition.
14432
07da44ab
AK
144332009-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
14434
14435 * config/s390/s390.md (bswap<mode>2): New pattern added.
14436
cdc15d23
WG
144372009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
14438
14439 * config/s390/s390.md (*tls_load_31): Added type attribute.
14440
d46f24b6
WG
144412009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
14442
14443 * config/s390/s390.md: Fix a few comments.
14444
729e750f
WG
144452009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
14446
14447 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
14448 (*tm<mode>_full): Fixed z10prop attribute.
14449 (*tst<mode>_extimm): Fixed z10prop attribute.
14450 (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
14451 (*tstqiCCT_cconly): Fixed z10prop attribute.
14452 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
14453 (*movsi_larl): Fixed z10prop attribute.
14454 (*movsi_zarch): Fixed z10prop attribute.
14455 (*movsi_eas): Fixed z10prop attribute.
14456 (*movhi): Fixed z10prop attribute.
14457 (*movqi): Fixed z10prop attribute.
14458 (*movstrictqi): Fixed z10prop attribute.
14459 (*mov<mode>): Fixed z10prop attribute.
14460 (*movcc): Fixed z10prop attribute.
14461 (*sethighpartdi_64): Fixed z10prop attribute.
14462 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
14463 (*negdi2_sign_cc): Fixed z10prop attribute.
14464 (*negdi2_sign): Fixed z10prop attribute.
14465 (*absdi2_sign_cc): Fixed z10prop attribute.
14466 (*absdi2_sign): Fixed z10prop attribute.
14467 (*negabsdi2_sign_cc): Fixed z10prop attribute.
14468 (*negabsdi2_sign): Fixed z10prop attribute.
14469 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
14470 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
14471 (doloop_si64): Fixed z10prop attribute.
14472 (doloop_si31): Fixed z10prop attribute.
14473 (doloop_long): Fixed z10prop attribute.
14474 (indirect_jump): Fixed z10prop attribute.
14475 (nop): Fixed z10prop attribute.
14476 (main_base_64): Fixed z10prop attribute.
14477 (reload_base_64): Fixed z10prop attribute.
14478
c7789bfb
JJ
144792009-01-28 Jakub Jelinek <jakub@redhat.com>
14480
14481 PR rtl-optimization/38740
6b67572e
UB
14482 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
14483 if !optimize.
c7789bfb
JJ
14484 * config/mips/mips.c (mips_reorg): Likewise.
14485
de081cfd
RG
144862009-01-28 Richard Guenther <rguenther@suse.de>
14487
14488 PR tree-optimization/38926
14489 * tree-ssa-pre.c (add_to_value): Assert we add only expressions
14490 with the correct value id to a value.
14491 (do_regular_insertion): Use the value number of edoubleprime
14492 for the value number of the expr.
14493
14494 Revert
14495 2008-08-21 Richard Guenther <rguenther@suse.de>
bf9b2cc9 14496
d748c406
UB
14497 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
14498 a PHI ask VN if it is already available.
14499 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
14500 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
de081cfd 14501
a9d386a1
JJ
145022009-01-28 Jakub Jelinek <jakub@redhat.com>
14503
14504 PR middle-end/38934
14505 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
14506 set to varying whenever max has TREE_OVERFLOW set, similarly
14507 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
14508
97a170cd
RG
145092009-01-28 Richard Guenther <rguenther@suse.de>
14510
14511 PR middle-end/38908
14512 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
14513 uninitialized aggregate uses in call arguments.
14514
89ebafc6
PB
145152009-01-28 Paolo Bonzini <bonzini@gnu.org>
14516
14517 PR tree-optimization/38984
14518 * tree-ssa-structalias.c (get_constraints_for_1): Do not use
14519 the nothing_id variable if -fno-delete-null-pointer-checks.
14520
bef3c57b
UB
145212009-01-28 Uros Bizjak <ubizjak@gmail.com>
14522
14523 PR target/38988
14524 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
14525 (set_got_offset_rex64): Ditto.
14526
0c6390fa
L
145272009-01-27 H.J. Lu <hongjiu.lu@intel.com>
14528
14529 PR target/38941
14530 * doc/extend.texi: Improve local variable with asm reg.
14531
bee6fa6d
AN
145322009-01-27 Adam Nemet <anemet@caviumnetworks.com>
14533
14534 * c.opt (Wpacked-bitfield-compat): Change init value to -1.
14535 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
14536 was not supplied then set warn_packed_bitfield_compat to the
14537 default value of 1.
14538 * stor-layout.c (place_field): Check warn_packed_bitfield_compat
14539 against 1.
14540
b5c3dfbb
RG
145412009-01-27 Richard Guenther <rguenther@suse.de>
14542
14543 PR tree-optimization/38503
14544 * cfgexpand.c (expand_gimple_basic_block): Ignore
14545 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
14546 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
14547 variables that cannot have TBAA applied.
14548 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
14549 statements.
14550
d748c406 145512009-01-27 Uros Bizjak <ubizjak@gmail.com>
576de5cb
UB
14552
14553 PR middle-end/38969
14554 * calls.c (initialize_argument_information): Do not wrap complex
14555 arguments in SAVE_EXPR.
14556
9112bb38
AT
145572009-01-26 Andreas Tobler <a.tobler@schweiz.org>
14558
14559 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
5efb79fc 14560 (INSTALL_LIBGCC): Revert typo commit.
9112bb38 14561
4757704f
RG
145622009-01-26 Richard Guenther <rguenther@suse.de>
14563
14564 PR tree-optimization/38745
14565 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
14566 from special handling.
14567
e3e6cff4
RG
145682009-01-26 Richard Guenther <rguenther@suse.de>
14569
14570 PR tree-optimization/38745
14571 * tree-ssa.c (execute_update_addresses_taken): Do not include
14572 variables that cannot possibly be a register in not_reg_needs.
14573 Do not clear TREE_ADDRESSABLE on vars that may not become
14574 registers.
14575 * tree-ssa.c (update_alias_info_1): Include those in the set
14576 of addressable vars.
14577
dc874b53
RG
145782009-01-26 Richard Guenther <rguenther@suse.de>
14579
14580 PR middle-end/38851
14581 * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
14582 * tree-ssa-dse.c: Include langhooks.h
14583 (execute_simple_dse): Remove stores with zero size.
14584
849421a3
JJ
145852009-01-24 Jakub Jelinek <jakub@redhat.com>
14586
14587 PR c/38957
14588 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
14589 as PLUS_EXPR.
14590
82f70421
JB
145912009-01-24 Julian Brown <julian@codesourcery.com>
14592
14593 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
14594 config/arm/linux-atomic.c.
14595 * config/arm/linux-atomic.c: New.
14596
863412d6
EB
145972009-01-24 Eric Botcazou <ebotcazou@adacore.com>
14598
14599 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
14600 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
14601 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
14602
8c684300
L
146032009-01-24 H.J. Lu <hongjiu.lu@intel.com>
14604
14605 PR c/38938
93f1527a 14606 * c-opts.c (c_common_handle_option): Update warn_pointer_sign
8c684300
L
14607 properly.
14608
b840fb02
SP
146092009-01-24 Sebastian Pop <sebastian.pop@amd.com>
14610
14611 PR tree-optimization/38953
14612 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
14613 (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
14614 (gloog): Split the exit of the scop when the scop exit is a loop exit.
14615 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
14616 changed the CFG.
14617
ecee559f
PB
146182009-01-24 Paul Brook <paul@codesourcery.com>
14619
14620 * config/arm/neon.md (neon_type): Move to arm.md.
14621 (neon_mov<VSTRUCT>): Add neon_type attribute.
14622 * config/arm/arm.md (neon_type): Move to here.
14623 (conds): Add "unconditioal" and use as default for NEON insns.
14624
61ad0914
BE
146252009-01-24 Ben Elliston <bje@au.ibm.com>
14626
14627 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
14628 void *' warning from -Wc++-compat.
14629 * Makefile.in (dominance.o-warn): Remove.
14630
38432148 146312009-01-23 Paolo Bonzini <bonzini@gnu.org>
9bacafeb
PB
14632
14633 PR tree-optimization/38932
14634 * fold-const.c (fold_unary_ignore_overflow): New.
14635 * tree.h (fold_unary_ignore_overflow): Declare.
14636 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
14637 * tree-ssa-sccvn.c (visit_reference_op_load,
14638 simplify_unary_expression): Likewise.
14639
2cd36c22
AN
146402009-01-22 Adam Nemet <anemet@caviumnetworks.com>
14641
14642 * c-decl.c (finish_struct): Move code to set DECL_PACKED after
14643 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields
14644 regardless of their type.
14645 * c-common.c (handle_packed_attribute): Don't ignore packed on
14646 bitfields.
14647 * c.opt (Wpacked-bitfield-compat): New warning option.
14648 * stor-layout.c (place_field): Warn if offset of a field changed.
14649 * doc/extend.texi (packed): Mention the ABI change.
14650 * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
14651 (Warning Options): Add it to the list.
14652
e4e624ab
L
146532009-01-22 H.J. Lu <hongjiu.lu@intel.com>
14654
14655 * c-opts.c (c_common_post_options): Fix a typo in comments.
14656
d0ea0759
SE
146572009-01-22 Steve Ellcey <sje@cup.hp.com>
14658
14659 PR middle-end/38615
14660 * gimplify.c (gimplify_init_constructor): Fix promotion of const
14661 variables to static.
14662 * doc/invoke.texi (-fmerge-all-constants): Update description.
14663
87673f84
UB
146642009-01-22 Uros Bizjak <ubizjak@gmail.com>
14665
14666 PR target/38931
14667 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
14668 (*movdi_1_rex64): Use type "mmx" for alternative 5.
14669
96339268
RE
146702009-01-22 Richard Earnshaw <rearnsha@arm.com>
14671
14672 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
14673 a word boundary.
14674 (LOCAL_ALIGNMENT): Similarly.
14675
442dc742 146762009-01-22 Mark Shinwell <shinwell@codesourcery.com>
87673f84 14677 Joseph Myers <joseph@codesourcery.com>
442dc742
MS
14678
14679 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
14680 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
14681 * config/arm/arm-tune.md: Regenerate.
14682 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
14683 -march=iwmmxt2.
14684
9b34732e
MS
146852009-01-22 Mark Shinwell <shinwell@codesourcery.com>
14686
14687 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
14688 version number to five.
14689
03c2a308
DS
146902009-01-22 Dodji Seketeli <dodji@redhat.com>
14691
14692 PR c++/38930
ba20e309 14693 * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
03c2a308
DS
14694 * c-common.c (set_underlying_type): Likewise.
14695 (is_typedef_decl ): Likewise
14696 * tree.h: Likewise
14697 (set_underlying_type): Likewise.
14698 (is_typedef_type): Likewise.
14699
1240d76e
VM
147002009-01-21 Vladimir Makarov <vmakarov@redhat.com>
14701
14702 PR middle-end/38587
14703 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
14704 crossing setjmps.
14705
b8a1087d
DK
147062009-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
14707
14708 PR bootstrap/37660
14709 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro.
14710 (LIBGCC_SPEC): Don't define.
14711 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC.
14712
435da628
UB
147132009-01-21 Uros Bizjak <ubizjak@gmail.com>
14714
14715 PR rtl-optimization/38879
14716 * alias.c (base_alias_check): Unaligned access via AND address can
14717 alias all surrounding object types except those with sizes equal
14718 or wider than the size of unaligned access.
14719
d597b3ce
DS
147202009-01-21 Dodji Seketeli <dodji@redhat.com>
14721
14722 PR c++/26693
ba20e309 14723 * c-decl.c (clone_underlying_type): Move this ...
d597b3ce 14724 * c-common.c (set_underlying_type): ... here.
435da628 14725 Also, make sure the function properly sets TYPE_STUB_DECL() on
d597b3ce
DS
14726 the newly created typedef variant type.
14727 (is_typedef_decl ): New entry point.
14728 * tree.h: Added a new member member_types_needing_access_check to
14729 struct tree_decl_non_common.
14730 (set_underlying_type): New entry point.
14731 (is_typedef_type): Likewise.
14732
71a6fe66
BM
147332009-01-21 Bingfeng Mei <bmei@broadcom.com>
14734
14735 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
14736 Check whether two instructions have memory references that
14737 belong to conflicting alias sets. walk_mems_1 and walk_mems_2
14738 are helper functions for traversing.
14739 * alias.h (insn_alias_sets_confilict_p): New prototypes.
14740 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
14741 not to draw dependency edge for instructions with non-conflicting
14742 alias sets.
14743
5a248274
JM
147442009-01-20 Joseph Myers <joseph@codesourcery.com>
14745
14746 PR other/38758
6b67572e
UB
14747 * longlong.h: Update copyright years. Use soft-fp license notice.
14748 Sync __clz_tab declaration with glibc.
5a248274 14749
4b84f3de
SE
147502009-01-20 Steve Ellcey <sje@cup.hp.com>
14751
14752 PR target/30687
14753 * doc/extend.texi (syscall_linkage): New.
14754 (version_id): Modify.
14755
37348bf1 147562009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
435da628 14757 Richard Guenther <rguenther@suse.de>
37348bf1
AP
14758
14759 PR tree-optimization/38747
14760 PR tree-optimization/38748
14761 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
14762 conversion if the base address is an indirect reference and the
14763 aliasing sets could cause issues.
14764
d0a58904
SP
147652009-01-20 Sebastian Pop <sebastian.pop@amd.com>
14766
2ba9daa7 14767 * common.opt (fgraphite, fgraphite-identity): Add comment for
d0a58904
SP
14768 explaining why these options are not documented.
14769
71e7afb2
SP
147702009-01-20 Sebastian Pop <sebastian.pop@amd.com>
14771
14772 * graphite.c (stmt_simple_for_scop_p): Also handle cases when
14773 gimple_call_lhs is NULL.
14774
38432148 147752009-01-20 Paolo Bonzini <bonzini@gnu.org>
09efeca1
PB
14776
14777 PR target/38868
14778 * emit-rtl.c (adjust_address_1): Make sure memref is never
14779 overwritten.
14780
cbb8dee3
BE
147812009-01-20 Ben Elliston <bje@au.ibm.com>
14782
14783 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
435da628 14784 const qualifier from arg parameter. Remove unnecessary cast to char *.
cbb8dee3
BE
14785 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
14786 const qualifier from arg 2.
14787
72c66596
IS
147882009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
14789
435da628 14790 * config/darwin.h: Add static-libgfortran to LINK_SPEC.
72c66596 14791
f68211cd
VM
147922009-01-19 Vladimir Makarov <vmakarov@redhat.com>
14793
14794 PR c/38869
14795 * rtl.h (reinit_regs): New prototype.
14796 * regclass.c: Include ira.h.
14797 (reinit_regs): New.
14798 * Makefile.in (regclass.o): Add ira.h.
14799 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
14800
6e4f1168
L
148012009-01-18 H.J. Lu <hongjiu.lu@intel.com>
14802
14803 PR target/38736
14804 * c-common.c (handle_aligned_attribute): Use
14805 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
14806 default alignment value.
14807
14808 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
14809
14810 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
14811 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
14812
14813 * doc/extend.texi: Update __attribute__ ((aligned)). Document
14814 __BIGGEST_ALIGNMENT__.
14815
14816 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
14817
890065bf
RG
148182009-01-18 Richard Guenther <rguenther@suse.de>
14819
14820 PR tree-optimization/38819
14821 * tree-flow.h (operation_could_trap_helper_p): Declare.
14822 * tree-eh.c (operation_could_trap_helper_p): Export.
14823 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
14824 * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
14825 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
14826 are about to insert a possibly trapping instruction and fail
14827 in this case.
14828
a729d731
AS
148292009-01-18 Andreas Schwab <schwab@suse.de>
14830
14831 * doc/install.texi (Configuration): Remove obsolete paragraph
14832 about use of --with-gnu-ld with --with-gnu-as.
14833
a640c13b
KH
148342009-01-18 Kazu Hirata <kazu@codesourcery.com>
14835
14836 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
14837 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
14838 Follow spelling conventions.
14839
dba2cc0c
BE
148402009-01-18 Ben Elliston <bje@au.ibm.com>
14841
14842 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
14843 C++ warning about implicit conversion from void * to struct
14844 bitmap_head_def *.
14845 (bitmap_obstack_free): Likewise for bitmap_element *.
bc127c63 14846 * Makefile.in (bitmap.o-warn): Remove.
dba2cc0c 14847
2207a498
DK
148482009-01-17 Dave Korn <dave.korn.cygwin@gmail.com>
14849
14850 * Makefile.in (BACKENDLIBS): Reorder to match dependencies.
14851
8137e465
SP
148522009-01-17 Sebastian Pop <sebastian.pop@amd.com>
14853 Tobias Grosser <tobi.grosser@amd.com>
14854
14855 * graphite.c (graphite_trans_scop_block): Do not block single
14856 nested loops.
14857
5be1c58c
AO
148582009-01-16 Alexandre Oliva <aoliva@redhat.com>
14859
14860 * ebitmap.h (ebitmap_iter_init): Initialize all fields.
14861 * ipa-struct-reorg.c (gen_struct_type): Replace known-true
14862 test with assertion.
14863
786ce82d
RG
148642009-01-16 Richard Guenther <rguenther@suse.de>
14865
14866 PR tree-optimization/38835
14867 PR middle-end/36227
14868 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
14869 and INT + PTR -> (INT)(PTR p+ INT) folding.
14870 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
14871
c1cb09ad
AN
148722009-01-16 Adam Nemet <anemet@caviumnetworks.com>
14873
14874 PR target/38554
14875 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
14876 the subreg from a lowpart subreg if it is also casting the value.
14877
bcab4e19
SP
148782009-01-16 Sebastian Pop <sebastian.pop@amd.com>
14879 Tobias Grosser <tobi.grosser@amd.com>
14880
14881 * graphite.c (compare_prefix_loops): New.
14882 (build_scop_canonical_schedules): Rewritten.
14883 (graphite_transform_loops): Move build_scop_canonical_schedules
14884 after build_scop_iteration_domain.
14885
0b040072
SP
148862009-01-16 Sebastian Pop <sebastian.pop@amd.com>
14887 Tobias Grosser <tobi.grosser@amd.com>
14888
2ba9daa7 14889 * graphite.c (add_conditions_to_domain): Add the loops to
0b040072
SP
14890 the dimension of the iteration domain. Do copy the domain
14891 only when it exists.
14892 (build_scop_conditions_1): Do not call add_conditions_to_domain.
14893 (add_conditions_to_constraints): New.
14894 (can_generate_code_stmt, can_generate_code): Removed.
14895 (gloog): Do not call can_generate_code.
14896 (graphite_transform_loops): Call add_conditions_to_constraints
14897 after building the iteration domain.
14898
56c6a499
JJ
148992009-01-16 Jakub Jelinek <jakub@redhat.com>
14900
14901 PR tree-optimization/38789
14902 * tree-ssa-threadedge.c
14903 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
14904 __builtin_constant_p.
14905
c95b2534 149062009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com>
cd3f1729
KZ
14907
14908 * dce.c (delete_unmarked_insns): Reversed the order that insns are
14909 examined before deleting them.
2ba9daa7 14910
c433cb14
RE
149112009-01-16 Richard Earnshaw <rearnsha@arm.com>
14912
14913 * function.c (aggregate_value_p): Correctly extract the function
14914 type from CALL_EXPR_FN lookup.
14915
c95b2534 149162009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com>
27d62fa4
HS
14917
14918 * config/picochip/picochip.c (picochip_override_options): Revert
14919 CFI asm flag disable commited previously.
14920
c77bb78f
SP
149212009-01-15 Sebastian Pop <sebastian.pop@amd.com>
14922 Tobias Grosser <tobi.grosser@amd.com>
14923 Jan Sjodin <jan.sjodin@amd.com>
14924
14925 * graphite.c (scan_tree_for_params): On substractions negate
14926 all the coefficients of the term.
14927 (clast_to_gcc_expression_red): New. Handle reduction expressions
14928 of more than two operands.
14929 (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
14930 (get_vdef_before_scop): Handle also the case of default definitions.
14931
574af2d6
RS
149322009-01-15 Richard Sandiford <rdsandiford@googlemail.com>
14933
14934 * caller-save.c (add_used_regs_1, add_used_regs): New functions.
14935 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
14936 Also use them when walking CALL_INSN_FUNCTION_USAGE.
14937
e939805b
L
149382009-01-15 H.J. Lu <hongjiu.lu@intel.com>
14939 Joey Ye <joey.ye@intel.com>
14940
14941 PR middle-end/37843
14942 * cfgexpand.c (expand_stack_alignment): Don't update stack
14943 boundary nor check incoming stack boundary here.
14944 (gimple_expand_cfg): Update stack boundary and check incoming
14945 stack boundary here.
14946
c95b2534 149472009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com>
750900db 14948
435da628 14949 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
2ba9daa7 14950
0196c95e
JJ
149512009-01-14 Jakub Jelinek <jakub@redhat.com>
14952
14953 PR rtl-optimization/38245
14954 * calls.c (expand_call): Add stack arguments to
14955 CALL_INSN_FUNCTION_USAGE even for pure calls (when
14956 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
14957 in regs and partially in memory or BLKmode arguments.
14958 (emit_library_call_value_1): Add stack arguments to
14959 CALL_INSN_FUNCTION_USAGE even for pure calls (when
14960 ACCUMULATE_OUTGOING_ARGS).
14961 * dce.c: Include tm_p.h.
14962 (find_call_stack_args): New function.
14963 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
14964 argument.
14965 (mark_insn): Call find_call_stack_args for CALL_Ps.
14966 (prescan_insns_for_dce): Walk insns backwards in bb rather than
14967 forwards. Allocate and free arg_stores bitmap if needed, pass it
14968 down to deletable_insn_p, don't mark stores set in arg_stores
14969 bitmap, clear the bitmap at the beginning of each bb.
14970 * Makefile.in (dce.o): Depend on $(TM_P_H).
14971
6df6bcfa
MM
149722009-01-14 Michael Meissner <gnu@the-meissners.org>
14973
14974 PR target/22599
435da628
UB
14975 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
14976 to make sure the insn is a conditional test (bug 22599). Reformat a
14977 few long lines.
6df6bcfa 14978
765ec70c
SP
149792009-01-14 Sebastian Pop <sebastian.pop@amd.com>
14980
14981 PR middle-end/38431
14982 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
14983 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
14984 (gloog): Do not call cleanup_tree_cfg.
2ba9daa7 14985 (graphite_transform_loops): Call cleanup_tree_cfg after all
765ec70c
SP
14986 scops have been code generated.
14987
7de2b688
BS
149882009-01-14 Basile Starynkevitch <basile@starynkevitch.net>
14989 * doc/gty.texi (Invoking the garbage collector): Added new node
14990 and section documenting ggc_collect.
14991
10bd6c5c
RG
149922009-01-14 Richard Guenther <rguenther@suse.de>
14993
14994 PR tree-optimization/38826
14995 PR middle-end/38477
14996 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
14997 initialization notes only if we actually emitted a warning.
14998 (intra_create_variable_infos): Add constraints for a result decl
14999 that is passed by hidden reference.
15000 (build_pred_graph): Mark all related variables non-direct on
15001 address-taking.
15002
9c7c70ee
NC
150032009-01-14 Nick Clifton <nickc@redhat.com>
15004
15005 * ira-conflicts.c: Include addresses.h for the definition of
15006 base_reg_class.
435da628
UB
15007 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
15008 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
9c7c70ee 15009
cf0c2a60
VM
150102009-01-13 Vladimir Makarov <vmakarov@redhat.com>
15011
15012 PR target/38811
15013 * Makefile.in (ira-lives.o): Add except.h.
15014
15015 * ira-lives.c: Include except.h.
15016 (process_bb_node_lives): Process can_throw_internal.
15017
d3302fd3
JJ
150182009-01-13 Jakub Jelinek <jakub@redhat.com>
15019
15020 PR rtl-optimization/38774
15021 * combine.c (simplify_set): When undoing cc_use change, don't do
15022 PUT_CODE on the newly created comparison, but instead put back the
15023 old comparison.
15024
7ab23fd0
JM
150252009-01-13 Joseph Myers <joseph@codesourcery.com>
15026
15027 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
15028 values. Remove duplicate arm8 entry.
15029
f9344488
SP
150302009-01-13 Sebastian Pop <sebastian.pop@amd.com>
15031
15032 PR tree-optimization/38786
15033 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
15034 the SSA_NAME case of expand_scalar_variables_expr.
15035 Set the type of an expression to the type of its assign statement.
15036 (expand_scalar_variables_expr): Also gather the scalar computation
15037 used to index the memory access. Do not pass loop_p.
15038 Fix comment. Stop recursion on tcc_constant or tcc_declaration.
15039 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
bef3c57b
UB
15040 the gimple_stmt_iterator where it inserts new code.
15041 Do not pass loop_p.
f9344488
SP
15042 (copy_bb_and_scalar_dependences): Do not pass loop_p.
15043 (translate_clast): Update call to copy_bb_and_scalar_dependences.
15044
2d8bb84d
SP
150452009-01-13 Sebastian Pop <sebastian.pop@amd.com>
15046
15047 * graphite.h (debug_value): Removed.
15048 * graphite.c (debug_value): Removed.
15049
ff128632
RE
150502009-01-13 Richard Earnshaw <rearnsha@arm.com>
15051
435da628
UB
15052 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
15053 ldrd/strd with two 32-bit instructions.
ff128632 15054
d5a0a47b
RE
150552009-01-13 Richard Earnshaw <rearnsha@arm.com>
15056
435da628
UB
15057 * config/arm/arm.c (struct processors): Pass for speed down into
15058 cost helper functions.
d5a0a47b
RE
15059 (const_ok_for_op): Handle COMPARE and inequality nodes.
15060 (arm_rtx_costs_1): Rewrite.
15061 (arm_size_rtx_costs): Update prototype.
15062 (arm_rtx_costs): Pass speed down to helper functions.
15063 (arm_slowmul_rtx_costs): Rework cost calculations.
15064 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
15065 (arm_9e_rtx_costs): Likewise.
15066
26d5bf5b
UB
150672009-01-13 Uros Bizjak <ubizjak@gmail.com>
15068
15069 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
435da628 15070 relocations of local symbols wider than UNITS_PER_WORD are not valid.
26d5bf5b
UB
15071 (alpha_legitimize_address): Do not split local symbols wider than
15072 UNITS_PER_WORD into HIGH/LO_SUM parts.
15073
5d14e3d5
DS
150742009-01-13 Danny Smith <dannysmith@users.sourceforge.net>
15075
15076 PR bootstrap/38580
15077 * gcc.c (process_command): Replace call to execvp with calls
15078 to pex_one and exit.
15079
33faafca
AS
150802009-01-03 Anatoly Sokolov <aesok@post.ru>
15081
15082 PR target/29141
15083 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
15084 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
15085 variant for devices with 3-byte PC.
ba20e309 15086 (__tablejump_elpm__): New.
33faafca 15087
634b5df5
JJ
150882009-01-12 Jakub Jelinek <jakub@redhat.com>
15089
15090 PR c/32041
15091 * c-parser.c (c_parser_postfix_expression): Allow `->' in
15092 offsetof member-designator, handle it as `[0].'.
15093
2842bb86
JDA
150942009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15095
15096 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
15097 function when not using named sections on targets with named sections
15098 if branch distance is less than 262132.
15099
76ee70f6
RE
151002009-01-12 Richard Earnshaw <rearnsha@arm.com>
15101
15102 * combine.c (combine_instructions): Recompute
15103 optimize_this_for_speed_p for each BB in the main combine loop.
15104
f56e675d
TB
151052009-01-12 Tomas Bily <tbily@suse.cz>
15106
15107 PR middlend/38385
26d5bf5b
UB
15108 * tree-loop-distribution.c (prop_phis): New function.
15109 (generate_builtin): Call prop_phis.
15110 * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
f56e675d 15111
c2152239
JJ
151122009-01-12 Jakub Jelinek <jakub@redhat.com>
15113
15114 PR tree-optimization/38807
15115 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
15116 gimple_visited_p unless stmt is GIMPLE_ASSIGN.
15117
0e510b3e
AN
151182009-01-11 Adam Nemet <anemet@caviumnetworks.com>
15119
15120 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
15121 subreg of op0 to the original op0.
15122
c95b2534 151232009-01-11 Laurent GUERBY <laurent@guerby.net>
10270471
LG
15124
15125 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
2ba9daa7 15126
53a7ff9a
MS
151272009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
15128
15129 PR debug/7055
60839f5d 15130 * mips-tfile.c (parse_def): Fix parsing of def strings
53a7ff9a
MS
15131 starting with digits.
15132
b3a796bc
JJ
151332009-01-10 Jakub Jelinek <jakub@redhat.com>
15134
15135 PR target/38695
15136 * config/arm/arm.c (arm_is_long_call_p): Don't call
15137 arm_function_in_section_p if decl isn't a FUNCTION_DECL.
15138
b21b850e
SB
151392009-01-09 Steven Bosscher <steven@gcc.gnu.org>
15140
15141 * regrename.c (regrename_optimize): Fix dumping.
15142 (find_oldest_value_reg): Preserve REG_POINTER.
15143 (copy_hardreg_forward_1): Likewise.
15144
e0e10d3a
DN
151452009-01-09 Diego Novillo <dnovillo@google.com>
15146
bf9b2cc9 15147 * gimple.h (struct gimple_statement_base) <uid>: Document
e0e10d3a
DN
15148 the restrictions on its use.
15149 (gimple_uid): Tidy.
15150 (gimple_set_uid): Tidy.
15151
c9da2ae8
JJ
151522009-01-09 Jakub Jelinek <jakub@redhat.com>
15153
15154 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
15155 zero guard even if align_bytes != 0 and count is smaller than
15156 size_needed.
15157
38432148 151582009-01-09 Vladimir Makarov <vmakarov@redhat.com>
a174c19c
VM
15159
15160 PR rtl-optimization/38495
26d5bf5b 15161 * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
a174c19c
VM
15162 (add_range_and_copies_from_move_list): Print all added ranges.
15163 Add ranges to memory optimized destination.
15164
260fda3d
JJ
151652009-01-09 Jakub Jelinek <jakub@redhat.com>
15166
6f6278ad
JJ
15167 PR target/38686
15168 PR target/38708
15169 * config/i386/i386.c (override_options): Reject
15170 -mstringop-strategy=rep_8byte with -m32.
15171 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
15172 to 1. Do count comparison against epilogue_size_needed at compile
15173 time even when count_exp was constant forced into register. For
15174 size_needed don't jump to epilogue, instead just avoid aligning
15175 and invoke the body algorithm. If need_zero_guard, add zero guard
15176 even if count is non-zero, but smaller than size_needed + number of
15177 bytes that could be stored for alignment.
15178 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
15179 to 1. If need_zero_guard, add zero guard even if count is non-zero,
15180 but smaller than size_needed + number of bytes that could be stored
15181 for alignment. Compare size_needed with epilogue_size_needed instead
15182 of desired_align - align, don't adjust size_needed, pass
15183 epilogue_size_needed to the epilogue expanders.
15184
260fda3d 15185 PR c/35742
26d5bf5b 15186 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
260fda3d 15187
67b846fa
JDA
151882009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15189
15190 * pa.c (last_address): Change to unsigned.
15191 (update_total_code_bytes): Change argument to unsigned. Don't
15192 check if insn addresses are set.
15193 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
15194 addresses are not set.
15195 (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
15196
91c82473
NC
151972009-01-09 Nick Clifton <nickc@redhat.com>
15198
15199 * config/sh/symbian.c: Replace uses of DECL_INLINE with
15200 DECL_DECLARED_INLINE_P.
15201
4017e262
JJ
152022009-01-09 Jakub Jelinek <jakub@redhat.com>
15203
0a49e5c2
JJ
15204 PR middle-end/38347
15205 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
15206 GET_MODE (op0) in operand_subword_force calls.
15207
4017e262
JJ
15208 PR middle-end/38771
15209 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
15210 fold_convert arg0 operands to TREE_TYPE (op0) first.
15211
7cd06356
VM
152122009-01-08 Vladimir Makarov <vmakarov@redhat.com>
15213
15214 * params.def (ira-max-conflict-table-size): Decrease default value
15215 to 1000.
15216
96867bbd
JJ
152172009-01-08 Jakub Jelinek <jakub@redhat.com>
15218
15219 PR tree-optimization/37031
15220 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
15221 on parameter_set.
15222 (build_access_matrix): Reserve correct size for AM_MATRIX vector,
15223 allocate it using gc instead of heap, use VEC_quick_push instead of
15224 VEC_safe_push.
15225 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
15226 instead of heap, use VEC_quick_push instead of VEC_safe_push.
15227 * tree-data-ref.h (struct access_matrix): Change matrix to gc
15228 allocated vector from heap allocated.
15229 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
15230 * tree-loop-linear.c (linear_transform_loops): Allocate nest
15231 vector only after perfect_loop_nest_depth call.
15232
68f61c3d
SP
152332009-01-08 Sebastian Pop <sebastian.pop@amd.com>
15234 Jan Sjodin <jan.sjodin@amd.com>
15235
15236 PR tree-optimization/38559
15237 * graphite.c (debug_value, copy_constraint,
15238 swap_constraint_variables, scale_constraint_variable, ): New.
15239 (get_lower_bound, get_upper_bound): Removed.
15240 (graphite_trans_bb_strip_mine): Clean up this code that works
15241 only for constant number of iterations. Fully copy upper and
15242 lower bound constraints, not only the constant part of them.
15243 * graphite.h (debug_value): Declared.
15244
82567e33
IR
152452009-01-08 Ira Rosen <irar@il.ibm.com>
15246
15247 PR tree-optimization/37194
15248 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
2ba9daa7 15249 Don't add the cost of cost model guard in prologue to scalar
82567e33
IR
15250 outside cost in case of known number of iterations.
15251
7da13f1d
NF
152522009-01-07 Nathan Froyd <froydnj@codesourcery.com>
15253 Alan Modra <amodra@bigpond.net.au>
15254
15255 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
15256 non-word-aligned REG+CONST addressing.
15257
c0f64575
UB
152582009-01-07 Uros Bizjak <ubizjak@gmail.com>
15259
15260 PR target/38706
15261 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
15262 free_after_compilation when outputting a thunk.
15263 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
15264 Do not call free_after_compilation here.
15265
301b6a4e
UB
152662009-01-07 Uros Bizjak <ubizjak@gmail.com>
15267
15268 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
301b6a4e
UB
15269 (ix86_valid_target_attribute_inner_p): Ditto.
15270
6a114766
JS
152712009-01-07 Jan Sjodin <jan.sjodin@amd.com>
15272
15273 PR tree-optimization/38492
15274 PR tree-optimization/38498
15275 * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
15276 * tree-chrec.h (scev_is_linear_expression): Declared.
15277 * graphite.c (graphite_cannot_represent_loop_niter): New.
15278 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
15279 (graphite_loop_normal_form): Use gcc_assert.
15280 (scan_tree_for_params): Use CASE_CONVERT.
15281 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
15282 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
15283 Use gcc_assert. Discard scops that contain unhandled cases.
15284 (build_scop_conditions): Return a boolean status for unhandled cases.
15285 (strip_mine_profitable_p): Print the loop number, not its depth.
15286 (is_interchange_valid): Pass the depth of the loop nest, don't
15287 recompute it wrongly.
15288 (graphite_trans_bb_block): Same.
15289 (graphite_trans_bb_block): Print tentative of loop blocking.
15290 (graphite_trans_scop_block): Do not print that the loop has been
15291 blocked.
15292 (graphite_transform_loops): Do not handle scops that contain condition
15293 scalar phi nodes.
15294
65b82caa
L
152952009-01-07 H.J. Lu <hongjiu.lu@intel.com>
15296
15297 AVX Programming Reference (December, 2008)
15298 * config/i386/avxintrin.h (_mm256_stream_si256): New.
15299 (_mm256_stream_pd): Likewise.
15300 (_mm256_stream_ps): Likewise.
15301
15302 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
15303 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
15304 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
15305 (bdesc_special_args): Add __builtin_ia32_movntdq256,
15306 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
15307 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
15308 (ix86_expand_special_args_builtin): Likewise.
15309
15310 * config/i386/sse.md (AVXMODEDI): New.
15311 (avx_movnt<mode>): Likewise.
15312 (avx_movnt<mode>): Likewise.
15313 (<sse>_movnt<mode>): Remove AVX support.
15314 (sse2_movntv2di): Likewise.
15315
cef158f9
RG
153162009-01-07 Richard Guenther <rguenther@suse.de>
15317
15318 PR middle-end/38751
15319 * fold-const.c (extract_muldiv): Remove obsolete comment.
15320 (fold_plusminus_mult_expr): Undo MINUS_EXPR
15321 to PLUS_EXPR canonicalization for the canonicalization.
15322
246cb5be
GP
153232009-01-07 Gerald Pfeifer <gerald@pfeifer.com>
15324
15325 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
15326 hosted cross-compilers generating less efficient code.
15327
84b9b872
RS
153282009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
15329
15330 * function.h (rtl_data): Add a dbr_scheduled_p field.
15331 * reorg.c (dbr_schedule): Set it.
15332 (gate_handle_delay_slots): Check it.
15333 * config/mips/mips.c (mips_base_delayed_branch): Delete.
15334 (mips_reorg): Check flag_delayed_branch instead of
15335 mips_base_delayed_branch.
15336 (mips_override_options): Don't set mips_base_delayed_branch
15337 or flag_delayed_branch.
15338
ace984c8
RS
153392009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
15340
15341 PR rtl-optimization/38426.
15342 * ira.c (ira): Set current_function_is_leaf earlier.
15343
7ad7809b
JJ
153442009-01-06 Jakub Jelinek <jakub@redhat.com>
15345
15346 PR rtl-optimization/38722
15347 * combine.c (try_combine): Don't modify PATTERN (i3) and notes
15348 too early, only set a flag and modify after last possible
15349 undo_all point.
15350
c52ec948
JJ
153512009-01-06 Janis Johnson <janis187@us.ibm.com>
15352
15353 PR c/34252
15354 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
15355 * real.c (decimal_single_format): Correct values of emin and emax.
15356 (decimal_double_format): Ditto.
15357 (decimal_quad_format): Ditto.
15358 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
15359 computation of DECnn_MIN and DECnn_MAX for corrected values of
15360 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of
15361 __DECnn_MIN__, and adjust its computation for the corrected value
15362 of emin.
15363
300240e1
JH
153642009-01-06 Jan Hubicka <jh@suse.cz>
15365
15366 PR target/38744
435da628 15367 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
300240e1 15368
271c069e
GP
153692009-01-06 Gerald Pfeifer <gerald@pfeifer.com>
15370
15371 * doc/contrib.texi (Contributors): Slightly adjust the end note.
15372 Add Robert Clark to the list of testers.
15373
64e4c301 153742009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 15375 Kai Tietz <kai.tietz@onevision.com>
64e4c301 15376
435da628
UB
15377 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
15378 * config/i386/i386.c (ix86_expand_call): Add clobbers.
64e4c301 15379
7650b83e 153802009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 15381 Kai Tietz <kai.tietz@onevision.com>
7650b83e 15382
435da628
UB
15383 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
15384 for w64 ABI.
15385 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
7650b83e
JH
15386 (ix86_nsaved_regs): Count only general purpose regs.
15387 (ix86_nsaved_sseregs): New.
15388 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
15389 to 16 for w64; compute padding and size of sse reg save area.
301b6a4e
UB
15390 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
15391 general purpose regs.
7650b83e
JH
15392 (ix86_emit_save_sse_regs_using_mov): New.
15393 (ix86_expand_prologue): Save SSE regs if needed.
15394 (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
15395 (ix86_emit_restore_sse_regs_using_mov): New.
15396 (ix86_expand_epilogue): Save SSE regs if needed.
15397
9aa5c1b2 153982009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 15399 Kai Tietz <kai.tietz@onevision.com>
9aa5c1b2 15400
435da628
UB
15401 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
15402 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
15403 functions when accumulate outgoing args is off.
9aa5c1b2 15404
f7556aae
L
154052009-01-06 H.J. Lu <hongjiu.lu@intel.com>
15406
15407 PR bootstrap/38742
15408 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
15409 before using pseudos_have_intersected_live_ranges_p.
15410
15411 * ira-int.h (ira_assert): Always define.
15412
e47b7d04
L
154132009-01-06 H.J. Lu <hongjiu.lu@intel.com>
15414
15415 AVX Programming Reference (December, 2008)
15416 * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
15417 (_mm256_permute2_pd): Likewise.
15418 (_mm_permute2_ps): Likewise.
15419 (_mm256_permute2_ps): Likewise.
15420 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
15421 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
15422
15423 * config/i386/i386.c (ix86_builtins): Remove
15424 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
15425 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
15426 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
15427 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
15428 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
15429 (bdesc_args): Remove __builtin_ia32_vpermil2pd,
15430 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
15431 __builtin_ia32_vpermil2ps256.
15432 (ix86_init_mmx_sse_builtins): Updated.
15433 (ix86_expand_args_builtin): Likewise.
15434
44b86471
JDA
154352009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15436
e47b7d04
L
15437 * pa.c (output_call): Relocate non-jump insns in the delay slot of
15438 long absolute calls when generating PA 2.0 code.
44b86471 15439
311aab06
VM
154402009-01-05 Vladimir Makarov <vmakarov@redhat.com>
15441
15442 PR rtl-optimization/38583
15443 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
15444
15445 * params.def (ira-max-conflict-table-size): New.
15446
15447 * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
2ba9daa7 15448
311aab06 15449 * ira.h (ira_conflicts_p): New external definition.
2ba9daa7 15450
311aab06
VM
15451 * ira-conflicts.c (build_conflict_bit_table): Do not build too big
15452 table. Report this. Return result of building.
15453 (ira_build_conflicts): Use ira_conflicts_p. Check result of
15454 building conflict table.
15455
301b6a4e 15456 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
311aab06 15457 (ira_color): Use ira_conflicts_p.
2ba9daa7 15458
311aab06
VM
15459 * global.c: Include ira.h.
15460 (pseudo_for_reload_consideration_p, build_insn_chain): Use
15461 ira_conflicts_p.
15462
15463 * Makefile.in (global.o): Add ira.h.
2ba9daa7 15464
311aab06
VM
15465 * ira-build.c (mark_all_loops_for_removal,
15466 propagate_some_info_from_allocno): New.
15467 (remove_unnecessary_allocnos): Call
15468 propagate_some_info_from_allocno.
15469 (remove_low_level_allocnos): New.
15470 (remove_unnecessary_regions): Add parameter. Call
15471 mark_all_loops_for_removal and remove_low_level_allocnos. Pass
15472 parameter to remove_unnecessary_regions.
15473 (ira_build): Remove all regions but root if the conflict table was
15474 not built. Update conflict hard regs for allocnos crossing calls.
15475
15476 * ira.c (ira_conflicts_p): New global.
15477 (ira): Define and use ira_conflicts_p.
15478
15479 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
15480 count_spilled_pseudo, find_reg, alter_reg, finish_spills,
301b6a4e 15481 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
2ba9daa7 15482
5641785f
BE
154832009-01-06 Ben Elliston <bje@au.ibm.com>
15484
15485 * gengtype-lex.l (YY_NO_INPUT): Define.
15486
e4e5261f
AP
154872009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
15488
15489 PR c/34911
5641785f
BE
15490 * c-common.c (handle_vector_size_attribute): Also reject
15491 BOOLEAN_TYPE types.
e4e5261f 15492
7b10257f
SP
154932009-01-05 Sebastian Pop <sebastian.pop@amd.com>
15494
15495 PR tree-optimization/38492
15496 * graphite.c (rename_map_elt, debug_rename_elt,
301b6a4e
UB
15497 debug_rename_map_1, debug_rename_map, new_rename_map_elt,
15498 rename_map_elt_info, eq_rename_map_elts,
15499 get_new_name_from_old_name, bb_in_sese_p): Moved around.
7b10257f
SP
15500 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
15501 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
15502 (sese_build_livein_liveouts): New.
15503 (new_sese, free_sese): New.
15504 (new_scop): Call new_sese.
15505 (free_scop): Call free_sese.
15506 (rename_variables_from_edge, rename_phis_end_scop): Removed.
15507 (register_old_new_names): Renamed register_old_and_new_names.
15508 (register_scop_liveout_renames, add_loop_exit_phis,
15509 insert_loop_close_phis, struct igp,
15510 default_liveout_before_guard, add_guard_exit_phis,
15511 insert_guard_phis, copy_renames): New.
15512 (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
15513 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
15514 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
15515 (scop_adjust_phis_for_liveouts): New.
15516 (gloog): Call scop_adjust_phis_for_liveouts.
15517
15518 * graphite.h (struct sese): Documented. Added fields liveout,
301b6a4e 15519 num_ver and livein.
7b10257f
SP
15520 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
15521 (new_sese, free_sese, sese_build_livein_liveouts): Declared.
15522 (struct scop): Added field liveout_renames.
15523 (SCOP_LIVEOUT_RENAMES): New.
15524
9761fcc7
HJ
155252009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
15526
15527 PR tree-optimization/38510
15528 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
15529 (translate_clast): Call recompute_all_dominators before
15530 graphite_verify.
15531 (gloog): Call recompute_all_dominators before graphite_verify.
15532
155332009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
c95b2534 15534 Jan Sjodin <jan.sjodin@amd.com>
9761fcc7
HJ
15535
15536 PR tree-optimization/38500
15537 * graphite.c (create_sese_edges): Call fix_loop_structure after
15538 splitting blocks.
15539
c95b2534 155402009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
48a01864
JS
15541
15542 * config.gcc: Add m32r*-*-rtems*.
15543 * config/m32r/rtems.h: New file.
15544
fc0cd180
BE
155452009-01-05 Ben Elliston <bje@au.ibm.com>
15546
15547 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
15548 (.po.pox): Likewise.
15549 (po/gcc.pot): Likewise.
15550
3106d8e5
DM
155512009-01-04 David S. Miller <davem@davemloft.net>
15552
15553 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
15554 (STARTING_FRAME_OFFSET): Always set to zero.
15555
0009b473
RS
155562009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
15557
15558 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
15559 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
15560 fixed-point types, and vectors of the same.
15561
4f24c6d6
RS
155622009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
15563
15564 * config/mips/sync.md (*mb_barrier): Rename to...
15565 (*memory_barrier): ...this.
15566
1df48f5c
JW
155672009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com>
15568
15569 * doc/extend.texi (Function Attributes): Move @cindex after @item
eefe5da0 15570 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
1df48f5c
JW
15571 and put in alphabetical order. Fix 'target' name and put in order.
15572 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
15573 typos.
15574
1a8c13b3
UB
155752009-01-04 Uros Bizjak <ubizjak@gmail.com>
15576
15577 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
15578 (memory_barrier): Expand as unspec instead of unspec_volatile.
15579 Remove mem:BLK from insn operands. Use Pmode scratch register.
15580 (*memory_barrier): Define as unspec instead of unspec_volatile.
15581 Use (match_dup 0) as input operand.
15582
15583 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
15584 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
15585 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
15586 scratch register. Remove operand 1.
15587 (*stbar): Define as unspec instead of unspec_volatile.
15588 Use (match_dup 0) as input operand, remove (const_int 8).
15589 (*membar): Define as unspec instead of unspec_volatile.
15590 Use (match_dup 0) as input operand, remove input operand 2.
15591
15592 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
15593 (memory_barrier): Expand as unspec instead of unspec_volatile.
15594 Remove mem:BLK from insn operands. Use Pmode scratch register.
15595 (*memory_barrier): Define as unspec instead of unspec_volatile.
15596 Use (match_dup 0) as input operand.
15597
15598 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
15599 Remove mem:BLK from insn operands. Use Pmode scratch register.
15600 Set volatile flag on operand 0.
15601 (*memory_barrier): New insn pattern.
15602
15603 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
15604 insn operands.
15605 (*memory_barrier): Use (match_dup 0) as input operand.
15606
15607 * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
15608 Remove mem:BLK from insn operands. Use Pmode scratch register.
15609 Set volatile flag on operand 0.
301b6a4e 15610 (*mb_internal): New insn pattern.
1a8c13b3
UB
15611
15612 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
15613
fb0703f7
SB
156142009-01-04 Steven Bosscher <steven@gcc.gnu.org>
15615
15616 PR middle-end/38586
15617 * function.c (struct temp_slot): Move to the section of the file
15618 that deals with temp slots. Remove field 'address'.
15619 (temp_slot_address_table): New hash table of address -> temp slot.
15620 (struct temp_slot_address_entry): New struct, items for the table.
15621 (temp_slot_address_compute_hash, temp_slot_address_hash,
15622 temp_slot_address_eq, insert_temp_slot_address): Support functions
15623 for the new table.
15624 (find_temp_slot_from_address): Rewrite to use the new hash table.
15625 (remove_unused_temp_slot_addresses): Remove addresses of temp
15626 slots that have been made available.
15627 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
15628 worker function for remove_unused_temp_slot_addresses.
15629 (assign_stack_temp_for_type): Don't clear the temp slot address list.
15630 Add the temp slot address to the address -> temp slot map.
15631 (update_temp_slot_address): Update via insert_temp_slot_address.
15632 (free_temp_slots): Call remove_unused_temp_slot_addresses.
15633 (pop_temp_slots): Likewise.
15634 (init_temp_slots): Allocate the address -> temp slot map, or empty
15635 the map if it is already allocated.
15636 (prepare_function_start): Initialize temp slot processing.
15637
b5a430f3
SB
156382009-01-04 Steven Bosscher <steven@gcc.gnu.org>
15639
15640 PR middle-end/38584
15641 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
15642 Calculate the size of all stack vars assuming no packing of stack
15643 vars will happen, replacing a quadratic algorithm with a linear one.
15644
5d560619
JJ
156452009-01-03 Jakub Jelinek <jakub@redhat.com>
15646
15647 PR target/38707
15648 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
15649 can't be used.
15650
953a7caa
DN
156512009-01-03 Diego Novillo <dnovillo@google.com>
15652
15653 * doc/contrib.texi: Update contributions.
15654
5f26a230
JJ
156552009-01-03 Jakub Jelinek <jakub@redhat.com>
15656
493aa551
JJ
15657 PR c++/38705
15658 * builtins.c (fold_builtin_memory_op): Give up if either operand
15659 is volatile. Set srctype or desttype to non-qualified version
15660 of the other type.
15661
5f26a230
JJ
15662 PR c/38700
15663 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
15664 and FUNCTION_DECLs.
15665
c95b2534 156662009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
fafe34f9
KZ
15667
15668 PR rtl-optimization/35805
15669 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
15670 problem if fast dce is able to remove any instructions.
15671 * dce.c (dce_process_block): Fix dump message.
2ba9daa7 15672
0b355794
MM
156732009-01-02 Mark Mitchell <mark@codesourcery.com>
15674
15675 PR 33649
15676 * tree-ssa-pre.c (compute_antic): Correct loop bounds.
15677
0cf0d02b
JJ
156782009-01-02 Jakub Jelinek <jakub@redhat.com>
15679
15680 PR middle-end/38690
15681 * tree-flow.h (op_code_prio, op_prio): New prototypes.
15682 * tree-pretty-print.c (op_code_prio): New function.
15683 (op_prio): No longer static. Use op_code_prio.
15684 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
15685 Use op_prio and op_code_prio to determine if () should be
15686 printed around operand(s) or not.
15687
15688 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
15689 dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
15690 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
15691 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
15692 pp_character instead of pp_string for single letter printing.
15693
e3606f3b
RS
156942009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
15695
15696 * doc/extend.texi: Fix '#pragma GCC option' typo.
15697
c95b2534 156982009-01-02 Richard Guenther <rguenther@suse.de>
00f39bd5 15699
a5f061dc
RG
15700 * doc/install.texi (--enable-checking): Mention different
15701 default for stage1.
15702 (--enable-stage1-checking): Document.
00f39bd5 15703
26de0bcb
AP
157042009-01-01 Andrew Pinski <pinskia@gmail.com>
15705
15706 PR middle-end/30142
15707 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
15708 case to be an error.
15709
7a7d8fab
BE
157102009-01-02 Ben Elliston <bje@au.ibm.com>
15711
15712 * config/fp-bit.h (pack_d): Constify argument.
15713 * config/fp-bit.c (makenan): Constify return type. Remove casts.
15714 (isnan): Constify argument.
15715 (isinf): Likewise.
15716 (iszero): Likewise.
15717 (pack_d): Likewise.
15718 (_fpadd_parts): Constify return type.
15719 (_fpmul_parts): Likewise.
15720 (_fpdiv_parts): Likewise.
15721
b295aee2
JJ
157222009-01-01 Jakub Jelinek <jakub@redhat.com>
15723
15724 PR c/36489
15725 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only
15726 warn about overwriting initializer with side-effects or
15727 -Woverride-init if !IMPLICIT.
15728 (output_init_element): Likewise. Pass IMPLICIT down to
15729 add_pending_init.
15730 (process_init_element): Add IMPLICIT argument. Pass it down
15731 to output_init_element.
15732 (push_init_element, pop_init_level, set_designator): Adjust
15733 process_init_element callers.
15734 (set_nonincremental_init, set_nonincremental_init_from_string):
15735 Adjust add_pending_init callers.
15736 (output_pending_init_elements): Adjust output_init_element callers.
15737 * c-tree.h (process_init_element): Adjust prototype.
15738 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
15739 process_init_element callers.
ad41bd84
JM
15740
15741\f
15742Copyright (C) 2009 Free Software Foundation, Inc.
15743
15744Copying and distribution of this file, with or without modification,
15745are permitted in any medium without royalty provided the copyright
15746notice and this notice are preserved.