]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
winnt.c (i386_pe_encode_section_info): Update call to make_decl_one_only.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
daa0eeb8
RAE
12009-06-16 Rafael Avila de Espindola <espindola@google.com>
2
3 * config/i386/winnt.c (i386_pe_encode_section_info): Update call to
4 make_decl_one_only.
5
0ec19b8c
MJ
62009-06-16 Martin Jambor <mjambor@suse.cz>
7
8 PR tree-optimization/40432
9 * tree-sra.c (sra_modify_assign): When creating VIEW_CONVERT_EXPR,
10 check whether we need to force gimple register operand.
11
2b26b801
MJ
122009-06-16 Martin Jambor <mjambor@suse.cz>
13
14 PR tree-optimization/40413
15 * tree-sra.c (load_assign_lhs_subreplacements): Pass offset to
16 build_ref_for_offset.
17 (propagate_subacesses_accross_link): Fix a typo in a comment.
18
7c5222ff
IR
192009-06-16 Ira Rosen <irar@il.ibm.com>
20
21 * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
22 with additional parameter.
23 * tree-vectorizer.h (enum vect_def_type): Add new value
24 vect_nested_cycle.
25 (enum vect_relevant): Add comments.
26 (vect_is_simple_reduction): Add new argument.
27 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Add comments.
28 Detect nested cycles.
29 (vect_is_simple_reduction): Update documentation, add an argument to
30 distinguish inner-loop reduction from nested cycle, detect nested
31 cycles, fix printings and indentation, don't swap operands in case
32 of nested cycle.
33 (get_initial_def_for_reduction): Handle subtraction.
34 (vect_create_epilog_for_reduction): Add new argument to specify
35 reduction variable.
36 (vect_finalize_reduction): Handle subtraction, fix comments.
37 (vectorizable_reduction): Handle nested cycles. In case of nested cycle
38 keep track of the reduction variable position. Call
39 vect_is_simple_reduction with additional parameter. Use original
40 statement code in reduction epilogue for nested cycle. Call
41 vect_create_epilog_for_reduction with additional parameter.
42 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Assert inner-loop
43 vectorization.
44 (vect_recog_widen_sum_pattern): Likewise.
45 * tree-vect-stmts.c (process_use): Distinguish between nested cycles
46 and reductions.
47 (vect_mark_stmts_to_be_vectorized): Likewise.
48 (vect_get_vec_def_for_operand): Handle nested cycles.
49
d376d545
RW
502009-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
51
52 * doc/invoke.texi (Debugging Options): Fix option index entries
53 for -fdump-statistics, -frandom-seed add entries for
54 -fdump-tree-original, -fdump-tree-optimized, -frandom-seed.
55 (FRV Options): Fix entries for -mTLS, -mtls.
56 (HPPA Options): Fix entries for -mgnu-ld, -mhp-ld.
57 (i386 and x86-64 Options): Fix entry for -mno-red-zone.
58 (M68hc1x Options): Fix @itemx for -mnominmax.
59 (MCore Options): Fix entry for -mno-lsim.
60 (MMIX Options): Fix entry for -mabi=mmixware.
61 (PDP-11 Options): Fix entry for -mbcopy-builtin.
62
bd117bb6
BS
632009-06-16 Basile Starynkevitch <basile@starynkevitch.net>
64
65 * doc/plugins.texi (Interacting with the GCC Garbage Collector):
66 Mention the plugin mode of gengtype.
67 * doc/gty.texi (Source Files Containing Type Information):
68 Likewise.
69 * gengtype.c: Updated copyright.
70 (plugin_files, nb_plugin_files) Added new static variables.
71 (measure_input_list) Care about plugin_files.
72 (write_rtx_next): Added early return in plugin mode.
73 (create_file): Updated copyright year in generated file. Added
74 asserts.
75 (oprintf): Added early return if NULL outf.
76 (get_output_file_with_visibility): Care of plugin_files.
77 (get_output_file_name): May return null.
78 (write_local): Added early return.
79 (put_mangled_filename): Ditto.
80 (finish_root_table): Added check for base_files.
81 (write_roots): Care about null when plugins.
82 (main): Added plugin mode.
83
e1b7793c
ILT
842009-06-15 Ian Lance Taylor <iant@google.com>
85
86 * df-problems.c (df_simulate_one_insn_forwards): Fix braces in
87 switch.
88 * gcov.c (read_count_file): Add braces around variables declared
89 before label.
90
91 * c.opt (Wjump-misses-init): New warning.
92 * c-opts.c (c_common_handle_option): Set warn_jump_misses_init for
93 -Wall and -Wc++-compat if not already set.
94 (c_common_post_options): Clear warn_jump_misses_init if it was not
95 set.
96 * c-decl.c (struct c_binding): Change type field to a union with
97 new label field. Make it the first field in the struct. Update
98 references to type to use u.type instead.
99 (struct c_spot_bindings): Define.
100 (struct c_goto_bindings): Define.
101 (c_goto_bindings_p): Define, along with VECs.
102 (struct c_label_vars): Define.
103 (struct c_scope): Add has_label_bindings field.
104 (bind_label, set_spot_bindings): New static functions.
105 (decl_jump_unsafe, update_spot_bindings): New static functions.
106 (update_label_decls): New static function.
107 (pop_scope): Call update_label_decls. Don't call c_end_vm_scope.
108 Update binding u.label field to shadowed field.
109 (c_binding_start_stmt_expr): New function.
110 (c_binding_end_stmt_expr): New function.
111 (pushdecl): Don't call c_begin_vm_scope.
112 (make_label): Add defining and p_label_vars parameters. Change
113 all callers.
114 (lookup_label): Correct test for whether a label has not yet been
115 defined. Call bind_label rather than bind.
116 (warn_about_goto): New static function.
117 (lookup_label_for_goto): New function.
118 (declare_label): Call bind_label rather than bind.
119 (check_earlier_gotos): New static function.
120 (define_label): Don't give errors about jumping into statement
121 expressions or scopes of variably modified types. Call
122 set_spot_bindings and check_earlier_gotos. Call bind_label
123 instead of bind. Don't set label_context_stack_se or
124 label_context_stack_vm.
125 (c_get_switch_bindings): New function.
126 (c_release_switch_bindings): New function.
127 (c_check_switch_jump_warnings): New function.
128 (start_function): Don't set label_context_stack_se or
129 label_context_stack_vm.
130 (finish_function): Likewise.
131 * c-typeck.c (label_context_stack_se): Don't define.
132 (label_context_stack_vm): Don't define.
133 (c_finish_goto_label): Call lookup_label_for_goto rather than
134 lookup_label. Don't give errors about jumping into a statement
135 expression or the scope of a variably modified type. Don't set
136 label_context_stack_se or label_context_stack_vm.
137 (struct c_switch): Remove blocked_stmt_expr and blocked_vm
138 fields. Add bindings field.
139 (c_start_case): Don't set deleted fields. Set bindings field.
140 (do_case): Rework order of tests. Don't check blocked_stmt_expr
141 or blocked_vm. Call c_check_switch_jump_warnings.
142 (c_finish_case): Don't test blocked_stmt_expr field. Call
143 c_release_switch_bindings.
144 (c_begin_stmt_expr): Don't increment blocked_stmt_expr in
145 c_switch_stack. Don't walk label_context_stack_se labels. Don't
146 set label_context_stack_se. Call c_bindings_start_stmt_expr.
147 (c_finish_stmt_expr): Don't decrement blocked_stmt_expr in
148 c_switch_stack. Don't walk label_context_stack_se labels. Don't
149 set label_context_stack_se. Call c_bindings_end_stmt_expr.
150 (c_begin_vm_scope, c_end_vm_scope): Don't define.
151 * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR): Don't define.
152 (C_DECL_UNDEFINABLE_STMT_EXPR): Don't define.
153 (C_DECL_UNJUMPABLE_VM): Don't define.
154 (C_DECL_UNDEFINABLE_VM): Don't define.
155 (struct c_label_list): Don't define.
156 (struct c_label_context_se): Don't define.
157 (struct c_label_context_vm): Don't define.
158 (struct c_spot_bindings): Declare.
159 (c_bindings_start_stmt_expr): Declare.
160 (c_bindings_end_stmt_expr): Declare.
161 (lookup_label_for_goto): Declare.
162 (c_get_switch_bindings, c_release_switch_bindings): Declare.
163 (c_check_switch_jump_warnings): Declare.
164 (label_context_stack_se, label_context_stack_vm): Don't declare.
165 (c_finish_goto_label): Update declaration.
166 (c_begin_vm_scope, c_end_vm_scope): Don't declare.
167 * doc/invoke.texi (Option Summary): Mention -Wjump-misses-init.
168 (Warning Options): Document -Wjump-misses-init.
169
98a129b9
JJ
1702009-06-15 Jakub Jelinek <jakub@redhat.com>
171
172 * tree-object-size.c (addr_object_size): Fix a pasto in the last
173 change.
174
19751f1f
RAE
1752009-06-15 Rafael Avila de Espindola <espindola@google.com>
176
177 * cgraph.c (cgraph_make_node_local): Use DECL_COMDAT_GROUP.
178
d40eb158
AH
1792009-06-15 Aldy Hernandez <aldyh@redhat.com>
180
181 * except.c (init_eh): Use BUILTINS_LOCATION when calling build_decl.
182
1832009-06-15 Aldy Hernandez <aldyh@redhat.com>
184
185 * tree-eh.c (lower_try_finally_switch): Initialize tf_loc.
186
fc26fae3
RAE
1872009-06-15 Rafael Avila de Espindola <espindola@google.com>
188
189 * cgraphunit.c (cgraph_function_versioning,save_inline_function_body):
190 Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
191 * cgraph.c (cgraph_create_virtual_clone): Use DECL_COMDAT_GROUP.
192 * config/i386/i386.c (ix86_file_end): Compute DECL_COMDAT_GROUP.
193 * dwarf2asm.c(dw2_force_const_mem): Update call to make_decl_one_only.
194 * langhooks-def.h (lhd_comdat_group, LANG_HOOKS_COMDAT_GROUP): Remove.
195 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_COMDAT_GROUP.
196 * langhooks.c (lhd_comdat_group): Remove.
197 * langhooks.h (lang_hooks_for_decls): Remove comdat_group.
198 * tree.h (DECL_COMDAT_GROUP): New.
199 (DECL_ONE_ONLY): Use DECL_COMDAT_GROUP.
200 (tree_decl_with_vis): Add comdat_group. Remove one_only.
201 (make_decl_one_only): Change signature.
202 * varasm.c (get_emutls_init_templ_addr, emutls_decl): Update call to
203 make_decl_one_only.
204 (make_decl_one_only): Change signature.
205 (default_elf_asm_named_section): Use DECL_COMDAT_GROUP.
206
0eb92735
RG
2072009-06-15 Richard Guenther <rguenther@suse.de>
208
209 PR middle-end/40439
210 * tree.c (widest_int_cst_value): Fix bootstrap on 32bit HWI hosts.
211
0ab352d5
AK
2122009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
213
214 * tree-ssa-math-opts.c: Remove extra divide.
215
677fbff4
AK
2162009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
217
218 * config/s390/s390.md ("bswap<mode>2"): Only available on z900.
219
03bd2f1a
AK
2202009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
221
222 * passes.c: Add bswap pass.
223 * tree-pass.h: Add pass_optimize_bswap declaration.
224 * tree-ssa-math-opts.c: Include diagnostics.h for print_gimple_stmt.
225 Include rtl.h, expr.h and optabs.h for optab_handler check.
226 (struct symbolic_number, pass_optimize_bswap): New definition.
227 (do_shift_rotate, verify_symbolic_number_p): New functions.
228 (find_bswap_1, find_bswap, execute_optimize_bswap): New functions.
229 (gate_optimize_bswap): New function.
230 * tree.c (widest_int_cst_value): New function.
231 * tree.h (widest_int_cst_value): Prototype added.
232
fb4c4640
SB
2332009-06-14 Steven Bosscher <steven@gcc.gnu.org>
234
235 * cfgcleanup.c (old_insns_match_p): Remove code to substitute
236 REG_EQUAL/REG_EQUIV notes.
237
1d24fdd9
RG
2382009-06-14 Richard Guenther <rguenther@suse.de>
239
240 PR middle-end/40389
241 * gimple.c (walk_stmt_load_store_addr_ops): The LHS of a call
242 has its address taken if NRV was applied and it is addressable.
243 * tree-ssa-structalias.c (get_constraint_for_address_of): New
244 function split out from ...
245 (get_constraint_for_1): ... here.
246 (handle_rhs_call): Use it to mark the return slot escaped if
247 it is addressable and NRV was applied.
248
4b29c5e5
AH
2492009-06-13 Aldy Hernandez <aldyh@redhat.com>
250
251 * config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin):
252 Change first argument type to location_t.
253 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Same.
254 Do not set input_location.
255 Use loc instead of input_location throughout.
256
e1e6dc73
RG
2572009-06-13 Richard Guenther <rguenther@suse.de>
258
1d24fdd9 259 PR tree-optimization/40421
e1e6dc73
RG
260 * tree-predcom.c (should_unroll_loop_p): Remove.
261 (tree_predictive_commoning_loop): Use can_unroll_loop_p.
262
8012b923
MM
2632009-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
264
265 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
266 Add location argument.
267
4c4bde29
AH
2682009-06-13 Aldy Hernandez <aldyh@redhat.com>
269
270 * config/alpha/alpha.c (alpha_build_builtin_va_list): Pass location to
271 build_decl.
272 * config/s390/s390.c (s390_build_builtin_va_list): Same.
273 (s390_gimplify_va_arg): Pass location to create_artificial_label.
274 * config/spu/spu-protos.h: Add location to
275 spu_resolve_overloaded_builtin.
276 * config/spu/spu.c (spu_build_builtin_va_list): Pass location to
277 spu_build_builtin_va_list.
278 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Add location
279 argument. Pass location to build_function_call_vec.
280 * config/sh/sh.c (sh_build_builtin_va_list): Pass location to
281 build_decl.
282 (emit_fpu_switch): Same.
283 (sh_gimplify_va_arg_expr): Pass location to create_artificial_label.
284 * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Pass location
285 to build_decl and create_artificial_label.
286 (xtensa_gimplify_va_arg_expr): Same.
287 * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list): Same.
288 (xstormy16_gimplify_va_arg_expr): Same.
289 * config/iq2000/iq2000.c (iq2000_expand_prologue): Same.
290 * config/arm/arm.c (arm_build_builtin_va_list): Same.
291 * config/mips/mips.c (mips_build_builtin_va_list): Same.
292 (mips16_build_function_stub): Same.
293 (mips16_build_call_stub): Same.
294
81beb031
RE
2952009-06-13 Richard Earnshaw <rearnsha@arm.com>
296
297 PR target/40327
298 * arm/constraints.md (Pa, Pb): New constraints.
299 * arm/arm.md (thumb1_addsi3): Support more complex additions. Add a
300 split pattern to deal with them.
301
98f6c600
JS
3022009-06-13 Joerg Sonnenberger <joerg@britannica.bec.de>
303
304 * doc/invoke.texi: Add missing option -Wp,OPTION in list,
305 fix index entry for -Xpreprocessor.
306
71856685
AH
3072009-06-12 Aldy Hernandez <aldyh@redhat.com>
308
309 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
310 Add location argument to build_decl call.
311 * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Same.
312 (rs6000_init_builtins): Same.
313 (spe_init_builtins): Same.
314 (rs6000_gimplify_va_arg): Add location argument to
315 create_artificial_label call.
316
756b65f5
SB
3172009-06-12 Steven Bosscher <steven@gcc.gnu.org>
318
319 * timevar.def (TV_COMBINE_STACK_ADJUST): New timevar.
320 * combine-stack-adj.c (pass_stack_adjustments): Use it.
321 * Makefile.in: Fix GGC dependency for gcse.o.
322
c2255bc4
AH
3232009-06-12 Aldy Hernandez <aldyh@redhat.com>
324
325 * tree-pretty-print.c (dump_generic_node): Dump column numbers.
326 * gimple-pretty-print.c (dump_gimple_stmt): Same.
327 * gimplify.c (gimplify_modify_expr): Set location for GIMPLE_ASSIGNs
328 created.
329 * c-parser.c (c_parser_binary_expression): Use current column while
330 building binary operations.
331 * common.opt (fshow-column): Enable by default.
332 * tree-vrp.c (check_array_ref): Use warning_at.
333 (check_array_bounds): Use location from call back if expr has no
334 location.
335 * tree.h: Add location argument to maybe_fold_*.
336 * tree-ssa-ccp.c (ccp_fold): Pass location to maybe_fold_*.
337 (maybe_fold_offset_to_array_ref): Add location argument and use it.
338 (maybe_fold_offset_to_component_ref): Same.
339 (maybe_fold_offset_to_reference): Same.
340 (maybe_fold_offset_to_address): Same.
341 (maybe_fold_stmt_indirect): Same.
342 (maybe_fold_stmt_addition): Same.
343 (fold_stmt_r): Pass location to maybe_fold_*.
344 (fold_gimple_assign): Same.
345 * c-tree.h: Add location argument to finish_decl,
346 default_function_array_conversion, store_init_value.
347 * c-decl.c (define_label): Use error_at.
348 (c_make_fname_decl): Pass location to finish_decl.
349 (finish_decl): New location argument.
350 (build_compound_literal): Pass location to store_init_value.
351 (grokdeclarator): Pass location to finish_decl.
352 (grokfield): Same.
353 * c-typeck.c (array_to_pointer_conversion): New location argument.
354 (function_to_pointer_conversion): Same.
355 (default_function_array_conversion): Same.
356 (parser_build_unary_op): Pass location to overflow_warning.
357 (parser_build_binary_op): Same. Use warning_at.
358 (build_unary_op): Pass location to array_to_pointer_conversion.
359 (build_c_cast): Pass location to digest_init.
360 (build_modify_expr): New location argument.
361 (convert_for_assignment): Same.
362 (store_init_value): Same.
363 (digest_init): Same.
364 (output_init_element): Pass location to digest_init and
365 array_to_pointer_conversion.
366 (c_finish_return): Pass location to convert_for_assignment.
367 * gimplify.c (gimplify_conversion): Pass location to
368 maybe_fold_offset_to_address.
369 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Pass location
370 to maybe_fold_stmt_addition.
371 * c-omp.c (c_finish_omp_atomic): Pass new location to
372 build_modify_expr.
373 (c_finish_omp_for): Same.
374 * c-common.c (overflow_warning): New argument.
375 * c-common.h: New argument to build_modify_expr, overflow_warning.
376 * c-parser.c (c_parser_declaration_or_fndef): Pass location to
377 finish_decl.
378 (c_parser_initializer): Pass location to
379 default_function_array_conversion.
380 (c_parser_initelt): Same.
381 (c_parser_initval): Same.
382 (c_parser_asm_operands): Same.
383 (c_parser_expr_no_commas): Same. Pass location to build_modify_expr.
384 (c_parser_conditional_expression): Same.
385 (c_parser_binary_expression): Add location info to stack. Use it.
386 (c_parser_unary_expression): Pass location to
387 default_function_array_conversion, parser_build_unary_op,
388 build_indirect_ref, c_parser_postfix_expression_after_primary.
389 (c_parser_postfix_expression_after_primary): New location argument.
390 Use it.
391 (c_parser_expression_conv): Pass location to
392 default_function_array_conversion.
393 (c_parser_expr_list): Same.
394 (c_parser_omp_atomic): Same.
395 (c_parser_omp_for_loop): Same.
396 * c-tree.h: (struct c_declarator): Add comment to id_loc.
397 (build_array_declarator): New argument.
398 * c-decl.c (build_array_declarator): Add location argument.
399 (grokdeclarator): Set id_loc for cdk_array.
400 * c-parser.c (c_parser_direct_declarator_inner): Pass location to
401 build_array_declarator.
402 * tree.c (build_omp_clause): Add location argument.
403 * tree.h (OMP_CLAUSE_HAS_LOCATION): New macro.
404 (OMP_CLAUSE_LOCATION): New macro.
405 (struct tree_omp_clause): Add location field.
406 (build_omp_clause): Add argument.
407 * testsuite/gcc.dg/gomp/for-1.c: Fix column.
408 * cp/pt.c (tsubst_omp_for_iterator): Pass location to
409 build_omp_clause.
410 * cp/parser.c (cp_parser_omp_var_list_no_open): Same.
411 (cp_parser_omp_clause_collapse): Same.
412 (cp_parser_omp_clause_default): Same.
413 (cp_parser_omp_clause_if): Same.
414 (cp_parser_omp_clause_nowait): Same.
415 (cp_parser_omp_clause_num_threads): Same.
416 (cp_parser_omp_clause_ordered): Same.
417 (cp_parser_omp_clause_schedule): Same.
418 (cp_parser_omp_clause_untied): Same.
419 (cp_parser_omp_for_loop): Same.
420 (cp_parser_omp_parallel): Pass location to c_split_parallel_clauses.
421 * c-tree.h (c_start_case): Add location argument.
422 (c_process_expr_stmt): Same.
423 (c_finish_goto_*): Same.
424 * tree-parloops.c (initialize_reductions): Pass location to
425 build_omp_clause.
426 (create_parallel_loop): Same.
427 * fortran/trans-openmp.c (gfc_trans_omp_variable_list): Same.
428 (gfc_trans_omp_reduction_list): Same.
429 (gfc_trans_omp_clauses): Same.
430 (gfc_trans_omp_do): Same.
431 * c-typeck.c (c_finish_goto_label): Same.
432 (c_finish_goto_ptr): New location argument.
433 (c_start_case): Same.
434 (emit_side_effect_warnings): Same.
435 (c_process_expr_stmt): Same.
436 (c_finish_stmt_expr): Same.
437 (c_finish_omp_clauses): Use error_at instead of error.
438 * gimplify.c (gimplify_adjust_omp_clauses_1): Pass location to
439 build_omp_clause.
440 * c-omp.c (c_split_parallel_clauses): New location argument.
441 * tree-nested.c (convert_nonlocal_reference_stmt): Pass location
442 to build_omp_clause.
443 (convert_local_reference_stmt): Same.
444 (convert_gimple_call): Same.
445 * c-common.h (c_split_parallel_clauses): New argument.
446 * c-parser.c (c_parser_statement_after_labels): Pass location to
447 c_finish_goto_label.
448 (c_parser_switch_statement): Pass location to c_start_case.
449 (c_parser_for_statement): Pass location to c_finish_expr_stmt,
450 and c_process_expr_stmt.
451 (c_parser_omp_variable_list): Add location argument.
452 (c_parser_omp_clause_collapse): Pass location to
453 build_omp_clause.
454 (c_parser_omp_clause_default): Same.
455 (c_parser_omp_clause_if): Same.
456 (c_parser_omp_clause_num_threads): Same.
457 (-c_parser_omp_clause_ordered): Same.
458 (c_parser_omp_clause_reduction): Pass location to
459 c_parser_omp_variable_list.
460 (c_parser_omp_clause_schedule): Pass location to build_omp_clause.
461 (c_parser_omp_clause_untied): Same.
462 (c_parser_omp_for_loop): Pass location to c_process_expr_stmt.
463 (c_parser_omp_parallel): Pass location to
464 c_split_parallel_clauses.
465
466 * c-tree.h (check_for_loop_decls, undeclared_variable,
467 build_component_ref, build_array_ref, build_external_ref,
468 c_expr_sizeof_expr, c_expr_sizeof_type, parser_build_unary_op,
469 build_conditional_expr, build_compound_expr, c_cast_expr,
470 build_c_cast, build_asm_expr, c_end_compound_stmt, c_finish_stmt_expr,
471 c_finish_return, c_finish_omp_parallel, c_finish_omp_task): New
472 argument.
473 * c-semantics.c (build_stmt): Same.
474 (build_case_label): Same.
475 * c-decl.c (c_finish_incomplete_decl): Pass location on down.
476 (undeclared_variable): New argument.
477 (make_label): Same.
478 (lookup_label): Pass location on down.
479 (define_label): Same.
480 (finish_decl): Same.
481 (build_compound_literal): Same.
482 (finish_struct): Same.
483 (finish_function): Do not set location here.
484 (check_for_loop_decls): New argument.
485 * tree.c (save_expr): Set location.
486 (build_empty_stmt): New argument.
487 * tree.h (build_empty_stmt): New argument to build_empty_stmt.
488 (CAN_HAVE_LOCATION_P): Make sure we have a non empty node.
489 * builtins.c (gimplify_va_arg_expr): Use locations.
490 (expand_builtin_sync_operation): Same.
491 * c-typeck.c (build_component_ref): New argument.
492 (build_array_ref): Same.
493 (build_external_ref): Same.
494 (c_expr_sizeof_expr): Same.
495 (c_expr_sizeof_type): Same.
496 (parser_build_unary_op): Same.
497 (build_conditional_expr): Same.
498 (build_compound_expr): Pass location on down.
499 (build_compound_expr): New argument.
500 (build_c_cast): Same.
501 (c_cast_expr): Same.
502 (build_asm_expr): Same.
503 (c_finish_return): Same.
504 (c_process_expr_stmt): Pass location on down.
505 (c_finish_stmt_expr): New argument.
506 (push_clenaup): Same.
507 (c_finish_omp_parallel): Same.
508 (c_finish_omp_task): Same.
509 * gimplify.c (gimplify_call_expr): Pass location on down.
510 * c-omp.c (c_finish_omp_master): New argument.
511 (c_finish_omp_critical): Same.
512 (c_finish_omp_ordered): Same.
513 (c_finish_omp_barrier): Same.
514 (-c_finish_omp_taskwait): Same.
515 (c_finish_omp_atomic): Same.
516 (c_finish_omp_flush): Same.
517 * tree-inline.c (copy_tree_body_r): Pass location on down.
518 (inline_forbidden_p): Remove use of input_location.
519 * c-gimplify.c (c_build_bind_expr): New argument.
520 * c-common.c (c_common_truthvalue_conversion): Pass location on down.
521 (c_sizeof_or_alignof_type): New argument.
522 (c_alignof_expr): Same.
523 (build_va_arg): Same.
524 (c_add_case_label): Same.
525 * c-common.h (c_sizeof_or_alignof_type, c_alignof_expr,
526 c_sizeof, c_alignof, build_va_arg, build_stmt, build_case_label,
527 c_build_bind_expr, objc_build_selector_expr, objc_build_throw_stmt,
528 c_finish_omp_master, c_finish_omp_critical, c_finish_omp_ordered,
529 c_finish_omp_barrier, c_finish_omp_atomic, c_finish_omp_flush,
530 c_finish_omp_taskwait, c_finish_omp_for, c_split_parallel_clauses):
531 New argument.
532 * stub-objc.c (objc_build_selector_expr): Same.
533 (objc_build_throw_stmt): Same.
534 * c-parser.c (c_parser_declaration_or_fndef): Pass location on down.
535 (c_parser_initelt): Same.
536 (c_parser_compound_statement): Same.
537 (c_parser_compound_statement_nostart): Same.
538 (c_parser_label): Same.
539 (c_parser_statement_after_labels): Same.
540 (c_parser_if_body): Same.
541 (c_parser_else_body): Same.
542 (c_parser_if_statement): Same.
543 (c_parser_switch_statement): Same.
544 (c_parser_while_statement): Same.
545 (c_parser_do_statement): Same.
546 (c_parser_for_statement): Same.
547 (c_parser_asm_statement): Same.
548 (c_parser_conditional_expression): Same.
549 (c_parser_binary_expression): Same.
550 (c_parser_cast_expression): Same.
551 (c_parser_unary_expression): Same.
552 (c_parser_sizeof_expression): Same.
553 (c_parser_alignof_expression): Same.
554 (c_parser_postfix_expression): Same.
555 (c_parser_expression): Same.
556 (c_parser_objc_receiver): Same.
557 (c_parser_omp_variable_list): Same.
558 (c_parser_omp_structured_block): Same.
559 (c_parser_omp_atomic): New argument.
560 (c_parser_omp_barrier): Same.
561 (c_parser_omp_critical): Same.
562 (c_parser_omp_flush): Pass location on down.
563 (c_parser_omp_for_loop): New argument.
564 (c_parser_omp_for): Same.
565 (c_parser_omp_master): Same.
566 (c_parser_omp_ordered): Same.
567 (c_parser_omp_sections_scope): Same.
568 (c_parser_omp_sections): Same.
569 (c_parser_omp_parallel): Same.
570 (c_parser_omp_single): Same.
571 (c_parser_omp_task): Same.
572 (c_parser_omp_taskwait): Pass location on down.
573 (c_parser_omp_construct): Same.
574 (c_parser_omp_threadprivate): Same.
575 * dwarf2asm.c, targhooks.c, optabs.c, tree.c, tree.h, target.h,
576 builtins.c, omp-low.c, cgraphunit.c, tree-call-cdce.c,
577 tree-ssa-alias.c, gimple-low.c, c-tree.h, expr.c, tree-parloops.c,
578 c-decl.c, tree-eh.c, langhooks.c, function.c, stor-layout.c,
579 c-typeck.c, gimplify.c, c-pragma.c, expmed.c, except.c, coverage.c,
580 emit-rtl.c, cfgexpand.c, tree-mudflap.c, varasm.c, tree-nested.c,
581 rtl.h, tree-inline.c, tree-profile.c, c-common.c, c-common.h,
582 tree-switch-conversion.c, tree-cfg.c, ipa-struct-reorg.c, c-parser.c,
583 config/i386/i386.c, stmt.c:
584 Add location argument to the following function definitions and/or
585 function calls: build_decl, objcp_start_struct, objcp_finish_struct,
586 start_struct, finish_struct, PUSH_FIELD, create_artificial_label,
587 cp_make_fname_decl, pushtag, implicitly_declare, c_make_fname_decl,
588 build_compound_literal, parser_xref_tag, resolve_overloaded_builtin,
589 do_case, c_finish_bc_stmt, build_compound_literal,
590 build_function_call.
591 * c-decl.c (build_compound_literal): Add location argument.
592 Make all diagnostic calls use location.
593 (start_struct): Same.
594 (finish_struct): Same.
595 (start_enum): Same.
596 (build_enumerator): Same.
597 (start_function): Same.
598 (grokdeclarator): Make all diagnostic calls use location.
599 (store_parm_decls_oldstyle): Same.
600 * c-typeck.c (build_function_call): Add location argument.
601 Make all diagnostic calls use location.
602 (do_case): Same.
603 (c_finish_bc_stmt): Same.
604 * tree-nested.c (get_trampoline_type): Add argument.
605 Pass location to build_decl.
606 (lookup_tramp_for_decl): Pass location to get_trampoline_type.
607 * rtl.h (RTL_LOCATION): New.
608 * c-common.c (c_add_case_label): Add location argument.
609 Make all diagnostic calls use location.
610 * c-common.h: Add location argument to make_fname_decl, do_case,
611 c_add_case_label, build_function_call, resolve_overloaded_builtin.
612 * c-parser.c (c_parser_enum_specifier): Rename ident_loc to enum_loc.
613 Set it appropriately for every case. Pass enum_loc to start_enum
614 call. Pass value_loc first to build_enumerator. Pass enum_loc to
615 parser_xref_tag.
616 (c_parser_struct_or_union_specifier): Save location. Use it for
617 start_struct, finish_struct, and parser_xref_tag.
618
3d8b2a98
ILT
6192009-06-12 Ian Lance Taylor <iant@google.com>
620
621 * fold-const.c (fold_unary): Rename local variable and to
622 and_expr.
623
624 * c-opts.c (c_common_handle_option): For -Wc++-compat set
625 cpp_opts->warn_cxx_operator_names.
626
737142ce
AP
6272009-06-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
628
629 PR tree-opt/38865
630 * tree-ssa-sccvn.c (visit_reference_op_load): If vn_reference_lookup
631 is returns NULL and OP is a VCE, look through the VCE.
632
d3a0d55d
ILT
6332009-06-12 Ian Lance Taylor <iant@google.com>
634
635 PR bootstrap/40430
636 * collect2.c (main): Use CONST_CAST2 in code inside #if
637 LINK_ELIMINATE_DUPLICATE_LDIRECTORIES.
638
f85882d8
JY
6392009-06-12 Joey Ye <joey.ye@intel.com>
640
641 PR middle-end/39146
642 * cfgexpand.c (get_decl_align_unit): Update
643 max_used_stack_slot_alignment with align instead of
644 stack_alignment_needed.
645
646 * function.c (assign_stack_local_1): Update
647 max_used_stack_slot_alignment with alignment_in_bits instead
648 of stack_alignment_needed.
649 (locate_and_pad_parm): Don't update max_used_stack_slot_alignment
650 here.
651
fc9f468b
JJ
6522009-06-12 Jakub Jelinek <jakub@redhat.com>
653
654 * dwarf2out.c (last_var_location_insn): New variable.
655 (dwarf2out_end_epilogue): Clear last_var_location_insn.
656 (dwarf2out_var_location): Don't record anything after last real
657 insn. Only change labels if there were any real instructions
658 in between last note and this one, or if changed sections.
659
7c1db202
RH
6602009-06-11 Richard Henderson <rth@redhat.com>
661
f85882d8 662 * alpha.c (alpha_expand_prologue): Add a REF_CFA_REGISTER
15cb981a
RH
663 note when storing the frame pointer in a register.
664 (FRP): Don't redefine to nothing for epilogue.
665 (alpha_expand_epilogue): Mark register and sp restores.
666 (unicosmk_gen_dsib): Don't mark weird frame pointer adjust.
667
7c1db202
RH
668 * config/alpha/alpha.c (alpha_emit_setcc): Fix test for
669 when gen_lowpart is needed.
670
f2ae7631
RH
6712009-06-11 Richard Henderson <rth@redhat.com>
672
42755c21
RH
673 * dwarf2out.c (def_cfa_1): Likewise for DW_CFA_cfa_offset.
674
f2ae7631
RH
675 * dwarf2out.c (need_data_align_sf_opcode): New.
676 (div_data_align): Move earlier.
677 (def_cfa_1, reg_save): Use it.
678
8ed0ce99
L
6792009-06-11 H.J. Lu <hongjiu.lu@intel.com>
680
681 * config/i386/i386.c (OPTION_MASK_ISA_CRC32_SET): New.
682 (OPTION_MASK_ISA_CRC32_UNSET): Likewise.
683 (ix86_handle_option): Handle OPT_mcrc32.
684 (ix86_target_string): Add -mcrc32.
685 (bdesc_args): Enable crc32 builtins with OPTION_MASK_ISA_CRC32.
686
687 * config/i386/i386.h (TARGET_CRC32): New.
688
689 * config/i386/i386.md (sse4_2_crc32<mode>): Also check
690 TARGET_CRC32.
691 (sse4_2_crc32di): Likewise.
692
693 * config/i386/i386.opt (mcrc32: New.
694
695 * doc/invoke.texi: Document -mcrc32.
696
9fd68a1f
RH
6972009-06-11 Richard Henderson <rth@redhat.com>
698
8ed0ce99 699 * common.opt (gdwarf-): Accept a version number.
9fd68a1f
RH
700 * doc/invoke.texi (gdwarf-): Update docs.
701 * opth-gen.awk: Special case -gdwarf+ to OPT_gdwarfplus.
702 * opts.c (common_handle_option) [OPT_gdwarf_]: Verify dwarf
703 version level, and record it.
704
705 * dwarf2.h (DW_CIE_VERSION): Remove.
706 * dwarf2out.c (DWARF_VERSION): Remove.
707 (add_fde_cfi): Skip DW_CFA_set_loc addition for dwarf3.
708 (output_call_frame_info): Use CIE version 3 for dwarf3,
709 or if the return register column is out of range for version 1.
710 (dwarf_stack_op_name): Add all dwarf3 values.
711 (DEBUG_PUBTYPES_SECTION): New.
712 (size_of_die) [dw_val_class_die_ref]: Handle DW_FORM_ref_addr
713 encoding change for dwarf3.
714 (output_die) [dw_val_class_die_ref]: Likewise.
715 (output_compilation_unit_header): Emit correct version for dwarf3.
716 (output_line_info): Likewise.
717 (output_pubnames): Update for DWARF_VERSION removal.
718 (output_aranges): Likewise.
719 (gen_subprogram_die): Emit DW_OP_call_frame_cfa if emitting dwarf3.
720 (dwarf2out_init): Don't ifdef DEBUG_PUBTYPES_SECTION.
721 (dwarf2out_finish): Likewise.
722
4de8ce3b
DD
7232009-06-11 David Daney <ddaney@caviumnetworks.com>
724
725 * system.h (gcc_assert, gcc_unreachable): Revert accidental commit
726 in r148403.
727
468059bc
DD
7282009-06-11 David Daney <ddaney@caviumnetworks.com>
729
730 PR c/39252
731 * doc/extend.texi ( __builtin_unreachable): Document new builtin.
732 * builtins.c (expand_builtin_unreachable): New function.
733 (expand_builtin): Handle BUILT_IN_UNREACHABLE case.
734 * builtins.def (BUILT_IN_UNREACHABLE): Add new builtin.
735 * cfgcleanup.c (try_optimize_cfg): Delete empty blocks with no
736 successors.
737 * cfgrtl.c (rtl_verify_flow_info): Handle empty blocks when
738 searching for missing barriers.
739
b5a6e96f
FXC
7402009-06-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
741
742 * config/darwin.h (LINK_COMMAND_SPEC): Adjust spec to link libcov
743 when -fprofile-generate* was passed.
744 * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
745
6be6462e
AG
7462009-06-11 Anthony Green <green@moxielogic.com>
747
748 * config/moxie/moxie.md: Define length attribute for all
749 instructions.
750 (rCC): Define.
751 (*b<cond:code>): Support limited branch ranges for new PC-relative
752 branch instructions.
753 * config/moxie/moxie.h (HAS_LONG_UNCOND_BRANCH): Define.
754
caaabe0a
JJ
7552009-06-11 Jakub Jelinek <jakub@redhat.com>
756
e5219642
JJ
757 * config/i386/i386.c (min_insn_size): Use get_attr_length
758 for normal insns other than TYPE_MULTI, TYPE_OTHER and TYPE_FCMP.
759 For __asm return 0.
760
caaabe0a
JJ
761 * config/i386/i386.c (ix86_pad_returns): Use emit_jump_insn_before
762 instead of emit_insn_before.
763
a567fa6a
ILT
7642009-06-10 Ian Lance Taylor <iant@google.com>
765
766 PR bootstrap/40408
767 * graphite.c (add_conditions_to_domain): Change SWITCH_EXPR to
768 GIMPLE_SWITCH.
769
6a753d5f
RE
7702009-06-10 Revital Eres <eres@il.ibm.com>
771
772 * passes.c (init_optimization_passes): Reschedule
773 predictive-commoning pass before complete unroll pass.
774
a550d677
MJ
7752009-06-10 Martin Jambor <mjambor@suse.cz>
776
777 * cgraph.c (cgraph_node_can_be_local_p): New function.
778 (cgraph_make_node_local): New function.
779 * cgraph.h (cgraph_node_can_be_local_p): Declare.
780 (cgraph_make_node_local): Declare.
781
d8259b07
NF
7822009-06-10 Nathan Froyd <froydnj@codesourcery.com>
783
784 * tree.h (tree_base): Add packed_flag and user_align fields.
785 Decrease size of spare field.
786 (TYPE_USER_ALIGN): Use user_align from tree_base.
787 (DECL_USER_ALIGN): Likewise.
788 (TYPE_PACKED): Use packed_flag from tree_base.
789 (DECL_PACKED): Likewise.
790 (tree_type): Delete packed_flag and user_align fields. Widen
791 precision field. Widen mode field and shuffle fields to align
792 mode on an 8-bit boundary.
793 (tree_decl_common): Delete decl_flag_1 and user_align fields.
794 Renumber decl_flag_* fields. Fix comments. Widen
795 decl_common_unused field.
796 (DECL_HAS_VALUE_EXPR_P): Adjust for renumbering of decl_flag_*
797 fields.
798 (DECL_EXTERNAL): Likewise.
799 (DECL_BIT_FIELD): Likewise.
800 (DECL_NONADDRESSABLE_P): Likewise.
801 (TYPE_DECL_SUPRESS_DEBUG): Likewise.
802 * config/arm/arm-modes.def (XImode): Make it an INT_MODE.
803
c2569604
ILT
8042009-06-10 Ian Lance Taylor <iant@google.com>
805
806 * vec.h (DEF_VEC_ALLOC_I): Use DEF_VEC_NONALLOC_FUNCS_I.
807 (DEF_VEC_ALLOC_P): Use DEF_VEC_NONALLOC_FUNCS_P.
808 (DEF_VEC_ALLOC_O): Use DEF_VEC_NONALLOC_FUNCS_O.
809 (DEF_VEC_ALLOC_FUNC_P): Only define VEC_OP (T,A,alloc).
810 (DEF_VEC_NONALLOC_FUNCS_P): New macro, broken out of old
811 DEF_VEC_ALLOC_FUNC_P.
812 (DEF_VEC_ALLOC_FUNC_O): Only define VEC_OP (T,A,alloc).
813 (DEF_VEC_NONALLOC_FUNCS_O): New macro, broken out of old
814 DEF_VEC_ALLOC_FUNC_O.
815 (DEF_VEC_ALLOC_FUNC_I): Only define VEC_OP (T,A,alloc).
816 (DEF_VEC_NONALLOC_FUNCS_I): New macro, broken out of old
817 DEF_VEC_ALLOC_FUNC_I.
818 (vec_stack_p_reserve, vec_stack_p_reserve_exact): Declare.
819 (vec_stack_p_reserve_exact_1): Declare.
820 (vec_stack_o_reserve, vec_stack_o_reserve_exact): Declare.
821 (vec_stack_free): Declare.
822 (VEC_stack_alloc): Define.
823 (DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_FUNC_P_STACK): Define.
824 (DEF_VEC_ALLOC_O_STACK, DEF_VEC_ALLOC_FUNC_O_STACK): Define.
825 (DEF_VEC_ALLOC_I_STACK, DEF_VEC_ALLOC_FUNC_I_STACK): Define.
826 * vec.c (void_p): New type. Call DEF_VEC_P and DEF_VEC_ALLOC_P
827 for void_p.
828 (stack_vecs): New static variable.
829 (vec_stack_p_reserve_exact_1): New function.
830 (vec_stack_o_reserve_1): New static function.
831 (vec_stack_p_reserve, vec_stack_p_reserve_exact): New functions.
832 (vec_stack_o_reserve, vec_stack_o_reserve_exact): New functions.
833 (vec_stack_free): New function.
834 * df-scan.c (df_ref): Use DEF_VEC_P and DEF_VEC_ALLOC_P_STACK.
835 (VEC_df_ref_stack_alloc): Define.
836 (df_mw_hardreg_ptr): New type. Use DEF_VEC_P and
837 DEF_VEC_ALLOC_P_STACK.
838 (VEC_df_mw_hardreg_ptr_stack_alloc): Define.
839 (struct df_collection_rec): Change _vec fields to VEC. Remove
840 _use fields.
841 (df_free_collection_rec): Adjust for new fields.
842 (df_insn_rescan): Use new df_collection_rec fields.
843 (df_notes_rescan, df_canonize_collection_rec): Likewise.
844 (df_ref_create_structure, df_ref_record): Likewise.
845 (df_get_conditional_uses, df_get_call_refs): Likewise.
846 (df_insn_refs_collect, df_bb_refs_collect): Likewise.
847 (df_bb_refs_record, df_record_entry_block_defs): Likewise.
848 (df_record_exit_block_uses, df_bb_verify): Likewise.
849 (df_swap_refs): Change ref_vec parameter to VEC. Change all
850 callers.
851 (df_sort_and_compress_refs): Change ref_vec parameter to VEC.
852 Remove count parameter. Change return type to void. Change all
853 callers.
854 (df_sort_and_compress_mws): Change mw_vec parameter to VEC.
855 Remove count parameter. Change return type to void. Change all
856 callers.
857 (df_install_refs): Change old_vec parameter to VEC. Remove count
858 parameter. Change all callers.
859 (df_install_mws): Change old_vec parameter to VEC. Remove count
860 parameter. Change all callers.
861 (df_refs_verify): Change new_rec parameter to VEC. Change call
862 callers.
863 (df_mws_verify): Likewise.
864
e7aae3e8
AO
8652009-06-10 Alexandre Oliva <aoliva@redhat.com>
866
867 * gcc.c (compare_files): Cast munmap argumento to caddr_t.
868
412ac8d5
L
8692009-06-10 H.J. Lu <hongjiu.lu@intel.com>
870
871 * doc/extend.texi: Add description for __builtin_ia32_crc32di.
872
cceb575c
AG
8732009-06-10 Anthony Green <green@moxielogic.com>
874
875 * config/moxie/crti.asm: New file.
876 * config/moxie/crtn.asm: New file.
877 * config/moxie/moxie.c: New file.
878 * config/moxie/moxie.h: New file.
879 * config/moxie/sfp-machine.h: New file.
880 * config/moxie/moxie-protos.h: New file.
881 * config/moxie/t-moxie: Created.
882 * config/moxie/t-moxie-softfp: Created.
883 * config/moxie/moxie.md: Created.
884 * config/moxie/constraints.md: Created.
885 * config.gcc: Add moxie support.
886 * doc/md.texi (Machine Constraints): Add moxie constraints.
887 * doc/contrib.texi (Contributors): Mention moxie port.
888 * doc/install.texi (Specific): Mention the moxie port.
889
bf406687
ILT
8902009-06-09 Ian Lance Taylor <iant@google.com>
891
892 * system.h (HAVE_DESIGNATED_INITIALIZERS): Don't define if
893 compiling with C++.
894 * optabs.c (optab_table): Only use designated initializers if
895 HAVE_DESIGNATED_INITIALIZERS is defined.
896 (convert_optab_table): Likewise.
897 (init_optabs): Always call init_insn_codes if
898 HAVE_DESIGNATED_INITIALIZERS is not defined.
899
744aa42f
ILT
9002009-06-09 Ian Lance Taylor <iant@google.com>
901
902 * targhooks.c (default_builtin_vectorized_function): Change fn
903 parameter to unsigned int.
904 (default_builtin_vectorized_conversion): Change code parameter to
905 unsigned int.
906 (default_builtin_reciprocal): Change fn parameter to unsigned int.
907 * targhooks.h: Update declarations.
908 * config/rs6000/rs6000.c (rs6000_builtin_conversion): Change code
909 parameter to unsigned int.
910
911 * c-typeck.c (comptypes_check_enum_int): New static function.
912 (comptypes_internal): Add enum_and_int_p parameter. Change all
913 callers.
914 (comp_target_types): Add location parameter. Change all callers.
915 (tagged_types_tu_compatible_p): Add enum_and_int_p parameter.
916 Change all callers.
917 (function_types_compatible_p, type_lists_compatible_p): Likewise.
918 (build_conditional_expr): Add colon_loc parameter. Change all
919 callers.
920 (convert_for_assignment): Add location parameter. Change all
921 callers.
922 * c-parser.c (c_parser_conditional_expression): Pass location of
923 colon to build_conditional_expr.
924 * c-tree.h (build_conditional_expr): Update declaration.
925
bcbe3b25
SP
9262009-06-09 Sebastian Pop <sebastian.pop@amd.com>
927
928 * graphite.c: Revert previous patch.
929
dc2a6925
SP
9302009-06-09 Sebastian Pop <sebastian.pop@amd.com>
931
932 PR bootstrap/40103
933 * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
934
d81f5387
GS
9352009-06-09 Ghassan Shobaki <ghassan.shobaki@amd.com>
936
8ed0ce99
L
937 * tree-ssa-loop-prefetch.c
938 (loop_prefetch_arrays): Fixed a portability problem in printf format
939 string.
d81f5387 940
8056eb4f
MJ
9412009-06-09 Martin Jambor <mjambor@suse.cz>
942
943 PR tree-optimization/40351
944 * tree-sra.c (propagate_subacesses_accross_link): Check that a refrence
945 to a potential artifical subaccess can be constructed.
946
bd9a3465
KK
9472009-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
948
949 * config/sh/sh-protos.h (sh_optimization_options): Declare.
950 (sh_override_options): Likewise.
951 * config/sh/sh.c: Include params.h.
952 (sh_optimization_options): New.
953 (sh_override_options): Likewise.
954 * config/sh/sh.c (OPTIMIZATION_OPTIONS): Use sh_optimization_options.
955 (OVERRIDE_OPTIONS): Use sh_override_options.
956
8845deab
JJ
9572009-06-08 Jakub Jelinek <jakub@redhat.com>
958
959 * dwarf2out.c (emit_cfa_remember): New variable.
960 (add_fde_cfi): If emit_cfa_remember, recurse to add
961 DW_CFA_remember_state first.
962 (dwarf2out_begin_epilogue): Don't add_fde_cfi DW_CFA_remember_state,
963 instead just set emit_cfa_remember.
964
9ea81b0c
JH
9652009-06-08 Jan Hubicka <jh@suse.cz>
966
967 PR debug/40126
968 * dwarf2out.c (dwarf2out_abstract_function): Free decl_loc_table.
969
21ecdec5
JH
9702009-06-08 Jan Hubicka <jh@suse.cz>
971
972 PR middle-end/39834
973 * cgraphunit.c (save_inline_function_body): Do not copy transform hooks
974 for saved inline bodies.
975 * ipa-passes.c (do_per_function): Do not add the hoks multiple times
976 for given function.
977
72e48218
AN
9782009-06-08 Adam Nemet <anemet@caviumnetworks.com>
979
980 * jump.c (returnjump_p): Handle delayed branches. Add missing
981 function comment.
982
6ce2002b
JH
9832009-06-08 Jan Hubicka <jh@suse.cz>
984
985 PR middle-end/40102
986 * cgraph.c (cgraph_create_edge_including_clones): Also asume that the
987 original node might've been modified.
988 * tree-inline.c (copy_bb): Do not assume that all clones are the same.
989
eb9ed98a
JJ
9902009-06-08 Jakub Jelinek <jakub@redhat.com>
991
992 * tree-object-size.c (addr_object_size): Add OSI argument.
993 Handle also INDIRECT_REF with SSA_NAME inside of it as base address.
994 (compute_builtin_object_size, expr_object_size): Adjust callers.
995 (plus_stmt_object_size): Call addr_object_size instead of
996 compute_builtin_object_size.
997
db34470d 9982009-06-08 Ghassan Shobaki <ghassan.shobaki@amd.com>
8ed0ce99 999 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
db34470d
GS
1000
1001 * tree-ssa-loop-prefetch.c
1002 (gather_memory_references): Introduced a counter for the number of
1003 memory references.
1004 (anything_to_prefetch_p): Introduced a counter for the number of
1005 prefetches.
1006 (is_loop_prefetching_profitable): New function with a cost model
1007 for prefetching.
1008 (loop_prefetch_arrays): Use the new cost model to determine if
1009 prefetching is profitable.
1010 * params.def (MIN_INSN_TO_PREFETCH_RATIO,
1011 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
1012 * params.h (MIN_INSN_TO_PREFETCH_RATIO,
1013 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
1014 * doc/invoke.texi (MIN_INSN_TO_PREFETCH_RATIO,
1015 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
1016
eb7adebc
MM
10172009-06-08 Michael Matz <matz@suse.de>
1018
1019 PR debug/40012
eb7adebc
MM
1020 * cfgexpand.c (set_rtl): Store place also in DECL_RTL, if all
1021 partitions use the same.
1022 (expand_one_var): Deal with DECL_RTL sometimes begin set also
1023 for basevars of SSA_NAMEs.
1024 (expand_used_vars): Reset TREE_USED for basevars of SSA_NAMEs,
1025 to not expand them twice.
1026 (gimple_expand_cfg): Clear DECL_RTL for those decls that have
1027 multiple places.
1028
2153915d
AO
10292009-06-08 Alexandre Oliva <aoliva@redhat.com>
1030
1031 * common.opt (fcompare-debug=, fcompare-debug-second): New.
1032 (fdump-final-insns=, gtoggle): New.
1033 * doc/invoke.texi: Document them.
1034 * final.c (rest_of_clean_state): Dump final insn stream.
1035 * gcc.c (invoke_as): Hook in -fcompare-debug.
1036 (static_spec_functions): Add compare-debug-dump-opt,
1037 compare-debug-self-opt and compare-debug-auxbase-opt.
1038 (compare_debug, compare_debug_second, compare_debug_opt): New.
1039 (switches_debug_check, n_switches_debug_check): New.
1040 (debug_auxbase_opt, debug_check_temp_file): New.
1041 (process_command): Handle -fno-compare-debug, -fcompare-debug and
1042 -fcompare-debug=*.
1043 (do_self_spec): Handle arguments after switches.
1044 (do_spec_1): Add .gk extension to temp file basenames for compare.
1045 (check_live_switch): Take SWITCH_IGNORE into account, and earlier.
1046 (cc1_options): Use it instead of normal auxbase computation for
1047 the second compare-debug compilation.
1048 (compare_files): New.
1049 (main): Set up and implement compare debug mode.
1050 (compare_debug_dump_opt_spec_function): New.
1051 (compare_debug_self_opt_spec_function): New.
1052 (compare_debug_auxbase_opt_spec_function): New.
1053 * toplev.c (process_options): Handle flag_gtoggle,
1054 flag_dump_final_insns.
1055 * coverage.c (coverage_begin_output): Don't overwrite .gcno file
1056 during -fcompare-debug-second compilation.
1057
cdb88468
ILT
10582009-06-07 Ian Lance Taylor <iant@google.com>
1059
1060 * dwarf2.h (enum dwarf_location_atom): Add
1061 INTERNAL_DW_OP_tls_addr.
1062 * dwarf2out.c (INTERNAL_DW_OP_tls_addr): Don't #define.
1063
1064 * c-common.c (c_do_switch_warnings): Don't exit early for -Wswitch
1065 with no default node. Change warning with %H to warning_at.
1066 Don't clear warn_switch around case checking.
1067 * doc/invoke.texi (Warning Options): Clarify distinction between
1068 -Wswitch and -Wswitch-enum.
1069
4fe8e1a2
BRF
10702009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1071
1072 * tree-pass.h (TODO_update_ssa_any): Document internal use only.
1073
69952c1d
BRF
10742009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1075
1076 * gbl-ctors.h: Add header guard.
1077
b2ad0284
BRF
10782009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1079
1080 * tree-flow.h (make_value_handle, set_value_handle, sort_vuses,
1081 sort_vuses_heap, vn_lookup_or_add, vn_lookup_or_add_with_stmt,
1082 vn_lookup_or_add_with_vuses, vn_add, vn_add_with_vuses,
1083 vn_lookup_with_stmt, vn_lookup, vn_lookup_with_vuses): Remove
1084 prototypes for removed functions.
1085 (expressions_equal_p): Move to ...
1086 * tree-ssa-sccvn.h: ... here and ...
1087 * matrix-reorg.c: ... adjust includes.
1088
c3df55f9
BRF
10892009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1090
1091 * ipa-struct-reorg.c (do_reorg_1): Fix whitespace in dump output.
1092
b5a7159f
BRF
10932009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1094
1095 * c-decl.c (finish_decl): Use bool for variable was_incomplete.
1096 (finish_function): Remove erroneous whitespace.
1097
95bca6b0
BRF
10982009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1099
2cd713a0
BRF
1100 * tree-cfg.c (gimple_merge_blocks): Commentary typo fix.
1101 (verify_stmts): Print statement who's gimple_bb is set to a wrong BB
249eb506
BRF
1102
11032009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1104
1105 * errors.c (internal_error): Commentary typo fix.
1106 * gimple-iterator.c (gsi_insert_seq_on_edge): Ditto.
1107 * tree-ssa-pre.c: Ditto.
95bca6b0 1108
2cd713a0
BRF
11092009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1110
1111 * basic-block.h (ENTRY_BLOCK, EXIT_BLOCK): Document that neither of
1112 them is supposed to hold actual statements.
1113
5bca4e80
ILT
11142009-06-06 Ian Lance Taylor <iant@google.com>
1115
1116 * doc/extend.texi (Attribute Syntax): Document that C++ labels on
1117 empty statements can now have attributes.
1118
47ac44d6
SZ
11192009-06-05 Shujing Zhao <pearly.zhao@oracle.com>
1120
1121 * config/mips/mips.c: Use REG_P and CONST_INT_P where applicable.
1122 * config/mips/mips.md: Ditto.
1123
19b905ce
NF
11242009-06-05 Nathan Froyd <froydnj@codesourcery.com>
1125
1126 * config/rs6000/eabi.asm (__eabi_convert): Don't define if
1127 _RELOCATABLE.
1128 (__eabi_uconvert): Likewise.
1129
16702e19
NF
11302009-06-05 Nathan Froyd <froydnj@codesourcery.com>
1131
1132 * config/rs6000/ppc-asm.h: Protect auto-host.h inclusion and
1133 CFI_* definitions with IN_GCC.
1134
a735afd1
DE
11352009-06-05 David Edelsohn <edelsohn@gnu.org>
1136
1137 * xcoffout.h (xcoffout_source_line): Update prototype.
1138
26a347c5
KG
11392009-06-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1140
1141 * builtins.c (do_mpc_ckconv, do_mpc_arg1): Use
1142 mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM.
1143
9f706f23
JJ
11442009-06-05 Jakub Jelinek <jakub@redhat.com>
1145
1146 PR middle-end/40340
1147 * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
1148 inlined_function_outer_scope_p blocks for artificial inlines
1149 even at -g0/-g1.
1150 * tree.c (tree_nonartificial_location): Rewrite using
1151 block_nonartificial_location.
1152
8f439681
RE
11532009-06-05 Revital Eres <eres@il.ibm.com>
1154 Leehod Baruch <leehod@il.ibm.com>
1155
1156 * expr.c (expand_assignment): Expand MISALIGNED_INDIRECT_REF.
1157 (expand_expr_real_1): Remove comment.
1158 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
1159 Vectorize misaligned access when the target supports it.
1160 (vect_supportable_dr_alignment): Check for unaligned access
1161 support.
1162 * tree-vect-stmts.c (vectorizable_store): Generate misaligned store
1163 and remove asset.
1164
b89f8e3c
JB
11652009-06-05 Julian Brown <julian@codesourcery.com>
1166
1167 * config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP.
1168 * config/arm/ieee754-sf.S (cmpsf2): Likewise.
1169
47d1f191
RG
11702009-06-05 Richard Guenther <rguenther@suse.de>
1171
1172 PR bootstrap/40350
1173 * dwarf2out.c (dwarf2out_begin_function): Mark discriminator
1174 as possibly unused.
1175
9f706f23 11762009-06-05 Jakub Jelinek <jakub@redhat.com>
75707b28
JJ
1177
1178 * config/s390/s390.c (global_not_special_regno_p): New static inline.
1179 (save_gprs): Don't tell unwinder when a global register is saved.
1180 (s390_emit_epilogue): Emit needed epilogue unwind info.
1181
90f06248
AO
11822009-06-05 Alexandre Oliva <aoliva@redhat.com>
1183
1184 * dwarf2out.c (deferred_asm_name): New.
1185 (add_name_and_src_coords_attributes): Defer creation of
1186 DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not
1187 computed yet.
1188 (move_linkage_attr): New.
1189 (dwarf2out_finish): Revisit deferrals and emit attributes at the
1190 right place.
1191
c10348e5
AO
11922009-06-05 Alexandre Oliva <aoliva@redhat.com>
1193
1194 * tree-nested.c (finalize_nesting_tree_1): Declare the
1195 frame_decl in the binding tree.
1196
6c52e687
CC
11972009-06-04 Cary Coutant <ccoutant@google.com>
1198
1199 * basic-block.h (struct basic_block_def): Add discriminator field.
1200 * dbxout.c (dbxout_source_line): Add new parameter. Change all
1201 callers.
1202 * debug.c (do_nothing_debug_hooks): Add additional entry.
1203 (debug_nothing_int_charstar_int): New function.
1204 * debug.h (struct gcc_debug_hooks): Add parameter to source_line
1205 hook.
1206 (debug_nothing_int_charstar_int): New declaration.
1207 * dwarf2out.c (dwarf2out_source_line): Add new parameter. Write
1208 discriminator value in .loc directive.
1209 * final.c (last_discriminator): New variable.
1210 (discriminator): New variable.
1211 (final_start_function): Initialize above variables, pass current
1212 discriminator to debug hook.
1213 (notice_source_line): Check for discriminator change.
1214 * gimple-pretty-print.c (dump_bb_header): Print discriminator value.
1215 * sdbout.c (sdbout_source_line): New parameter.
1216 * tree-cfg.c (struct locus_discrim_map): New structure type.
1217 (discriminator_per_locus): New hash table.
1218 (build_gimple_cfg): Allocate and free discriminator hash table.
1219 (make_edges): Call assign_discriminator.
1220 (locus_map_hash): New function.
1221 (locus_map_eq): New function.
1222 (next_discriminator_for_locus): New function.
1223 (same_line_p): New function.
1224 (assign_discriminator): New function.
1225 (make_cond_expr_edges): Call assign_discriminator.
1226 (make_gimple_switch_edges): Likewise.
1227 (first_non_label_stmt): New function.
1228 * vmsdbgout.c (vmsdbgout_source_line): Add new parameter. Change
1229 all callers.
1230 * xcoffout.c (xcoffout_source_line): Add new parameter.
1231
1232 * configure.ac (gcc_cv_as_discriminator): New configury check for
1233 gas support for discriminator.
1234 * configure: Regenerate.
1235 * config.in: Regenerate.
1236
e07e020b
RR
12372009-06-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1238
1239 * config/arm/arm.c (thumb2_legitimate_index_p): Initialize
1240 val after checking for integers.
1241
72fa3605
UB
12422009-06-04 Uros Bizjak <ubizjak@gmail.com>
1243
1244 * config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from
1245 X64_REGPARM_MAX.
1246 (REGPARM_MAX): Use X86_64_MS_REGPARM_MAX.
1247 (X86_64_MS_SSE_REGPARM_MAX): Rename from X64_SSE_REGPARM_MAX.
1248 (SSE_REGPARM_MAX): Use X86_64_MS_SSE_REGPARM_MAX.
1249 * config/i386/i386.c: Use X86_64_MS_REGPARM_MAX instead of
1250 X64_REGPARM_MAX. Use X86_64_MS_SSE_REGPARM_MAX instead of
1251 X64_SSE_REGPARM_MAX.
1252 * config/i386/i386.md: Use X86_64_MS_SSE_REGPARM_MAX instead of
1253 X64_SSE_REGPARM_MAX.
1254
bdde878c
AO
12552009-06-04 Alexandre Oliva <aoliva@redhat.com>
1256
1257 * gcc.c (report_times_to_file): New.
1258 (execute): Implement it.
1259 (process_command): Support -time=.
1260 * doc/invoke.texi: Document it.
1261
2ce59df7
AO
12622009-06-04 Alexandre Oliva <aoliva@redhat.com>
1263
1264 * tree-ssa-live.c (remove_unused_scope_block_p): Keep variables
1265 that have value exprs.
1266
78bd9046
AO
12672009-06-04 Alexandre Oliva <aoliva@redhat.com>
1268
1269 * dwarf2asm.c (dw2_force_const_mem): Defer creation of
1270 declarations for constants until...
1271 (dw2_output_indirect_constant_1): ... this point.
1272
e63d4106
RE
12732009-06-04 Richard Earnshaw <rearnsha@arm.com>
1274
1275 PR target/10242
1276 * arm.md (arm_addsi3): Don't try to split an add with an
1277 eliminable register until after reload has completed.
1278
6bc7bc14
ILT
12792009-06-03 Ian Lance Taylor <iant@google.com>
1280
1281 * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST.
1282 * genattrtab.c (write_length_unit_log): Likewise.
1283 * genchecksum.c (dosum): Likewise.
1284 * gengtype.c (write_rtx_next): Likewise.
1285 (finish_root_table, write_roots): Likewise.
1286 * gimple.c (gimple_ops_offset_): Likewise.
1287 * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise.
1288 * config/arc/arc.c (arc_attribute_table): Likewise.
1289 * config/arm/arm.c (arm_attribute_table): Likewise.
1290 * config/avr/avr.c (avr_attribute_table): Likewise.
1291 * config/crx/crx.c (crx_attribute_table): Likewise.
1292 * config/m32r/m32r.c (m32r_attribute_table): Likewise.
1293 * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise.
1294 * config/mcore/mcore.c (mcore_attribute_table): Likewise.
1295 * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
1296 * config/sh/sh.c (sh_attribute_table): Likewise.
1297 * config/sparc/sparc.c (sparc_attribute_table): Likewise.
1298 * config/spu/spu.c (spu_attribute_table): Likewise.
1299 * config/v850/v850.c (v850_attribute_table): Likewise.
1300
1301 * config/alpha/alpha.c (vms_attribute_table): Make static.
1302 * config/bfin/bfin.c (bfin_attribute_table): Likewise.
1303 * config/h8300/h8300.c (h8300_attribute_table): Likewise.
1304 * config/mips/mips.c (mips_attribute_table): Likewise.
1305
1306 * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and
1307 $(SYSTEM_H).
1308 (cc1-checksum.o): Likewise.
1309
19d892fd
SE
13102009-06-03 Steve Ellcey <sje@cup.hp.com>
1311
1312 * config/ia64/vect.md (*movv2sf_internal): Handle big endian case.
1313
679f3354
JJ
13142009-06-03 Jakub Jelinek <jakub@redhat.com>
1315
ff35822b
JJ
1316 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated
1317 insn if it is changing sp. Use gen_add3_insn instead of
1318 conditionally gen_addsi3 and gen_adddi3.
1319 (offset_below_red_zone_p): New static inline function.
1320 (rs6000_emit_epilogue): Emit needed epilogue unwind info.
1321 Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3.
1322 * config/rs6000/ppc-asm.h: Include auto-host.h.
1323 (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET,
1324 CFI_RESTORE): Define.
1325 * config/rs6000/crtresxgpr.asm: Add unwind info.
1326 * config/rs6000/crtresxfpr.asm: Likewise.
1327 * config/rs6000/crtresgpr.asm: Likewise.
1328 * config/rs6000/crtresfpr.asm: Likewise.
1329 * config/rs6000/crtsavgpr.asm: Likewise.
1330 * config/rs6000/crtsavfpr.asm: Likewise.
1331
679f3354
JJ
1332 * dwarf2out.c (output_cfi_directive): Pass 1 instead of
1333 0 to second argument of DWARF2_FRAME_REG_OUT macros.
1334
2e94c12d
JB
13352009-06-03 Julian Brown <julian@codesourcery.com>
1336
1337 * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four
1338 words or less (including TImode) in core registers.
1339
3111cce0
RG
13402009-06-03 Richard Guenther <rguenther@suse.de>
1341
1342 PR middle-end/40328
1343 * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.
1344
5e1b50f6
AB
13452009-06-03 Andrey Belevantsev <abel@ispras.ru>
1346
1347 * statistics.c (statistics_counter_event): Do not record event
1348 in pass dump if its number == -1.
1349 (curr_statistics_hash): Add assert that we never get passes
1350 with static number == -1.
1351
6f11d690
RG
13522009-06-03 Richard Guenther <rguenther@suse.de>
1353 Andrey Belevantsev <abel@ispras.ru>
1354
1355 * cfgexpand.c (discover_nonconstant_array_refs_r): Make only
1356 non-BLKmode arrays addressable.
1357
88961471
MK
13582009-06-03 Maxim Kuvyrkov <maxim@codesourcery.com>
1359
1360 * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
1361 * config/m68k/m68k.h: ... here.
1362 * testsuite/gcc.dg/falign-labels.c (dg-options): Don't restrict for
1363 m68k and fido.
1364
9961eb45
MJ
13652009-06-03 Martin Jambor <mjambor@suse.cz>
1366
1367 PR tree-optimization/40323
1368 * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single
1369 assignment.
1370
2f2c62a0
RG
13712009-06-03 Richard Guenther <rguenther@suse.de>
1372
1373 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
1374 consistently.
1375
d6ced3b7
SZ
13762009-06-03 Shujing Zhao <pearly.zhao@oracle.com>
1377
1378 * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
1379 JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
1380 JUMP_TABLE_DATA_P where applicable.
1381 * config/sh/sh.c: Ditto.
1382 * config/sh/sh.h: Ditto.
1383 * config/sh/sh.md: Ditto.
1384 * config/sh/symbian.c: Ditto.
1385
f3afc8a7
UB
13862009-06-03 Uros Bizjak <ubizjak@gmail.com>
1387
1388 * config/i386/driver-i386.c (describe_cache): Optimize
1389 concatenation of strings. Use snprintf instead of sprintf.
1390 (host_detect_local_cpu): Ditto. Ignore -march and -mtune for native
1391 target when not compiling with GCC.
1392
1964788a
KK
13932009-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
1394
1395 * config/sh/sh.c: Revert last change.
1396 (sh_expand_epilogue): Emit a blockage insn before the frame
1397 pointer adjustment unconditionally.
1398
8633c315
RS
13992009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1400
1401 * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
1402 * config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
1403 * config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
1404 * gcc.c (set_collect_gcc_options): Don't add -fwhole-program
1405 to COLLECT_GCC_OPTIONS.
1406
781a1758
RS
14072009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1408
1409 * collect2.c (target_system_root): New variable.
1410 (main): Handle --sysroot=.
1411 (ignore_library): Strip the sysroot from the library path.
1412
dfb636dc
RS
14132009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1414
1415 * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
1416 (collect2.o): Depend on collect2-aix.h.
1417 (collect2-aix.o): New rule.
1418 * collect2-aix.h: New file.
1419 * collect2-aix.c: Likewise.
1420 * collect2.c: Include collect2-aix.h. Don't undefine
1421 OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
1422 Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
1423 Use TARGET_AIX_VERSION instead of _AIX51.
1424 * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
1425 * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
1426 * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
1427 * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
1428 * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.
1429
51136ae8
RS
14302009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1431
1432 * collect2.c (ignore_library): Avoid premature post-increment
1433 and null deference.
1434
7f142d33
RS
14352009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1436
1437 * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
1438 * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
1439 !CROSS_DIRECTORY_STRUCTURE alternative and use it for
1440 CROSS_DIRECTORY_STRUCTURE too.
1441 (LINK_LIBG_SPEC): Likewise.
1442 (LIB_SPEC): Add %R to sysroot paths.
1443 * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
1444 (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
1445 * config/rs6000/aix51.h: As for aix43.h.
1446 * config/rs6000/aix52.h: Likewise.
1447 * config/rs6000/aix53.h: Likewise.
1448 * config/rs6000/aix61.h: Likewise.
1449 * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
1450 to the beginning of sysroot paths.
1451
9e74b7d2
AO
14522009-06-02 Alexandre Oliva <aoliva@redhat.com>
1453
1454 * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
1455 INSN_LISTs that are out of the REG_NOTE range.
1456
a9f6ecee
AO
14572009-06-02 Alexandre Oliva <aoliva@redhat.com>
1458
1459 * loop-unroll.c (struct iv_to_split): Add pointer to next.
1460 (struct var_to_expand): Likewise.
1461 (struct opt_info): Add head and tail for linked lists of the above.
1462 (analyze_insn_to_expand_var): Initialize next.
1463 (analyze_iv_to_split_insn): Likewise.
1464 (analyze_insns_in_loop): Create linked lists.
1465 (allocate_basic_variable): Simplify for use without hash table.
1466 (insert_var_expansion_initialization): Likewise, make it type-safer.
1467 (combine_var_copies_in_loop_exit): Likewise.
1468 (apply_opt_in_copies): Walk lists rather than hash tables.
1469 (release_var_copies): Simplified and inlined by hand into...
1470 (free_opt_info): ... this function.
1471
69596c69
RG
14722009-06-02 Richard Guenther <rguenther@suse.de>
1473
1474 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
1475 for field decls.
1476
fe8a7779
AO
14772009-06-02 Alexandre Oliva <aoliva@redhat.com>
1478
1479 * cfgexpand.c (gimple_expand_cfg): Discard the source location
1480 only for builtins that are not overridden.
1481
1bcca2c5
AO
14822009-06-02 Alexandre Oliva <aoliva@redhat.com>
1483
1484 * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
1485 label string.
1486
8588f797
AO
14872009-06-02 Alexandre Oliva <aoliva@redhat.com>
1488
1489 * df-core.c (df_ref_debug): Honor -fdump-noaddr.
1490
45f39d78
AO
14912009-06-02 Alexandre Oliva <aoliva@redhat.com>
1492
1493 * combine.c (move_deaths): Compare LUIDs within the same BB only.
1494
2aa7c49b
AO
14952009-06-02 Alexandre Oliva <aoliva@redhat.com>
1496
1497 * common.opt (fdump-unnumbered-links): New.
1498 * doc/invoke.texi (-fdump-unnumbered-links): Document it.
1499 * print-rtl.c (flag_dump_unnumbered_links): New.
1500 (print_rtx): Test it.
1501
55b2829b
RE
15022009-06-02 Richard Earnshaw <rearnsha@arm.com>
1503
1504 * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
1505 push/pop multiple to 8-byte alignment.
e63d4106 1506
6c0d7021
JJ
15072009-06-01 Jakub Jelinek <jakub@redhat.com>
1508
0aa34d44
JJ
1509 * config/i386/i386.c (queued_cfa_restores): New static variable.
1510 (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
1511 functions.
1512 (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
1513 (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
1514 Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
1515 Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
1516 note unconditionally.
1517 (ix86_emit_restore_regs_using_mov): Likewise.
1518 (ix86_emit_restore_sse_regs_using_mov): Likewise.
1519 (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
1520 it through to ix86_emit_restore_reg_using_pop.
1521 (ix86_emit_leave): Add RED_OFFSET argument. Call
1522 ix86_add_queued_cfa_restore_notes. Call ix86_add_cfa_restore_note
1523 instead of adding REG_CFA_OFFSET note unconditionally.
1524 (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
1525 the above functions. Call ix86_add_queued_cfa_restore_notes when
1526 needed.
1527
1528 * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
1529 force output of the label even for dwarf2out_do_cfi_asm.
1530 (add_fde_cfi): If -g2 and above and cfi might change CFA,
1531 force creation of CFI label and chain DW_CFA_set_loc jumping to it
1532 for convert_cfa_to_fb_loc_list. Adjust other dwarf2out_cfi_label
1533 caller.
1534 (dwarf2out_stack_adjust, dwarf2out_frame_debug,
1535 dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
1536 dwarf2out_cfi_label callers.
1537 * tree.h (dwarf2out_cfi_label): Adjust prototype.
1538 * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
1539 Adjust dwarf2out_cfi_label callers.
1540 * config/vax/vax.c (vax_output_function_prologue): Likewise.
1541
604a6be9
JJ
1542 * config/i386/i386.h (struct machine_cfa_state,
1543 struct machine_function): Guard with ifndef USED_FOR_TARGET
1544 instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.
1545
df0026a7
JJ
1546 PR other/40024
1547 * emutls.c (__emutls_get_address): Change arr->size to mean number
1548 of allocated arr->data entries instead of # of slots + 1.
1549
6c0d7021
JJ
1550 PR middle-end/40316
1551 * recog.c (peep2_reinit_state): New function.
1552 (peephole2_init_state): Use it at the end of a basic block and also
1553 when seeing a RTX_FRAME_RELATED_P insn.
1554
49df2fb8
SE
15552009-06-01 Steve Ellcey <sje@cup.hp.com>
1556
1557 * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
1558 fixuns_truncrfdi2): New.
1559 (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
1560 *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
1561 *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
1562 *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
1563 *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
1564 *recip_approx): Remove.
1565 (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
1566 moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
1567 divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
1568 move to div.md.
1569 * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
1570 setf_exp_rf): New.
1571
67165eb3
ILT
15722009-06-01 Ian Lance Taylor <iant@google.com>
1573
1574 * attribs.c (register_attribute): Use CONST_CAST.
1575 * collect2.c (main): Use CONST_CAST2.
1576 (scan_prog_file): Likewise.
1577 * gcc.c (process_command, main): Likewise.
1578 * toplev.c (toplev_main): Likewise.
1579
1580 * c-typeck.c (handle_warn_cast_qual): New static function,
1581 partially broken out of build_c_cast.
1582 (build_c_cast): Call handle_warn_cast_qual.
1583 * doc/invoke.texi (Warning Options): Document new effect of
1584 -Wcast-qual.
1585
e74fe492
AH
15862009-06-01 Aldy Hernandez <aldyh@redhat.com>
1587
1588 * diagnostic.c (diagnostic_build_prefix): Always print columns.
1589 (diagnostic_report_current_module): Print columns.
1590 * common.opt (flag_show_column): Enable by default.
1591
7eba2d1f
LM
15922009-06-01 Luis Machado <luisgpm@br.ibm.com>
1593
1594 * alias.c (find_base_term): Check for NULL term before returning.
1595
ee88d9aa
MK
15962009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
1597
1598 Revert due to PR40320:
ee88d9aa
MK
1599 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
1600 * calls.c (emit_library_call_value_1): Don't force_operand for move
1601 and push insns.
1602
324c9b02 16032009-06-01 Olivier Hainque <hainque@adacore.com>
40d0d9e4 1604 Eric Botcazou <ebotcazou@adacore.com>
324c9b02
OH
1605
1606 * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
1607 to be processed as a bitfield for constructor output purposes.
1608 * output.h (initializer_constant_valid_for_bitfield_p): Declare
1609 new function.
1610 * varasm.c (oc_local_state): New type, output_constructor
1611 local state to support communication with helpers.
1612 (oc_outer_state): New type, output_constructor outer state of
1613 relevance in recursive calls.
1614 (output_constructor_array_range): New output_constructor helper,
1615 extracted code for an array range element.
1616 (output_constructor_regular_field): New output_constructor helper,
1617 extracted code for an element that is not a bitfield.
1618 (output_constructor_bitfield): New output_constructor helper,
1619 extracted code for a bitfield element. Accept an OUTER state
1620 argument for recursive processing. Recurse on record or array
1621 CONSTRUCTOR values, possibly past noop conversions.
62295314 1622 (initializer_constant_valid_for_bitfield_p): New predicate. Whether
324c9b02
OH
1623 VALUE is a valid constant-valued expression for use in a static
1624 bit-field initializer.
62295314
OH
1625 (output_constructor): Rework to use helpers. Accept and honor an
1626 OUTER state argument for recursive calls. Return total size. Be
324c9b02
OH
1627 prepared for nested constructors initializing bitfields.
1628 (output_constant): Feed OUTER in calls to output_constructor.
1629
0980d7fe
MK
16302009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
1631
1632 * calls.c (emit_library_call_value_1): Don't force_operand for move
1633 and push insns.
1634
29661412
NC
16352009-06-01 Nick Clifton <nickc@redhat.com>
1636
1637 * doc/invoke.texi (IA-64 Options): Fix typo.
1638
e9dbe7bb
IR
16392009-06-01 Ira Rosen <irar@il.ibm.com>
1640
1641 PR tree-optimization/39129
1642 * tree-vect-loop-manip.c (conservative_cost_threshold): Change the
1643 printed message.
1644 (vect_do_peeling_for_loop_bound): Use
1645 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
1646 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
1647 (vect_loop_versioning): Likewise.
1648 (vect_create_cond_for_alias_checks): Fix indentation.
1649 * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the
1650 macros.
1651 (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
1652 (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
1653 * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to
1654 "control flow in loop".
1655 (vect_estimate_min_profitable_iters): Use
1656 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
1657 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
1658 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
1659 (vect_create_data_ref_ptr): Don't mention array dimension in printing.
1660 * tree-vect-stmts.c (vectorizable_store): Replace the check that the
1661 statement belongs to a group of strided accesses with the exact code
1662 check.
1663 (vectorizable_load): Likewise.
1664 * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
1665 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
1666
5ac69a80
GP
16672009-06-01 Gerald Pfeifer <gerald@pfeifer.com>
1668
1669 * config/freebsd-stdint.h: New file.
1670 * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
1671 Add freebsd-stdint.h to tm_file.
1672
54b2b460
RE
16732009-06-01 Richard Earnshaw <rearnsha@arm.com>
1674
1675 * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
1676 (thumb2_extendhidi2): Likewise.
1677
a7ca77cf
ILT
16782009-05-31 Ian Lance Taylor <iant@google.com>
1679
f3afc8a7 1680 * regstat.c (regstat_n_sets_and_refs): Remove duplicate definition.
c50d84e3
ILT
1681
16822009-05-31 Ian Lance Taylor <iant@google.com>
1683
f3afc8a7 1684 * Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H).
a7ca77cf
ILT
1685 (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
1686 (ipa-reference.o): Depend upon gt-ipa-reference.h.
1687
1aec401e
JM
16882009-05-31 Jason Merrill <jason@redhat.com>
1689
1690 * tree-pretty-print.c (print_call_name): Take the callee, not the
f3afc8a7 1691 call itself. Make non-static. Use dump_function_name for functions.
1aec401e
JM
1692 (dump_generic_node): Adjust.
1693 * diagnostic.h: Declare print_call_name.
1694 * gimple-pretty-print.c (dump_gimple_call): Use it.
1695
ed7910bb
KK
16962009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
1697
1698 * config/sh/sh.md (ashldi3_std): New define_expand.
1699 (ashldi3): Use it.
1700
47ea8d4e
KK
17012009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
1702
1703 PR target/40313
1704 * config/sh/sh.c: Include debug.h.
1705 (sh_expand_epilogue): Emit a blockage insn before the frame
1706 pointer adjustment also when dwarf2out_do_frame returns true.
1707
405e8b49
RE
17082009-05-31 Richard Earnshaw <rearnsha@arm.com>
1709
1710 * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
1711 (thumb2_extendqidi2): New pattern.
1712
71ece343
IR
17132009-05-31 Ira Rosen <irar@il.ibm.com>
1714
1715 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
1716 mark phis for renaming.
1717 * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
1718 (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
1719 Call mark_sym_for_renaming.
1720 * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
f3afc8a7
UB
1721 * tree-vect-loop.c (vect_transform_loop): Remove
1722 vect_memsyms_to_rename initialization and a call to
1723 mark_set_for_renaming.
71ece343 1724
b3041944
JJ
17252009-05-31 Jakub Jelinek <jakub@redhat.com>
1726
1727 PR middle-end/40304
1728 * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
1729 frame related even if !set_cfa && style < 0.
1730
a1bda0d7
KT
17312009-05-30 Kai Tietz <kai.tietz@onevision.com>
1732
1733 * config/i386/mingw-tls.c: New file.
f3afc8a7
UB
1734 * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file.
1735 * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets
1736 defining _WIN32 but not __CYGWIN__.
a1bda0d7 1737
acd26225
KG
17382009-05-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1739
1740 * configure.ac: Add MPC support.
1741
1742 * config.in, configure: Regenerate.
1743
cd9c1ca8
RH
17442009-05-29 Richard Henderson <rth@redhat.com>
1745
1746 * cfgcleanup.c (try_crossjump_to_edge): Only skip past
1747 NOTE_INSN_BASIC_BLOCK.
1748 * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
1749 Duplicate NOTE_INSN_EPILOGUE_BEG notes.
1750 * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
1751 to be deleted.
1752 * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
1753 add in_use field.
1754 (add_cfi): Disable check redefining cfa away from drap.
1755 (lookup_cfa_1): Add remember argument; handle remember/restore.
1756 (lookup_cfa): Pass remember argument.
1757 (cfa_remember): New.
1758 (compute_barrier_args_size_1): Remove sibcall check.
1759 (dwarf2out_frame_debug_def_cfa): New.
1760 (dwarf2out_frame_debug_adjust_cfa): New.
1761 (dwarf2out_frame_debug_cfa_offset): New.
1762 (dwarf2out_frame_debug_cfa_register): New.
1763 (dwarf2out_frame_debug_cfa_restore): New.
1764 (dwarf2out_frame_debug): Handle REG_CFA_* notes.
1765 (dwarf2out_begin_epilogue): New.
1766 (dwarf2out_frame_debug_restore_state): New.
1767 (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
1768 DW_CFA_restore_state.
1769 (output_cfi_directive): Likewise.
1770 (convert_cfa_to_fb_loc_list): Likewise.
1771 (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
1772 * dwarf2out.h: Update.
1773 * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
1774 (copy_insn_1): Early out for null.
1775 * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
1776 and dwarf2out_frame_debug_restore_state.
1777 * function.c (prologue, epilogue, sibcall_epilogue): Remove.
1778 (prologue_insn_hash, epilogue_insn_hash): New.
1779 (free_after_compilation): Adjust freeing accordingly.
1780 (record_insns): Create hash table if needed; push insns into
1781 hash instead of array.
1782 (maybe_copy_epilogue_insn): New.
1783 (contains): Search hash table instead of array.
1784 (sibcall_epilogue_contains): Remove.
1785 (thread_prologue_and_epilogue_insns): Split eh_return insns
1786 and mark them as epilogues.
1787 (reposition_prologue_and_epilogue_notes): Rewrite epilogue
1788 scanning in terms of basic blocks.
1789 * insn-notes.def (CFA_RESTORE_STATE): New.
1790 * jump.c (returnjump_p_1): Accept EH_RETURN.
1791 (eh_returnjump_p_1, eh_returnjump_p): New.
1792 * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
1793 CFA_REGISTER, CFA_RESTORE): New.
1794 * rtl.def (EH_RETURN): New.
1795 * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
1796
1797 * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
1798 (eh_return_internal): Use eh_return rtx; split w/ epilogue.
1799
1800 * config/i386/i386.c (gen_push): Update cfa state.
1801 (pro_epilogue_adjust_stack): Add set_cfa argument. When true,
1802 add a CFA_ADJUST_CFA note.
1803 (ix86_dwarf_handle_frame_unspec): Remove.
1804 (ix86_expand_prologue): Update cfa state.
1805 (ix86_emit_restore_reg_using_pop): New.
1806 (ix86_emit_restore_regs_using_pop): New.
1807 (ix86_emit_leave): New.
1808 (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
1809 (ix86_expand_epilogue): Add notes for unwinding the epilogue.
1810 * config/i386/i386.h (struct machine_cfa_state): New.
1811 (ix86_cfa_state): New.
1812 * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
1813 (eh_return_internal): Merge from eh_return_<mode>,
1814 use eh_return rtx, split w/ epilogue.
1815
72b5577d
ILT
18162009-05-29 Ian Lance Taylor <iant@google.com>
1817
1818 * builtins.c (validate_gimple_arglist): Don't use va_arg with
1819 enum type.
1820 * calls.c (emit_library_call_value_1): Likewise.
1821
1822 * c-typeck.c (c_build_va_arg): New function.
1823 * c-tree.h (c_build_va_arg): Declare.
1824 * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
1825 instead of build_va_arg.
1826
7a2faca1
EB
18272009-05-29 Eric Botcazou <ebotcazou@adacore.com>
1828
1829 * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
1830 (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
1831 (ptr_difference_cost): Use affine combinations to compute it.
1832 (difference_cost): Likewise.
1833 (get_computation_cost_at): Compute more accurate cost for addresses
1834 if the ratio is a multiplier allowed in addresses.
1835 For non-addresses, consider that an additional offset or symbol is
1836 added only once.
1837
725fd454
JJ
18382009-05-29 Jakub Jelinek <jakub@redhat.com>
1839
a0987204
JJ
1840 * config/i386/i386.c (ix86_decompose_address): Avoid useless
1841 0 displacement. Add 0 displacement if base is %[er]bp or %r13.
1842
725fd454
JJ
1843 * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
1844 TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
1845 (prefix_rex): For UNIT_MMX don't imply the prefix by default
1846 if MODE_DI.
1847 (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
1848 to 1 for TYPE_SSE{IADD1,CVT1}.
1849 (prefix_vex_imm8): Removed.
1850 (length_vex): Only pass 1 as second argument to
1851 ix86_attr_length_vex_default if prefix_extra is 0.
1852 (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
1853 (length): For prefix vex computation use length_immediate
1854 attribute instead of prefix_vex_imm8.
1855 (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
1856 addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
1857 *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
1858 *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
1859 (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
1860 *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
1861 a space in between the operands.
1862 (*anddi_1_rex64, *andsi_1): Likewise. Override prefix_rex to 1
1863 if one operand is 0xff and the other one si, di, bp or sp.
1864 (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
1865 other one si, di, bp or sp.
1866 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
1867 (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
1868 type and mode attributes.
1869 (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
1870 (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
1871 prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
1872 (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
1873 prefix_data16 attribute iff MODE_DF.
1874 (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
1875 (fix_trunc<mode>di_sse): Set prefix_rex attribute.
1876 (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
1877 constm128_operand in length_immediate computation.
1878 (*addhi_4): Likewise. Fix mode attribute to MODE_HI.
1879 (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
1880 (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
1881 length_immediate attribute to 1.
1882 (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
1883 (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
1884 for certain alternatives.
1885 (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
1886 prefix_data16 attribute if MODE_V1DF.
1887 (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
1888 length_immediate to 1.
1889 (set_got_rex64, set_rip_rex64): Remove length attribute, set
1890 length_address to 4, set mode attribute to MODE_DI.
1891 (set_got_offset_rex64): Likewise. Set length_immediate to 0.
1892 (fxam<mode>2_i387): Set length attribute to 4.
1893 (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
1894 *prefetch_3dnow_rex): Override length_address attribute.
1895 (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
1896 attributes.
1897 * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
1898 (constm128_operand): Removed.
1899 * config/i386/i386.c (memory_address_length): For
1900 disp && !index && !base in 64-bit mode account for SIB byte if
1901 print_operand_address can't optimize disp32 into disp32(%rip)
1902 and UNSPEC doesn't imply (%rip) addressing. Add 1 to length
1903 for fs: or gs: segment.
1904 (ix86_attr_length_immediate_default): When checking if shortform
1905 is possible, truncate immediate to the length of the non-shortened
1906 immediate.
1907 (ix86_attr_length_address_default): Ignore MEM_P operands
1908 with X constraint.
1909 (ix86_attr_length_vex_default): Only check for DImode on
1910 GENERAL_REG_P operands.
1911 * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
1912 prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
1913 (sse_cvttps2pi): Clear prefix_rep attribute.
1914 (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
1915 attribute.
1916 (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
1917 (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
1918 *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
1919 iff operand 2 is const_int_operand.
1920 (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
1921 sse2_shufpd_<mode>): Set length_immediate attribute to 1.
1922 (sse2_pshufd_1): Likewise. Set prefix attribute to maybe_vex
1923 instead of vex.
1924 (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
1925 prefix_data16.
1926 (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
1927 prefix_data16 attribute for movlpd and movhpd instructions.
1928 (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise. Override
1929 length_immediate for shufpd instruction.
1930 (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
1931 (avx_cmpp<avxmodesuffixf2c><mode>3,
1932 avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
1933 <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
1934 avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
f3afc8a7 1935 *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1.
725fd454
JJ
1936 (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
1937 (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
1938 (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
1939 prefix_data16 attribute for the first alternative to 1.
1940 (*avx_loadlps): Override length_immediate for the first alternative.
1941 (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
1942 attributes for second alternative.
1943 (*vec_concatv2sf_sse4_1): Override length_immediate and
1944 prefix_data16 attributes for second alternative.
1945 (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
1946 vec_extract_hi_<mode>, vec_extract_lo_v16hi,
1947 vec_extract_hi_v16hi, vec_extract_lo_v32qi,
1948 vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
1949 (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
1950 prefix_data16 and length_immediate to 1.
1951 (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
1952 to 1.
1953 (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
f3afc8a7 1954 prefix_extra attribute for variants that don't have 0f prefix alone.
725fd454
JJ
1955 (*avx_pinsr<ssevecsize>): Likewise. Set length_immediate to 1.
1956 (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
1957 *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
1958 *sse4_1_pextrd): Set length_immediate to 1.
1959 (*sse4_1_pinsrd): Likewise. Set prefix_extra to 1.
1960 (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
1961 to 1.
1962 (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
1963 *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
1964 length_immediate to 1 for second alternative.
1965 (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
1966 prefix_extra and length_immediate attributes for the first
1967 alternative.
1968 (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
1969 first alternative.
1970 (*vec_concatv2di_rex64_sse4_1): Likewise. Override prefix_rex
1971 to 1 for the first and third alternative.
1972 (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
1973 alternative.
1974 (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
1975 attribute.
1976 (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
1977 attribute to 0.
1978 (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
1979 *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
1980 *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
1981 *avx_psign<mode>3): Set prefix_extra attribute to 1.
1982 (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
1983 ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
1984 ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
1985 ssse3_psign<mode>3): Override prefix_rex attribute.
f3afc8a7 1986 (*avx_palignrti): Override prefix_extra and length_immediate to 1.
725fd454
JJ
1987 (ssse3_palignrti): Override length_immediate to 1.
1988 (ssse3_palignrdi): Override length_immediate to 1, override
1989 prefix_rex attribute.
f3afc8a7 1990 (abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute.
725fd454
JJ
1991 (sse4a_extrqi): Override length_immediate to 2.
1992 (sse4a_insertqi): Likewise. Override prefix_data16 to 0.
1993 (sse4a_insertq): Override prefix_data16 to 0.
1994 (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
1995 avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
1996 avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
1997 *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
1998 avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
1999 and length_immediate to 1.
2000 (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
2001 sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
2002 sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
2003 sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
2004 and length_immediate to 1.
2005 (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
2006 (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
2007 (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
2008 avx_ptest256): Override prefix_extra to 1.
2009 (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
2010 Override prefix_data16 and length_immediate to 1.
2011 (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
2012 sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
2013 sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
2014 sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
2015 prefix_data16 to 0 and prefix_extra to 2.
2016 (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
2017 (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
2018 attribute.
2019 (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
2020 sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
2021 Override prefix_data16 and prefix_rep to 0, length_immediate to 1
2022 and prefix_extra to 2.
2023 (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
2024 prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
2025 (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
2026 avx_vpermilvar<mode>3,
2027 avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
2028 avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
2029 avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
2030 avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
2031 Override prefix_extra to 1.
2032 (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
2033 (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
2034 vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
2035 vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
2036 prefix_extra and length_immediate to 1.
2037 (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
2038 modrm to 0.
2039 (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
2040 to 1 for the first alternative.
2041 * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
2042 prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
2043 cases.
2044 (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
2045 *movv2sf_internal_avx, *movv2sf_internal): Override
2046 prefix_rep attribute for certain alternatives.
2047 (*mov<mode>_internal): Override prefix_rep or prefix_data16
2048 attributes for certain alternatives.
2049 (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
2050 attributes for certain alternatives.
2051 (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
2052 *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
2053 mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
2054 mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
2055 *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
2056 mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
2057 mmx_pswapdv2si2): Set prefix_extra attribute to 1.
2058 (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
2059 length_immediate to 1 if operand 2 is const_int_operand.
2060 (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
f3afc8a7 2061 *vec_extractv2si_1): Set length_immediate attribute to 1.
725fd454
JJ
2062 (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
2063 using old 3DNOW insn rather than SSE/3DNOW_A.
2064 (mmx_emms, mmx_femms): Clear modrm attribute.
2065
0674b9d0
MJ
20662009-05-29 Martin Jambor <mjambor@suse.cz>
2067
2068 * tree-sra.c: New implementation of SRA.
2069
2070 * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
2071 (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
2072 (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
2073 * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
2074 (SRA_MAX_STRUCTURE_COUNT): Removed.
2075 (SRA_FIELD_STRUCTURE_RATIO): Removed.
2076 * doc/invoke.texi (sra-max-structure-size): Removed.
2077 (sra-field-structure-ratio): Removed.
2078
616f21df
JJ
20792009-05-29 Jakub Jelinek <jakub@redhat.com>
2080
2081 PR middle-end/40291
2082 * builtins.c (expand_builtin_memcmp): Convert len to sizetype
2083 before expansion.
2084
da7ba240
AB
20852009-05-29 Andrey Belevantsev <abel@ispras.ru>
2086
2087 PR rtl-optimization/40101
2088 * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
2089 seqno. Adjust comment.
2090 * sel-sched.c (find_seqno_for_bookkeeping): Assert that when
2091 inserting bookkeeping before a jump, the jump is not scheduled.
2092 When no positive seqno found, provide a value. Add comment.
2093
71dcd609
RG
20942009-05-29 Richard Guenther <rguenther@suse.de>
2095
2096 * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
2097 short-cutting on the first component.
2098
a900ae6b
JJ
20992009-05-29 Jakub Jelinek <jakub@redhat.com>
2100
2101 PR middle-end/39958
2102 * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
2103 for trees other than decls/types.
2104
821bb7f8
RG
21052009-05-29 Richard Guenther <rguenther@suse.de>
2106
2107 * tree-ssa-operands.c (get_expr_operands): Do not handle
2108 INDIRECT_REFs in the handled-component case. Remove
2109 unused get_ref_base_and_extent case.
2110 * tree-dfa.c (get_ref_base_and_extent): Avoid calling
2111 tree_low_cst and host_integerp where possible.
2112 * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
2113 codes for equivalence.
2114 * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
2115
e997fb9c
DB
21162009-05-29 David Billinghurst <billingd@gcc.gnu.org>
2117
2118 * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
2119 to tmake_file for i[34567]86-*-cygwin*.
2120
58195b74
JJ
21212009-05-29 Jakub Jelinek <jakub@redhat.com>
2122
2123 PR target/40017
2124 * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
2125 (altivec_categorize_keyword, init_vector_keywords,
2126 rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
2127 similar to bool.
2128
055df276
KT
21292009-05-29 Kai Tietz <kai.tietz@onevision.com>
2130
2131 * tree.c (handle_dll_attribute): Check if node is
2132 of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
2133
f5939ef3
RE
21342009-05-29 Richard Earnshaw <rearnsha@arm.com>
2135
2136 * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
2137 component.
2138 (thumb2_zero_extendqidi2): Likewise.
2139
c185de40
KK
21402009-05-28 Kaz Kojima <kkojima@gcc.gnu.org>
2141
2142 * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
2143 instead of gen_movrt.
2144 * config/sh/sh.md (movrt): Remove.
2145
bf3c6caf
SE
21462009-05-28 Steve Ellcey <sje@cup.hp.com>
2147
f3afc8a7 2148 * doc/invoke.texi (IA-64 Options):
bf3c6caf
SE
2149 Add -msdata, -mfused-madd, -mno-inline-float-divide,
2150 -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
2151 -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
2152 -msched-prefer-non-control-spec-insns,
2153 -msched-stop-bits-after-every-cycle,
2154 -msched-count-spec-in-critical-path,
2155 -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
f3afc8a7 2156 -msched-max-memory-insns-hard-limit, -msched-max-memory-insns.
bf3c6caf
SE
2157 Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
2158 and -msched-spec-verbose.
2159
8a66e987
JM
21602009-05-28 Joseph Myers <joseph@codesourcery.com>
2161
f3afc8a7 2162 * config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache.
8a66e987
JM
2163 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
2164 error if used.
2165 * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
2166
b45d2719
RG
21672009-05-28 Richard Guenther <rguenther@suse.de>
2168
2169 * tree-ssa-alias.c (ao_ref_init): New function.
2170 (ao_ref_base): Likewise.
2171 (ao_ref_base_alias_set): Likewise.
2172 (ao_ref_alias_set): Likewise.
2173 (refs_may_alias_p_1): Change signature.
2174 (refs_may_alias_p): Adjust.
2175 (refs_anti_dependent_p): Likewise.
2176 (refs_output_dependent_p): Likewise.
2177 (call_may_clobber_ref_p_1): Change signature.
2178 (call_may_clobber_ref_p): Adjust.
2179 (stmt_may_clobber_ref_p_1): New function split out from ...
2180 (stmt_may_clobber_ref_p): ... here.
2181 (maybe_skip_until): Adjust signature.
2182 (get_continuation_for_phi): Likewise.
2183 (walk_non_aliased_vuses): Likewise.
2184 * tree-ssa-alias.h (struct ao_ref_s): New structure type.
2185 (ao_ref_init): Declare.
2186 (ao_ref_base): Likewise.
2187 (ao_ref_alias_set): Likewise.
2188 (stmt_may_clobber_ref_p_1): Likewise.
2189 (walk_non_aliased_vuses): Adjust.
2190 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
2191 (get_ref_from_reference_ops): remove.
2192 (vn_reference_lookup_2): Adjust signature.
2193 (vn_reference_lookup_3): Do not re-build trees. Handle unions.
f3afc8a7 2194 (vn_reference_lookup_pieces): Adjust signature, do not re-build trees.
b45d2719
RG
2195 (vn_reference_lookup): Adjust.
2196 (vn_reference_insert): Likewise.
2197 (vn_reference_insert_pieces): Adjust signature.
2198 (visit_reference_op_call): Adjust.
2199 * tree-ssa-pre.c (get_expr_type): Simplify.
2200 (phi_translate_1): Adjust.
2201 (compute_avail): Likewise.
2202 (translate_vuse_through_block): Do not re-build trees.
2203 (value_dies_in_block_x): Likewise.
2204 * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
2205 fields.
2206 (vn_reference_lookup_pieces): Adjust declaration.
2207 (vn_reference_insert_pieces): Likewise.
2208
554223b6
BK
22092009-05-28 Benjamin Kosnik <bkoz@redhat.com>
2210
2211 * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
2212 with checking disabled.
2213
233215fe
DK
22142009-05-28 Dave Korn <dave.korn.cygwin@gmail.com>
2215
2216 PR target/37216
2217
2218 * configure.ac (HAVE_GAS_ALIGNED_COMM): Add autoconf test and
2219 macro definition for support of three-operand format aligned
2220 .comm directive in assembler on cygwin/pe/mingw target OS.
2221 * configure: Regenerate.
2222 * config.h: Regenerate.
2223
2224 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Use
2225 aligned form of .comm directive if -mpe-aligned-commons is in effect.
2226 * config/i386/cygming.opt (-mpe-aligned-commons): Add new option.
2227
2228 * doc/invoke.texi (-mpe-aligned-commons): Document new target option.
2229 * doc/tm.texi (ASM_OUTPUT_COMMON): Document zero size commons.
2230
24adb18f
IR
22312009-05-28 Ira Rosen <irar@il.ibm.com>
2232
2233 PR tree-optimization/40254
2234 * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
2235 in analysis of basic blocks.
2236
2c5bfdf7
AN
22372009-05-28 Adam Nemet <anemet@caviumnetworks.com>
2238
2239 PR middle-end/33699
f3afc8a7 2240 * target.h (struct gcc_target): Fix indentation. Add const_anchor.
2c5bfdf7
AN
2241 * target-def.h (TARGET_CONST_ANCHOR): New macro.
2242 (TARGET_INITIALIZER): Use it.
2243 * cse.c (CHEAPER): Move it up to the other macros.
2244 (insert): Rename this ...
2245 (insert_with_costs): ... to this. Add cost parameters. Update
2246 function comment.
2247 (insert): New function. Call insert_with_costs.
2248 (compute_const_anchors, insert_const_anchor, insert_const_anchors,
2249 find_reg_offset_for_const, try_const_anchors): New functions.
2250 (cse_insn): Call try_const_anchors. Adjust cost of src_related
2251 when using a const-anchor. Call insert_const_anchors.
f3afc8a7 2252 * config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor.
2c5bfdf7
AN
2253 * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
2254
9e6aced0
AO
22552009-05-28 Alexandre Oliva <aoliva@redhat.com>
2256
2257 * tree-inline.c (remap_decls): Enable nonlocalized variables
2258 when not optimizing.
2259
89fbbe4e
AO
22602009-05-28 Alexandre Oliva <aoliva@redhat.com>
2261
2262 * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
2263 Simplify other tests involving optimize.
2264
e455776a
TT
22652009-05-27 Tom Tromey <tromey@redhat.com>
2266
2267 * unwind-dw2.c (_Unwind_DebugHook): New function.
2268 (uw_install_context): Call _Unwind_DebugHook.
2269
cea32bca
TT
22702009-05-27 Tom Tromey <tromey@redhat.com>
2271
2272 * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
2273
c607156f
ILT
22742009-05-27 Ian Lance Taylor <iant@google.com>
2275
2276 * Makefile.in (LINKER, LINKER_FLAGS): Define.
2277 (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
2278 (ALL_LINKERFLAGS): Define.
2279 (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
2280 (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
2281 (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
2282 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
2283 (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
2284 $(LINKER_FOR_BUILD).
2285 (build/gcov-iov$(build_exeext)): Likewise.
2286
ec0a1343
JB
22872009-05-27 Julian Brown <julian@codesourcery.com>
2288
2289 * gcse.c (target.h): Include.
2290 (can_assign_to_reg_without_clobbers_p): Check that the target allows
2291 copy of argument to a pseudo register.
2292
ac80ba07
DN
22932009-05-27 Diego Novillo <dnovillo@google.com>
2294
2295 * tree-ssa-live.c (dump_scope_block): Document arguments.
2296 (dump_scope_blocks): Document.
2297 (debug_scope_blocks): New.
2298 * tree-flow.h (debug_scope_blocks): Declare.
2299
d1803a17
DC
23002009-05-21 Denis Chertykov <denisc@overta.ru>
2301
f3afc8a7 2302 * doc/contrib.texi (Contributors): Add myself to the list.
d1803a17 2303
51fb7760 23042009-05-27 Olivier Hainque <hainque@adacore.com>
ceadb728
OH
2305
2306 * expr.c (target_align): New function. Alignment the TARGET of an
2307 assignment may be assume to have.
2308 (highest_pow2_factor_for_target): Use it instead of relying on
2309 immediate tree attributes of TARGET, not necessarily honored when
2310 intermediate bitfields are involved.
2311
634fa334
L
23122009-05-27 H.J. Lu <hongjiu.lu@intel.com>
2313
2314 PR target/40266
2315 * config/i386/driver-i386.c (host_detect_local_cpu): Support
2316 AVX, SSE4, AES, PCLMUL and POPCNT.
2317
65332587
DN
23182009-05-27 Diego Novillo <dnovillo@google.com>
2319
2320 * tree-pretty-print.c (dump_location): New.
2321 (dump_generic_node): Call it.
2322 Factor code to handle BLOCK nodes ...
2323 (dump_block_node): ... here.
2324
3e17e31d
RAE
23252009-05-27 Rafael Avila de Espindola <espindola@google.com>
2326
f3afc8a7
UB
2327 * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h
2328 with it.
3e17e31d
RAE
2329 * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
2330 included.
2331 * gcc-plugin.h: Include config.h and system.h.
2332 (IN_GCC): Define if not defined.
2333
5e370570
HPN
23342009-05-27 Hans-Peter Nilsson <hp@axis.com>
2335
2336 PR middle-end/40249
2337 * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
2338 with -fno-inline.
2339
d000f0d9
SZ
23402009-05-27 Shujing Zhao <pearly.zhao@oracle.com>
2341
2342 * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
2343 applicable.
2344 * config/m32r/m32r.h: Ditto.
2345 * config/m32r/m32r.md: Ditto.
2346 * config/m32r/predicates.md: Ditto.
2347
82f331ff
AO
23482009-05-27 Alexandre Oliva <aoliva@redhat.com>
2349
2350 * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
2351
ae2392a9
BS
23522009-05-26 Basile Starynkevitch <basile@starynkevitch.net>
2353
2354 * doc/plugins.texi
2355 (Loading plugins): typo.
2356 (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
2357 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
2358 (Interacting with the GCC Garbage Collector): Added new section.
2359 (Giving information about a plugin): Added new section for
2360 PLUGIN_INFO.
ae2392a9
BS
2361 * ggc.h (ggc_register_root_tab): Added declaration.
2362 * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
2363 (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
2364 (register_callback): Improved comment in declaration.
f3afc8a7
UB
2365 * ggc-common.c (const_ggc_root_tab_t) Added new typedef for vectors.
2366 (extra_root_vec) Added static variable for dynamic roots registration.
ae2392a9
BS
2367 (ggc_register_root_tab) Added new routine.
2368 (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
2369 PLUGIN_GGC_MARKING event.
2370 * ggc-zone.c: Include plugin.h.
2371 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
2372 * ggc-page.c: Include plugin.h.
2373 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
2374 * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
2375 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
2376 (register_callback): check lack of callbacks for
2377 pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
2378 PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
2379 (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
2380 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
2381 * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
2382 dependency on plugin.h.
2383 (plugin.o): Added dependency on ggc.h...
2384
f0cfd3a8
RG
23852009-05-26 Richard Guenther <rguenther@suse.de>
2386
2387 PR middle-end/40248
2388 Revert
2389 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
2390 with mismatched comparison modes.
2391
2392 * expr.c (expand_expr_real_1): Expand the operand of a
2393 VIEW_CONVERT_EXPR in its natural mode.
2394
7980bfb8
ILT
23952009-05-26 Ian Lance Taylor <iant@google.com>
2396
2397 * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
2398 (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
2399 (ALL_COMPILERFLAGS): Define.
2400 (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
2401 (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
2402 (collect2$(exeext), collect2.o): Likewise.
2403 (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
2404 (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
2405 ($(out_object_file), mips-tfile, mips-tdump): Likewise.
2406 (libbackend.o, intl.o, cppdefault.o): Likewise.
2407 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
2408 (build/%.o): Use $(COMPILER_FOR_BUILD).
2409 (build/gen%$(build_exeext)): Likewise.
2410 (build/gcov-iov$(build_exeext)): LIkewise.
2411 * config/t-darwin (darwin.o): Use $(COMPILER).
2412 (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
2413 * config/t-sol2 (sol2-c.o): Likewise.
2414 (sol2.o): Likewise.
2415 * config/t-vxworks (vxworks.o): Likewise.
2416 * config/x-darwin (host-darwin.o): Likewise.
2417 * config/x-hpux (host-hpux.o): Likewise.
2418 * config/x-linux (host-linux.o): Likewise.
2419 * config/x-solaris (host-solaris.o): Likewise.
2420 * config/alpha/x-alpha (driver-alpha.o): Likewise.
2421 * config/arm/t-arm (arm-c.o): Likewise.
2422 * config/arm/t-pe (pe.o): Likewise.
2423 * config/arm/t-wince-pe (pe.o): Likewise.
2424 * config/i386/t-cygming (winnt.o): Likewise.
2425 (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
2426 * config/i386/t-cygwin (cygwin1.o): Likewise.
2427 (cygwin2.o): Likewise.
2428 * config/i386/t-i386 (i386-c.o): Likewise.
2429 * config/i386/t-interix (winnt.o): Likewise.
2430 * config/i386/t-netware (netware.o): Likewise.
2431 * config/i386/t-nwld (nwld.o): Likewise.
2432 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
2433 * config/i386/x-i386 (driver-i386.o): Likewise.
2434 * config/i386/x-cygwin (host-cygwin.o): Likewise.
2435 * config/i386/x-mingw32 (host-mingw32.o): Likewise.
2436 * config/ia64/t-ia64 (ia64-c.o): Likewise.
2437 * config/m32c/t-m32c (m32c-pragma.o): Likewise.
2438 * config/mips/x-native (driver-native.o): Likewise.
2439 * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
2440 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
2441 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
2442 * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
2443 * config/score/t-score-elf (score7.o): Likewise.
2444 (score3.o): Likewise.
2445 * config/sh/t-sh (sh-c.o): Likewise.
2446 * config/sh/t-symbian (sh-c.o): Likewise.
2447 (symbian.o): Likewise.
2448 * config/spu/t-spu-elf (spu-c.o): Likewise.
2449 * config/v850/t-v850 (v850-c.o): Likewise.
2450 * config/v850/t-v850e (v850-c.o): Likewise.
2451
23977d3c
RG
24522009-05-26 Richard Guenther <rguenther@suse.de>
2453
2454 PR tree-optimization/40122
2455 * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
2456 VECTOR_CSTs if possible.
2457 (fold_gimple_assign): Likewise.
2458
3d62b895
RG
24592009-05-26 Richard Guenther <rguenther@suse.de>
2460
2461 PR middle-end/40252
2462 * fold-const.c (fold_binary): Use the correct types for building
2463 rotates.
2464
12346147
RG
24652009-05-26 Richard Guenther <rguenther@suse.de>
2466
2467 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
2468 redundant calls to merge_alias_info.
2469 (bump_vector_ptr): Likewise.
2470 * tree-ssa-copy.c (merge_alias_info): Remove.
2471 (replace_exp_1): Remove call to merge_alias_info.
2472 (propagate_tree_value): Likewise.
2473 (fini_copy_prop): Propagate points-to info.
2474 * tree-flow.h (merge_alias_info): Remove.
2475
807d5e6f
HS
24762009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
2477
2478 * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
2479
85057983
JH
24802009-05-25 Jan Hubicka <jh@suse.cz>
2481
2482 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
2483 * cgraph.h (struct inline_summary): New filed self_wize,
2484 size_inlining_benefit, self_time and time_inlining_benefit.
2485 (struct cgraph_global_info): Replace insns by time ans size fields.
2486 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
2487 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
2488 (ipcp_update_callgraph): Do not touch function bodies.
2489 * ipa-inline.c: Include except.h
2490 (MAX_TIME): New constant.
2491 (overall_insns): Remove.
2492 (leaf_node_p): New.
2493 (overall_size, max_benefit): New static variables.
2494 (cgraph_estimate_time_after_inlining): New function.
2495 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
2496 (cgraph_clone_inlined_nodes): Update size.
2497 (cgraph_mark_inline_edge): Update size.
2498 (cgraph_estimate_growth): Use size info.
2499 (cgraph_check_inline_limits): Check size.
2500 (cgraph_default_inline_p): Likewise.
2501 (cgraph_edge_badness): Compute badness based on benefit and size cost.
2502 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
2503 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
2504 and times.
85057983
JH
2505 (cgraph_decide_inlining): Likewise.
2506 (cgraph_decide_inlining_incrementally): Likewise; honor
2507 PARAM_EARLY_INLINING_INSNS.
2508 (likely_eliminated_by_inlining_p): New predicate.
2509 (estimate_function_body_sizes): New function.
2510 (compute_inline_parameters): Use it.
2511 * except.c (must_not_throw_labels): New function.
2512 * except.h (must_not_throw_labels): Declare.
2513 * tree-inline.c (init_inline_once): Kill inlining_weigths
2514 * tree-ssa-structalias.c: Avoid uninitialized warning.
2515 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
2516 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
2517 (PARAM_INLINE_CALL_COST): Remove.
2518 (PARAM_EARLY_INLINING_INSNS): New.
2519
01df5c8a
RG
25202009-05-25 Richard Guenther <rguenther@suse.de>
2521
2522 PR tree-optimization/36327
2523 * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
f3afc8a7 2524 callback for reference translation or lookup at the point of may-defs.
01df5c8a
RG
2525 * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
2526 * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
2527 for union COMPONENT_REFs.
2528 (vn_reference_lookup_3): New callback. Lookup from memset
2529 and CONSTRUCTOR assignment, translate through struct copies.
2530 (vn_reference_lookup_pieces): Make sure to not free the
2531 passed operands array. Adjust walk_non_aliased_vuses call.
2532 (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
2533 make sure we do not leak memory.
2534
6b8ed145
RG
25352009-05-25 Richard Guenther <rguenther@suse.de>
2536
2537 * tree-ssa-alias.h (dump_points_to_solution): Declare.
2538 * tree-inline.c (expand_call_inline): Reset the escaped and
2539 callused solutions.
2540 * tree-ssa-structalias.c (pass_build_ealias): New.
2541 * tree-pass.h (pass_build_ealias): Declare.
2542 * passes.c (init_optimization_passes): Add PTA during
2543 early optimizations.
2544 * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
2545 and CALLUSED solutions.
2546 (dump_points_to_solution): New function, split out from ...
2547 (dump_points_to_info_for): ... here.
2548 * tree-parloops.c (parallelize_loops): Reset the escaped and
2549 callused solutions.
2550
0adcf178
RO
25512009-05-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2552
2553 PR bootstrap/40027
2554 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
2555 * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
2556
12aaf609
IR
25572009-05-25 Ira Rosen <irar@il.ibm.com>
2558
2559 PR tree-optimization/40238
2560 * tree-vect-stmts.c (vect_init_vector): Insert initialization
2561 statements after basic block's labels.
2562 * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info()
2563 to free the allocated memory.
2564
7f9a14e3
KK
25652009-05-24 Kaz Kojima <kkojima@gcc.gnu.org>
2566
2567 * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
2568 return address with a USE.
2569
b842d478
RG
25702009-05-24 Richard Guenther <rguenther@suse.de>
2571
2572 PR middle-end/40233
2573 * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
2574 array type from the main variant of the inner type.
2575
8db7b33f
JBG
25762009-05-24 Jan-Benedict Glaw <jbglaw@lug-owl.de>
2577
2578 * config/vax/vax-protos.h (legitimate_constant_address_p): Change
2579 definition to bool (from int) to un-break build.
2580 (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
2581
cff4e50d
PB
25822009-05-24 Paolo Bonzini <bonzini@gnu.org>
2583
2584 * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
2585 discard_stmt_changes): Delete.
2586 * tree-ssa-operands.c (scb_stack): Delete.
2587 (init_ssa_operands): Do not initialize it.
2588 (fini_ssa_operands): Do not free it.
2589 (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
2590
2591 * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with
2592 update_stmt, remove the others. Fix comments.
2593 * tree-dfa.c (optimize_stack_restore): Likewise.
2594 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
2595 * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
2596 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
2597 * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
2598 Likewise.
2599 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
2600 * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
f3afc8a7
UB
2601 (dom_opt_finalize_block): Likewise, adjusting access to
2602 stmts_to_rescan.
cff4e50d
PB
2603 (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
2604 (stmts_to_rescan): Change item type to gimple.
2605 (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
2606
a70d6342
IR
26072009-05-24 Ira Rosen <irar@il.ibm.com>
2608
2609 * doc/passes.texi (Tree-SSA passes): Document SLP pass.
2610 * tree-pass.h (pass_slp_vectorize): New pass.
2611 * params.h (SLP_MAX_INSNS_IN_BB): Define.
2612 * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
2613 * tree-vectorizer.c (timevar.h): Include.
2614 (user_vect_verbosity_level): Declare.
2615 (vect_location): Fix comment.
2616 (vect_set_verbosity_level): Update user_vect_verbosity_level
2617 instead of vect_verbosity_level.
2618 (vect_set_dump_settings): Add an argument. Ignore user defined
2619 verbosity if dump flags require higher level of verbosity. Print to
2620 stderr only for loop vectorization.
2621 (vectorize_loops): Update call to vect_set_dump_settings.
2622 (execute_vect_slp): New function.
2623 (gate_vect_slp): Likewise.
2624 (struct gimple_opt_pass pass_slp_vectorize): New.
2625 * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
2626 access its members.
2627 (vec_info_for_bb): New function.
2628 (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
2629 (VECTORIZATION_ENABLED): New macro.
2630 (SLP_ENABLED, SLP_DISABLED): Likewise.
2631 (vect_is_simple_use): Add bb_vec_info argument.
2632 (new_stmt_vec_info, vect_analyze_data_ref_dependences,
2633 vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
2634 vect_analyze_data_ref_accesses, vect_analyze_data_refs,
2635 vect_schedule_slp, vect_analyze_slp): Likewise.
2636 (vect_analyze_stmt): Add slp_tree argument.
2637 (find_bb_location): Declare.
2638 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
2639 * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
2640 (vect_analyze_loop_operations, vect_analyze_loop,
2641 get_initial_def_for_induction, vect_create_epilog_for_reduction,
2642 vect_finalize_reduction, vectorizable_reduction,
2643 vectorizable_live_operation, vect_transform_loop): Likewise.
2644 * tree-data-ref.c (dr_analyze_innermost): Update comment,
2645 skip evolution analysis if analyzing a basic block.
2646 (dr_analyze_indices): Likewise.
2647 (initialize_data_dependence_relation): Skip the test whether the
2648 object is invariant for basic blocks.
2649 (compute_all_dependences): Skip dependence analysis for data
2650 references in basic blocks.
2651 (find_data_references_in_stmt): Don't fail in case of invariant
2652 access in basic block.
2653 (find_data_references_in_bb): New function.
2654 (find_data_references_in_loop): Move code to
782dc37a 2655 find_data_references_in_bb and add a call to it.
a70d6342
IR
2656 (compute_data_dependences_for_bb): New function.
2657 * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
2658 * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
2659 that STEP is 0.
2660 (vect_analyze_data_ref_dependence): Check for interleaving in case of
2661 unknown dependence in basic block and fail in case of dependence in
2662 basic block.
2663 (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
2664 dependence instances from either loop or basic block vectorization
2665 info.
2666 (vect_compute_data_ref_alignment): Check if it is loop vectorization
2667 before calling nested_in_vect_loop_p.
2668 (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
2669 dependence instances from either loop or basic block vectorization
2670 info.
2671 (vect_verify_datarefs_alignment): Likewise.
2672 (vect_enhance_data_refs_alignment): Adjust function calls.
2673 (vect_analyze_data_refs_alignment): Likewise.
2674 (vect_analyze_group_access): Fix printing. Skip different checks if
2675 DR_STEP is 0. Keep strided stores either in loop or basic block
2676 vectorization data structure. Fix indentation.
2677 (vect_analyze_data_ref_access): Fix comments, allow zero step in
2678 basic blocks.
2679 (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
2680 dependence instances from either loop or basic block vectorization
2681 info.
2682 (vect_analyze_data_refs): Update comment. Call
2683 compute_data_dependences_for_bb to analyze basic blocks.
2684 (vect_create_addr_base_for_vector_ref): Check for outer loop only in
2685 case of loop vectorization. In case of basic block vectorization use
782dc37a 2686 data-ref itself as a base.
a70d6342
IR
2687 (vect_create_data_ref_ptr): In case of basic block vectorization:
2688 don't advance the pointer, add new statements before the current
2689 statement. Adjust function calls.
2690 (vect_supportable_dr_alignment): Support only aligned accesses in
2691 basic block vectorization.
2692 * common.opt (ftree-slp-vectorize): New flag.
2693 * tree-vect-patterns.c (widened_name_p): Adjust function calls.
2694 (vect_pattern_recog_1): Likewise.
2695 * tree-vect-stmts.c (process_use): Likewise.
2696 (vect_init_vector): Add new statements in the beginning of the basic
2697 block in case of basic block SLP.
2698 (vect_get_vec_def_for_operand): Adjust function calls.
2699 (vect_finish_stmt_generation): Likewise.
2700 (vectorizable_call): Add assert that it is loop vectorization, adjust
2701 function calls.
2702 (vectorizable_conversion, vectorizable_assignment): Likewise.
2703 (vectorizable_operation): In case of basic block SLP, take
2704 vectorization factor from statement's type and skip the relevance
2705 check. Adjust function calls.
2706 (vectorizable_type_demotion): Add assert that it is loop
2707 vectorization, adjust function calls.
2708 (vectorizable_type_promotion): Likewise.
2709 (vectorizable_store): Check for outer loop only in case of loop
2710 vectorization. Adjust function calls. For basic blocks, skip the
2711 relevance check and don't advance pointers.
2712 (vectorizable_load): Likewise.
2713 (vectorizable_condition): Add assert that it is loop vectorization,
2714 adjust function calls.
2715 (vect_analyze_stmt): Add argument. In case of basic block SLP, check
2716 that it is not reduction, get vector type, call only supported
782dc37a 2717 functions, skip loop specific parts.
a70d6342
IR
2718 (vect_transform_stmt): Check for outer loop only in case of loop
2719 vectorization.
2720 (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
2721 (vect_is_simple_use): Fix comment, add new argument, fix conditions
2722 for external definition.
2723 * passes.c (pass_slp_vectorize): New pass.
2724 * tree-vect-slp.c (find_bb_location): New function.
2725 (vect_get_and_check_slp_defs): Add argument, adjust function calls,
2726 check for patterns only in loops.
2727 (vect_build_slp_tree): Add argument, adjust function calls, fail in
2728 case of multiple types in basic block SLP.
2729 (vect_mark_slp_stmts_relevant): New function.
2730 (vect_supported_load_permutation_p): Fix comment.
2731 (vect_analyze_slp_instance): Add argument. In case of basic block
2732 SLP, take vectorization factor from statement's type, check that
2733 unrolling factor is 1. Adjust function call. Save SLP instance in
2734 either loop or basic block vectorization structure. Return FALSE,
2735 if SLP failed.
2736 (vect_analyze_slp): Add argument. Get strided stores groups from
2737 either loop or basic block vectorization structure. Return FALSE
2738 if basic block SLP failed.
2739 (new_bb_vec_info): New function.
2740 (destroy_bb_vec_info, vect_slp_analyze_node_operations,
2741 vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
2742 (vect_schedule_slp): Add argument. Get SLP instances from either
2743 loop or basic block vectorization structure. Set vectorization factor
2744 to be 1 for basic block SLP.
2745 (vect_slp_transform_bb): New function.
2746 * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
2747
0676c393
MM
27482009-05-23 Mark Mitchell <mark@codesourcery.com>
2749
2750 * final.c (shorten_branches): Do not align labels for jump tables.
2751 (final_scan_insn): Use JUMP_TABLE_DATA_P.
2752
94324dae
EB
27532009-05-23 Eric Botcazou <ebotcazou@adacore.com>
2754
2755 * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
2756 Remove outdated reference to flow.c and fix nits.
2757 * doc/gccint.texi: Tweak RTL description.
2758 * doc/rtl.texi: Likewise.
2759
92bffc14
DC
27602009-05-23 Denis Chertykov <chertykov@gmail.com>
2761
2762 * config/avr/avr.c: Change my email address.
2763 * config/avr/avr.h: Likewise.
2764 * config/avr/avr.md: Likewise.
2765 * config/avr/avr-protos.h: Likewise.
2766 * config/avr/libgcc.S: Likewise.
2767
eec9405e
TS
27682009-05-22 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
2769
2770 * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
2771 (spu_split_load, spu_split_store): Change return type to int.
2772 (spu_split_convert): Declare.
2773 * config/spu/predicates.md (spu_mem_operand): Remove.
2774 (spu_mov_operand): Update.
2775 (spu_dest_operand, shiftrt_operator, extend_operator): Define.
2776 * config/spu/spu.c (regno_aligned_for_load): Remove.
2777 (reg_aligned_for_addr, spu_expand_load): Define.
2778 (spu_expand_extv): Reimplement and handle MEM.
2779 (spu_expand_insv): Handle MEM.
2780 (spu_sched_reorder): Handle insn's with length 0.
2781 (spu_legitimate_address_p): Reimplement.
2782 (store_with_one_insn_p): Return TRUE for any mode with size
2783 larger than 16 bytes.
2784 (address_needs_split): Define.
2785 (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
2786 operands.
2787 (spu_convert_move): Define.
782dc37a 2788 (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
eec9405e
TS
2789 (spu_split_store): Change all MEM's to TImode.
2790 (spu_init_expanders): Preallocate registers that correspond to
2791 LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
2792 mark_reg_pointer.
2793 (spu_split_convert): Define.
2794 * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
2795 (_move<mode>, _movdi, _movti): Update predicate and condition.
2796 (load, store): Change to define_split.
2797 (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
2798 extend<mode>ti2.
2799 (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
2800 (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
2801 define_insn_and_split of lshr<mode>3.
2802 (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
2803 (<v>ashr<mode>3_imm): Define.
2804 (extv, extzv, insv): Allow MEM operands.
2805 (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
2806 shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
2807 sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
2808 (_spu_convert2): Change to define_insn_and_split and remove the
2809 corresponding define_peephole2.
2810 (stack_protect_set, stack_protect_test, stack_protect_test_si):
2811 Change predicates to memory_operand.
2812
7d31a807
MM
28132009-05-22 Mark Mitchell <mark@codesourcery.com>
2814
2815 * config/arm/thumb2.md: Add 16-bit multiply instructions.
7d31a807 2816
d021d274
MM
28172009-05-21 Michael Meissner <meissner@linux.vnet.ibm.com>
2818
2819 PR tree-optimization/40219
2820 * tree.c (iterative_hash_expr): Make sure the builtin function is
2821 a normal builtin function and not a front end or back end builtin
2822 before indexing into the built_in_decls array.
2823
4d7a65ea
RG
28242009-05-22 Richard Guenther <rguenther@suse.de>
2825
2826 PR middle-end/38964
2827 * alias.c (write_dependence_p): Do not use TBAA for answering
2828 anti-dependence or output-dependence.
782dc37a 2829 * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
4d7a65ea
RG
2830 (emit_pointer_definition): Remove.
2831 (emit_alias_warning): Likewise.
2832 (find_what_var_points_to): Remove TBAA pruning code.
2833 (find_what_p_points_to): Likewise. Do not warn about strict-aliasing
2834 violations.
2835 (compute_points_to_sets): Remove code computing the set of
2836 dereferenced pointers.
2837 * tree-data-ref.c (dr_may_alias_p): Properly use the split
2838 oracle for querying anti and output dependencies.
2839 * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
2840 if TBAA may be applied.
2841 (refs_anti_dependent_p): New function.
2842 (refs_output_dependent_p): Likewise.
2843 * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
2844 (refs_output_dependent_p): Likewise.
2845 * doc/tree-ssa.texi (Memory model): New section.
2846 * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
2847 * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
2848 * cfgexpand.c (expand_gimple_basic_block): Do not handle
2849 GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
2850 * expr.c (expand_expr_real_1): Likewise.
2851 * gimple-low.c (lower_stmt): Likewise.
2852 * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
2853 (dump_gimple_cdt): Remove.
2854 * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
2855 (gimple_size): Likewise.
2856 (walk_gimple_op): Likewise.
2857 (is_gimple_stmt): Likewise.
2858 (walk_stmt_load_store_addr_ops): Likewise.
2859 (gimple_build_cdt): Remove.
2860 * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
2861 * gimple.h (gimple_cdt_new_type): Remove.
2862 (gimple_cdt_new_type_ptr): Likewise.
2863 (gimple_cdt_set_new_type): Likewise.
2864 (gimple_cdt_location): Likewise.
2865 (gimple_cdt_location_ptr): Likewise.
2866 (gimple_cdt_set_location): Likewise.
2867 * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
2868 * tree-cfg.c (remove_useless_stmts_1): Do not handle
2869 GIMPLE_CHANGE_DYNAMIC_TYPE.
2870 (verify_types_in_gimple_stmt): Likewise.
2871 * tree-inline.c (estimate_num_insns): Likewise.
2872 (expand_call_inline): Do not copy DECL_NO_TBAA_P.
2873 (copy_decl_to_var): Likewise.
2874 (copy_result_decl_to_var): Likewise.
2875 * tree-pretty-print.c (dump_generic_node): Do not handle
2876 CHANGE_DYNAMIC_TYPE_EXPR.
2877 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
2878 * tree-ssa-operands.c (get_expr_operands): Likewise.
2879 * tree-ssa-structalias.c (struct variable_info): Remove
2880 no_tbaa_pruning member.
2881 (new_var_info): Do not set it based on DECL_NO_TBAA_P.
2882 (unify_nodes): Do not copy it.
2883 (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
2884 (dump_solution_for_var): Do not dump no_tbaa_pruning state.
2885 (set_uids_in_ptset): Do not check it.
2886 (find_what_var_points_to): Likewise.
2887 (compute_tbaa_pruning): Remove.
2888 (compute_points_to_sets): Do not call it.
2889 * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
2890 * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
2891 * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
2892 (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
2893 (DECL_NO_TBAA_P): Likewise.
2894 (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
2895 * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
2896 (expand_omp_atomic_pipeline): Do not set it.
2897 * print-tree.c (print_node): Do not dump it.
2898 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
2899 redundant check.
2900
83a6ac60
VM
29012009-05-22 Vladimir Makarov <vmakarov@redhat.com>
2902
2903 PR target/39856
2904 * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
2905 for clobber.
2906
fe2978fb
MM
29072009-05-22 Mark Mitchell <mark@codesourcery.com>
2908
2909 * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
2910 non-external.
2911
134ef638
BE
29122009-05-22 Ben Elliston <bje@au.ibm.com>
2913
2914 * Makefile.in (bversion.h, s-bversion): New targets.
2915 (TOPLEV_H): Add bversion.h.
2916 * toplev.h: Include "bversion.h".
2917 (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
2918 the __format__ attribute only if compiling with the same version
2919 of GCC as the sources (the "build version").
2920
52fc669d
BE
29212009-05-22 Ben Elliston <bje@au.ibm.com>
2922
2923 * c-format.c (handle_format_attribute): Fix comment typo.
2924
583ca921
SE
29252009-05-21 Steve Ellcey <sje@cup.hp.com>
2926
2927 PR target/37846
2928 * config/ia64/ia64.opt (mfused-madd): New.
2929 * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
2930 * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
2931 * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
2932 madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
2933 nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
2934 msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
2935 nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
2936 * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms
2937 instruction if !TARGET_FUSED_MADD.
2938 (fpma, fpms): Remove colon from name.
2939
150e3929
RG
29402009-05-22 Richard Guenther <rguenther@suse.de>
2941
2942 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
2943 TMR_ORIGINAL. Always either record TMR_SYMBOL or TMR_BASE.
2944 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
2945 TARGET_MEM_REF.
2946 (create_expression_by_pieces): Only convert if necessary.
2947 * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
2948 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
2949
9a2b090c
AN
29502009-05-21 Adam Nemet <anemet@caviumnetworks.com>
2951
2952 * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
2953 regular pattern from a template and rename it ...
2954 (*extzv_truncsi_exts): ... to this.
2955
33b92c9d
RG
29562009-05-21 Richard Guenther <rguenther@suse.de>
2957
2958 * cgraph.h (struct cgraph_node): Remove inline_decl member.
2959 * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
2960 (cgraph_default_inline_p): Likewise.
2961 (cgraph_decide_inlining_incrementally): Likewise.
2962
cabf85c3
L
29632009-05-21 H.J. Lu <hongjiu.lu@intel.com>
2964 Uros Bizjak <ubizjak@gmail.com>
2965
2966 * config/i386/cpuid.h (bit_MOVBE): New.
2967
2968 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
2969
2970 * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
2971 (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
2972 (ix86_handle_option): Handle OPT_mmovbe.
2973 (ix86_target_string): Add -mmovbe.
2974 (pta_flags): Add PTA_MOVBE.
2975 (processor_alias_table): Add PTA_MOVBE to "atom".
2976 (override_options): Handle PTA_MOVBE.
2977
2978 * config/i386/i386.h (TARGET_MOVBE): New.
2979
2980 * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
2981 (*bswapsi_movbe): New.
2982 (*bswapdi_movbe): Likewise.
2983 (bswapdi2): Renamed to ...
2984 (*bswapdi_1): This.
2985 (bswapdi2): New expander.
2986
2987 * config/i386/i386.opt (mmovbe): New.
2988
2989 * doc/invoke.texi: Document -mmovbe.
2990
9fefa0aa
TG
29912009-05-21 Taras Glek <tglek@mozilla.com>
2992
2993 * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
2994 * gcc-plugin.h (plugin_init): Updated signature.
2995 * gcc-plugin.h (plugin_name_args): Moved to this header.
cabf85c3
L
2996 * doc/plugins.texi (plugin_init): Updated documention to reflect
2997 API change.
9fefa0aa
TG
2998 * doc/plugins.texi (plugin_name_args): Added to documention.
2999
1ea9fe56
MM
30002009-05-21 Mark Mitchell <mark@codesourcery.com>
3001
3002 * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
3003 (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
3004
52f84254
SZ
30052009-05-21 Shujing Zhao <pearly.zhao@oracle.com>
3006
3007 * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
3008 JUMP_TABLE_DATA_P predicates where applicable.
3009 * config/i386/predicates.md: Ditto.
3010 * config/i386/sse.md: Ditto.
3011
a952487c
JJ
30122009-05-21 Jakub Jelinek <jakub@redhat.com>
3013
93cac287
JJ
3014 * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
3015 operand2 -128 override length_immediate attribute to 1.
3016 * config/i386/predicates.md (constm128_operand): New predicate.
3017
a952487c
JJ
3018 * config/i386/i386.c (memory_address_length): Handle %r12
3019 the same as %rsp and %r13 the same as %rbp. For %rsp and %rbp
3020 also check REGNO.
3021 (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
3022 mode look through optional ZERO_EXTEND and SUBREG.
3023 * config/i386/i386.md (R12_REG): New define_constant.
3024 (prefix_data16): For sse unit set also for MODE_TI insns.
3025 (prefix_rex): For -m32 always return 0. For TYPE_IMOVX
3026 insns set if operand 1 is ext_QIreg_operand.
3027 (modrm): For TYPE_IMOV clear only if not MODE_DI. For
3028 TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
3029 immediate.
3030 (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
3031 mode from MODE_DI to MODE_SI.
3032 (movdi_1_rex64): Override modrm and length_immediate attributes
3033 only for movabs (TYPE_IMOV, alternative 2).
3034 (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
3035 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
3036 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
3037 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
3038 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
3039 prefix_rex attribute if DImode.
3040 (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
3041 *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
3042 *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
3043 *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
3044 attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
3045 (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
3046 Likewise. For TYPE_IMOV clear length_immediate attribute.
3047 (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
3048 *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
3049 *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
3050 *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
3051 *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
3052 or one operand TYPE_ISHIFT.
3053 (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
3054 *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
3055 *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
3056 *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
3057 *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
3058 *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
3059 *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
3060 *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
3061 *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
3062 *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
3063 *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
3064 *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
3065 *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
3066 *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
3067 *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
3068 *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
3069 *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
3070 set mode attribute, don't override length attribute.
3071 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
3072 to 1.
3073 (return_internal_long): Set length attribute to 2 instead of 1.
3074 (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
3075 *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
3076 prefix_rex attribute.
782dc37a
UB
3077 * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
3078 New predicates.
3079 (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
a952487c 3080
64af62c2
RR
30812009-05-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3082
3083 * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
3084
c166b898
ILT
30852009-05-20 Ian Lance Taylor <iant@google.com>
3086
3087 * tree.c (build_tree_list_vec_stat): New function.
3088 (ctor_to_vec): New function.
3089 (build_nt_call_vec): New function.
3090 (build_call_array): Change args to be a const pointer.
3091 (build_call_vec): New function.
3092 * tree.h (build_nt_call_vec): Declare.
3093 (build_tree_list_vec_stat): Declare.
3094 (build_tree_list_vec): Define.
3095 (build_call_array): Update declaration.
3096 (build_call_vec): Declare.
3097 (ctor_to_vec): Declare.
3098 * c-common.c (tree_vector_cache): New static variable.
3099 (make_tree_vector): New function.
3100 (release_tree_vector): New function.
3101 (make_tree_vector_single): New function.
3102 (make_tree_vector_copy): New function.
3103 * c-common.h (tree_vector_cache, make_tree_vector): Declare.
3104 (make_tree_vector_single, make_tree_vector_copy): Declare.
3105 * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
3106 (c_parser_expr_list): Don't manage cache here, instead call
3107 make_tree_vector.
3108 (c_parser_release_expr_list): Remove static function.
3109 (c_parser_vec_to_tree_list): Remove static function.
3110 (c_parser_attributes): Call build_tree_list_vec instead of
3111 c_parser_vec_to_tree_list. Call release_tree_vector instead of
3112 c_parser_release_expr_list.
3113 (c_parser_postfix_expression_after_primary): Likewise.
3114 (c_parser_objc_keywordexpr): Likewise.
3115
40449a90
SL
31162009-05-20 Sandra Loosemore <sandra@codesourcery.com>
3117
3118 * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
3119 TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
3120 TARGET_CONVERT_TO_TYPE.
3121 * hooks.c (hook_tree_const_tree_null): Define.
3122 * hooks.h (hook_tree_const_tree_null): Declare.
3123 * target.h (struct gcc_target): Add invalid_parameter_type,
3124 invalid_return_type, promoted_type, and convert_to_type fields.
3125 * target-def.h: (TARGET_INVALID_PARAMETER_TYPE): Define.
3126 (TARGET_INVALID_RETURN_TYPE): Define.
3127 (TARGET_PROMOTED_TYPE): Define.
3128 (TARGET_CONVERT_TO_TYPE): Define.
3129 (TARGET_INITIALIZER): Update for new fields.
3130 * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
3131 (grokparms): Check targetm.invalid_parameter_type.
3132 * c-typeck.c (default_conversion): Check targetm.promoted_type.
3133 * c-convert.c (convert): Check targetm.convert_to_type.
3134
642d97ff
AN
31352009-05-20 Adam Nemet <anemet@caviumnetworks.com>
3136
3137 * config/mips/mips.md (*extenddi_truncate<mode>,
3138 *extendsi_truncate<mode>): Emit exts if supported. Add attribute
3139 defintions.
3140 (*extendhi_truncateqi): New define_insn_and_sptit.
3141
776248b8
JJ
31422009-05-20 Jakub Jelinek <jakub@redhat.com>
3143
3144 PR middle-end/40204
3145 * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
782dc37a 3146 recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
776248b8 3147
d98e8686
EB
31482009-05-20 Eric Botcazou <ebotcazou@adacore.com>
3149
3150 * fold-const.c (build_fold_addr_expr_with_type): Take the address of
3151 the operand of VIEW_CONVERT_EXPR.
3152
37c50435
L
31532009-05-20 H.J. Lu <hongjiu.lu@intel.com>
3154
3155 * config/i386/driver-i386.c (host_detect_local_cpu): Check
f3afc8a7 3156 extended family and model for Intel processors. Support Intel Atom.
37c50435 3157
dbb6088f
OH
31582009-05-20 Olivier Hainque <hainque@adacore.com>
3159
3160 * gstab.h (stab_code_type): Define, to be used instead of the
3161 __stab_debug_code enum, made anonymous. Add 2009 to the copyright
3162 notice.
3163 * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
3164 occurrences by stab_code_type.
3165 * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
3166
7ec49257
MJ
31672009-05-20 Martin Jambor <mjambor@suse.cz>
3168
3169 * tree-flow.h (insert_edge_copies_seq): Undeclare.
3170 (sra_insert_before): Likewise.
3171 (sra_insert_after): Likewise.
3172 (sra_init_cache): Likewise.
3173 (sra_type_can_be_decomposed_p): Likewise.
3174 * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
3175 * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
3176 (sra_insert_before): Likewise.
3177 (sra_insert_after): Likewise.
3178 (sra_init_cache): Likewise.
3179 (insert_edge_copies_seq): Made static and moved upwards.
3180
3181 * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
3182 case.
3183
3184 * tree-flow-inline.h (contains_view_convert_expr_p): New function.
3185
3186 * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
3187 (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
3188 simple copies.
3189
0328ae4d
RG
31902009-05-20 Richard Guenther <rguenther@suse.de>
3191
3192 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
3193 with mismatched comparison modes.
3194
a7994a57 31952009-05-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
782dc37a 3196
a7994a57 3197 * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
782dc37a
UB
3198 (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
3199 * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
3200 with shifts for Thumb2.
3201 (orsi_notsi): New for orn.
3202 (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
3203 (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
3204 * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
3205 (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
3206 Don't invert remainder for IOR.
a7994a57 3207
e36dc339
ZD
32082009-05-19 Zdenek Dvorak <ook@ucw.cz>
3209
3210 PR tree-optimization/40087
3211 * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
3212 number_of_iterations_ne): Rename never_infinite argument.
3213 (number_of_iterations_lt_to_ne, number_of_iterations_lt,
3214 number_of_iterations_le): Handle pointer-type ivs when
3215 exit_must_be_taken is false.
3216 (number_of_iterations_cond): Do not always assume that
3217 exit_must_be_taken if the control variable is a pointer.
3218
5cfd5d9b
AP
32192009-05-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
3220
3221 * c-typeck.c (build_binary_op): Allow % on integal vectors.
3222 * doc/extend.texi (Vector Extension): Document that % is allowed too.
3223
2f1c7156
L
32242009-05-19 H.J. Lu <hongjiu.lu@intel.com>
3225
3226 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
3227 ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
3228
7bb27074
MLI
32292009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
3230
3231 PR c/40172
3232 * c.opt (Wlogical-op): Disabled by default.
3233 * c-opt (c_common_post_options): Do not enable Wlogical-op with
3234 Wextra.
3235 * doc/invoke.texi (Wlogical-op): Likewise.
3236
5aefc6a0
EB
32372009-05-19 Eric Botcazou <ebotcazou@adacore.com>
3238
3239 * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
3240 into CASE_CONVERT.
3241 <PLUS_EXPR>: Strip useless type conversions instead of type nops.
3242 Propagate the type of the first operand.
3243 <ASSERT_EXPR>: Simplify.
3244 (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
3245 Rewrite using the RHS code as discriminant.
3246 <NOP_EXPR>: Turn into CASE_CONVERT.
3247 <PLUS_EXPR>: Propagate the type of the first operand.
3248
f3a83111
SE
32492009-05-19 Steve Ellcey <sje@cup.hp.com>
3250
3251 * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
3252 (ia64_dconst_0_375): New.
3253 * config/ia64/ia64.c (ia64_override_options): Remove
3254 -minline-sqrt-min-latency warning.
3255 (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
3256 (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
3257 * config/ia64/ia64.md (*sqrt_approx): Remove.
3258 (sqrtsf2): Remove #if 0.
3259 (sqrtsf2_internal_thr): Rewrite and move to div.md.
3260 (sqrtdf): Remove assert.
3261 (sqrtdf2_internal_thr): Rewrite and move to div.md.
3262 (sqrtxf2): Remove #if 0.
3263 (sqrtxf2_internal_thr): Rewrite and move to div.md.
3264 * div.md (sqrt_approx_rf): New.
3265 (sqrtsf2_internal_thr): New implementation.
3266 (sqrtsf2_internal_lat): New.
3267 (sqrtdf2_internal_thr: New implementation.
3268 (sqrtxf2_internal): New implementation.
3269
1ffc7157
FXC
32702009-05-19 Francois-Xavier Coudert <fxcoudert@gmail.com>
3271 Hans-Peter Nilsson <hp@axis.com>
3272
3273 * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
3274 (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
3275 (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
3276 (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
3277 (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
3278 (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
3279 (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
3280 (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
3281 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
3282 (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
3283 * c-common.c: ...from here.
3284
db91d9ef
MLI
32852009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
3286
f3afc8a7 3287 * c-common.c (warn_logical_operator): Remove unnecessary conditionals.
db91d9ef 3288
bbb9d91f
KG
32892009-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3290
3291 * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
3292
ce883f54
BE
32932009-05-19 Ben Elliston <bje@au.ibm.com>
3294
3295 * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
3296 assignments with memcpy calls.
3297 (add_fdes): Likewise.
3298 (binary_search_unencoded_fdes): Likewise.
3299 (linear_search_fdes): Eliminate type puns.
3300
377f099a
RG
33012009-05-19 Richard Guenther <rguenther@suse.de>
3302
3303 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
3304 not falsely claim to have propagated into all uses.
3305
848bc769
BE
33062009-05-19 Ben Elliston <bje@au.ibm.com>
3307
3308 * doc/invoke.texi (C Dialect Options): Update OpenMP specification
3309 version to v3.0.
3310
1bb99877
KK
33112009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
3312
3313 * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
3314 * config/sh/sh.c (sh_legitimate_address_p): Make static.
3315 (TARGET_LEGITIMATE_ADDRESS_P): New.
3316 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3317 * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
3318
82725547
DS
33192009-05-18 Dodji Seketeli <dodji@redhat.com>
3320
3321 PR debug/40109
3322 * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
3323 child of the containing namespace's DIE.
3324
f6a1e430
AN
33252009-05-18 Adam Nemet <anemet@caviumnetworks.com>
3326
3327 * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
3328 *zero_extendhi_truncqi): Move after the zero_extend patterns.
3329 (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
3330 extend patterns.
3331
6a90d232
L
33322009-05-18 H.J. Lu <hongjiu.lu@intel.com>
3333
3334 PR target/39942
3335 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
3336 gen_align with gen_pad.
3337 (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
3338 #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
3339
3340 * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
3341 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
3342
3343 * config/i386/i386.md (align): Renamed to ...
3344 (pad): This. Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
3345 ASM_OUTPUT_MAX_SKIP_PAD.
3346
c4406f74
AS
33472009-05-18 Andreas Schwab <schwab@linux-m68k.org>
3348
06555043
AS
3349 * config.gcc: Fix variable syntax.
3350
c4406f74
AS
3351 PR target/39531
3352 * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
3353 before calling exact_log2.
3354 (output_iorsi3): Likewise.
3355 (output_xorsi3): Likewise.
3356
99052692
KK
33572009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
3358
3359 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
3360 for the none zero constant operand except for EQ and NE
3361 comprisons even when the first operand is R0.
3362
f4aa3848
AK
33632009-05-18 Andreas Krebbel <krebbel1@de.ibm.com>
3364
3365 * config/s390/2064.md: Remove trailing whitespaces.
3366 * config/s390/2084.md: Likewise.
3367 * config/s390/constraints.md: Likewise.
3368 * config/s390/fixdfdi.h: Likewise.
3369 * config/s390/libgcc-glibc.ver: Likewise.
3370 * config/s390/s390-modes.def: Likewise.
3371 * config/s390/s390-protos.h: Likewise.
3372 * config/s390/s390.c: Likewise.
3373 * config/s390/s390.h: Likewise.
3374 * config/s390/s390.md: Likewise.
3375 * config/s390/tpf-unwind.h: Likewise.
3376
ab7256e4
MK
33772009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
3378
3379 * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
3380
75df395f
MK
33812009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
3382
3383 M68K TLS support.
3384 * configure.ac (m68k-*-*): Check if binutils support TLS.
3385 * configure: Regenerate.
3386 * config/m68k/predicates.md (symbolic_operand): Extend comment.
3387 * config/m68k/constraints.md (Cu): New constraint.
3388 * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
3389 (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
3390 (movsi): Handle TLS symbols.
3391 (addsi3_5200): Handle XTLS symbols, indent.
3392 * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
3393 (m68k_tls_reference_p): Declare.
3394 (m68k_legitimize_address): Declare.
3395 (m68k_unwrap_symbol): Declare.
3396 * config/m68k/m68k.opt (mxtls): New option.
3397 * config/m68k/m68k.c (ggc.h): Include.
3398 (m68k_output_dwarf_dtprel): Implement hook.
3399 (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
3400 (m68k_expand_prologue): Load GOT pointer when function needs it.
3401 (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
3402 (m68k_legitimate_constant_address_p): Same.
3403 (m68k_decompose_address): Handle TLS references.
3404 (m68k_get_gp): New static function.
3405 (enum m68k_reloc): New contants.
3406 (TLS_RELOC_P): New macro.
3407 (m68k_wrap_symbol): New static function.
3408 (m68k_unwrap_symbol): New function.
3409 (m68k_final_prescan_insn_1): New static function.
3410 (m68k_final_prescan_insn): New function.
3411 (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
3412 functions.
3413 (legitimize_pic_address): Handle TLS references..
3414 (m68k_tls_get_addr, m68k_get_tls_get_addr)
3415 (m68k_libcall_value_in_a0_p)
3416 (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
3417 (m68k_call_m68k_read_tp): Helper variables and functions for ...
3418 (m68k_legitimize_tls_address): Handle TLS references.
3419 (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
3420 New functions.
3421 (m68k_legitimize_address): Handle TLS symbols.
3422 (m68k_get_reloc_decoration): New static function.
3423 (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
3424 UNSPEC_RELOC32.
3425 (m68k_output_dwarf_dtprel): Implement hook.
3426 (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
3427 (m68k_libcall_value): Return result in A0 instead of D0 when asked by
3428 m68k_call_* routines.
3429 (sched_attr_op_type): Handle TLS symbols.
3430 (gt-m68k.h): Include.
3431 * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
3432 (LEGITIMATE_PIC_OPERAND_P): Support TLS.
3433
8b75fc9b
MJ
34342009-05-18 Martin Jambor <mjambor@suse.cz>
3435
3436 * ipa-prop.c (ipa_check_stmt_modifications): Removed.
3437 (visit_store_addr_for_mod_analysis): New function.
3438 (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
3439 (determine_cst_member_ptr): Use gimple_assign_single_p.
3440 (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
3441 (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
3442 operands. Don't check number of operands of a NOP_EXPR.
3443
f133d4a2
EF
34442009-05-18 Eric Fisher <joefoxreal@gmail.com>
3445
3446 * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
3447
ae8af500
L
34482009-05-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
3449
3450 PR c/40172
3451 * c-common.c (warn_logical_operator): Don't warn if one of
3452 expression isn't always true or false.
3453
25e8fde8
KT
34542009-05-17 Kai Tietz <kai.tietz@onevision.com>
3455
ae8af500
L
3456 * config/i386/biarch32.h: New file.
3457 * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
25e8fde8 3458
ef67af22
AN
34592009-05-17 Adam Nemet <anemet@caviumnetworks.com>
3460
3461 * config/mips/mips.md (*zero_extend<mode>_trunchi,
3462 *zero_extend<mode>_truncqi): Merge these into ...
3463 (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
3464 Name the pattern following this as *zero_extendhi_truncqi.
3465
e2d87023
BL
34662009-05-16 Brad Lucier <lucier@math.purdue.edu>
3467
3468 PR middle-end/39301
3469 * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
3470 * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
3471 (output_info): Make field HOST_WIDEST_INT.
3472 (print_statistics): Use HOST_WIDEST_INT_PRINT.
3473 (dump_bitmat_statistics): Same.
3474
428ddbf0
FXC
34752009-05-16 Francois-Xavier Coudert <fxcoudert@gmail.com>
3476
3477 * config.gcc (use_gcc_stdint): Set to wrap.
3478 * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
3479 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
3480 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
3481 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
3482 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
3483 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
3484 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
3485 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
3486
1ab8a8c2
JM
34872009-05-16 Joseph Myers <joseph@codesourcery.com>
3488
3489 * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
3490 tune_64.
3491 * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
3492 Move definitions earlier.
3493 (OPT_ARCH64, OPT_ARCH32): Define.
3494 (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
3495 and tune_64.
3496
70544f44
RE
34972009-05-16 Richard Earnshaw <rearnsha@arm.com>
3498
3499 PR target/40153
3500 * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
3501 implies.
3502
6241ded1
RE
35032009-05-16 Richard Earnshaw <rearnsha@arm.com>
3504
3505 * arm.md (movdi2): Copy non-reg values to DImode registers.
3506
a99c6711
JJ
35072009-05-16 Jakub Jelinek <jakub@redhat.com>
3508
40a8f07a
JJ
3509 PR target/39942
3510 * final.c (label_to_max_skip): New function.
3511 (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
3512 CODE_LABEL_NUMBER <= max_labelno.
3513 * output.h (label_to_max_skip): New prototype.
3514 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
3515 (ix86_avoid_jump_mispredicts): ... this. Don't define if
3516 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined. Update comment.
3517 Handle CODE_LABELs with >= 16 byte alignment or with
3518 max_skip == (1 << align) - 1.
3519 (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
3520 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
3521
a99c6711
JJ
3522 PR target/39942
3523 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
3524 .p2align 3 if MAX_SKIP is smaller than 7.
3525 * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
3526
7e5487a2
ILT
35272009-05-15 Ian Lance Taylor <iant@google.com>
3528
3529 * alias.c (struct alias_set_entry_d): Rename from struct
3530 alias_set_entry. Change all uses.
3531 * except.c (struct call_site_record_d): Rename from struct
3532 call_site_record. Change all uses.
3533 * except.h (struct eh_region_d): Rename from struct eh_region.
3534 Change all uses.
3535 * gcse.c (struct hash_table_d): Rename from struct hash_table.
3536 Change all uses.
3537 * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
3538 ivtype_map_elt. Change all uses.
3539 (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
3540 Change all uses.
3541 (struct ifsese_d): Rename fromstruct ifsese. Change all uses.
3542 * graphite.h (struct name_tree_d): Rename from struct name_tree.
3543 Change all uses.
3544 (struct sese_d): Rename from struct sese. Change all uses.
782dc37a
UB
3545 * omega.h (struct eqn_d): Rename from struct eqn. Change all uses.
3546 (struct omega_pb_d): Rename from struct omega_pb. Change all uses.
7e5487a2
ILT
3547 * optabs.h (struct optab_d): Rename from struct optab. Change all
3548 uses.
3549 (struct convert_optab_d): Rename from struct convert_optab.
3550 Change all uses.
3551 * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
3552 ipa_opt_pass. Change all uses.
3553 * tree-predcom.c (struct dref_d): Rename from struct dref. Change
3554 all uses.
3555
3556 * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
3557 defined as a typedef.
3558 (grokdeclarator): If -Wc++-compat, warn if a typedef is already
3559 defined as a tag.
3560
a243fb4a
MLI
35612009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
3562
3563 PR 16302
3564 * fold-const.c (make_range,build_range_check,merge_ranges): Move
3565 declaration to...
3566 (merge_ranges): Returns bool.
3567 * tree.h (make_range): .. to here.
3568 (build_range_check): Likewise.
3569 (merge_ranges): Likewise. Renamed from merge_ranges.
3570 * c-typeck.c (parser_build_binary_op): Update calls to
3571 warn_logical_operator.
3572 * c-common.c (warn_logical_operator): Add new warning.
3573 * c-common.h (warn_logical_operator): Update declaration.
3574
1b53c5f3
MLI
35752009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
3576
782dc37a 3577 * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
1b53c5f3 3578
c128599a
KG
35792009-05-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3580
f9bab007
KG
3581 * doc/install.texi: Document MPC requirements, flags etc.
3582
c128599a
KG
3583 * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
3584 (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
3585 Evaluate constant arguments.
3586 (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
3587 (fold_builtin_1): Likewise, also evaluate constant arguments.
3588 Remove superfluous break.
3589 (do_mpc_ckconv): New.
3590 * real.h: Include mpc.h.
3591 * toplev.c (print_version): Output MPC version info if available.
3592
d33e4b70
SL
35932009-05-15 Sandra Loosemore <sandra@codesourcery.com>
3594
782dc37a 3595 * fold-const.c (fold_convert_const_real_from_real): Check for overflow.
d33e4b70 3596
a02ab464
L
35972009-05-15 H.J. Lu <hongjiu.lu@intel.com>
3598
3599 * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
3600 only once.
3601
796bda22
JH
36022009-05-15 Jan Hubicka <jh@suse.cz>
3603
3604 * doc/invoke.texi (max-early-inliner-iterations): New flag.
3605 * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
3606 (try_inline): Fix return value.
3607 (cgraph_decide_inlining_incrementally): Honor new value.
3608 (cgraph_early_inlining): Handle indirect inlining.
3609 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
3610
d88e5c37
JH
36112009-05-15 Jan Hubicka <jh@suse.cz>
3612
3613 * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
3614 * cgraphunit.c (cgraph_finalize_function): Set it.
3615 (cgraph_expand_function): Use it.
3616
ae63687c
SL
36172009-05-15 Sandra Loosemore <sandra@codesourcery.com>
3618
3619 * real.c (encode_ieee_half): Define.
3620 (decode_ieee_half): Define.
3621 (ieee_half_format): Define.
3622 (arm_half_format): Define.
3623 * real.h (ieee_half_format): Declare.
3624 (arm_half_format): Declare.
3625
1bd74ad9
SL
36262009-05-15 Sandra Loosemore <sandra@codesourcery.com>
3627
3628 * optabs.c (prepare_float_lib_cmp): Test that the comparison,
3629 swapped, and reversed optabs exist before trying to use them.
3630
dc34db56
PB
36312009-05-15 Paul Brook <paul@codesourcery.com>
3632 Sandra Loosemore <sandra@codesourcery.com>
3633
dc34db56
PB
3634 * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
3635 loads. Allow PRE_DEC.
3636 (output_move_neon): Handle PRE_DEC.
3637 (arm_print_operand): Add 'A' for neon structure loads.
3638 * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
3639 * config/arm/neon.md (neon_mov): Update comment.
3640 * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
3641 calls.
3642 (Um): New constraint.
3643
1d405d7b
JH
36442009-05-15 Jan Hubicka <jh@suse.cz>
3645
3646 Revert the following patch until testsuite fallout is fixed:
3647 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
3648 * cgraph.h (struct inline_summary): New filed self_wize,
3649 size_inlining_benefit, self_time and time_inlining_benefit.
3650 (struct cgraph_global_info): Replace insns by time ans size fields.
3651 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
3652 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
3653 (ipcp_update_callgraph): Do not touch function bodies.
3654 * ipa-inline.c: Include except.h
782dc37a 3655 (MAX_TIME): New constant.
1d405d7b
JH
3656 (overall_insns): Remove
3657 (overall_size, max_benefit): New static variables.
3658 (cgraph_estimate_time_after_inlining): New function.
3659 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
3660 (cgraph_clone_inlined_nodes): Update size.
3661 (cgraph_mark_inline_edge): Update size.
3662 (cgraph_estimate_growth): Use size info.
3663 (cgraph_check_inline_limits): Check size.
3664 (cgraph_default_inline_p): Likewise.
3665 (cgraph_edge_badness): Compute badness based on benefit and size cost.
3666 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
3667 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
3668 and times.
1d405d7b 3669 (cgraph_decide_inlining): Likewise.
00c5fa1b
EB
3670 (cgraph_decide_inlining_incrementally): Likewise; honor
3671 PARAM_EARLY_INLINING_INSNS.
1d405d7b
JH
3672 (likely_eliminated_by_inlining_p): New predicate.
3673 (estimate_function_body_sizes): New function.
3674 (compute_inline_parameters): Use it.
3675 * except.c (must_not_throw_labels): New function.
3676 * except.h (must_not_throw_labels): Declare.
3677 * tree-inline.c (init_inline_once): Kill inlining_weigths
3678 * tree-ssa-structalias.c: Avoid uninitialized warning.
3679 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
3680 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
3681 (PARAM_INLINE_CALL_COST): Remove.
3682 (PARAM_EARLY_INLINING_INSNS): New.
3683
7ffa47ca
RG
36842009-05-15 Richard Guenther <rguenther@suse.de>
3685
3686 * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
3687 not TODO_update_ssa.
3688
828552ed
RG
36892009-05-15 Richard Guenther <rguenther@suse.de>
3690
3691 PR tree-optimization/39999
3692 * gimple.h (gimple_expr_type): Use the expression type looking
3693 through useless conversions.
3694 * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
3695 (vn_nary_op_insert_stmt): Likewise.
3696 (simplify_binary_expression): Likewise.
3697
248fc9f3
RG
36982009-05-15 Richard Guenther <rguenther@suse.de>
3699
3700 * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
3701 New options, enabled by default.
3702 * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
3703 Document.
3704 * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
3705 * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
3706 * tree-ssa-structalias.c (gate_tree_pta): New function.
3707 (pass_build_alias): Use it.
3708
16b29cc4
JM
37092009-05-15 Joseph Myers <joseph@codesourcery.com>
3710
3711 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
3712 recurse on an invariant address if a conversion from a pointer
3713 type to a wider integer type is involved.
3714
125cae84
JH
37152009-05-15 Jan Hubicka <jh@suse.cz>
3716
3717 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
3718 * cgraph.h (struct inline_summary): New filed self_wize,
3719 size_inlining_benefit, self_time and time_inlining_benefit.
3720 (struct cgraph_global_info): Replace insns by time ans size fields.
3721 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
3722 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
3723 (ipcp_update_callgraph): Do not touch function bodies.
3724 * ipa-inline.c: Include except.h
782dc37a 3725 (MAX_TIME): New constant.
125cae84
JH
3726 (overall_insns): Remove
3727 (overall_size, max_benefit): New static variables.
3728 (cgraph_estimate_time_after_inlining): New function.
3729 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
3730 (cgraph_clone_inlined_nodes): Update size.
3731 (cgraph_mark_inline_edge): Update size.
3732 (cgraph_estimate_growth): Use size info.
3733 (cgraph_check_inline_limits): Check size.
3734 (cgraph_default_inline_p): Likewise.
3735 (cgraph_edge_badness): Compute badness based on benefit and size cost.
3736 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
3737 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
3738 and times.
125cae84 3739 (cgraph_decide_inlining): Likewise.
00c5fa1b
EB
3740 (cgraph_decide_inlining_incrementally): Likewise; honor
3741 PARAM_EARLY_INLINING_INSNS.
125cae84
JH
3742 (likely_eliminated_by_inlining_p): New predicate.
3743 (estimate_function_body_sizes): New function.
3744 (compute_inline_parameters): Use it.
3745 * except.c (must_not_throw_labels): New function.
3746 * except.h (must_not_throw_labels): Declare.
3747 * tree-inline.c (init_inline_once): Kill inlining_weigths
3748 * tree-ssa-structalias.c: Avoid uninitialized warning.
3749 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
3750 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
3751 (PARAM_INLINE_CALL_COST): Remove.
3752 (PARAM_EARLY_INLINING_INSNS): New.
3753 doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
3754 (inline-call-cost): Remove.
3755 (early-inlining-insns): New.
3756
84fb43a1
EB
37572009-05-15 Eric Botcazou <ebotcazou@adacore.com>
3758
3759 * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters. Use them
3760 for bounds.
3761 (print_int_cst_bounds_in_octal_p): Likewise.
3762 (dbxout_type): Adjust calls to above functions. Be prepared to deal
3763 with subtypes.
3764 * dwarf2out.c (base_type_die): Likewise.
3765 (is_subrange_type): Delete.
3766 (subrange_type_die): Add LOW and HIGH parameters. Use them for bounds.
3767 (modified_type_die): Call subrange_type_for_debug_p on subtypes.
f3afc8a7
UB
3768 * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it
3769 if the destination type is boolean.
84fb43a1
EB
3770 (build_range_check): Do not special-case subtypes.
3771 (fold_sign_changed_comparison): Likewise.
3772 (fold_unary): Likewise.
3773 * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
3774 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
3775 * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
f3afc8a7
UB
3776 * tree.c (subrange_type_for_debug_p): New predicate based on the
3777 former is_subrange_type.
84fb43a1
EB
3778 * tree.h (subrange_type_for_debug_p): Declare.
3779 * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
3780 (convert_affine_scev): Remove call to above function.
3781 (chrec_convert_aggressive): Likewise.
3782 * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
3783 false for conversions involving subtypes.
3784 * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
3785 (vrp_val_min): Likewise.
3786 (needs_overflow_infinity): Likewise.
3787 (extract_range_from_unary_expr): Likewise.
3788
331d9186
PB
37892009-05-15 Paolo Bonzini <bonzini@gnu.org>
3790
e9351712
L
3791 * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
3792 * config/frv/frv.c: Likewise.
3793 * config/s390/s390.c: Likewise.
3794 * config/sparc/sparc.h: Likewise.
3795 * config/i386/i386.h: Likewise.
3796 * config/i386/i386.c: Likewise.
3797 * config/crx/crx.c: Likewise.
3798 * config/m68hc11/m68hc11.h: Likewise.
3799 * config/iq2000/iq2000.c: Likewise.
3800 * config/mn10300/mn10300.h: Likewise.
3801 * config/mn10300/mn10300.c: Likewise.
3802 * config/m68k/m68k.c: Likewise.
3803 * config/rs6000/rs6000.c: Likewise.
3804 * config/rs6000/xcoff.h: Likewise.
3805 * config/rs6000/linux64.h: Likewise.
3806 * config/rs6000/sysv4.h: Likewise.
3807 * config/score/score3.c: Likewise.
3808 * config/score/score7.c: Likewise.
3809 * config/score/score.c: Likewise.
3810 * config/arm/arm.md: Likewise.
3811 * config/mips/mips.c: Likewise.
3812 * config/mips/mips.md: Likewise.
3813 * config/bfin/bfin.h: Likewise.
3814 * config/pa/pa.c: Likewise.
3815 * config/pa/constraints.md: Likewise.
3816
3817 * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
3818 * config/pdp11/pdp11.c (legitimate_address_p): Delete.
3819 * config/pdp11/pdp11.h: Use memory_address_p instead.
331d9186 3820
09639a83
ILT
38212009-05-14 Ian Lance Taylor <iant@google.com>
3822
3823 * passes.c (finish_optimization_passes): Change i to int.
3824 * plugin.c (plugins_active_p): Change event to int.
3825 (dump_active_plugins): Likewise.
3826 * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
3827 Add cast.
3828 * tree.c (tree_range_check_failed): Change c to unsigned int.
3829 (omp_clause_range_check_failed): Likewise.
3830 (build_common_builtin_nodes): Change mode to int. Add cast.
3831 * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
3832 (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
3833
3834 * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
3835 ++ or -- with a variable of enum type.
3836
c04a56bf
SB
38372009-05-14 Steven Bosscher <steven@gcc.gnu.org>
3838
3839 PR driver/40144
3840 * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
3841
237ee620
SB
38422009-05-14 Steven Bosscher <steven@gcc.gnu.org>
3843
3844 * store-motion.c: Do not include params.h
3845 * Makefile.in: Fix dependencies for various files.
3846
1154c4fa
SB
38472009-05-14 Steven Bosscher <steven@gcc.gnu.org>
3848
3849 * auto-inc-dec.c: Fix pass description, remove apparent
3850 accidental duplication.
3851
61c27353
L
38522009-05-14 H.J. Lu <hongjiu.lu@intel.com>
3853
3854 PR middle-end/40147
3855 * ipa-utils.h (memory_identifier_string): Moved to ...
3856 * tree.h (memory_identifier_string): Here. Add GTY(()).
3857
c6c3dba9
PB
38582009-05-14 Paolo Bonzini <bonzini@gnu.org>
3859
3860 * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
3861 in the former documentation of...
3862 (GO_IF_LEGITIMATE_ADDRESS): ... this.
3863 * ira-conflicts.c (get_dup_num): Use address_operand.
3864 * targhooks.c (default_legitimate_address_p): New.
3865 * targhooks.h (default_legitimate_address_p): New.
3866 * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
3867 Call hook.
3868 * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
3869 * target.h (struct target): Add legitimate_address_p.
3870 * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
3871 (TARGET_INITIALIZER): Include it.
3872
3873 * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3874 * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
3875 * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
3876 (TARGET_LEGITIMATE_ADDRESS_P): New.
3877
3878 * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3879 (REG_OK_STRICT_P): Delete.
3880 * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
3881 (frv_legitimate_address_p_1): ... this.
3882 * config/frv/frv.c (frv_legitimate_address_p): Forward to...
3883 (frv_legitimate_address_p_1): ... the renamed old
3884 frv_legitimate_address_p.
3885 * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
3886 (TARGET_LEGITIMATE_ADDRESS_P): New.
3887
3888 * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3889 * config/s390/s390-protos.h (legitimate_address_p): Remove.
3890 * config/s390/s390.c (legitimate_address_p): Rename to...
3891 (s390_legitimate_address_p): ... this, make static.
3892 (legitimize_address): Adjust call.
3893 (TARGET_LEGITIMATE_ADDRESS_P): New.
3894 * config/s390/constraints.md ("e"): Call strict_memory_address_p.
3895
3896 * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3897 * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
3898 * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
3899 (TARGET_LEGITIMATE_ADDRESS_P): New.
3900
3901 * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3902 * config/spu/spu-protos.h (spu_legitimate_address): Remove.
3903 * config/spu/spu.c (spu_legitimate_address): Rename to...
3904 (spu_legitimate_address_p): ... this, make static.
3905 (TARGET_LEGITIMATE_ADDRESS_P): New.
3906
3907 * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3908 * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
3909 * config/sparc/sparc.c (legitimate_address_p): Rename to...
3910 (sparc_legitimate_address_p): ... this, make static and return bool.
3911 (legitimize_address): Adjust call.
3912 (TARGET_LEGITIMATE_ADDRESS_P): New.
3913
3914 * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3915 * config/i386/i386-protos.h (legitimate_address_p): Remove.
3916 * config/i386/i386.c (legitimate_address_p): Rename to...
3917 (ix86_legitimate_address_p): ... this, make static.
3918 (constant_address_p): Move after it, adjust call.
3919 (TARGET_LEGITIMATE_ADDRESS_P): New.
3920
3921 * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3922 * config/avr/avr-protos.h (legitimate_address_p): Remove.
3923 * config/avr/avr.c (legitimate_address_p): Rename to...
3924 (avr_legitimate_address_p): ... this, make static.
3925 (legitimize_address): Adjust call.
3926 (TARGET_LEGITIMATE_ADDRESS_P): New.
3927
3928 * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3929 * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
3930 * config/crx/crx.c (crx_legitimate_address_p): Make static.
3931 (TARGET_LEGITIMATE_ADDRESS_P): New.
3932
3933 * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3934 * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
3935 * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
3936 (TARGET_LEGITIMATE_ADDRESS_P): New.
3937
3938 * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3939 * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
3940 Remove.
3941 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
3942 Make static.
3943 (TARGET_LEGITIMATE_ADDRESS_P): New.
3944
3945 * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3946 * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
3947 Remove.
3948 * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
3949 Rename to...
3950 (m68hc11_legitimate_address_p): ... this, make static.
3951 (go_if_legitimate_address_internal): Rename to...
3952 (m68hc11_legitimate_address_p_1): ... this.
3953 (legitimize_address): Adjust call.
3954 (TARGET_LEGITIMATE_ADDRESS_P): New.
3955
3956 * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
782dc37a
UB
3957 * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
3958 * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
c6c3dba9
PB
3959 (TARGET_LEGITIMATE_ADDRESS_P): New.
3960
3961 * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3962 * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
3963 * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
3964 (mn10300_legitimate_address_p): ... this, make static.
3965 (TARGET_LEGITIMATE_ADDRESS_P): New.
3966
3967 * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3968 * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
3969 * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
3970 (TARGET_LEGITIMATE_ADDRESS_P): New.
3971
3972 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3973 (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
3974 (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
3975 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3976 * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
3977 * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
3978 (rs6000_legitimate_address_p): ... this, make static.
3979 (TARGET_LEGITIMATE_ADDRESS_P): New.
3980 (REG_MODE_OK_FOR_BASE_P): Delete.
3981 (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
3982
3983 * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3984 * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
3985 Delete.
3986 * config/picochip/picochip.c (picochip_legitimate_address_p): Make
3987 static, adjust types.
3988 (TARGET_LEGITIMATE_ADDRESS_P): New.
3989
3990 * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3991 * config/score/score.c (score_address_p): Rename to...
3992 (score_legitimate_address_p): ... this.
3993 (TARGET_LEGITIMATE_ADDRESS_P): New.
3994 * config/score/score3.c (score3_address_p): Rename to...
3995 (score3_legitimate_address_p): ... this.
3996 * config/score/score7.c (score7_address_p): Rename to...
3997 (score7_legitimate_address_p): ... this.
3998
3999 * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
4000 THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
4001 GO_IF_LEGITIMATE_ADDRESS): Delete.
4002 * config/arm/arm-protos.h (thumb1_legitimate_address_p,
4003 thumb2_legitimate_address_p): Delete.
4004 (arm_legitimate_address_p): Rename to...
4005 (arm_legitimate_address_outer_p): ... this.
4006 * config/arm/constraints.md ("Uq"): Adjust call.
4007 * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
f3afc8a7
UB
4008 * config/arm/arm.c (arm_legitimate_address_p): New, rename old one
4009 to...
c6c3dba9 4010 (arm_legitimate_address_outer_p): ... this.
f3afc8a7
UB
4011 (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make
4012 static.
c6c3dba9
PB
4013 (TARGET_LEGITIMATE_ADDRESS_P): New.
4014
4015 * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4016 * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
4017 * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
4018 (TARGET_LEGITIMATE_ADDRESS_P): New.
4019
4020 * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4021 * config/vax/vax-protos.h (legitimate_address_p): Remove.
4022 * config/vax/vax.c (legitimate_address_p): Rename to...
4023 (vax_legitimate_address_p): ... this, make static.
4024 (TARGET_LEGITIMATE_ADDRESS_P): New.
4025
4026 * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4027 * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
4028 * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
4029 (TARGET_LEGITIMATE_ADDRESS_P): New.
4030
4031 * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4032 * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
4033 * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
4034 (mmix_legitimate_address_p): ... this, make static.
4035 (TARGET_LEGITIMATE_ADDRESS_P): New.
4036
4037 * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4038 * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
4039 * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
4040 (TARGET_LEGITIMATE_ADDRESS_P): New.
4041
3bd0d9c8
PB
40422009-05-14 Paolo Bonzini <bonzini@gnu.org>
4043
4044 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
4045 of MODE_COMPLEX_INT.
4046
fe049033
RO
40472009-05-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4048
4049 * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
4050 LCT_NORMAL in function call.
4051 * mips-tdump.c (print_file_desc): Add cast to enum type.
4052 * mips-tfile.c (add_ext_symbol): Add casts to enum types.
4053 (mark_stabs): Add casts to enum types.
4054 (parse_stabs_common): Add casts to enum types.
16f7ad42 4055
b0907a6c
AN
40562009-05-13 Adam Nemet <anemet@caviumnetworks.com>
4057
4058 * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
4059 Check for invalid values of LETTER.
4060
d1c8e08a
TG
40612009-05-13 Taras Glek <tglek@mozilla.com>
4062
f3afc8a7
UB
4063 * attribs.c (register_attribute): moved out attribute registration
4064 into register_attribute.
4065 * doc/plugins.texi: Documented register_attribute and
4066 PLUGIN_ATTRIBUTES.
16f7ad42
TG
4067 * gcc-plugin.h: Added forward decl for register_attribute.
4068 * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
4069 * plugin.c (register_callback, invoke_plugin_callbacks): Added
4070 PLUGIN_ATTRIBUTES boilerplate.
d1c8e08a 4071
4ed7f970
DK
40722009-05-14 Dave Korn <dave.korn.cygwin@gmail.com>
4073
4074 * config/i386/msformat-c.c (ms_printf_length_specs): Use enumeration
4075 values even in sentinel and empty entries.
4076 (ms_printf_flag_specs): Likewise.
4077 (ms_scanf_flag_specs): Likewise.
4078 (ms_strftime_flag_specs): Likewise.
4079 (ms_print_char_table): Likewise.
4080 (ms_scan_char_table): Likewise.
4081 (ms_time_char_table): Likewise.
4082
3d8fa148
DK
40832009-05-13 Doug Kwan <dougkwan@google.com>
4084
4085 * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
4086
f06257d3
AN
40872009-05-13 Adam Nemet <anemet@caviumnetworks.com>
4088
4089 * config/mips/mips.md (store): Add attributes for QI and HI.
4090 Update comment.
4091 (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
4092 (truncdi<mode>2): ... this new pattern.
4093
fb201767
BH
40942009-05-13 Brad Hards <bradh@kde.org>
4095
4096 * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
4097
c7bda60e 40982009-05-14 Jakub Jelinek <jakub@redhat.com>
efc3527a
BE
4099 Ben Elliston <bje@au.ibm.com>
4100
4101 PR middle-end/40035
4102 * dse.c (check_mem_read_rtx): Guard against width == -1.
4103
ce985b43
MM
41042009-05-13 Michael Matz <matz@suse.de>
4105
4106 PR middle-end/39976
4107 * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
4108 (trivially_conflicts_p): New function.
4109 (insert_backedge_copies): Use it.
4110
7de1d221
JJ
41112009-05-13 Janis Johnson <janis187@us.ibm.com>
4112
4113 * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
4114 (handle_stdc_pragma): Use new enum constant names.
4115 (handle_pragma_float_const_decimal64): Ditto.
4116
bfefafc6
ILT
41172009-05-13 Ian Lance Taylor <iant@google.com>
4118
4119 * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
4120 tree.def.
4121
286c4fcb
NS
41222009-05-13 Nathan Sidwell <nathan@codesourcery.com>
4123
4124 * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
4125 * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
4126 multilibs.
4127 * config/m68k/m68k.h (FL_UCLINUX): Define.
4128
ebaa6ea7
JH
41292009-05-13 Jan Hubicka <jh@suse.cz>
4130
4131 * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
4132
2b703e1a
KK
41332009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
4134
4135 * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
4136 unless -fschedule-insns is specified.
4137
c3537723
KK
41382009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
4139
4140 PR target/39561
4141 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
4142 TARGET_EXPAND_CBRANCHDI4.
4143 * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
4144 * config/sh/sh.opt (mexpand-cbranchdi): Remove.
4145 (cmpeqdi): Fix comment.
4146
cdeed45a
KK
41472009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
4148
4149 * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
4150 (sh_legitimate_address_p): Likewise.
4151 * config/sh/sh.c (sh_legitimate_index_p): New.
4152 (sh_legitimate_address_p): Likewise.
4153 * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
4154 (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
4155 (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
4156 (MAYBE_BASE_REGISTER_RTX_P): New macro.
4157 (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
4158 (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
4159 (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
4160 (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
4161 (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
4162
02f0b13a
JH
41632009-05-12 Jan Hubicka <jh@suse.cz>
4164
4165 * tree-inline.c (estimate_operator_cost): Add operands;
4166 when division happens by constant, it is cheap.
4167 (estimate_num_insns): Loads and stores are not having cost of 0;
4168 EH magic stuff is cheap; when computing runtime cost of switch,
4169 use log2 base of amount of its cases; builtin_expect has cost of 0;
4170 compute cost for moving return value of call.
4171 (init_inline_once): Initialize time_based flags.
4172 * tree-inline.h (eni_weights_d): Add time_based flag.
4173
ecb7f6de
PB
41742009-05-12 Paolo Bonzini <bonzini@gnu.org>
4175
4176 * df-core.c: Update head documentation.
4177
c24151ce
MM
41782009-05-12 Michael Meissner <meissner@linux.vnet.ibm.com>
4179
4180 PR bootstrap/40118
4181 * rs6000.c (rs6000_generate_compare): Use op1b instead of
4182 shadowing exisiting variable op1.
4183
fbdf817d
UB
41842009-05-12 Uros Bizjak <ubizjak@gmail.com>
4185
704bf7c8 4186 PR target/37179
fbdf817d
UB
4187 * config/i386/driver-i386.c (processor_signatures): New enum.
4188 (SIG_GEODE): Move from vendor_signatures to processor_signatures.
4189 (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
4190 processor signature to detect geode processor.
4191
5e8d1826
PB
41922009-05-12 Paolo Bonzini <bonzini@gnu.org>
4193
4194 Revert:
4195
4196 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
4197
4198 * optabs.c (prepare_cmp_insn): Temporarily disable test that
4199 causes spurious differences between trunk and cond-optab branch.
4200
f90b7a5a
PB
42012009-05-12 Paolo Bonzini <bonzini@gnu.org>
4202
fbdf817d
UB
4203 * dojump.c (compare_from_rtx): Delete.
4204 * expmed.c (emit_store_flag): Only try cstore_optab. Canonicalize
4205 any MODE_CC mode to the cstorecc4 pattern. Use prepare_operand, fail
f90b7a5a
PB
4206 if the comparison does not satisfy the predicate; test predicates for
4207 operands 2 and 3 of a cstore pattern. Don't try cstore optab
4208 further if one existing pattern fails.
fbdf817d 4209 * expr.h (compare_from_rtx): Delete.
f90b7a5a 4210 (prepare_operand): Declare it.
fbdf817d 4211 * optabs.c: Change "lib call" to "libcall" throughout.
f90b7a5a 4212 (bcc_gen_fctn, setcc_gen_code, trap_rtx,
fbdf817d
UB
4213 HAVE_conditional_trap, emit_cmp_insn): Delete.
4214 (can_compare_p): Delete cmp_optab case.
f90b7a5a 4215 (prepare_float_lib_cmp): Return an rtx and a machine mode.
fbdf817d
UB
4216 Accept other parameters by value.
4217 (prepare_operand): Make non-static.
4218 (prepare_cmp_insn): Return an rtx and a machine mode. Accept
4219 other parameters by value. Try to widen operands here based on
4220 an optab_methods argument and looking at cbranch_optab.
4221 (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
4222 loop. Use cbranch_optab directly.
4223 (emit_cmp_and_jump_insns): Fix comment. Adjust call to
4224 prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
4225 assertion.
4226 (emit_conditional_move, emit_conditional_add): Inline what's needed
4227 of compare_from_rtx, using new prepare_cmp_insn for the rest.
4228 (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
4229 with COMPARE. Move cmov_optab and cstore_optab above
4230 with cbranch_optab, move cmp_optab down with ucmp_optab,
4231 remove tst_otpab. Do not initialize trap_rtx.
4232 (gen_cond_trap): Do it here. Use ctrap_optab. Test predicate
f90b7a5a
PB
4233 for trap code. Do not check HAVE_conditional_trap. Use
4234 prepare_cmp_insn. Accept no predicate for operand 3.
fbdf817d
UB
4235 * optabs.h (OTI_cmp): Mark as used only for libcalls.
4236 (OTI_ctrap, ctrap_optab): New.
4237 (tst_optab): Delete.
4238 (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
4239 * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
4240 with lookup of ctrap_optab.
f3afc8a7
UB
4241 * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn, setcc_gen_code):
4242 Delete.
fbdf817d
UB
4243 (ctrap_optab): New.
4244
4245 * combine.c (combine_simplify_rtx, simplify_set): Do not
4246 special case comparing against zero for cc0 machines.
f90b7a5a
PB
4247 * simplify-rtx.c (simplify_binary_operation_1): Never remove
4248 COMPARE on cc0 machines.
4249 (simplify_relational_operation): Return a new expression when
4250 a COMPARE could be removed.
fbdf817d
UB
4251 * final.c (final_scan_insn): Compare cc_status values
4252 against LHS of a (compare FOO (const_int 0)) cc0 source.
4253 Also check if cc_status.value is the full compare.
f90b7a5a 4254
fbdf817d
UB
4255 * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
4256 (cstoreMM4): Document.
f90b7a5a 4257 (conditional_trap): Document ctrapMM4 instead.
fbdf817d 4258 (sync_compare_and_swapMM): Refer to cbranchcc4.
f90b7a5a
PB
4259 (Dependent Patterns): Eliminate obsolete information referring to
4260 the old jump optimization phase.
fbdf817d 4261 (Canonicalization): Include cbranchcc4 case, omit canonicalization
f90b7a5a
PB
4262 of compares with 0 on cc0 machines.
4263 (Jump Patterns): Refer to MODE_CC jump patterns preferably,
4264 avoiding references to cc0. Remove text about storing operands
4265 in cmpMM.
4266 * doc/tm.texi (Condition Codes): Include blurb on different
4267 condition code representations, separate into subsections for
4268 CC0, MODE_CC and conditional execution.
4269
fbdf817d
UB
4270 * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
4271 alpha_emit_setcc): Accept operands and a machine mode.
4272 * config/alpha/alpha.c (alpha_emit_conditional_branch):
4273 Get code/op0/op1 from operands, use machine mode argument
4274 instead of alpha_compare.fp_p. Emit the branch here.
4275 (alpha_emit_setcc): Likewise, and return boolean.
4276 (alpha_emit_conditional_move): Likewise. Assert that
4277 cmp_op_mode == cmp_mode, and simplify accordingly.
4278 * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
4279 * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
4280 (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
4281 Delete.
4282 (stack probe test): Use cbranchdi4.
4283 * config/alpha/predicates.md (alpha_cbranch_operator): New.
4284
4285 * config/arc/arc.c (gen_compare_reg): Do not emit cmp.
4286 * config/arc/arc.h (movsicc, movsfcc): Use it.
4287 (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
4288 (cbranchsi4, cstoresi4): New.
4289 (cmpsi, bCC and sCC expanders): Remove.
4290
4291 * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
4292 * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
4293 * config/arm/predicates.md (arm_comparison_operator): Only include
4294 floating-point operators if there is a hardware floating-point unit.
4295 * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
4296 deferring to cbranch_cc and cstore_cc respectively.
4297 (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
4298 cbranch_cc, cstore_cc): New.
4299 (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
f90b7a5a 4300 arm_compare_op1.
fbdf817d
UB
4301 (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
4302
4303 * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
4304 * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
4305 as an argument.
4306 (adjust_insn_length): Adjust calls.
4307 (avr_reorg): Handle (compare (foo) (const_int 0)).
4308 * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
4309 (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
4310 (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
4311 (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
4312 (bCC): Remove.
4313 (cbranchqi4, cbranchhi4, cbranchsi4): New.
f90b7a5a
PB
4314 (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
4315
fbdf817d
UB
4316 * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
4317 (cbranchsi4, cstorebi4, cstoresi4): New.
f90b7a5a 4318 (movbisi): This insn is duplicate, split it to zero_extend.
fbdf817d
UB
4319 * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
4320 (bfin_gen_compare): Do not use them. Emit VOIDmode SET, not BImode.
4321 (bfin_optimize_loop): Use cbranch expander.
4322 * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
4323 * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
4324 (bfin_bimode_comparison_operator): ... this.
4325 (bfin_direct_comparison_operator): New.
f90b7a5a 4326
fbdf817d
UB
4327 * config/cris/cris.c (cris_normal_notice_update_cc): Look
4328 inside (compare FOO (const_int 0)).
4329 (cris_rtx_costs): Handle ZERO_EXTRACT.
4330 * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
4331 (*tstdi_non_v32): Fold in *cmpdi_non_v32.
4332 (*tstdi_v32): Delete.
4333 (*cmpdi_non_v32): Add M alternative for operand 1.
4334 (cmpsi, cmp<mode>): Make private.
4335 (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
4336 with COMPARE.
4337 (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
4338
4339 * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
4340 (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
4341 (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
f90b7a5a
PB
4342 (cc_reg_operand): New.
4343 (any_cond): Delete.
fbdf817d
UB
4344 * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
4345 crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
4346 * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
4347 * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
4348 crx_expand_scond): Delete.
4349
4350 * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
4351 (cbranchsi4): New.
4352 * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
4353 * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
4354
4355 * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
4356 cstoresi4, cstoresf4, cstoredf4): New.
4357 (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
4358 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
4359 Receive the entire operands array.
4360 * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
4361 * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
4362 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
4363 Get test/op0/op1 from the operands array.
4364 (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
4365
4366 * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
4367 (h8300_expand_store): New.
4368 * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
4369 (const_int 0)).
4370 (h8300_expand_branch): Emit compare here. Adjust for new arguments.
4371 (h8300_expand_store): New.
4372 * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
4373 or do not try to produce (set (cc0) REG).
4374 (peepholes): Wrap arguments with COMPARE. Add a peephole to
4375 change a compare into a move to a scratch register. Disable some
4376 peepholes when comparing with zero.
4377 (tstsi, tsthi, tstsi, cmpqi): Make private.
4378 (cmphi): Delete.
4379 (bCC, sCC): Delete.
4380 (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
4381 cstoresi4): New.
f90b7a5a
PB
4382
4383 * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
4384 ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
4385 (ix86_emit_i387_log1p): Use gen_cbranchxf4.
4386 (ix86_emit_i387_log1p): Use cbranchxf2.
4387 (ix86_expand_setcc): Return void.
4388 * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
4389 * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
4390 cmp<MODEF>, cmpcc): Remove.
fbdf817d
UB
4391 (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
4392 cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
4393 cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
f90b7a5a
PB
4394 (sCC and bCC expanders): Remove.
4395 (stack_protect_test): Use cbranchcc4.
4396
fbdf817d
UB
4397 * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
4398 Delete.
4399 (ia64_expand_compare): Accept three rtx by reference and return void.
4400 * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
4401 (ia64_expand_compare): Replace op0/op1 with *op0/*op1. Get code
4402 from *expr. Update *expr with the BImode comparison to do.
4403 * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
4404 cmptf, bCC, sCC, conditional_trap): Delete.
4405 (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4,
4406 cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
4407 cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
4408 ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
4409 * config/ia64/predicates.md (ia64_cbranch_operator): New.
4410
4411 * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
4412 type of last argument.
4413 * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
4414 (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
4415 use machine mode argument instead of branch_type. Remove dead
4416 code for floating-point comparisons.
4417 * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
4418 * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
4419 Remove.
4420 (cbranchsi4, cstoresi4): New.
4421 * config/iq2000/predicates.md (reg_or_const_operand): New.
4422
4423 * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
4424 * config/m32c/m32c.md (any_cond, gl_cond): Delete.
4425 (b<code>_op): Rewrite to...
4426 (bcc_op): ... this, using match_operator.
4427 (s<code>_op): Rewrite to...
4428 (scc_op): ... this, using match_operator.
4429 (s<code>_24_op): Rewrite to...
4430 (scc_op_24): ... this, using match_operator.
4431 (s<code>_<mode>): Rewrite to...
4432 (cstore<mode>4): ... this, using match_operator.
4433 (s<code>_<mode>_24): Rewrite to...
4434 (cstore<mode>4_24): ... this, using match_operator.
4435 * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
4436 m32c_unpend_compare, m32c_expand_scc): Delete.
4437 * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
4438 m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
4439 (m32c_expand_movcc): Change NE to EQ if necessary.
4440 (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
4441
4442 * config/m32r/m32r-protos.h (gen_cond_store): New.
4443 * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
4444 (gen_cond_store): New, from sCC patterns.
4445 (m32r_expand_block_move): Use cbranchsi4.
4446 * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
4447 * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
4448 (cbranchsi4, cstoresi4): New.
4449
4450 * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
4451 Delete.
4452 (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
f90b7a5a 4453 (m68hc11_notice_update_cc): Look into a compare with 0.
fbdf817d
UB
4454 * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
4455 Delete.
4456 * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
4457 cmphi, cmpqi, bCC): Delete.
4458 (cbranchsi4, cbranchhi4, cbranchqi4): New.
4459 (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
4460 bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
4461 sets with COMPARE.
4462
4463 * config/m68k/predicates.md (m68k_cstore_comparison_operator,
4464 const0_operand, const1_operand, m68k_subword_comparison_operand): New.
4465 * config/m68k/constraints.md (H): New.
4466 * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
4467 the define_insn below.
4468 (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
4469 (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
4470 *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
4471 patterns): Wrap RHS with COMPARE.
4472 (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
4473 (*cmpdi_internal): Name this pattern.
4474 (cmpdi): Change to define_insn.
4475 (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
4476 cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
4477 (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
4478 predicate.
4479 (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
4480 sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
4481 (conditional_trap): Change to...
4482 (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
4483 (*conditional_trap): Use the ordered_comparison_operator and
4484 const1_operand predicates.
4485 * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
4486 (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
4487 (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
4488 * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
4489
4490 * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
4491 mcore_modify_comparison, mcore_gen_compare_reg): Remove.
4492 (mcore_gen_compare): New.
4493 * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
4494 (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
4495 (mcore_gen_compare): ... this.
4496 * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
4497 (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
4498 (stack probe pattern): Use cbranchsi4.
4499
4500 * config/mips/predicates.md (mips_cstore_operator): New.
4501 * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
4502 * config/mips/mips.md (any_cond): Delete.
4503 (conditional_trap): Rename to ctrap<GPR:mode>4. Adjust predicates,
4504 always succeed.
4505 (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
4506 fixuns_truncsfdi2): Use cbranch patterns.
4507 (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete.
4508 (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
4509 Adjust call to mips_expand_conditional_branch.
4510 (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
4511 cstore<GPR:mode>4.
4512 * config/mips/mips-protos.h (mips_expand_conditional_branch,
4513 mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
4514 * config/mips/mips.c (cmp_operands): Delete.
4515 (mips_emit_compare): Get comparison operands from *op0/*op1.
4516 (mips_expand_scc): Get code/op0/op1/target from operands. Assert
4517 that it succeeds. Use op0/op1 instead of cmp_operands.
4518 (mips_expand_conditional_branch, mips_expand_conditional_move,
4519 mips_expand_conditional_trap): Likewise.
4520 (mips_block_move_loop): Use cbranch patterns.
4521 * config/mips/mips.h (cmp_operands): Delete.
4522
4523 * config/mmix/mmix.c (mmix_valid_comparison): Delete.
4524 (mmix_gen_compare_reg): Just return a register in the right CC mode.
4525 * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
4526 * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
4527 (*cmpcc_folded): Rename to...
4528 (*cmpdi_folded): this.
4529 (*cmpcc): Rename to...
4530 (*cmps): ... this.
4531 (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
4532 (bCC): Remove.
4533 (cbranchdi4): New.
4534 (cbranchdf4): New. Handle invalid comparisons here.
4535 * config/mmix/predicates.md (float_comparison_operator): New.
4536
4537 * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
4538 zero_extract to be cheap in (compare (zero_extract) (const_int 0).
4539 * config/mn10300/mn10300.md (tst): Delete.
4540 (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
4541 Name these patterns and wrap RHS in a compare.
4542 (*cmpsi): Make this pattern private. Include tst.
4543 (*cmpsf): Make this pattern private.
4544 (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
4545 (compare with zero peepholes): Likewise.
4546 (bCC): Remove.
4547 (cbranchsi4, cbranchsf4): New.
4548 (casesi): Use cbranchsi4.
4549
4550 * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
4551 hppa_branch_type): Delete.
4552 (return_addr_rtx): Use cbranchsi4.
4553 (emit_bcond_fp): Accept all operands. Replace CODE with NE.
4554 Emit CCFPmode comparison here.
4555 (gen_cmp_fp): Delete, now part of emit_bcond_fp.
4556 * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
4557 hppa_branch_type): Delete.
4558 * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
4559 (movsicc, movdicc): Remove references to hppa_compare_op0,
4560 hppa_compare_op1 and compare_from_rtx.
4561 (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
4562 (casesi): Use cbranchsi4.
4563
4564 * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
4565 * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
4566 * config/pdp11/pdp11.md (register_or_const0_operand): New.
4567 (cmpdf, cmphi, cmpqi): Make private. Add tst alternatives.
4568 (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
4569 (bCC): Delete.
4570 (cbranchdf4, cbranchhi4, cbranchqi4): New.
4571 (*branch, *branch_inverted): New.
4572
4573 * config/picochip/picochip.md (cbranchhi4): Use
4574 ordered_comparison_operator.
4575 (cmphi, bCC): Remove.
4576
4577 * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
4578 (trap_comparison_operator): Delete.
4579 * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
4580 rs6000_emit_cbranch): Accept mode and operands.
4581 * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
4582 rs6000_compare_fp_p): Delete.
4583 (rs6000_generate_compare): Accept mode and comparison. Extract code
4584 and op0/op1 from there. Replace references to rs6000_compare_op0
4585 and rs6000_compare_op1.
4586 (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
4587 extract result from passed operands.
4588 (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
4589 extract loc from passed operands.
4590 (rs6000_emit_cmove): Likewise.
4591 * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
4592 rs6000_compare_fp_p): Delete.
4593 * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
4594 (cbranch<GPR>4, cbranch<FP>4): New.
4595 (cstore<mode>4): New. Consolidate here all choices about when to use
4596 portable or specialized sCC sequences.
4597 (stack_protect_test): Use cbranchsi4.
4598 (conditional_trap): Replace with ctrap<GPR>4.
4599 (conditional trap insn): Replace trap_comparison_operator with
4600 ordered_comparison_operator.
4601
4602 * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
4603 (s390_emit_prologue): Use ctrap.
4604 * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
4605 * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
4606 New predicates replacing...
4607 * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
4608 (cmp<GPR>, cmp<FP>, cmpcc): Delete.
4609 (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
4610 (add<mode>cc): Do not use s390_compare_op0/op1.
4611 (s<code>): Change to...
4612 (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
4613 (seq): Change to...
4614 (cstorecc4): ... this. Handle EQ or NE equally.
4615 (*sne): Un-privatize for use in cstorecc4.
4616 (b<code>): Change to...
4617 (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
4618 (conditional_trap): Replace with...
4619 (ctrap<GPR>4, ctrap<FP>4): ... these.
4620 (stack_protect): Use cbranchcc4.
4621
4622 * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
4623 * config/score/score-protos.h (score_gen_cmp): Delete.
4624 * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
4625 (score_block_move-loop): Use cbranchsi4.
4626 * config/score/score.md (cbranchsi4): New.
4627 (cmpsi, bCC): Delete.
4628 * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
4629 (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
4630 * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
4631 (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
4632 * config/score/score3.h (score3_gen_cmp): Delete.
4633 * config/score/score7.h (score7_gen_cmp): Delete.
4634
4635 * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
4636 (sh_emit_scc_to_t): ... this. Return void.
4637 (from_compare): Rename to...
4638 (sh_emit_compare_and_branch): ... this.
4639 (sh_emit_compare_and_set): New.
4640 (sh_expand_t_scc): Accept operands.
4641 * config/sh/predicates.md (sh_float_comparison_operator): New.
4642 * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
4643 (prepare_scc_operands): Rename to...
4644 (sh_emit_scc_to_t): ... this. Return void. Get op0/op1 from
4645 arguments.
4646 (sh_emit_cheap_store_flag): New.
f90b7a5a 4647 (sh_emit_set_t_insn): New.
fbdf817d
UB
4648 (from_compare): Rename to...
4649 (sh_emit_compare_and_branch): ... this. Accept mode. Rewrite
4650 handling of TARGET_SH2E floating point to avoid recursive call.
4651 Generate branch here.
4652 (sh_emit_compare_and_set): New.
4653 (sh_expand_t_scc): Get op0/op1 from arguments.
4654 (sh_emit_cheap_store_flag): New.
4655 * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
4656 cases.
f90b7a5a 4657 (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
fbdf817d
UB
4658 (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
4659 (movsicc, movdicc): Do nothing when it recreated operands from
4660 sh_compare_*. Use sh_emit_cheap_store_flag. Adjust call to
4661 prepare_scc_operands (now sh_emit_scc_to_t).
4662 (udivdi3): Use cstoresi4.
4663 (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
4664 bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
4665 (cbranchint4_media, cbranchfp4_media): New.
4666 (casesi): Use cbranchdi4.
4667 (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
4668 Delete.
4669 (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
4670 (movnegt): Remove second operand.
4671 (cbranchsf4, cbranchdf4): New.
4672 (stack_protect): Use cbranchdi4/cbranchsi4.
4673
4674 * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
4675 (gen_compare_reg): Accept comparison, extract part of it to...
4676 (gen_compare_reg_1): ... this.
4677 (gen_compare_operator): Delete.
4678 (gen_v9_scc): Accept separate destination, comparison code and arms.
4679 Do not use sparc_compare_op0/sparc_compare_op1.
4680 (emit_scc_insn, emit_conditional_branch_insn): New.
4681 (emit_v9_brxx): Make static. Remove useless assertion.
4682 (sparc_emit_float_lib_cmp): Return RTL instead of calling
4683 emit_cmp_insn.
4684 (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
4685 * config/sparc/sparc-protos.h (gen_compare_reg,
f90b7a5a
PB
4686 sparc_emit_float_lib_cmp): Adjust prototype.
4687 (emit_scc_insn, emit_conditional_branch_insn): New.
4688 (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
fbdf817d
UB
4689 * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
4690 * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
4691 iterators to the top.
4692 (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
4693 snesi_special_extend, sCC, bCC, seqdi_special_trunc,
f90b7a5a 4694 snedi_special_trunc): Delete.
fbdf817d 4695 (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
f90b7a5a 4696 and snedi_special_trunc.
fbdf817d
UB
4697 (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
4698 cbranchdi4, cbranch<F:mode>4): New.
4699 (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
4700 here. Use gen_compare_reg instead of gen_compare_operator.
4701 (conditional_trap): Replace with...
4702 (ctrapsi4, ctrapdi4): ... this.
4703 (stack_protect_test): Use cbranchcc4.
4704
4705 * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
4706 argument to rtx.
4707 * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove.
4708 (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
4709 Change spu_compare_op0/op1 to op0/op1 throughout. Get target
4710 from operands[0] or operands[3] depending on is_set.
4711 * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
4712 * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
4713 cmpdf, bCC), sCC: Remove.
4714 (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4,
4715 cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
4716 cstoredf4): New.
4717 (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
4718 spu_emit_branch_or_set.
4719
4720 * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
4721 Add two arguments.
4722 * config/stormy16/stormy16.h (xstormy16_compare_op0,
4723 xstormy16_compare_op1): Delete.
4724 * config/stormy16/stormy16.c (xstormy16_compare_op0,
4725 xstormy16_compare_op1): Delete.
4726 (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
4727 Adjust calls.
4728 * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
4729 (cmphi, cmpsi, bCC): Remove.
4730
4731 * config/v850/v850.md (tstsi, cmpsi): Fold into...
4732 (*cmpsi): ... this one.
4733 (cbranchsi4, cstoresi4): New.
4734 (bCC expanders): Delete.
4735 (sCC insns): Fold into...
4736 (*setcc): ... this one.
4737 (casesi): Do not use gen_cmpsi and gen_bgtu.
f90b7a5a
PB
4738 (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
4739 (movsicc): Simplify.
4740 * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
4741
fbdf817d
UB
4742 * config/vax/vax-protos.h (cond_name): New.
4743 (vax_output_conditional_branch): Remove.
4744 * config/vax/vax.c (cond_name): New.
4745 (vax_output_conditional_branch): Remove.
4746 * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
4747 * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
4748 (cmp<VAXint>, cmp<VAXfp>): Privatize. Add constraints for tst.
4749 (bit<VAXint>): Wrap source with (compare).
4750 (b<code> and following unnamed pattern): Rename to *branch and
4751 *branch_reversed. Change macroization to match_operator.
4752 (cbranch<VAXint>4, cbranch<VAXfp>4): New.
4753
4754 * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
4755 * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
4756 Change last argument to machine_mode.
4757 (xtensa_expand_scc): Add machine_mode argument.
4758 * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
4759 (gen_conditional_move, xtensa_expand_conditional_branch,
4760 xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
4761 instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
4762 Adjust operand numbers.
4763 * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
4764 Delete.
4765 * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
4766 (cmpsi, cmpsf, b<code>, s<code>): Delete.
4767 (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
f90b7a5a 4768
16670495
PB
47692009-05-12 Paolo Bonzini <bonzini@gnu.org>
4770
4771 * optabs.c (prepare_cmp_insn): Temporarily disable test that
4772 causes spurious differences between trunk and cond-optab branch.
4773
4a4a4e99
AO
47742009-05-12 Alexandre Oliva <aoliva@redhat.com>
4775
4776 PR target/37137
4777 * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
4778
72b9acff
AO
47792009-05-12 Alexandre Oliva <aoliva@redhat.com>
4780
4781 * tree.c (iterative_hash_pointer): Delete.
4782 (iterative_hash_expr): Short-circuit handling of NULL pointer.
4783 Hash UIDs and versions of SSA names. Don't special-case built-in
4784 function declarations.
4785
b7dd69ac
ILT
47862009-05-11 Ian Lance Taylor <iant@google.com>
4787
4788 PR bootstrap/40103
4789 * graphite.c: Force -Wc++-compat to only be a warning before
4790 #including "cloog/cloog.h".
4791
ed102b70
MJ
47922009-05-11 Martin Jambor <mjambor@suse.cz>
4793
4794 * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
4795
08f1af2e
JH
47962009-05-11 Jan Hubicka <jh@suse.cz>
4797
4798 * tree-ssa-loop-ivcanon.c: Include target.h
4799 (struct loop_size): new structure.
4800 (constant_after_peeling): New predicate.
4801 (tree_estimate_loop_size): New function.
4802 (estimated_unrolled_size): Rewrite for new estimates.
4803 (try_unroll_loop_completely): Use new estimates.
4804 * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
4805
a7d39bd3
AP
48062009-05-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
4807
4808 * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
4809 libcpp interface change.
4810 (spu_macro_to_expand): Likewise.
4811
f5a1f0d0
PB
48122009-05-11 Paolo Bonzini <bonzini@gnu.org>
4813
4814 PR tree-optimization/40026
4815 * gimplify.c (gimplify_init_constructor): Change initial conditional
4816 to assertion. Rewrite TREE_OPERAND (*expr_p, 1) after
4817 optimize_compound_literals_in_ctor.
4818
c260f01f
NS
48192009-05-11 Nathan Sidwell <nathan@codesourcery.com>
4820
4821 * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
4822 New devices.
4823 * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
4824
df398a37
L
48252009-05-11 H.J. Lu <hongjiu.lu@intel.com>
4826
4827 * tree-vect-data-refs.c (vect_analyze_group_access): Use
4828 HOST_WIDE_INT for gap.
4829
4da39468
IR
48302009-05-11 Ira Rosen <irar@il.ibm.com>
4831
4832 PR tree-optimization/40074
4833 * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
4834 account in group size and step comparison.
4835
4effdf02
RG
48362009-05-11 Richard Guenther <rguenther@suse.de>
4837
4838 * passes.c (init_optimization_passes): Strip now incorrect comment.
4839 (execute_function_todo): Do not set PROP_alias.
4840 * tree-pass.h (PROP_alias): Remove.
4841 * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
4842 * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
4843 * tree-nrv.c (pass_return_slot): Likewise.
4844 * tree-object-size.c (pass_object_sizes): Likewise.
4845 * tree-ssa-dom.c (pass_dominator): Likewise.
4846 (pass_phi_only_cprop): Likewise.
4847 * tree-ssa-dse.c (pass_dse): Likewise.
4848 * tree-ssa-phiopt.c (pass_phiopt): Likewise.
4849 (pass_cselim): Likewise.
4850 * tree-ssa-pre.c (pass_pre): Likewise.
4851 (pass_fre): Likewise.
4852 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
4853 * tree-ssa-sink.c (pass_sink_code): Likewise.
4854 * tree-stdarg.c (pass_stdarg): Likewise.
4855 * tree-tailcall.c (pass_tail_calls): Likewise.
4856 * tree-vrp.c (pass_vrp): Likewise.
4857
24b97832
ILT
48582009-05-10 Ian Lance Taylor <iant@google.com>
4859
4860 * basic-block.h (enum profile_status): Break out of struct
4861 control_flow_graph.
4862 * cgraph.h (struct inline_summary): Break out of struct
4863 cgraph_local_info.
4864 * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
4865 of struct cgraph_order_sort.
fbdf817d 4866 * combine.c (enum undo_kind): New enum, broken out of struct undo.
24b97832
ILT
4867 * cse.c (struct branch_path): Break out of struct
4868 cse_basic_block_data.
4869 * except.h (enum eh_region_type): Break out of struct eh_region.
4870 * gcc.c (enum add_del): Break out of struct modify_target.
fbdf817d 4871 * genrecog.c (enum decision_type): Break out of struct decision_test.
24b97832
ILT
4872 * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
4873 ggc_pch_data.
fbdf817d
UB
4874 * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
4875 * regmove.c (enum match_use): New enum, broken out of struct match.
24b97832
ILT
4876 * sched-int.h (enum post_call_group): New enum, broken out of
4877 struct deps.
4878 (struct deps_reg): Break out of struct deps.
4879 * target.h (struct asm_int_op): Break out of struct gcc_target.
4880 * tree-eh.c (struct goto_queue_node): Break out of struct
4881 leh_tf_state.
4882 * tree-inline.h (enum copy_body_cge_which): Break out of
4883 copy_body_data.
4884 * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
4885
4886 * c-decl.c (in_struct, struct_types): New static variables.
4887 (pushtag): Add loc parameter. Change all callers.
4888 (lookup_tag): Add ploc parameter. Change all callers.
4889 (check_compound_literal_type): New function.
4890 (parser_xref_tag): Add loc parameter. Change all callers. If
4891 -Wc++-compat, warn about struct/union/enum types defined within a
4892 struct or union.
4893 (start_struct): Add enclosing_in_struct, enclosing_struct_types,
4894 and loc parameters. Change all callers. Change error calls to
4895 error_at, using loc. For a redefinition, if the location of the
4896 original definition is known, report it. Set in_struct and
fbdf817d 4897 struct_types. If -Wc++-compat warn if in sizeof, typeof, or alignof.
24b97832
ILT
4898 (finish_struct): Add new parameters enclosing_in_struct and
4899 enclosing_struct_types. Change all callers. Set
4900 C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
4901 in the struct. If in a struct, add this struct to struct_types.
4902 (start_enum): Add loc parameter. Change all callers. Use
4903 error_at for errors, using loc. For a redefinition, if the
4904 location of the original definition is known, report it. If in a
4905 struct, add this enum type to struct_types. If -Wc++-compat warn
4906 if in sizeof, typeof, or alignof.
fbdf817d
UB
4907 * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
4908 (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
24b97832
ILT
4909 (c_parser_enum_specifier): Get enum location for start_enum.
4910 (c_parser_struct_or_union_specifier): Get struct location for
4911 start_struct. Save in_struct and struct_types status between
4912 start_struct and finish_struct.
4913 (c_parser_cast_expression): Get location of cast.
4914 (c_parser_alignof_expression): Get location of type.
4915 (c_parser_postfix_expression): Likewise.
4916 (c_parser_postfix_expression_after_paren_type): Add type_loc
fbdf817d
UB
4917 parameter. Change all callers. Call check_compound_literal_type.
4918 Use type_loc for error about variable size type.
4919 * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
4920 of an enum constant from an enum type defined in a struct or union.
24b97832
ILT
4921 (c_cast_expr): Add loc parameter. Change all callers. If
4922 -Wc++-compat, warn about defining a type in a cast.
4923 * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
4924 (start_enum, start_struct, finish_struct): Update declarations.
4925 (parser_xref_tag, c_cast_expr): Update declarations.
4926 (check_compound_literal_type): Declare.
4927
7a2738fa
BE
49282009-05-11 Ben Elliston <bje@au.ibm.com>
4929
4930 * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
4931 for recent libcpp interface change.
4932 (rs6000_macro_to_expand): Likewise.
4933
af618949
MM
49342009-05-10 Michael Matz <matz@suse.de>
4935
4936 PR target/40031
4937 * config/arm/arm.c (require_pic_register): Emit on entry edge,
4938 not at entry of function.
4939
b7d7a473
RG
49402009-05-10 Richard Guenther <rguenther@suse.de>
4941
4942 PR tree-optimization/40081
4943 Revert
4944 * tree-sra.c (instantiate_element): Instantiate scalar replacements
4945 using the main variant of the element type. Do not fiddle with
4946 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
4947
4948 * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
4949 structs with volatile fields.
4950
078c3644
JH
49512009-05-10 Jan Hubicka <jh@suse.cz>
4952
4953 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
fbdf817d
UB
4954 (estimate_move_cost): Assert that it does not get called for
4955 VOID_TYPE_P.
078c3644
JH
4956 (estimate_num_insns): Skip VOID types in argument handling.
4957 (optimize_inline_calls): Delete unreachable blocks and verify that
4958 callgraph is valid.
4959
39ff5a96
JH
49602009-05-10 Jan Hubicka <jh@suse.cz>
4961
4962 * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
4963 * cgraph.c (cgraph_mark_address_taken_node): New function.
4964 (dump_cgraph_node): Dump new flag.
4965 * cgraph.h (struct cgraph_node): Add address_taken.
4966 (cgraph_mark_address_taken_node): New function.
39ff5a96
JH
4967 * ipa.c (cgraph_postorder): Prioritize functions with address taken
4968 since new direct calls can be born.
4969
9a0c6187
JM
49702009-05-10 Joseph Myers <joseph@codesourcery.com>
4971
4972 * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
4973 tok->val.node.node.
4974
4b685e14
JH
49752009-05-10 Jan Hubicka <jh@suse.cz>
4976
4977 PR middle-end/40084
fb0be169
EB
4978 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
4979 argument; rewrite.
4b685e14
JH
4980 (cgraph_update_edges_for_call_stmt): Take old_decl argument.
4981 * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
4982 * tree-inline.c (copy_bb): Set frequency correctly.
fb0be169
EB
4983 (fold_marked_statements): Update call to
4984 cgraph_update_edges_for_call_stmt.
4b685e14 4985
29d08eba
JM
49862009-05-10 Joseph Myers <joseph@codesourcery.com>
4987
4988 * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
4989 identifiers in diagnostics.
4990 * config/arm/arm.c (arm_handle_fndecl_attribute,
4991 arm_handle_isr_attribute): Likewise.
4992 * config/avr/avr.c (avr_handle_progmem_attribute,
782dc37a 4993 avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
29d08eba
JM
4994 * config/bfin/bfin.c (handle_int_attribute,
4995 bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
4996 bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
4997 bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
4998 Likewise.
4999 * config/darwin.c (darwin_handle_kext_attribute,
5000 darwin_handle_weak_import_attribute): Likewise.
5001 * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
5002 h8300_handle_eightbit_data_attribute,
5003 h8300_handle_tiny_data_attribute): Likewise.
5004 * config/i386/i386.c (ix86_handle_cconv_attribute,
782dc37a 5005 ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
29d08eba
JM
5006 * config/i386/winnt.c (ix86_handle_shared_attribute,
5007 ix86_handle_selectany_attribute): Likewise.
5008 * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
5009 * config/m32c/m32c.c (function_vector_handler): Likewise.
5010 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
5011 m68hc11_handle_fntype_attribute): Likewise.
5012 * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
5013 * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
5014 * config/mips/mips.c (mips_insert_attributes,
5015 mips_merge_decl_attributes, mips_expand_builtin): Likewise.
5016 * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
5017 rs6000_handle_struct_attribute): Likewise.
5018 * config/sh/sh.c (sh_insert_attributes,
5019 sh_handle_resbank_handler_attribute,
5020 sh_handle_interrupt_handler_attribute,
5021 sh2a_handle_function_vector_handler_attribute,
5022 sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
5023 Likewise.
5024 * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
5025 * config/spu/spu.c (spu_handle_fndecl_attribute,
5026 spu_handle_vector_attribute): Likewise.
5027 * config/stormy16/stormy16.c
5028 (xstormy16_handle_interrupt_attribute): Likewise.
5029 * config/v850/v850-c.c (ghs_pragma_section): Likewise.
5030 * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
5031
f41c4af3
JM
50322009-05-10 Joseph Myers <joseph@codesourcery.com>
5033
782dc37a 5034 * pretty-print.h (struct pretty_print_info): Add translate_identifiers.
f41c4af3
JM
5035 (pp_translate_identifiers): New.
5036 (pp_identifier): Only conditionally translate identifier to locale
5037 character set.
5038 * pretty-print.c (pp_construct): Set pp_translate_identifiers.
5039 (pp_base_tree_identifier): Only conditionally translate identifier
5040 to locale character set.
5041 * c-pretty-print.c (M_): Define.
5042 (pp_c_type_specifier, pp_c_primary_expression): Mark English
5043 fragments for conditional translation with M_.
5044 * tree-pretty-print.c (maybe_init_pretty_print): Disable
5045 identifier translation.
5046
896d7dbd
RG
50472009-05-10 Richard Guenther <rguenther@suse.de>
5048
5049 PR tree-optimization/40081
5050 * tree-sra.c (instantiate_element): Instantiate scalar replacements
5051 using the main variant of the element type. Do not fiddle with
5052 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
5053
9a23acef
JH
50542009-05-09 Jan Hubicka <jh@suse.cz>
5055
5056 PR middle-end/40080
5057 * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
5058 indirect calls; verify cgraph afterwards.
5059
d563610d
JH
50602009-05-09 Jan Hubicka <jh@suse.cz>
5061
5062 PR bootstrap/40082
5063 * ipa.c (update_inlined_to_pointer): New function.
5064 (cgraph_remove_unreachable_nodes): Use it.
5065
f08a18d0
JH
50662009-05-09 Jan Hubicka <jh@suse.cz>
5067
5068 * tree-eh.c (struct leh_state): Remove prev_try.
5069 (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
5070 not track prev_try.
5071 * except.c (gen_eh_region_cleanup, duplicate_eh_regions,
5072 copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
5073 remove_eh_handler_and_replace, foreach_reachable_handler,
5074 verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
5075 * except.h (struct eh_region): Remove eh_region_u_cleanup.
5076 (gen_eh_region_cleanup): Update prototype.
5077
0afd7219
JH
50782009-05-09 Jan Hubicka <jh@suse.cz>
5079
5080 PR middle-end/40043
5081 * except.c (copy_eh_region): Always set prev_try.
5082 (redirect_eh_edge_to_label): Find outer try.
5083 (foreach_reachable_handler): When looking for prev try
5084 handle case where previous try is not going to be taken.
5085
ad6c0864
MM
50862009-05-07 Michael Meissner <meissner@linux.vnet.ibm.com>
5087
5088 PR tree-optimization/40049
5089 * tree-vect-stmts.c (vectorizable_operation): If the machine has
5090 only vector/vector shifts, convert the type of the constant to the
5091 appropriate type to avoid building incorrect trees, which
5092 eventually have problems with garbage collection.
5093
c94f9067
JM
50942009-05-08 Joseph Myers <joseph@codesourcery.com>
5095
5096 * fold-const.c (fold_binary): Do not fold multiplication by 1 or
5097 -1 for complex floating-point types if honoring signed zeros.
5098
9187e02d
JH
50992009-05-08 Jan Hubicka <jh@suse.cz>
5100
20acb8a2
EB
5101 * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
5102 argument; handle correctly when profile is absent.
9187e02d
JH
5103 (build_cgraph_edges): Update.
5104 (rebuild_cgraph_edges): Update.
20acb8a2
EB
5105 * cgraph.c: Do not include varray.h.
5106 (cgraph_set_call_stmt_including_clones): New function.
5107 (cgraph_create_edge_including_clones): Likewise
5108 (cgraph_update_edges_for_call_stmt_node): New static cfunction.
9187e02d
JH
5109 (cgraph_update_edges_for_call_stmt): Handle clones.
5110 (cgraph_remove_node): Handle clone tree.
5111 (cgraph_remove_node_and_inline_clones): New function.
5112 (dump_cgraph_node): Dump clone tree.
5113 (cgraph_clone_node): Handle clone tree.
20acb8a2 5114 (clone_function_name): Bring here from tree-inline.c.
9187e02d 5115 (cgraph_create_virtual_clone): New function.
20acb8a2
EB
5116 * cgraph.h (ipa_replace_map): Move here from ipa.h.
5117 (cgraph_clone_info): New function.
9187e02d 5118 (strut cgraph_node): Add clone_info and new clone tree pointers.
20acb8a2
EB
5119 (cgraph_remove_node_and_inline_clones,
5120 cgraph_set_call_stmt_including_clones,
5121 cgraph_create_edge_including_clones,
5122 cgraph_create_virtual_clone): Declare.
9187e02d
JH
5123 (cgraph_function_versioning): Use VEC argument.
5124 (compute_call_stmt_bb_frequency): Update prototype.
5125 (cgraph_materialize_all_clones): New function.
5126 * ipa-cp.c (ipcp_update_cloned_node): Remove.
5127 (ipcp_create_replace_map): Update to VECtors.
5128 (ipcp_update_callgraph): Use virtual clones.
5129 (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
5130 (ipcp_update_profiling): Do not update local profiling.
5131 (ipcp_insert_stage): Use VECtors and virtual clones.
5132 * cgraphunit.c (verify_cgraph_node): Verify clone tree.
5133 (clone_of_p): New function.
5134 (cgraph_preserve_function_body_p): Use clone tree.
5135 (cgraph_optimize): Materialize clones.
5136 (cgraph_function_versioning): Update for VECtors.
5137 (save_inline_function_body): Use clone tree.
20acb8a2
EB
5138 (cgraph_materialize_clone): New function.
5139 (cgraph_materialize_all_clones): Likewise.
9187e02d
JH
5140 * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
5141 * ipa.c: Include gimple.h.
5142 (cgraph_remove_unreachable_nodes): Use clone tree.
20acb8a2
EB
5143 * ipa-prop.c (ipa_note_param_call): Update call to
5144 compute_call_stmt_bb_frequencycall.
9187e02d 5145 * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
20acb8a2 5146 * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
9187e02d
JH
5147 (copy_bb): Handle updating of clone tree; add new edge when new call
5148 appears.
5149 (expand_call_inline): Be strict about every call having edge.
5150 (clone_fn_id_num, clone_function_name): Move to cgraph.c.
5151 (delete_unreachable_blocks_update_callgraph): New function.
20acb8a2
EB
5152 (tree_function_versioning): Use VECtors; always remove unreachable
5153 blocks and fold conditionals.
5154 * tree-inline.h: Do not include varray.h.
9187e02d
JH
5155 (tree_function_versioning): Remove.
5156 * Makefile.in (GTFILES): Remove tree-inline.c
5157 * passes.c (do_per_function): Do only functions having body.
20acb8a2
EB
5158 * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
5159 tree.
9187e02d 5160
9b86d6bb
L
51612009-05-08 H.J. Lu <hongjiu.lu@intel.com>
5162 Andrew Morrow <acm@google.com>
5163
5164 PR c/36892
5165 * c-common.c (c_common_attribute_table): Permit deprecated
5166 attribute to take an optional argument.
5167 (handle_deprecated_attribute): If the optional argument to
5168 __attribute__((deprecated)) is not a string ignore the attribute
5169 and emit a warning.
5170
5171 * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
5172 * c-typeck.c (build_component_ref): Likewise.
5173 (build_external_ref): Likewise.
5174
5175 * toplev.c (warn_deprecated_use): Add an attribute argument.
5176 Emit the message associated with __attribute__((deprecated)).
5177
5178 * toplev.h (warn_deprecated_use): Updated.
5179
5180 * doc/extend.texi: Document new optional parameter to
5181 __attribute__((deprecated))
5182
82ad047f
ME
51832009-05-08 Michael Eager <eager@eagercon.com>
5184
5185 * config/rs6000/rs6000.md (*movdf_softfloat32): replace
5186 !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
5187
788d3075
RG
51882009-05-08 Richard Guenther <rguenther@suse.de>
5189
5190 PR tree-optimization/40062
5191 * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
5192 Avoid exponential behavior.
5193
00952e97
PB
51942009-05-08 Paolo Bonzini <bonzini@gnu.org>
5195
5196 PR rtl-optimization/33928
5197 PR 26854
5198 * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
5199 process_uses, build_single_def_use_links): New.
5200 (update_df): Update use_def_ref.
5201 (forward_propagate_into): Use get_def_for_use instead of use-def
5202 chains.
5203 (fwprop_init): Call build_single_def_use_links and let it initialize
5204 dataflow.
5205 (fwprop_done): Free use_def_ref.
5206 (fwprop_addr): Eliminate duplicate call to df_set_flags.
5207 * df-problems.c (df_rd_simulate_artificial_defs_at_top,
5208 df_rd_simulate_one_insn): New.
5209 (df_rd_bb_local_compute_process_def): Update head comment.
5210 (df_chain_create_bb): Use the new RD simulation functions.
5211 * df.h (df_rd_simulate_artificial_defs_at_top,
5212 df_rd_simulate_one_insn): New.
5213 * opts.c (decode_options): Enable fwprop at -O1.
5214 * doc/invoke.texi (-fforward-propagate): Document this.
5215
2ca862e9
JM
52162009-05-08 Joseph Myers <joseph@codesourcery.com>
5217
5218 PR c/24581
5219 * c-typeck.c (build_binary_op): Handle arithmetic between one real
5220 and one complex operand specially.
5221 * tree-complex.c (some_nonzerop): Do not identify a real value as
5222 zero if flag_signed_zeros.
5223
3e807ffc
PB
52242009-05-08 Paolo Bonzini <bonzini@gnu.org>
5225
5226 PR rtl-optimization/33928
7925c06c 5227 * loop-invariant.c (record_use): Fix && vs. || mishap.
3e807ffc 5228
1bfdbb29
PB
52292009-05-08 Paolo Bonzini <bonzini@gnu.org>
5230
5231 PR rtl-optimization/33928
e913423f
EB
5232 * loop-invariant.c (struct use): Add addr_use_p.
5233 (struct def): Add n_addr_uses.
5234 (struct invariant): Add cheap_address.
5235 (create_new_invariant): Set cheap_address.
5236 (record_use): Accept df_ref. Set addr_use_p and update n_addr_uses.
5237 (record_uses): Pass df_ref to record_use.
5238 (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
5239 used only as such.
1bfdbb29 5240
702cb2a0
KK
52412009-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
5242
5243 * config/sh/sh.c: Do not include c-pragma.h.
5244
5e8df753
AP
52452009-05-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
5246
5247 * config/spu/spu.c: Remove include of c-common.h.
5248
6ec637a4
JJ
52492009-05-07 Janis Johnson <janis187@us.ibm.com>
5250
5251 PR c/39037
5252 * c-common.h (mark_valid_location_for_stdc_pragma,
5253 valid_location_for_stdc_pragma_p, set_float_const_decimal64,
5254 clear_float_const_decimal64, float_const_decimal64_p): New.
5255 * c.opt (Wunsuffixed-float-constants): New.
5256 * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
5257 unsuffixed float constant, handle new warning.
5258 * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
5259 * c-decl.c (c_scope): New flag float_const_decimal64.
5260 (set_float_const_decimal64, clear_float_const_decimal64,
5261 float_const_decimal64_p): New.
5262 (push_scope): Set new flag.
5263 * c-parser.c (c_parser_translation_unit): Mark when it's valid
5264 to use STDC pragmas.
5265 (c_parser_external_declaration): Ditto.
5266 (c_parser_compound_statement_nostart): Ditto.
5267 * c-pragma.c (valid_location_for_stdc_pragma,
5268 mark_valid_location_for_stdc_pragma,
5269 valid_location_for_stdc_pragma_p, handle_stdc_pragma,
5270 handle_pragma_float_const_decimal64): New.
5271 (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
5272 * cp/semantics.c (valid_location_for_stdc_pragma_p,
5273 set_float_const_decimal64, clear_float_const_decimal64,
5274 float_const_decimal64_p): New dummy functions.
5275 * doc/extend.texi (Decimal Float): Remove statement that the
5276 pragma, and suffix for double constants, are not supported.
5277 * doc/invoke.texi (Warning Options): List new option.
5278 (-Wunsuffixed-float-constants): New.
5279
45b9b2e9
SB
52802009-05-08 Steven Bosscher <steven@gcc.gnu.org>
5281
5282 * config/i386/i386.c: Do not include c-common.h.
5283
e71da632
MH
52842009-05-07 Mark Heffernan <meheff@google.com>
5285
5286 * doc/invoke.texi (Debugging Options): Document change of debugging
5287 dump location.
e913423f 5288 * opts.c (decode_options): Make dump_base_name relative to
e71da632
MH
5289 aux_base_name directory.
5290
fe4c7bc6
HS
52912009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
5292
5293 * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
5294 * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
5295
3b3e44eb
RAE
52962009-05-07 Rafael Avila de Espindola <espindola@google.com>
5297
5298 * Makefile.in (install-plugin): Simplify a bit.
5299
fac41238
PB
53002009-05-07 Paolo Bonzini <bonzini@gnu.org>
5301
5302 * Makefile.in (OBJS-common): Add regcprop.o.
5303 (regcprop.o): New.
5304 * timevar.def (TV_CPROP_REGISTERS): New.
5305 * regrename.c (regrename_optimize): Return 0.
5306 (rest_of_handle_regrename): Delete.
5307 (pass_rename_registers): Point to regrename_optimize.
5308 (struct value_data_entry, struct value_data,
5309 kill_value_one_regno, kill_value_regno, kill_value,
5310 set_value_regno, init_value_data, kill_clobbered_value,
5311 kill_set_value, kill_autoinc_value, copy_value,
5312 mode_change_ok, maybe_mode_change, find_oldest_value_reg,
5313 replace_oldest_value_reg, replace_oldest_value_addr,
5314 replace_oldest_value_mem, copyprop_hardreg_forward_1,
5315 debug_value_data, validate_value_data): Move...
5316 * regcprop.c: ... here.
5317 (rest_of_handle_cprop): Delete.
5318 (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
5319
472e0df9
JJ
53202009-05-07 Jakub Jelinek <jakub@redhat.com>
5321
5322 PR middle-end/40057
5323 * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
5324 GEN_INT for 1 << bitnum.
5325 (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
5326 build_int_cst_type.
5327
0d50d55a
UB
53282009-05-07 Uros Bizjak <ubizjak@gmail.com>
5329
5330 * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
7925c06c 5331 Remove wrong description of "nand" operation.
0d50d55a 5332
22f597f1
RG
53332009-05-06 Richard Guenther <rguenther@suse.de>
5334 Adam Nemet <anemet@caviumnetworks.com>
5335
5336 * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
5337 comment. Add that if LHS is not a gimple register, then RHS1 has
5338 to be a single object (GIMPLE_SINGLE_RHS).
5339
641cac0b
AN
53402009-05-06 Adam Nemet <anemet@caviumnetworks.com>
5341
5342 * expr.c (get_def_for_expr): Move it up in the file.
5343 (store_field): When expanding a bit-field store, look at the
5344 defining gimple stmt for the masking conversion.
5345
5a5c6435
JJ
53462009-05-06 Janis Johnson <janis187@us.ibm.com>
5347
5348 PR middle-end/39986
5349 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
5350 decode_decimal64, encode_decimal128, decode_decimal128): Avoid
5351 32-bit memcpy into long.
5352
96474f36
JJ
53532009-05-06 Jakub Jelinek <jakub@redhat.com>
5354
5355 * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
5356 (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
5357 new_reg_loc_descr.
5358 (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
5359 instead of appending DW_OP_deref*.
5360
529ff441
MM
53612009-05-06 Michael Matz <matz@suse.de>
5362
5363 PR middle-end/40021
5364 * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
5365 (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
5366
9419a9fd
RAE
53672009-05-06 Rafael Avila de Espindola <espindola@google.com>
5368
5369 * Makefile.in (install-plugin): Fix srcdir handling.
5370
fff1894c
AB
53712009-05-06 Andrey Belevantsev <abel@ispras.ru>
5372
5373 * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
5374 when processing for not_regs_needed bitmap.
5375 * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
5376 handle TARGET_MEM_REF in lhs. Check TMR_BASE for NULL while
5377 handling it for rhs.
5378
700ae70c
L
53792009-05-06 H.J. Lu <hongjiu.lu@intel.com>
5380
ab3426a7 5381 * config/i386/i386.md (unnamed inc/dec peephole): Use
aa016ff7 5382 optimize_insn_for_size_p instead of optimize_size.
700ae70c
L
5383 * config/i386/predicates.md (incdec_operand): Likewise.
5384 (aligned_operand): Likewise.
5385 * config/i386/sse.md (divv8sf3): Likewise.
5386 (sqrtv8sf2): Likewise.
5387
67341fb5
L
53882009-05-06 H.J. Lu <hongjiu.lu@intel.com>
5389
5390 * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
5391
5392 * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
5393
87946f42
L
53942009-05-06 H.J. Lu <hongjiu.lu@intel.com>
5395
5396 * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
5397 ssemodesuffixf2c with avxmodesuffixf2c.
5398
1202aec1
JM
53992009-05-06 Joseph Myers <joseph@codesourcery.com>
5400
5401 PR c/40032
aa016ff7 5402 * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
1202aec1 5403
6e57a01d
JJ
54042009-05-05 Jakub Jelinek <jakub@redhat.com>
5405
5406 * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
5407 (struct tree_base): Adjust spacing for 8 bit boundaries.
5408 (struct tree_decl_common): Add decl_by_reference_flag bit.
5409 (DECL_BY_REFERENCE): Adjust.
5410 * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
5411 print DECL_BY_REFERENCE bit.
5412 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
5413 * dwarf2out.c (loc_by_reference, gen_decl_die): Check
5414 DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
5415 (gen_variable_die): Likewise. Check TREE_PRIVATE/TREE_PROTECTED
5416 unconditionally.
5417
32f579f6
JJ
5418 PR middle-end/39666
5419 * gimplify.c (gimplify_switch_expr): If case labels cover the whole
5420 range of the type, but default label is missing, add it with one
5421 of the existing labels instead of adding a new label for it.
5422
617ab743
JM
54232009-05-05 Joseph Myers <joseph@codesourcery.com>
5424
5425 * dwarf.h: Remove.
5426
bf016de8
RAE
54272009-05-05 Rafael Avila de Espindola <espindola@google.com>
5428
5429 * Makefile.in (enable_plugin, plugin_includedir): New.
5430 (install): Depend on install-plugin.
5431 (PLUGIN_HEADERS): New.
5432 (install-plugin): New.
5433 * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
5434
7f8fdb9f
RG
54352009-05-05 Richard Guenther <rguenther@suse.de>
5436
5437 PR tree-optimization/40022
5438 * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
5439 the only vuse.
5440 (phivn_valid_p): Fix tuplification error, simplify.
5441 (phiprop_insert_phi): Add dumps.
5442 (propagate_with_phi): Simplify.
5443
8d972839
RG
54442009-05-05 Richard Guenther <rguenther@suse.de>
5445
5446 PR middle-end/40023
aa016ff7 5447 * builtins.c (gimplify_va_arg_expr): Properly build the address.
8d972839 5448
66ba9b0b
SZ
54492009-05-05 Shujing Zhao <pearly.zhao@oracle.com>
5450
5451 * tree.h (strip_float_extensions): Remove duplicate declaration.
aa016ff7
UB
5452 (build_low_bits_mask, debug_fold_checksum, expand_function_end,
5453 expand_function_start, stack_protect_prologue, stack_protect_epilogue,
5454 block_ultimate_origin): Rearrange the declarations line to match the
5455 comment that indicates the .c file which the functions are defined.
5456 (dwarf2out_*, set_decl_rtl): Add comment.
5457 (get_base_address): Adjust comment.
5458 (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
5459 declarations line and add comment.
5460 (is_builtin_name): Add blank after function name, for clarity.
66ba9b0b 5461
4f1e4960
JM
54622009-05-04 Joseph Myers <joseph@codesourcery.com>
5463
5464 * attribs.c (decl_attributes): Use %qE for identifiers in
5465 diagnostics.
5466 * cgraphunit.c (verify_cgraph_node): Translate function names to
5467 locale character set in diagnostics.
5468 * coverage.c (get_coverage_counts): Use %qE for identifiers in
5469 diagnostics.
5470 * doc/invoke.texi (-finstrument-functions-exclude-function-list):
5471 Document that functions are named in UTF-8.
5472 * expr.c (expand_expr_real_1): Translate function names to locale
5473 character set in diagnostics.
5474 * gimplify.c (omp_notice_variable, omp_is_private,
5475 gimplify_scan_omp_clauses): Use %qE for identifiers in
5476 diagnostics.
5477 * langhooks.c (lhd_print_error_function): Translate function names
5478 to locale character set.
5479 * langhooks.h (decl_printable_name): Document that return value is
5480 in internal character set.
5481 * stmt.c: Include pretty-print.h
5482 (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
5483 diagnostics.
5484 (resolve_operand_name_1): Translate named operand name to locale
5485 character set.
5486 * stor-layout.c (finalize_record_size): Use %qE for identifiers in
5487 diagnostics.
5488 * toplev.c (announce_function): Translate function names to locale
5489 character set.
5490 (warn_deprecated_use): Use %qE for identifiers in diagnostics.
5491 (default_tree_printer): Use pp_identifier or translate identifiers
5492 to locale character set. Mark "<anonymous>" for translation.
5493 * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
5494 for identifiers in diagnostics.
5495 * tree.c (handle_dll_attribute): Use %qE for identifiers in
5496 diagnostics.
5497 * varasm.c (output_constructor): Use %qE for identifiers in
5498 diagnostics.
5499
40540e68
RAE
55002009-05-04 Rafael Avila de Espindola <espindola@google.com>
5501
5502 * configure.ac: use ` ` instead of $()
5503 * configure: Regenerate.
5504
33fc884c
BE
55052009-05-05 Ben Elliston <bje@au.ibm.com>
5506
5507 * config/pa/linux-atomic.c: Eliminate conditional include of
5508 errno.h on non-LP64 systems to simplify build requirements.
5509
88388a52
JM
55102009-05-04 Joseph Myers <joseph@codesourcery.com>
5511
5512 * c-common.c (handle_mode_attribute): Use %qE for identifiers in
5513 diagnostics.
5514 * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
5515 and pass value to identifier_to_locale.
5516 (warn_variable_length_array): Make name a tree.
5517 (grokdeclarator): Separate diagnostic texts for named and unnamed
5518 declarators. Use %qE for named declarators.
5519 * c-parser.c (c_lex_one_token): Use %qE for identifiers in
5520 diagnostics.
5521 * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
5522 identifiers in diagnostics.
5523 * c-typeck.c (push_member_name, start_init): Pass identifiers to
5524 identifier_to_locale. Mark "anonymous" strings for translation.
5525
960c5c79
ME
55262009-05-04 Michael Eager <eager@eagercon.com>
5527
5528 * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
aa016ff7 5529 address for DImode/DFmode only if double-precision FP regs.
960c5c79 5530
d083fbba
ME
55312009-05-04 Michael Eager <eager@eagercon.com>
5532
5533 * config/rs6000/rs6000.c (rs6000_libcall_value): Add
5534 TARGET_SINGLE_FLOAT check.
5535
c3ba8d32
ME
55362009-05-04 Michael Eager <eager@eagercon.com>
5537
5538 * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
5539
edce9f18
ME
55402009-05-04 Michael Eager <eager@eagercon.com>
5541
5542 * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
5543 * config/rs6000/t-xilinx: New
5544
506d7b68
PB
55452009-05-04 Paolo Bonzini <bonzini@gnu.org>
5546
e913423f 5547 * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
506d7b68
PB
5548 * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
5549 * gcc/explow.c (memory_address): Use target hook.
5550 * gcc/targhooks.c (default_legitimize_address): New.
5551 * gcc/targhooks.h (default_legitimize_address): New.
5552 * gcc/target.h (legitimize_address): New.
5553 * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
5554 (TARGET_INITIALIZER): Include it.
5555 * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
5556
5557 * config/bfin/bfin-protos.h (legitimize_address): Remove.
5558 * config/bfin/bfin.c (legitimize_address): Remove.
5559 * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
aa016ff7
UB
5560 * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
5561 Remove.
506d7b68
PB
5562 * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
5563 * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
5564
5565 * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
5566 THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
5567 * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
5568 * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
5569 * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
5570 * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
5571 * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
5572 * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
5573 * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
5574 * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
5575 * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
5576 * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
5577 * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
5578 * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
5579 * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
5580 * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
5581 * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
5582 * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
5583 * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
5584 * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
5585 * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
5586 * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
5587 * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
5588
5589 * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
5590 * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
5591 * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
5592 * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
5593 * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
5594 * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
5595 * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
5596 * gcc/config/arm/arm-protos.h (arm_legitimize_address,
5597 (thumb_legitimize_address): Delete.
5598 * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
5599 * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
5600 * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
5601 * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
5602 * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
aa016ff7
UB
5603 * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
5604 Delete.
5605 * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
5606 Delete.
506d7b68
PB
5607
5608 * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
5609 * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
5610 * config/m32r/m32r.c (m32r_legitimize_address): New.
5611 * config/m68k/m68k.c (m68k_legitimize_address): New.
5612 * config/score/score.c (score_legitimize_address): Standardize.
5613 * config/score/score3.c (score3_legitimize_address): Standardize.
5614 * config/score/score3.h (score3_legitimize_address): Adjust.
5615 * config/score/score7.c (score7_legitimize_address): Standardize.
5616 * config/score/score7.h (score7_legitimize_address): Adjust.
5617 * config/sh/sh.c (sh_legitimize_address): New.
5618 * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
5619
5620 * gcc/config/s390/s390.c (legitimize_address): Rename to...
5621 (s390_legitimize_address): ... this.
5622 * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
5623 (sparc_legitimize_address): ... this.
5624 * gcc/config/i386/i386.c (legitimize_address): Rename to...
5625 (ix86_legitimize_address): ... this.
5626 * gcc/config/avr/avr.c (legitimize_address): Rename to...
5627 (avr_legitimize_address): ... this.
5628 * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
5629 (mn10300_legitimize_address): ... this.
5630 * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
5631 (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
5632 (alpha_expand_mov): Adjust call.
5633
5634 * config/frv/frv.c (frv_legitimize_address): Return x on failure.
5635 * config/spu/spu.c (spu_legitimize_address): Likewise.
5636 * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
5637 * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
5638
a3af5087
JM
56392009-05-04 Joseph Myers <joseph@codesourcery.com>
5640
5641 * intl.c (locale_encoding, locale_utf8): New.
5642 (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
5643 * intl.h (locale_encoding, locale_utf8): Declare.
5644 * pretty-print.c: Include ggc.h. Include iconv.h if HAVE_ICONV.
5645 (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
5646 New.
5647 * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
5648 argument.
5649 (pp_tree_identifier): Define to call pp_base_tree_identifier.
5650 (pp_base_tree_identifier): Declare as function.
5651 (identifier_to_locale): Declare.
5652 * Makefile.in (pretty-print.o): Update dependencies.
aa016ff7 5653 * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
a3af5087 5654
ea5cd5f1
RG
56552009-05-04 Richard Guenther <rguenther@suse.de>
5656
5657 PR middle-end/40015
5658 * builtins.c (fold_builtin_memory_op): Do not decay to element
5659 type if the size matches the whole array.
5660
ddc2690a
KH
56612009-05-04 Kazu Hirata <kazu@codesourcery.com>
5662
5663 * expmed.c (synth_mult): When trying out a shift, pass the result
5664 of a signed shift.
5665
ef268d34
KH
56662009-05-04 Kazu Hirata <kazu@codesourcery.com>
5667
5668 * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
5669 (shiftsub1_cost): New.
5670 (init_expmed): Compute shiftsub1_cost.
5671 (synth_mult): Optimize multiplications by constants of the form
5672 -(2^^m-1) for some constant positive integer m.
5673
255d3827
RG
56742009-05-03 Richard Guenther <rguenther@suse.de>
5675
5676 PR c/39983
5677 * c-typeck.c (array_to_pointer_conversion): Do not built
5678 ADDR_EXPRs of arrays of pointer-to-element type.
5679 * c-gimplify.c (c_gimplify_expr): Revert change fixing
5680 up wrong ADDR_EXPRs after-the-fact.
5681 * c-common.c (strict_aliasing_warning): Strip pointer
5682 conversions for obtaining the original type.
5683 * builtins.c (fold_builtin_memset): Handle array types.
5684 (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
5685 and array types
5686
16c33770
RG
56872009-05-03 Richard Guenther <rguenther@suse.de>
5688
5689 PR middle-end/23329
5690 * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
5691 Do not lose casts from array types with unknown extent to array
5692 types with known extent.
5693 * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
5694 alias set compatibility.
5695
62a67c94
MLI
56962009-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
5697
5698 * flags.h (extra_warnings): Delete.
5699 * toplev.c (process_options): Handle Wuninitialized here.
5700 * opts.c (extra_warnings): Delete.
5701 (set_Wextra): Delete.
5702 (common_handle_option): -Wextra can be handled automatically.
5703 * c-opts.c (c_common_handle_option): Delete obsolete code.
5704 (c_common_post_options): Simplify comment.
5705 * common.opt (W): Add Var.
5706 (Wextra): Add Var.
5707 (Wuninitialized): Initialize to -1.
5708
8c7926c4
AN
57092009-05-03 Adam Nemet <anemet@caviumnetworks.com>
5710 Richard Guenther <rguenther@suse.de>
5711
5712 * expr.c (get_def_for_expr): New function.
5713 (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
5714 SSA rather than trees.
5715 <MULT_EXPR>: Likewise. Use subexp0 and subexp1 instead of
5716 TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
5717
fa5da7de
JM
57182009-05-03 Joseph Myers <joseph@codesourcery.com>
5719
5720 * c-common.c (reswords): Add _Imaginary.
5721 * c-common.c (enum rid): Add RID_IMAGINARY.
5722
2ddd5020
PB
57232009-05-03 Paolo Bonzini <bonzini@gnu.org>
5724
5725 * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
5726 Patch by Richard Guenther.
5727
aea88c05
AS
57282009-05-03 Anatoly Sokolov <aesok@post.ru>
5729
5730 * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
5731 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
5732 * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
5733 * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
5734 * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
5735 * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
5736 * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
5737 * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
5738 * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
5739 * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
5740 * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
5741 * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
5742 * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
5743 * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
5744 * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
5745 * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
5746 * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
5747 * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
5748
85e59f3a
RG
57492009-05-02 Richard Guenther <rguenther@suse.de>
5750
5751 PR tree-optimization/39940
5752 * tree-ssa-pre.c (eliminate): Make sure we may propagate before
5753 doing so.
5754
4636b850
RG
57552009-05-02 Richard Guenther <rguenther@suse.de>
5756
5757 PR middle-end/40001
5758 * tree-ssa.c (execute_update_addresses_taken): Properly check
5759 if we can mark a variable DECL_GIMPLE_REG_P.
5760 * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
5761 back to the end of the function.
5762 (is_gimple_reg_type): Remove complex type special casing.
5763 * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
5764 if not optimizing.
5765
5e10cb5a
BE
57662009-05-02 Ben Elliston <bje@au.ibm.com>
5767
5768 * doc/collect2.texi (Collect2): Document search path behaviour
5769 when configured with --with-ld.
5770
048bf48b
JH
57712009-05-02 Jan Hubicka <jh@suse.cz>
5772
5773 * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
5774 parameter; update callers.
aa016ff7
UB
5775 (coalesce_cost_edge): EH edges are costier because they needs
5776 splitting even if not critical and even more costier when there are
5777 multiple EH predecestors.
048bf48b 5778
d5c5f9ab
JH
57792009-05-02 Jan Hubicka <jh@suse.cz>
5780
5781 * except.c (remove_eh_handler_and_replace): Handle updating after
5782 removing TRY blocks.
5783
2ed1959a
EB
57842009-05-02 Eric Botcazou <ebotcazou@adacore.com>
5785
5786 * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
5787
d363a7e7
SB
57882009-05-02 Steven Bosscher <steven@gcc.gnu.org>
5789
5790 * varasm.c: Do not include c-pragma.h.
5791 * attribs.c: Do not incude c-common.h.
5792
9c3d55b4
MM
57932009-05-01 Michael Matz <matz@suse.de>
5794
5795 * calls.c (initialize_argument_information): Handle SSA names like
5796 decls with a non MEM_P DECL_RTL.
5797
ea264ca5
SB
57982009-05-01 Steven Bosscher <steven@gcc.gnu.org>
5799
5800 * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
5801 * ipa-utils.c: Likewise.
5802 * ipa-type-escape.c: Likewise.
5803 * cgraphunit.c Do not include c-common.h.
5804 * ipa-pure-const.c: Likewise.
5805 * tree-if-conv.c: Likewise.
5806 * matrix-reorg.c: Do not include c-common.h and c-tree.h.
5807 * ipa-struct-reorg.c: Likewise.
5808 * tree-nomudflap.c: Likewise.
5809 * tree-ssa-structalias.c: Likewise.
5810
6c5d4d1a
SB
58112009-05-01 Steven Bosscher <steven@gcc.gnu.org>
5812
5813 * store-motion.c: Many cleanups to make this pass a first-class
5814 citizen instead of an appendix to gcse load motion. Add TODO list
5815 to make this pass faster/cleaner/better.
5816
5817 (struct ls_expr): Post gcse.c-split cleanups.
5818 Rename to st_expr. Rename "loads" field to "antic_stores". Rename
5819 "stores" field to "avail_stores".
5820 (pre_ldst_mems): Rename to store_motion_mems.
5821 (pre_ldst_table): Rename to store_motion_mems_table.
5822 (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
5823 (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
5824 (ldst_entry): Rename to st_expr_entry, update users.
5825 (free_ldst_entry): Rename to free_st_expr_entry, update users.
5826 (free_ldst_mems): Rename to free_store_motion_mems, update users.
aa016ff7
UB
5827 (enumerate_ldsts): Rename to enumerate_store_motion_mems,
5828 update caller.
6c5d4d1a
SB
5829 (first_ls_expr): Rename to first_st_expr, update users.
5830 (next_ls_expr): Rename to next_st_expr, update users.
5831 (print_ldst_list): Rename to print_store_motion_mems. Print names of
5832 fields properly for store motion instead of names inherited from load
5833 motion in gcse.c.
5834 (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
5835 (LAST_AVAIL_CHECK_FAILURE): Explain what this is. Undefine when we
5836 are done with it.
5837
5838 (ae_kill): Rename to st_kill, update users.
5839 (ae_gen): Rename to st_avloc, update users.
5840 (transp): Rename to st_transp, update users.
5841 (pre_insert_map): Rename to st_insert_map, update users.
5842 (pre_delete_map): Rename to st_delete_map, update users.
5843 (insert_store, build_store_vectors, free_store_memory,
5844 one_store_motion_pass): Update for abovementioned changes.
5845
5846 (gcse_subst_count, gcse_create_count): Remove.
5847 (one_store_motion_pass): New statistics counters "n_stores_deleted"
5848 and "n_stores_created", local variables.
5849
5850 (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
5851 use for_each_rtx.
5852
5853 (regvec, compute_store_table_current_insn): Remove.
5854 (reg_set_info, reg_clear_last_set): Remove.
5855 (compute_store_table): Use DF caches instead of local dataflow
5856 solvers.
5857
b02cec6e
JM
58582009-05-01 Joseph Myers <joseph@codesourcery.com>
5859
5860 * c-objc-common.c (c_tree_printer): Print identifiers with
5861 pp_identifier, not pp_string. Mark "({anonymous})" for
5862 translation.
5863 * c-pretty-print.c (pp_c_ws_string): New.
5864 (pp_c_cv_qualifier, pp_c_type_specifier,
5865 pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
5866 pp_c_storage_class_specifier, pp_c_function_specifier,
5867 pp_c_attributes, pp_c_bool_constant, pp_c_constant,
5868 pp_c_primary_expression, pp_c_postfix_expression,
5869 pp_c_unary_expression, pp_c_shift_expression,
5870 pp_c_relational_expression, pp_c_equality_expression,
5871 pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
5872 use pp_string and pp_c_ws_string in place of pp_identifier and
5873 pp_c_identifier for non-identifiers. Mark English strings for
5874 translation.
5875 * c-pretty-print.h (pp_c_ws_string): Declare.
5876
cd533689
PP
58772009-04-30 Paul Pluzhnikov <ppluzhnikov@google.com>
5878 Roland McGrath <roland@redhat.com>
5879
aa016ff7 5880 * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
cd533689
PP
5881 (ENABLE_LD_BUILDID): New configuration option.
5882 * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
5883 (LINK_BUILDID_SPEC): New macro.
5884 (init_spec): If defined, prepend it between LINK_EH_SPEC and
5885 link_spec.
5886 * doc/install.texi: Document --enable-linker-build-id option.
5887 * configure: Rebuild.
5888 * config.in: Rebuild.
5889
ba6adec4
AN
58902009-04-30 Adam Nemet <anemet@caviumnetworks.com>
5891
5892 * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
5893 MIPS_GP_SAVE_AREA_SIZE): Define new macros.
5894 (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD. Use
5895 MIPS_GP_SAVE_AREA_SIZE.
5896 * config/mips/mips.c (struct mips_frame_info): Update comment
5897 before arg_pointer_offset and hard_frame_pointer_offset.
5898 (mips_compute_frame_info): Update diagram before function: to
5899 correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
5900 indicate the position of frame_pointer_rtx with -fstack-protector and
5901 to show args_size. Don't allocate cprestore area for leaf functions
5902 if FRAME_GROWS_DOWNWARD. Use MIPS_GP_SAVE_AREA_SIZE to set
5903 cprestore_size.
5904 (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
5905
48f5b722
MM
59062009-04-30 Michael Matz <matz@suse.de>
5907
ba6adec4
AN
5908 PR tree-optimization/39955
5909 * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
48f5b722 5910
b65d6744
DK
59112009-04-30 Dave Korn <dave.korn.cygwin@gmail.com>
5912
5913 * ira.c (setup_cover_and_important_classes): Use safe macro
5914 REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
5915 directly.
5916 * genpreds.c (write_tm_preds_h): Output suitable definition of
5917 REG_CLASS_FOR_CONSTRAINT.
5918
f136c8ae
RAE
59192009-04-30 Rafael Avila de Espindola <espindola@google.com>
5920
5921 * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
5922 instead of an int.
5923 * bitmap.c (bitmap_descriptor): Likewise.
5924 * ggc-common.c (loc_descriptor): Likewise.
5925 * varray.c (varray_descriptor): Likewise.
5926 * vec.c (vec_descriptor): Likewise.
5927
43fcece8 59282009-04-30 Eric Botcazou <ebotcazou@adacore.com>
35debead
EB
5929
5930 * Makefile.in (dce.o): Add $(EXCEPT_H).
5931 * dce.c: Include except.h and delete redundant vector definitions.
5932 (deletable_insn_p): Return false for non-call insns that can throw
5933 if DF is running.
5934
df35c271
SB
59352009-04-30 Steven Bosscher <steven@gcc.gnu.org>
5936
5937 * gcse.c (ae_gen): Remove.
5938 (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
5939 and make non-static function to make it available in store-motion.c.
5940 Update call sites with search-and-replace.
5941 (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
5942 extract_mentioned_regs, extract_mentioned_regs_helper,
5943 find_moveable_store, compute_store_table, load_kills_store, find_loads,
5944 store_killed_in_insn, store_killed_after, store_killed_before,
5945 build_store_vectors, insert_insn_start_basic_block, insert-store,
5946 remove_reachable_equiv_notes, replace_store_insn, delete_store,
5947 free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
5948 execute_rtl_store_motion, pass_rtl_store_motion): Move to...
5949 * store-motion.c: ...new file. Also copy data structures from gcse.c
5950 and clean up to remove parts not used by store motion.
5951 * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
5952 * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
5953
f711a87a
RR
59542009-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5955
5956 PR target/38571
5957 * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
5958 when optimizing for size.
5959
fa5ed76e
HPN
59602009-04-30 Hans-Peter Nilsson <hp@axis.com>
5961
5962 * gcse.c (gcse_constant_p): Fix typo in last change.
5963
0acbbdb0
RAE
59642009-04-30 Rafael Avila de Espindola <espindola@google.com>
5965
5966 * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
5967
82f5c05d
AK
59682009-04-30 Andreas Krebbel <krebbel1@de.ibm.com>
5969
5970 * gcse.c (gcse_constant_p): Make sure the constant is sharable.
5971
6d8f135b
JW
59722009-04-29 James E. Wilson <wilson@codesourcery.com>
5973
5974 * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
5975 CONST_HIGH_PART result.
5976
c21ca196
AS
59772009-04-29 Anatoly Sokolov <aesok@post.ru>
5978
5979 * config/avr/avr.c (initial_elimination_offset): Rename to
5980 avr_initial_elimination_offset.
5981 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
5982 change return type to bool.
5983 (avr_can_eliminate): New function.
5984 * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
5985 (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
5986 (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
0d50d55a 5987 * config/avr/avr-protos.h (initial_elimination_offset): Rename to
c21ca196
AS
5988 avr_initial_elimination_offset.
5989 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
5990 (avr_initial_elimination_offset): Define.
5991
2a34bece 59922009-04-29 Eric Botcazou <ebotcazou@adacore.com>
aa016ff7 5993 Steven Bosscher <steven@gcc.gnu.org>
2a34bece
EB
5994
5995 PR rtl-optimization/39938
5996 * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
5997 * cfgrtl.c: Include insn-attr.h.
5998 (rest_of_pass_free_cfg): New function.
5999 (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
6000 * resource.c (init_resource_info): Remove call to df_analyze.
6001
5dc7911e
RG
60022009-04-29 Richard Guenther <rguenther@suse.de>
6003
6004 PR target/39943
6005 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
6006 allow conversion to signed integers.
6007
1fe479fd
RG
60082009-04-29 Richard Guenther <rguenther@suse.de>
6009
6010 * tree-cfg.c (verify_gimple_assign_binary): Allow vector
6011 shifts of floating point vectors if the shift amount is
6012 a constant multiple of the element size.
6013
8e001680
AK
60142009-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
6015 Michael Matz <matz@suse.de>
6016
6017 PR middle-end/39927
6018 PR bootstrap/39929
6019 * tree-outof-ssa.c (emit_partition_copy): New function.
6020 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
6021 insert_part_to_rtx_on_edge): Perform the partition base var
6022 copy using emit_partition_copy.
6023 (insert_value_copy_on_edge): Convert constants to the right mode.
6024 (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
6025 (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
6026
e50e3081
BS
60272009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
6028
6029 * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
6030 scan backwards to try to find a constant to initialize it.
6031
4e5d521b
BS
6032 * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
6033 insn before the loop_end instruction, don't look past labels.
6034
7c90021d
RG
60352009-04-29 Richard Guenther <rguenther@suse.de>
6036
6037 PR middle-end/39937
6038 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
6039 loose type conversions.
6040 (forward_propagate_addr_expr): Fix tuplification bug. Remove
6041 stmts only if there are no uses of its definition.
6042
97a988bc
BS
60432009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
6044
6045 * config/bfin/bfin.h (splitting_loops): Declare.
6046 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
6047 Reorder bit definitions to be ascending.
6048 (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
6049 * config/bfin/bfin.c (splitting_loops): New variable.
6050 (bfin_cpus): Add WA_LOAD_LCREGS as needed.
6051 (struct loop_info): Remove members INIT and LOOP_INIT.
6052 (bfin_optimize_loop): Don't set them. Reorder the code that generates
aa016ff7
UB
6053 the LSETUP sequence. Allow LC to be loaded from any register, but
6054 also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
97a988bc
BS
6055 (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
6056 set to 1.
6057 * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
6058 of reload_completed.
aa016ff7 6059
97a988bc
BS
6060 From Jie Zhang:
6061 * config/bfin/bfin.md (movsi_insn): Refine constraints.
6062
0c463e16
RAE
60632009-04-29 Rafael Avila de Espindola <espindola@google.com>
6064
6065 * Makefile.in (PLUGIN_VERSION_H): New.
6066 (OBJS-common): Remove plugin-version.o.
6067 (plugin.o): Depend on (PLUGIN_VERSION_H).
6068 (plugin-version.o): Remove.
6069 * configure: Regenerate
6070 * configure.ac: Create plugin-version.h.
6071 * gcc-plugin.h (plugin_gcc_version): Remove.
6072 (plugin_default_version_check): Change signature.
6073 * plugin-version.c: Remove.
6074 * plugin.c: Include plugin-version.h.
6075 (str_plugin_gcc_version_name): Remove.
6076 (try_init_one_plugin): Pass gcc version to plugin_init.
6077 (plugin_default_version_check): Both gcc and plugin versions are now
6078 arguments.
6079
307e7eab
BS
60802009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
6081
6082 * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
6083 problematic last insns. Test for TYPE_CALL rather than CALL_P.
aa016ff7
UB
6084 Remove special case testing for last insn of inner loops. Don't fail
6085 if the loop ends with a jump, emit an extra nop instead.
307e7eab 6086
c5d96723
BS
6087 * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
6088 DREGS rather than comparing directly. Remove code that tries to
6089 account for latencies.
6090
de0b4ad5
RG
60912009-04-29 Richard Guenther <rguenther@suse.de>
6092
6093 PR tree-optimization/39941
6094 * tree-ssa-pre.c (eliminate): Schedule update-ssa after
6095 eliminating an indirect call.
6096
3a19701a
RG
60972009-04-29 Richard Guenther <rguenther@suse.de>
6098
6099 * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
6100 parameter. Allow invariants as base if !require_lvalue.
6101 (verify_gimple_assign_single): Adjust.
6102
a0a31d1e
BS
61032009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
6104
6105 * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
6106 (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
aa016ff7
UB
6107 ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
6108 ssubhi3, ssaddhi3_parts and sssubhi3_parts.
a0a31d1e
BS
6109 (flag_mulhi3_parts): Produce a HImode output rather than trying to set
6110 a VEC_SELECT.
aa016ff7
UB
6111 * config/bfin/bfin.c (bfin_expand_builtin,
6112 case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
a0a31d1e 6113
795bd26a
RG
61142009-04-28 Richard Guenther <rguenther@suse.de>
6115
6116 * tree-vect-loop.c (get_initial_def_for_induction): Use
6117 correct types for pointer increment.
6118
04be270f
KG
61192009-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6120
6121 * toplev.c (print_version): Update GMP version string calculation.
6122
e1a3b85c
EB
61232009-04-28 Eric Botcazou <ebotcazou@adacore.com>
6124
6125 PR rtl-optimization/39938
6126 * resource.c (init_resource_info): Add call to df_analyze.
6127
8224166e
UB
61282009-04-28 Uros Bizjak <ubizjak@gmail.com>
6129
6130 * config/alpha/alpha.md (usegp): Cast the result of
6131 alpha_find_lo_sum_using_gp to enum attr_usegp.
6132 * config/alpha/alpha.c (override_options): Remove end-of-structure
6133 marker element from cpu_table. Use array size of cpu_table to handle
6134 -mcpu and -mtune options.
6135 (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
6136
c5f0fe67
JM
61372009-04-28 Joseph Myers <joseph@codesourcery.com>
6138
6139 * config.gcc (powerpc*-*-* | rs6000-*-*): Add
6140 rs6000/option-defaults.h to tm_file. Support cpu_32, cpu_64,
6141 tune_32 and tune_64.
6142 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
6143 support on PowerPC.
6144 * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
6145 * config/rs6000/option-defaults.h: ... here. New file.
6146 (OPT_64, OPT_32): Define.
6147 (MASK_64BIT): Define to 0 if not already defined.
6148 (OPT_ARCH64, OPT_ARCH32): Define.
6149 (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
6150 and tune_64.
6151
0c48a567
RR
61522009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6153
6154 * config/arm/arm.c (arm_override_options): Emit error on using
6155 fpa with AAPCS.
6156
f1028b9d
UB
61572009-04-28 Uros Bizjak <ubizjak@gmail.com>
6158
6159 PR rtl-optimization/39914
6160 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
6161 registers for allocnos created from user-defined variables only
6162 when not optimizing.
6163
e0dd989a
RG
61642009-04-28 Richard Guenther <rguenther@suse.de>
6165
6166 PR middle-end/39937
6167 * fold-const.c (fold_binary): Use distribute_real_division only
6168 on float types.
6169
9a17c91d
SE
61702009-04-28 Steve Ellcey <sje@cup.hp.com>
6171
6172 * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
6173 add hpux-stdint.h to tm_file.
6174 (hppa[12]*-*-hpux11*): Ditto.
6175 (ia64*-*-hpux*): Ditto.
6176 * config/hpux-stdint.h: New.
60839f5d 6177 * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
9a17c91d 6178 __STDC_EXT__ for all compiles.
60839f5d
EB
6179 * config/pa/pa-hpux.h: Ditto.
6180 * config/pa/pa-hpux10.h: Ditto.
6181 * config/pa/pa-hpux11.h: Ditto.
9a17c91d 6182
af04e659
CM
61832009-04-28 Catherine Moore <clm@codesourcery.com>
6184
6185 * debug.h (set_name): Add comment.
6186
04ef80ce
AP
61872009-04-28 Andrew Pinski <pinskia@gmail.com>
6188
6189 PR target/39929
6190 * config/darwin.c (machopic_gen_offset): Check
6191 currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
6192 * config/arm/arm.c (require_pic_register): Likewise.
6193
65ad77af
PB
61942009-04-28 Paolo Bonzini <bonzini@gnu.org>
6195
8224166e
UB
6196 * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
6197 m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
6198 m32c_promote_prototypes): Delete.
65ad77af 6199
1b15a008
MM
62002009-04-28 Michael Matz <matz@suse.de>
6201
6202 PR middle-end/39922
6203 * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
6204 constants.
6205
7569a6cc
RG
62062009-04-28 Richard Guenther <rguenther@suse.de>
6207
f1028b9d 6208 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
7569a6cc 6209
ead204d9
RR
62102009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6211
6212 * config/arm/arm-cores.def: Add support for arm1156t2f-s.
6213 * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
6214 * config/arm/arm-tune.md: Regenerate.
6215
f2c45f08 62162009-04-28 Alexander Monakov <amonakov@ispras.ru>
60839f5d 6217
f2c45f08
AM
6218 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
6219 block if there are complex incoming edges.
6220 (sel_merge_blocks): Remove useless assert.
6221 (sel_redirect_edge_and_branch): Check that edge was redirected.
6222 * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
6223 (sel_find_rgns): Delete declaration.
6224 * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
6225 the region when it is not a preheader.
6226
7a00d767
UB
62272009-04-28 Uros Bizjak <ubizjak@gmail.com>
6228
6229 PR c/39323
6230 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
6231
448ee662
RG
62322009-04-28 Richard Guenther <rguenther@suse.de>
6233
6234 * tree.h (SSA_NAME_VALUE): Remove.
6235 (struct tree_ssa_name): Remove value_handle member.
6236 * tree-vrp.c (execute_vrp): Initialize/free the value-handle
6237 array for jump threading.
6238 * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
6239 SSA_NAME_VALUEs.
6240 * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
6241 * tree-flow.h (threadedge_initialize_values): Declare.
6242 (threadedge_finalize_values): Likewise.
6243 * tree-ssa-threadedge.c (ssa_name_values): New global variable.
6244 (SSA_NAME_VALUE): Define.
6245 (threadedge_initialize_values): New function.
6246 (threadedge_finalize_values): Likewise.
6247 * tree-ssa-dom.c (ssa_name_values): New global variable.
6248 (SSA_NAME_VALUE): Define.
f1028b9d 6249 (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
448ee662 6250
8644a673
IR
62512009-04-28 Ira Rosen <irar@il.ibm.com>
6252
6253 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
6254 Use REPORT_VECTORIZED_LOCATIONS instead
6255 REPORT_VECTORIZED_LOOPS.
6256 * tree-vectorizer.c (vect_verbosity_level): Make static.
6257 (vect_loop_location): Rename to vect_location.
6258 (vect_set_verbosity_level): Update comment.
6259 (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
6260 and vect_location.
6261 (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
6262 and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
6263 instead REPORT_UNVECTORIZED_LOOPS.
fbdf817d
UB
6264 * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
6265 and vect_loop_def to vect_external_def and vect_internal_def.
8644a673 6266 (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
7a00d767 6267 and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and
8644a673
IR
6268 REPORT_UNVECTORIZED_LOCATIONS.
6269 (enum vect_relevant): Update comment. Rename vect_unused_in_loop
6270 and vect_used_in_loop and to vect_unused_in_scope and
6271 vect_used_in_scope.
6272 (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
6273 (vect_verbosity_level): Remove declaration.
6274 (vect_analyze_operations): Likewise.
6275 (vect_analyze_stmt): Declare.
6276 * tree-vect-loop.c (vect_determine_vectorization_factor): Use
6277 REPORT_UNVECTORIZED_LOCATIONS.
6278 (vect_get_loop_niters): Fix indentation.
6279 (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
6280 (vect_analyze_loop_operations): New function.
6281 (vect_analyze_loop): Call vect_analyze_loop_operations instead of
6282 vect_analyze_operations.
6283 (vect_is_simple_reduction): Use new names.
6284 (vectorizable_live_operation, vect_transform_loop): Likewise.
fbdf817d
UB
6285 * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
6286 to specify whether the data references can be a part of interleaving
6287 chain.
8644a673
IR
6288 (vect_analyze_data_ref_dependence): Use new names.
6289 (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
6290 (vect_create_addr_base_for_vector_ref): Remove redundant code.
6291 * tree-vect-patterns.c (widened_name_p): Use new names.
6292 (vect_recog_dot_prod_pattern): Likewise.
6293 * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
6294 (process_use, vect_mark_stmts_to_be_vectorized,
6295 vect_model_simple_cost, vect_model_store_cost,
6296 vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
6297 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
6298 vectorizable_operation, vectorizable_type_demotion,
6299 vectorizable_type_promotion, vectorizable_store, vectorizable_load,
6300 vectorizable_condition): Likewise.
6301 (vect_analyze_operations): Split into vect_analyze_loop_operations
6302 and ...
6303 (vect_analyze_stmt): ... new function.
6304 (new_stmt_vec_info): Use new names.
6305 (vect_is_simple_use): Use new names and fix comment.
6306 * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
6307 (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
6308
b91322f2
UB
63092009-04-28 Uros Bizjak <ubizjak@gmail.com>
6310
6311 PR target/39911
6312 * config/i386/i386.c (print_operand) ['Z']: Handle floating point
6313 and integer modes for x87 operands. Do not ICE for unsupported size,
6314 generate error instead. Generate error for unsupported operand types.
6315 ['z']: Do not handle HImode memory operands specially. Warning
6316 for floating-point operands. Fallthru to 'Z' for unsupported operand
6317 types. Do not ICE for unsupported size, generate error instead.
6318 (output_387_binary_op): Use %Z to output operands.
6319 (output_fp_compare): Ditto.
6320 (output_387_reg_move): Ditto.
6321
b2ed71b6
BE
63222009-04-28 Ben Elliston <bje@au.ibm.com>
6323
6324 PR c++/35652
6325 Revert:
6326
6327 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6328
6329 * builtins.c (c_strlen): Do not warn here.
6330 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
6331 * c-common.c (pointer_int_sum): Take an explicit location.
6332 Warn about offsets out of bounds.
6333 * c-common.h (pointer_int_sum): Adjust declaration.
6334
81f40b79
ILT
63352009-04-27 Ian Lance Taylor <iant@google.com>
6336
6337 * collect2.c (is_ctor_dtor): Change type of ret field in struct
6338 names to symkind.
6339 * dce.c (run_fast_df_dce): Change type of old_flags to int.
6340 * df-core.c (df_set_flags): Change return type to int. Change
6341 type of old_flags to int.
6342 (df_clear_flags): Likewise.
6343 * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
6344 (df_get_conditional_uses): Likewise.
6345 * df.h (df_set_flags, df_clear_flags): Update declarations.
6346 * dwarf2out.c (struct indirect_string_node): Change type of form
6347 field to enum dwarf_form.
6348 (AT_string_form): Change return type to enum dwarf_form.
6349 * fixed-value.c (fixed_compare): Add cast to enum type.
6350 * fwprop.c (update_df): Change 0 to VOIDmode.
6351 * gensupport.c: Change 0 to UNKNOWN.
6352 * gimple.h (gimple_cond_code): Add cast to enum type.
6353 * haifa-sched.c (reemit_notes): Add cast to enum type.
6354 * hooks.c (hook_int_void_no_regs): Remove function.
6355 * hooks.h (hook_int_void_no_regs): Remove declaration.
6356 * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
7a00d767 6357 * predict.c (combine_predictions_for_insn): Add casts to enum type.
81f40b79
ILT
6358 * real.c (real_arithmetic): Add cast to enum type.
6359 (real_compare): Likewise.
6360 * target.h (struct gcc_target): Change return type of
6361 branch_target_register_class to enum reg_class.
6362 * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
6363 default_branch_target_register_class.
7a00d767 6364 * targhooks.c (default_branch_target_register_class): New function.
81f40b79 6365 * targhooks.h (default_branch_target_register_class): Declare.
7a00d767 6366 * tree-data-ref.c (print_direction_vector): Add cast to enum type.
81f40b79
ILT
6367 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
6368 cast to int.
6369 * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
6370 ERROR_MARK.
6371 * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
6372 vect_uninitialized_def. Change 0 to ERROR_MARK.
6373 * tree-vect-stmts.c (supportable_widening_operation): Don't
6374 initialize icode1 and icode2.
7a00d767 6375 * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
81f40b79
ILT
6376 * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
6377 and to STD_C89.
6378 (cmn_err_flag_specs): Change 0 to STD_C89.
6379 (cmn_err_char_table): Likewise.
6380 * config/arm/arm.c (get_arm_condition_code): Change type of code
6381 to enum arm_cond_code.
6382 (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
6383 (IWMMXT_BUILTIN2): Likewise.
6384 (neon_builtin_type_bits): Don't define typedef.
6385 (neon_builtin_datum): Change type of bits field to int.
6386 (arm_expand_neon_args): Add cast to enum type.
6387 * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
6388 TLS_MODEL_NONE.
6389 * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN. Add
6390 casts to enum type.
6391 * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
6392 MIPS_FP_COND_f.
6393 * config/mips/mips.md (jal_macro): Return enum constant.
6394 (single_insn): Likewise.
6395 * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
6396 CODE_FOR_nothing.
6397 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
6398 casts to enum type.
6399 * config/s390/s390.c (s390_tune_flags): Change type to int.
6400 (s390_arch_flags): Likewise.
7a00d767 6401 (s390_handle_arch_option): Change flags field of struct pta to int.
81f40b79
ILT
6402 * config/s390/s390.h (s390_tune_flags): Update declaration.
6403 (s390_arch_flags): Likewise.
6404 * config/sh/sh.c (prepare_move_operands): Compare
6405 tls_symbolic_operand result with enum constant.
6406 (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
6407 (sh_expand_prologue): Add cast to enum type.
6408 (sh_expand_epilogue): Likewise.
6409 (tls_symbolic_operand): Change return type to enum tls_model.
6410 (fpscr_set_from_mem): Add cast to enum type.
6411 (legitimize_pic_address): Compare tls_symbolic_operand result with
6412 enum constant.
6413 (sh_target_reg_class): Change return type to enum reg_class.
6414 * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
6415 PROCESSOR_xxx.
7a00d767
UB
6416 * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
6417 * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
81f40b79
ILT
6418 * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
6419 (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
6420 (delayed_branch, tls_call_delay): Likewise.
6421 (eligible_for_sibcall_delay): Likewise.
6422 (eligible_for_return_delay): Likewise.
6423 * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
6424 (spu_expand_builtin_1): Likewise.
6425
6426 * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
6427 for all types of conversions.
6428 (output_init_element): Issue -Wc++-compat warning if needed when
6429 initializing a bitfield with enum type.
6430 * c-parser.c (c_parser_expression): Set original_type to
6431 original_type of right hand operand of comman operator.
6432
e4ae5e77
RW
64332009-04-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6434
6435 * doc/c-tree.texi (Types, Functions, Expression trees): Fix
6436 grammar nits.
7a00d767 6437 * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
e4ae5e77
RW
6438 * doc/cpp.texi (Standard Predefined Macros)
6439 (Implementation-defined behavior): Likewise.
7a00d767 6440 * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
e4ae5e77
RW
6441 * doc/gimple.texi (GIMPLE Exception Handling)
6442 (@code{GIMPLE_ASSIGN}): Likewise.
7a00d767 6443 * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
e4ae5e77
RW
6444 * doc/invoke.texi (Warning Options, Optimize Options)
6445 (AVR Options, Darwin Options): Likewise.
6446 (Optimize Options): Reformulate -fwhole-program description.
6447 * doc/loop.texi (Lambda): Likewise.
6448 * doc/md.texi (Output Template, Define Constraints)
6449 (Standard Names, Insn Splitting): Likewise.
6450 * doc/options.texi (Option properties): Likewise.
6451 * doc/passes.texi (Tree-SSA passes): Likewise.
6452 * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
6453 * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
6454 (File Names and DBX): Likewise.
6455 * doc/trouble.texi (Incompatibilities): Likewise.
6456
1883802f 64572009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
6e37f6d4
TS
6458
6459 * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
6460 instruction is correct.
6461
1883802f 64622009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
5345cf68
TS
6463
6464 Allow non-constant arguments to conversion intrinsics.
6465 * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
6466 * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
6467 * spu.c (print_operand): Handle 'v' and 'w'.
6468 (exp2_immediate_p, spu_gen_exp2): Define.
6469 * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
6470 spu_convtf_1): Update parameter descriptions.
7a00d767 6471 * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
5345cf68
TS
6472 * constraints.md ('v', 'w'): New.
6473 * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
6474 Remove.
6475 (i2f, I2F): New define_mode_attr.
6476 (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
6477 floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
6478 fixuns_truncv4sfv4si2): Update to use mode attribute.
6479 (float<mode><i2f>2_mul, float<mode><i2f>2_div,
6480 fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
6481 floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
6482 patterns for combine.
6483
5f39ad47
SB
64842009-04-27 Steven Bosscher <steven@gcc.gnu.org>
6485
6486 * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
6487 (cprop, hoist, pre, store_motion): New debug counters.
6488 * tree-pass.h (pass_tracer): Move to list of gimple passes, it
6489 is not an RTL pass anymore.
6490 (pass_profiling): Remove extern decl for pass removed in 2005.
6491 (pass_gcse, pass_jump_bypass): Remove.
6492 * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
6493 to 0 for clean state.
6494 * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
6495 * cse.c (gate_handle_cse_after_global_opts,
6496 rest_of_handle_cse_after_global_opts): New functions.
6497 (pass_cse_after_global_opts): New pass, does local CSE.
6498 * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
6499 (TV_CPROP): New timevar.
6500 * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
6501 (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
6502 (gcse_main, recompute_all_luids): Remove.
6503 (compute_hash_table_work): Call max_reg_num instead of reading
6504 max_gcse_regno.
6505 (cprop_jump): Don't set run_jump_opt_after_gcse.
6506 (constprop_register): Always allow to alter jumps.
6507 (cprop_insn): Likewise.
6508 (do_local_cprop): Likewise.
6509 (local_cprop_pass): Likewise. Return non-zero if something changed.
6510 (cprop): Remove function, fold interesting bits into one_cprop_pass.
6511 (find_implicit_sets): Add note about missed optimization opportunity.
6512 (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
6513 pass_rtl_cprop execute function.
6514 Don't bother tracking the pass number, each pass gets its own dumpfile
6515 now anyway.
6516 Always allow to alter jumpsand bypass jumps.
6517 (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
6518 will just find no suitable set.
6519 (pre_edge_insert): Fix dumping, this function is for PRE only.
6520 (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
6521 pass_rtl_pre execute function.
6522 (hoist_code): Return non-zero if something changed. Keep track of
6523 substitutions and insertions for statistics gathering similar to PRE.
6524 (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
6525 called from the pass_rtl_hoist execute function. Show pass statistics.
6526 (compute_store_table): Use max_reg_num directly instead of using the
6527 formerly global max_gcse_regno.
6528 (build_store_vectors): Likewise.
6529 (replace_store_insn): Fix dumping.
6530 (store_motion): Rename to ...
6531 (one_store_motion_pass): ... this. Rewrite to be "the" STORE_MOTION
6532 pass, called from the pass_rtl_store_motion execute function. Keep
6533 track of substitutions and insertions for statistics gathering similar
6534 to PRE.
6535 (bypass_jumps): Remove, fold interesting bits into ...
6536 (one_cprop_pass): ... this. Rewrite to be "the" CPROP pass, called
6537 from the pass_rtl_cprop execute function.
6538 (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
6539 pass_jump_bypass): Remove.
6540 (gate_handle_gcse, rest_of_handle_gcse): Remove.
6541 (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
6542 (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
6543 (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
6544 (gate_rtl_store_motion, execute_rtl_store_motion,
6545 pass_rtl_store_motion): New.
6546 * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
6547 make it clear that -fcse-skip-blocks is a no-op for backward compat.
6548 * passes.c (init_optimization_passes): Remove pass_gcse and
6549 pass_jump_bypass. Schedule cprop, pre, hoist, cprop, store_motion,
6550 and cse_after_global_opts in place of pass_gcse. Schedule cprop
6551 instead of pass_jump_bypass.
6552
c685de4a
RG
65532009-04-27 Richard Guenther <rguenther@suse.de>
6554
6555 PR middle-end/39928
6556 * gimplify.c (gimplify_expr): If we are required to create
6557 a temporary make sure it ends up as register.
6558
72d41f29
L
65592009-04-27 H.J. Lu <hongjiu.lu@intel.com>
6560
6561 PR target/39903
6562 * config/i386/i386.c (construct_container): Don't call
6563 gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
6564 X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
6565
e97809c6
MM
65662009-04-27 Michael Matz <matz@suse.de>
6567
6568 * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
6569 (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
6570 * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
6571 (dump_replaceable_exprs): Take a bitmap.
6572 * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
6573 array.
6574 (expand_gimple_basic_block): Likewise.
6575 * tree-ssa-ter.c (struct temp_expr_table_d): Make
6576 replaceable_expressions member a bitmap.
6577 (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
6578 (mark_replaceable): Likewise.
6579 (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
6580 * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
6581
211ca15c
RG
65822009-04-27 Richard Guenther <rguenther@suse.de>
6583
6584 * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
6585 (verify_stmts): Dispatch to gimple/type verification code.
6586 * tree-inline.c (remap_gimple_op_r): Work around C++ FE
6587 issue with call argument types.
6588
fca5f3d1
MM
65892009-04-27 Michael Matz <matz@suse.de>
6590
6591 * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
6592 (init_update_ssa, delete_update_ssa, update_ssa): Remove references
6593 to above.
6594
a1fa3e79 65952009-04-27 Richard Sandiford <rdsandiford@googlemail.com>
8224166e 6596 Eric Botcazou <ebotcazou@adacore.com>
a1fa3e79
EB
6597
6598 * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
6599 a label's basic block.
6600 (mark_target_live_regs): Tidy and rework obsolete comments.
6601 Change back DF problem to LIVE. If a label starts a basic block,
6602 assume that all registers that used to be live then still are.
6603 (init_resource_info): If a label starts a basic block, set its
6604 BLOCK_FOR_INSN accordingly.
6605 (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
6606
33b223c0
RG
66072009-04-27 Richard Guenther <rguenther@suse.de>
6608
6609 * tree-flow-inline.h (function_ann): Remove.
6610 (get_function_ann): Likewise.
6611 * tree-dfa.c (create_function_ann): Remove.
6612 * tree-flow.h (struct static_var_ann_d): Remove.
6613 (struct function_ann_d): Likewise.
6614 (union tree_ann_d): Remove fdecl member.
6615 (function_ann_t): Remove.
6616 (function_ann, get_function_ann, create_function_ann): Remove
6617 declarations.
6618
e3136fa2
UB
66192009-04-27 Uros Bizjak <ubizjak@gmail.com>
6620
6621 * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
6622
f87c9042
JH
66232009-04-27 Jan Hubicka <jh@suse.cz>
6624
6625 * ipa-pure-const.c (struct funct_state_d): New fields
6626 state_previously_known, looping_previously_known; remove
6627 state_set_in_source.
6628 (analyze_function): Use new fields.
6629 (propagate): Avoid assumption that state_set_in_source imply
6630 nonlooping.
6631
6632 * tree-ssa-loop-niter.c (finite_loop_p): New function.
6633 * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
6634 * cfgloop.h (finite_loop_p): Declare.
6635
33abd718
MM
66362009-04-26 Michael Matz <matz@suse.de>
6637
e3136fa2 6638 * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
33abd718 6639
ddc34084
MM
66402009-04-26 Michael Matz <matz@suse.de>
6641
6642 * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
6643 pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
6644 * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
6645 pass_mark_used_blocks): Remove.
6646 * tree-optimize.c (pass_free_datastructures,
6647 execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
6648 * passes.c (init_optimization_passes): Don't call
6649 pass_mark_used_blocks, remove dead code.
6650
1fec7ed4
L
66512009-04-26 H.J. Lu <hongjiu.lu@intel.com>
6652
6653 * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
6654 * tree-ssa-live.h (register_ssa_partition): Likewise.
6655
4e3825db
MM
66562009-04-26 Michael Matz <matz@suse.de>
6657
6658 Expand from SSA.
6659 * builtins.c (fold_builtin_next_arg): Handle SSA names.
6660 * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
6661 * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
6662 SSA names.
6663 (compare_pairs): Swap cost comparison.
6664 (coalesce_ssa_name): Don't use change_partition_var.
6665 * tree-nrv.c (struct nrv_data): Add modified member.
6666 (finalize_nrv_r): Set it.
6667 (tree_nrv): Use it to update statements.
6668 (pass_nrv): Require PROP_ssa.
6669 * tree-mudflap.c (mf_decl_cache_locals,
6670 mf_build_check_statement_for): Use make_rename_temp.
6671 (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
6672 * alias.c (find_base_decl): Handle SSA names.
6673 * emit-rtl (set_reg_attrs_for_parm): Make non-static.
6674 (component_ref_for_mem_expr): Don't leak SSA names into RTL.
6675 * rtl.h (set_reg_attrs_for_parm): Declare.
6676 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
6677 to "optimized", remove unused locals at finish.
6678 (execute_free_datastructures): Make global, call
6679 delete_tree_cfg_annotations.
6680 (execute_free_cfg_annotations): Don't call
6681 delete_tree_cfg_annotations.
6682
6683 * ssaexpand.h: New file.
6684 * expr.c (toplevel): Include ssaexpand.h.
e3136fa2 6685 (expand_assignment): Handle SSA names the same as register variables.
4e3825db
MM
6686 (expand_expr_real_1): Expand SSA names.
6687 * cfgexpand.c (toplevel): Include ssaexpand.h.
6688 (SA): New global variable.
6689 (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
6690 (SSAVAR): New macro.
6691 (set_rtl): New helper function.
6692 (add_stack_var): Deal with SSA names, use set_rtl.
6693 (expand_one_stack_var_at): Likewise.
6694 (expand_one_stack_var): Deal with SSA names.
6695 (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
6696 before unique numbers.
6697 (expand_stack_vars): Use set_rtl.
6698 (expand_one_var): Accept SSA names, add asserts for them, feed them
6699 to above subroutines.
6700 (expand_used_vars): Expand all partitions (without default defs),
6701 then only the local decls (ignoring those expanded already).
6702 (expand_gimple_cond): Remove edges when jumpif() expands an
6703 unconditional jump.
6704 (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
6705 or remove abnormal edges. Ignore insns setting the LHS of a TERed
6706 SSA name.
6707 (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
6708 members of SA; deal with PARM_DECL partitions here; expand
6709 all PHI nodes, free tree datastructures and SA. Commit instructions
6710 on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
6711 (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
6712 info and statements at start, collect garbage at finish.
6713 * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
6714 (VAR_ANN_PARTITION) Remove.
6715 (change_partition_var): Don't declare.
6716 (partition_to_var): Always return SSA names.
6717 (var_to_partition): Only accept SSA names.
6718 (register_ssa_partition): Only check argument.
6719 * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
6720 member.
6721 (delete_var_map): Don't free it.
6722 (var_union): Only accept SSA names, simplify.
6723 (partition_view_init): Mark only useful SSA names as used.
6724 (partition_view_fini): Only deal with SSA names.
6725 (change_partition_var): Remove.
6726 (dump_var_map): Use ssa_name instead of partition_to_var member.
6727 * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
6728 basic blocks.
6729 * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
6730 (struct _elim_graph): New member const_dests; nodes member vector of
6731 ints.
6732 (set_location_for_edge): New static helper.
6733 (create_temp): Remove.
6734 (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
e3136fa2 6735 insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
4e3825db
MM
6736 (new_elim_graph): Allocate const_dests member.
6737 (clean_elim_graph): Truncate const_dests member.
6738 (delete_elim_graph): Free const_dests member.
6739 (elim_graph_size): Adapt to new type of nodes member.
6740 (elim_graph_add_node): Likewise.
6741 (eliminate_name): Likewise.
6742 (eliminate_build): Don't take basic block argument, deal only with
6743 partition numbers, not variables.
6744 (get_temp_reg): New static helper.
6745 (elim_create): Use it, deal with RTL temporaries instead of trees.
6746 (eliminate_phi): Adjust all calls to new signature.
6747 (assign_vars, replace_use_variable, replace_def_variable): Remove.
6748 (rewrite_trees): Only do checking.
6749 (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
6750 (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
6751 init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
6752 contains_tree_r, MAX_STMTS_IN_LATCH,
6753 process_single_block_loop_latch, analyze_edges_for_bb,
6754 perform_edge_inserts): Remove.
6755 (expand_phi_nodes): New global function.
6756 (remove_ssa_form): Take ssaexpand parameter. Don't call removed
6757 functions, initialize new parameter, remember partitions having a
6758 default def.
6759 (finish_out_of_ssa): New global function.
6760 (rewrite_out_of_ssa): Make global. Adjust call to remove_ssa_form,
6761 don't reset in_ssa_p here, don't disable TER when mudflap.
6762 (pass_del_ssa): Remove.
6763 * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
6764 partition members.
6765 (execute_free_datastructures): Declare.
6766 * Makefile.in (SSAEXPAND_H): New variable.
6767 (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
6768 * basic-block.h (commit_one_edge_insertion): Declare.
6769 * passes.c (init_optimization_passes): Move pass_nrv and
6770 pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
6771 pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
6772 * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
6773 (redirect_branch_edge): Deal with super block when expanding, split
6774 out jump patching itself into ...
6775 (patch_jump_insn): ... here, new static helper.
6776
17c665a9
MM
67772009-04-26 Michael Matz <matz@suse.de>
6778
6779 * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
6780 beyond num_ssa_names.
6781 * tree-ssa-ter.c (free_temp_expr_table): Likewise.
6782 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
6783
92061771
JJ
67842009-04-26 Jakub Jelinek <jakub@redhat.com>
6785
ce372372
JJ
6786 PR inline-asm/39543
6787 * fwprop.c (forward_propagate_asm): New function.
6788 (forward_propagate_and_simplify): Propagate also into __asm, if it
6789 doesn't increase the number of referenced registers.
6790
92061771
JJ
6791 PR c/39889
6792 * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
6793
67942009-04-26 Jakub Jelinek <jakub@redhat.com>
77f2a970
JJ
6795
6796 * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
6797 note_nonlocal_vla_type for nonlocal VLAs.
6798 (note_nonlocal_vla_type, note_nonlocal_block_vlas,
6799 contains_remapped_vars, remap_vla_decls): New functions.
6800 (convert_nonlocal_reference_stmt): If not optimizing, call
6801 note_nonlocal_block_vlas on GIMPLE_BIND block vars.
6802 (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
6803 if it wasn't found in var_map.
6804 (finalize_nesting_tree_1): Call remap_vla_decls. If outermost
6805 GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
6806 to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
6807 declare_vars.
6808 * gimplify.c (nonlocal_vlas): New variable.
6809 (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
6810 referenced VLAs.
6811 (gimplify_body): Create and destroy nonlocal_vlas.
a9548ddf 6812
4561e242
JJ
6813 * dwarf2out.c (loc_descr_plus_const): New function.
6814 (build_cfa_aligned_loc, tls_mem_loc_descriptor,
6815 mem_loc_descriptor, loc_descriptor_from_tree_1,
6816 descr_info_loc, gen_variable_die): Use it.
6817
a9548ddf
JJ
6818 * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
6819 !TREE_STATIC VAR_DECLs.
6820 * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
6821 DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
6822 (gen_variable_die): Likewise. Don't look at TREE_PRIVATE if
6823 DECL_BY_REFERENCE is valid.
6824 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
6825 for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
6826 * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
6827 Copy DECL_BY_REFERENCE.
6828 (struct nesting_copy_body_data): New type.
6829 (nesting_copy_decl): New function.
6830 (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
6831 if they have variable length.
6832
10555d08
MM
68332009-04-26 Michael Matz <matz@suse.de>
6834
6835 * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
6836 mark new temporaries for renaming.
6837
e11187cc
JM
68382009-04-26 Joseph Myers <joseph@codesourcery.com>
6839
6840 PR c/39581
6841 * c-decl.c (global_bindings_p): Return negative value.
6842 (c_variable_size): New. Based on variable_size from
6843 stor-layout.c.
6844 (grokdeclarator): Call c_variable_size not variable_size.
6845
f6a51d31
UB
68462009-04-26 Uros Bizjak <ubizjak@gmail.com>
6847
6848 * config/i386/i386.c (print_operand) ['z']: Fix typo.
6849
4b97723d
KT
68502009-04-26 Kai Tietz <kai.tietz@onevision.com>
6851
6852 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
6853 Redefine it to just use mingw/include.
6854 (ASM_SPEC): Rules for -m32 and -m64.
6855 (LINK_SPEC): Use Likewise.
6856 (SPEC_32): New define.
6857 (SPEC_64): Likewise.
6858 (SUB_LINK_SPEC): Likewise.
6859 (MULTILIB_DEFAULTS): New define.
6860 * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
6861 Add multilib options.
6862 (MULTILIB_DIRNAMES): Likewise.
6863 (MULTILIB_OSDIRNAMES): Likewise.
6864 (LIBGCC): Likewise.
6865 (INSTALL_LIBGCC): Likewise.
6866
991d6621
JM
68672009-04-26 Joseph Myers <joseph@codesourcery.com>
6868
6869 PR c/39556
6870 * c-tree.h (enum c_inline_static_type): New.
6871 (record_inline_static): Declare.
6872 * c-decl.c (struct c_inline_static, c_inline_statics,
6873 record_inline_static, check_inline_statics): New.
6874 (pop_file_scope): Call check_inline_statics.
6875 (start_decl): Call record_inline_static instead of pedwarning
6876 directly for static in inline function.
6877 * c-typeck.c (build_external_ref): Call record_inline_static
6878 instead of pedwarning directly for static referenced in inline
6879 function.
6880
4a81774c
SB
68812009-04-26 Steven Bosscher <steven@gcc.gnu.org>
6882
6883 * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
6884 not new but only being rescanned.
6885 * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
6886 reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
6887 alloc_reg_set_mem, free_reg_set_mem, record_one_set,
6888 record_set_info, compute_set, grealloc): Remove.
6889 (recompute_all_luids): New function.
6890 (gcse_main): Don't compute sets, and don't do related memory
6891 allocations/free-ing. If something changed before the end of the
6892 pass, update LUIDs using recompute_all_luids.
6893 (alloc_gcse_mem): Don't compute LUIDs. Don't allocate reg_set memory.
6894 (free_gcse_mem): Don't free it either.
6895 (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
6896 Use the df insn LUIDs.
6897 (load_killed_in_block): Likewise.
6898 (compute_hash_table_work): Don't compute reg_set_in_block.
6899 (compute_transp): Use DF_REG_DEF_CHAINs.
6900 (local_cprop_pass): Don't use compute_sets and related functions.
6901 (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
6902 Use get_max_uid() instead of max_cuid.
6903 (insert_insn_end_basic_block, pre_insert_copy_insn,
6904 update_ld_motion_stores): Don't try to
6905 keep reg_set tables up to date.
6906 (pre_insert_copies): Use df insn LUIDs.
6907 (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
6908 (reg_set_info): Don't use extra bitmap argument.
6909 (compute_store_table): Don't compute reg_set_in_block. Use DF scan
6910 information to compute regs_set_in_block.
6911 (free_store_memory, store_motion): Don't nullify reg_set_in_block.
6912 (bypass_jumps): Don't use compute_sets and friends.
6913
e8f99a9d
RW
69142009-04-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6915
6916 PR testsuite/39710
6917 * opts.c (undocumented_msg): Do not leave blank even with
6918 ENABLE_CHECKING.
6919
6895bac8
JM
69202009-04-25 Joseph Myers <joseph@codesourcery.com>
6921
6922 * c-decl.c (build_enumerator): Allow values folding to integer
6923 constants but not integer constant expressions with a pedwarn if
6924 pedantic.
6925
24070fcb
JM
69262009-04-25 Joseph Myers <joseph@codesourcery.com>
6927
6928 PR c/39582
6929 * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
6930 with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
6931 type is an integer constant.
6932
d6d89aa1
UB
69332009-04-25 Uros Bizjak <ubizjak@gmail.com>
6934
6935 PR target/39897
6936 * config/i386/i386.c (print_operand) ['z']: Revert handling of
6937 HImode operands.
6938
92f6fd0b
JM
69392009-04-25 Joseph Myers <joseph@codesourcery.com>
6940
6941 PR c/39564
6942 * c-decl.c (grokdeclarator): Diagnose declarations of functions
6943 with variably modified return type and no storage class
6944 specifiers, except for the case of nested functions. Distinguish
6945 extern declarations of functions with variably modified return
6946 types from those of objects with variably modified types.
6947
a3710436
JH
69482009-04-25 Jan Hubicka <jh@suse.cz>
6949
6950 * tree.c (list_equal_p): New function.
6951 * tree.h (list_equal_p): Declare.
6952 * coretypes.h (edge_def, edge, const_edge, basic_block_def
6953 basic_block_def, basic_block, const_basic_block): New.
6954 * tree-eh.c (make_eh_edge): EH edges are not abnormal.
6955 (redirect_eh_edge): New function.
6956 (make_eh_edge_update_phi): EH edges are not abnormal.
6957 * except.c: Include tree-flow.h.
6958 (list_match): New function.
6959 (eh_region_replaceable_by_p): New function.
6960 (replace_region): New function.
6961 (hash_type_list): New function.
6962 (hash_eh_region): New function.
6963 (eh_regions_equal_p): New function.
6964 (merge_peers): New function.
6965 (remove_unreachable_regions): Verify EH tree when checking;
6966 merge peers.
6967 (copy_eh_region_1): New function.
6968 (copy_eh_region): New function.
6969 (push_reachable_handler): New function.
6970 (build_post_landing_pads, dw2_build_landing_pads): Be ready for
6971 regions without label but with live RESX.
6972 * except.h (redirect_eh_edge_to_label): New.
6973 * tree-flow.h (redirect_eh_edge): New.
6974 * coretypes.h (edge_def, edge, const_edge, basic_block_def
6975 basic_block_def, basic_block, const_basic_block): Remove.
6976 * Makefile.in (except.o): Add dependency on tree-flow.h
6977 * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
6978 * basic-block.h (edge, const_edge, basic_block, const_basic_block):
6979 Remove.
6980
3764d512
EB
69812009-04-25 Eric Botcazou <ebotcazou@adacore.com>
6982
6983 PR bootstrap/39645
6984 * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
6985 on the destination of memcpy.
6986
1c62e8f2
PB
69872009-04-25 Paolo Bonzini <bonzini@gnu.org>
6988
6989 * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
6990 REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
6991 REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
6992
496a4ef5
JH
69932009-04-25 Jan Hubicka <jh@suse.cz>
6994
6995 * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
6996 (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
6997 to be reached by different label than left.
6998 (update_eh_edges): Update comment; remove edge_to_remove if possible
6999 and return true if suceeded.
7000 (cleanup_empty_eh): Accept sharing map; handle shared regions.
7001 (cleanup_eh): Compute sharing map.
7002 * except.c (remove_eh_handler_and_replace): Add argument if we should
7003 update regions.
7004 (remove_unreachable_regions): Update for label sharing.
7005 (label_to_region_map): Likewise.
7006 (get_next_region_sharing_label): New function.
7007 (remove_eh_handler_and_replace): Add update_catch_try parameter; update
7008 prev_try pointers.
7009 (remove_eh_handler): Update.
7010 (remove_eh_region_and_replace_by_outer_of): New function.
7011 * except.h (struct eh_region): Add next_region_sharing_label.
7012 (remove_eh_region_and_replace_by_outer_of,
7013 get_next_region_sharing_label): Declare.
7014 * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
7015
70162009-04-25 Jan Hubicka <jh@suse.cz>
7017
7018 * tree-cfg.c (split_critical_edges): Split also edges where we can't
7019 insert code even if they are not critical.
7020
70212009-04-25 Jan Hubicka <jh@suse.cz>
7022
7023 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
7024 (gimple_can_remove_branch_p): EH edges won't remove branch by
7025 redirection.
7026 * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
7027 updating of non-abnormal EH edges.
7028 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
7029 (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
7030 (split_critical_edges): Split also edges where emitting code on them
7031 will lead to splitting later.
7032
a3a5e3d1
UB
70332009-04-25 Uros Bizjak <ubizjak@gmail.com>
7034 H.J. Lu <hongjiu.lu@intel.com>
7035
7036 PR target/39590
7037 * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
7038 the configured assembler supports fildq and fistpq mnemonics.
7039 (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
7040 * configure: Regenerated.
7041 * config.in: Ditto.
7042
7043 * config/i386/i386.c (print_operand): Handle 'Z'.
7044 ['z']: Remove handling of special fild/fist suffixes.
7045 (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
7046 * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
7047 suffix of fild insn.
7048 (*floatsi<mode>2_vector_mixed): Ditto.
7049 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
7050 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
7051 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
7052 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
7053 * config/i386/gas.h (GAS_MNEMONICS): Remove.
7054
23750d7f
BE
70552009-04-25 Ben Elliston <bje@au.ibm.com>
7056
7057 * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
7058 the source of a set operation.
7059
e6ff3083
AS
70602009-04-25 Anatoly Sokolov <aesok@post.ru>
7061
7062 * target.h (struct gcc_target): Add case_values_threshold field.
7063 * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
7064 (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
7065 * targhooks.c (default_case_values_threshold): New function.
7066 * targhooks.h (default_case_values_threshold): Declare function.
7067 * stmt.c (expand_case): Use case_values_threshold target hook.
7068 * expr.h (case_values_threshold): Remove declartation.
7069 * expr.c (case_values_threshold): Remove function.
7070 * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
7071
7072 * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
7073 * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
7074 (avr_case_values_threshold): Declare as static.
7075 * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
7076
7077 * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
7078 * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
7079 (mn10300_case_values_threshold): New function.
7080
569c72fc
L
70812009-04-24 H.J. Lu <hongjiu.lu@intel.com>
7082
7083 * ira.c (setup_cover_and_important_classes): Add enum cast.
7084
ff3cb468
VM
70852009-04-24 Vladimir Makarov <vmakarov@redhat.com>
7086
7087 * genpreds.c (write_enum_constraint_num): Output definition of
7088 CONSTRAINT_NUM_DEFINED_P macro.
7089 * ira.c (setup_cover_and_important_classes): Use
7090 CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
7091
4f7be849
DD
70922009-04-24 DJ Delorie <dj@redhat.com>
7093
7094 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
7095 __SH2A_SINGLE_ONLY__ also.
7096
735b94a7
SE
70972009-04-24 Steve Ellcey <sje@cup.hp.com>
7098
7099 * config/ia64/ia64.md (movfs_internal): Allow flt constants.
7100 (movdf_internal): Ditto.
7101 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
7102 SFmode and DFmode constants.
7103 (ia64_print_operand): Add 'G' format for printing
7104 floating point constants.
7105
77a30264
RG
71062009-04-24 Richard Guenther <rguenther@suse.de>
7107
7108 * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
7109 from unsigned additions.
7110
2b6da65c
JM
71112009-04-24 Joseph Myers <joseph@codesourcery.com>
7112
7113 * c-typeck.c (set_init_index): Allow array designators that are
7114 not integer constant expressions with a pedwarn if pedantic.
7115
f5a17c43
BS
71162009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
7117
7118 * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
7119 zero if no overlap in nonzero bits between the operands.
7120
32e8bb8e
ILT
71212009-04-24 Ian Lance Taylor <iant@google.com>
7122
7123 * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
7124 (record_dead_and_set_regs): Likewise.
7125 * df.h (struct df_mw_hardreg): Change flags field to int.
7126 (struct df_base_ref): Likewise.
7127 (struct df): Change changeable_flags field to int.
7128 * df-scan.c (df_defs_record): Change clobber_flags to int.
7129 * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
7130 constants rather than #define macros.
7131 (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
7132 (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
7133 (enum dwarf_calling_convention): Likewise.
7134 (enum dwarf_line_number_x_ops): Likewise.
7135 (enum dwarf_call_frame_info): Likewise.
7136 (enum dwarf_source_language): Likewise.
7137 * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
7138 (add_calling_convention_attribute): Likewise.
a3a5e3d1
UB
7139 * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
7140 (combine_comparisons): Change compcode to int. Add cast to enum type.
32e8bb8e
ILT
7141 * genrecog.c (maybe_both_true_2): Change c to int.
7142 (write_switch): Likewise. Add cast to enum type.
7143 * gimplify.c (gimplify_omp_for): Handle return values from
7144 gimplify_expr using MIN rather than bitwise or.
7145 (gimplify_expr): Add cast to enum type.
7146 * ipa-prop.c (update_jump_functions_after_inlining): Change
7147 IPA_BOTTOM to IPA_JF_UNKNOWN.
a3a5e3d1
UB
7148 * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
7149 Add casts to enum type.
32e8bb8e
ILT
7150 (setup_cover_and_important_classes): Change cl to int. Add casts
7151 to enum type.
7152 (setup_class_translate): Change cl and mode to int.
7153 (ira_init_once): Change mode to int.
7154 (free_register_move_costs): Likewise.
7155 (setup_prohibited_mode_move_regs): Add casts to enum type.
7156 * langhooks.c (add_builtin_function_common): Rework assertion that
7157 value fits bitfield.
7158 * mcf.c (add_fixup_edge): Change type parameter to edge_type.
7159 * omega.c (omega_do_elimination): Avoid math on enum types.
7160 * optabs.c (expand_vec_shift_expr): Remove casts to int.
7161 * opts.c (set_debug_level): Change 2 to enum constant. Use new
7162 int local to handle integral_argment value.
7163 * regmove.c (try_auto_increment): Change PUT_MODE to
7164 PUT_REG_NOTE_KIND.
7165 * reload.c (push_secondary_reload): Add casts to enum type.
7166 (secondary_reload_class, find_valid_class): Likewise.
7167 * reload1.c (emit_input_reload_insns): Likewise.
7168 * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
7169 * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
7170 * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
7171 constant.
7172 * tree.c (build_common_builtin_nodes): Add casts to enum type.
7173 * tree-complex.c (complex_lattice_t): Typedef to int rather than
7174 enum type.
7175 (expand_complex_libcall): Add casts to enum type.
7176 * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
7177 * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
7178 with ERROR_MARK, not NUM_TREE_CODES.
7179 (vect_create_epilog_for_reduction): Likewise.
7180 (vectorizable_reduction): Don't initialize epiloc_reduc_code.
a3a5e3d1 7181 When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
32e8bb8e
ILT
7182 * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
7183 enum machine_mode.
7184 * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
7185 vect_unused_in_loop. Change 0 to loop_vect.
a3a5e3d1 7186 * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
32e8bb8e
ILT
7187 * var-tracking.c (get_init_value): Change return type to enum
7188 var_init_status.
7189 * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
7190 * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
7191 arm_fp_model.
7192 (arm_override_options): Add casts to enum type.
7193 (arm_emit_tls_decoration): Likewise.
7194 * config/i386/i386.c (ix86_function_specific_restore): Add casts
7195 to enum type.
7196 * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
7197 * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
7198 * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
7199 enum type.
7200 * config/s390/s390.c (code_for_builtin_64): Change to array of
7201 enum insn_code.
7202 (code_for_builtin_31): Likewise.
7203 (s390_expand_builtin): Change code_for_builtin to enum insn_code
7204 const *.
7205 * config/sparc/sparc.c (sparc_override_options): Change value
7206 field in struct code_model to enum cmodel. In initializer change
7207 0 to NULL and add cast to enum type.
7208
7209 * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
7210 Change all callers. Issue a -Wc++-compat warning using
7211 lhs_origtype if necessary.
7212 (convert_for_assignment): Issue -Wc++-compat warnings about
7213 invalid conversions to enum type on assignment.
7214 * c-common.h (build_modify_expr): Update declaration.
7215
ac4fc08a
NC
72162009-04-24 Nick Clifton <nickc@redhat.com>
7217
7218 * config/iq2000/iq2000.c (function_arg): Handle TImode values.
7219 (function_arg_advance): Likewise.
7220 * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
7221 5th alternative.
7222
f22e891a
AK
72232009-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
7224
7225 * config/s390/constraints.md ('I', 'J'): Fix condition.
7226
ad58aabe
DN
72272009-04-24 Diego Novillo <dnovillo@google.com>
7228
7229 * gengtype-parse.c (parse_error): Add newline after message.
7230
879a4a01
L
72312009-04-24 H.J. Lu <hongjiu.lu@intel.com>
7232
7233 * config/i386/sse.md (avxmodesuffixs): Removed.
7234 (*avx_pinsr<avxmodesuffixs>): Renamed to ...
7235 (*avx_pinsr<ssevecsize>): This.
7236
f63426af
BS
72372009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
7238
7239 * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
7240 follow chains of regs with a single definition, and allow expressions
7241 that are function_invariant_p.
ce72fe6c 7242 (simple_rhs_p): Allow expressions that are function_invariant_p.
f63426af 7243
30349c74
PB
72442009-04-24 Paolo Bonzini <bonzini@gnu.org>
7245
7246 PR middle-end/39867
7247 * fold-const.c (fold_cond_expr_with_comparison): When folding
7248 > and >= to MAX, make sure the MAX uses the same type as the
7249 comparison's operands.
7250
8d8256c1
NC
72512009-04-24 Nick Clifton <nickc@redhat.com>
7252
7253 * config/frv/frv.c (frv_frame_access): Do not use reg+reg
7254 addressing for DImode accesses.
7255 (frv_print_operand_address): Handle PLUS case.
a3a5e3d1 7256 * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
8d8256c1 7257
6216f94e
JJ
72582009-04-24 Jakub Jelinek <jakub@redhat.com>
7259
7260 PR rtl-optimization/39794
7261 * alias.c (canon_true_dependence): Add x_addr argument.
7262 * rtl.h (canon_true_dependence): Adjust prototype.
7263 * cse.c (check_dependence): Adjust canon_true_dependence callers.
7264 * cselib.c (cselib_invalidate_mem): Likewise.
7265 * gcse.c (compute_transp): Likewise.
7266 * dse.c (scan_reads_nospill): Likewise.
7267 (record_store, check_mem_read_rtx): Likewise. For non-const-or-frame
7268 addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
7269 canon_base_addr of the group, plus optional offset.
7270 (struct group_info): Rename canon_base_mem to
7271 canon_base_addr.
7272 (get_group_info): Set canon_base_addr to canon_rtx of base, not
7273 canon_rtx of base_mem.
7274
6de7a512
PB
72752009-04-23 Paolo Bonzini <bonzini@gnu.org>
7276
7277 * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
7278 Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
7279
4a3a2376
UW
72802009-04-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7281
7282 * config/spu/spu-builtins.h: Delete file.
7283
7284 * config/spu/spu.h (enum spu_builtin_type): Move here from
7285 spu-builtins.h.
7286 (struct spu_builtin_description): Likewise. Add GTY marker.
7287 Do not use enum spu_function_code or enum insn_code.
7288 (spu_builtins): Add extern declaration.
7289
7290 * config/spu/spu.c: Do not include "spu-builtins.h".
7291 (enum spu_function_code, enum spu_builtin_type_index,
7292 V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
7293 V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
7294 unsigned_V8HI_type_node, unsigned_V4SI_type_node,
7295 unsigned_V2DI_type_node): Move here from spu-builtins.h.
7296 (spu_builtin_types): Make static. Add GTY marker.
7297 (spu_builtins): Add extern declaration with GTY marker.
7298 Include "gt-spu.h".
7299
7300 * config/spu/spu-c.c: Do not include "spu-builtins.h".
7301 (spu_resolve_overloaded_builtin): Do not use spu_function_code.
7302 Check programmatically whether all parameters are scalar.
7303
7304 * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
7305
bbaba73f
EB
73062009-04-23 Eric Botcazou <ebotcazou@adacore.com>
7307
7308 * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
7309 assignment from the constructor either if the target is volatile.
7310
ee93c1c6
DJ
73112009-04-23 Daniel Jacobowitz <dan@codesourcery.com>
7312
7313 * config/arm/arm.md (insv): Do not share operands[0].
7314
b2f21330
NS
73152009-04-23 Nathan Sidwell <nathan@codesourcery.com>
7316
7317 * config/vxlib-tls.c (active_tls_threads): Delete.
7318 (delete_hook_installed): New.
7319 (tls_delete_hook): Don't delete the delete hook.
7320 (tls_destructor): Delete it here.
7321 (__gthread_set_specific): Adjust installing the delete hook.
7322 (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
7323 __gthread_leave_tsd_dtor_context.
7324
4782dfa7
RAE
73252009-04-23 Rafael Avila de Espindola <espindola@google.com>
7326
7327 * c-format.c (gcc_tdiag_char_table): Add support for %E.
7328
bf758008
UB
73292009-04-23 Uros Bizjak <ubizjak@gmail.com>
7330
7331 * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
7332 enum type.
7333 (alpha_rtx_costs): Ditto.
7334 (emit_unlikely_jump): Use add_reg_note.
7335 (emit_frame_store_1): Ditto.
7336 (alpha_expand_prologue): Ditto.
7337 (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
7338 * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
7339
7323a100
NC
73402009-04-23 Nick Clifton <nickc@redhat.com>
7341
7342 * config/v850/v850.md (epilogue): Remove suppressed code.
7343 (return): Rename to return_simple and remove test of frame size.
7344 * config/v850/v850.c (expand_epilogue): Rename call to gen_return
7345 to gen_return_simple.
7346
360032ba
JY
73472009-04-22 Jing Yu <jingyu@google.com>
7348
7349 PR testsuite/39781
7350 * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
7351
53650abe
AP
73522009-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
7353
7354 PR C/31499
7355 * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
7356 and RECORD_TYPE/UNION_TYPE. When outputing the actual element and the
7357 value is a VECTOR_CST, the element type is the element type of the
7358 vector.
7359
89043e8a
DD
73602009-04-22 DJ Delorie <dj@redhat.com>
7361
7362 * config/m32c/m32c.h: Update GTY annotations to new syntax.
7363
023f059b
JJ
73642009-04-22 Jakub Jelinek <jakub@redhat.com>
7365
7366 * alias.c (find_base_term): Move around LO_SUM case, so that
7367 CONST falls through into PLUS/MINUS handling.
7368
2c0eba5a
JJ
7369 PR c/39855
7370 * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
7371 into 0, use omit_one_operand.
7372
9a461028
BE
73732009-04-23 Ben Elliston <bje@au.ibm.com>
7374
7375 * config/rs6000/linux-unwind.h (get_regs): Remove type
7376 puns. Change the type of `pc' to an array of unsigned ints and
7377 update all users. Constify frame24.
7378
653e2568
DD
73792009-04-22 DJ Delorie <dj@redhat.com>
7380
7381 * config/m32c/m32c.c (m32c_special_page_vector_p): Move
7382 declarations before code.
7383 (current_function_special_page_vector): Likewise.
7384 (m32c_expand_insv): Silence a warning.
7385
60839f5d 73862009-04-21 Taras Glek <tglek@mozilla.com>
d1b38208
TG
7387
7388 * alias.c: Update GTY annotations to new syntax.
7389 * basic-block.h: Likewise.
7390 * bitmap.h: Likewise.
7391 * c-common.h: Likewise.
7392 * c-decl.c: Likewise.
7393 * c-parser.c: Likewise.
7394 * c-pragma.c: Likewise.
7395 * c-tree.h: Likewise.
7396 * cfgloop.h: Likewise.
7397 * cgraph.h: Likewise.
7398 * config/alpha/alpha.c: Likewise.
7399 * config/arm/arm.h: Likewise.
7400 * config/avr/avr.h: Likewise.
7401 * config/bfin/bfin.c: Likewise.
7402 * config/cris/cris.c: Likewise.
7403 * config/darwin.c: Likewise.
7404 * config/frv/frv.c: Likewise.
7405 * config/i386/i386.c: Likewise.
7406 * config/i386/i386.h: Likewise.
7407 * config/i386/winnt.c: Likewise.
7408 * config/ia64/ia64.h: Likewise.
7409 * config/iq2000/iq2000.c: Likewise.
7410 * config/mips/mips.c: Likewise.
7411 * config/mmix/mmix.h: Likewise.
7412 * config/pa/pa.c: Likewise.
7413 * config/pa/pa.h: Likewise.
7414 * config/rs6000/rs6000.c: Likewise.
7415 * config/s390/s390.c: Likewise.
7416 * config/sparc/sparc.c: Likewise.
7417 * config/xtensa/xtensa.c: Likewise.
7418 * cselib.h: Likewise.
7419 * dbxout.c: Likewise.
7420 * dwarf2out.c: Likewise.
7421 * except.c: Likewise.
7422 * except.h: Likewise.
7423 * fixed-value.h: Likewise.
7424 * function.c: Likewise.
7425 * function.h: Likewise.
7426 * gimple.h: Likewise.
7427 * integrate.c: Likewise.
7428 * optabs.c: Likewise.
7429 * output.h: Likewise.
7430 * real.h: Likewise.
7431 * rtl.h: Likewise.
7432 * stringpool.c: Likewise.
7433 * tree-data-ref.c: Likewise.
7434 * tree-flow.h: Likewise.
7435 * tree-scalar-evolution.c: Likewise.
7436 * tree-ssa-address.c: Likewise.
7437 * tree-ssa-alias.h: Likewise.
7438 * tree-ssa-operands.h: Likewise.
7439 * tree.c: Likewise.
7440 * tree.h: Likewise.
7441 * varasm.c: Likewise.
7442 * varray.h: Likewise.
7443 * vec.h: Likewise.
bf758008 7444 * coretypes.h: Do not define GTY macro if it is already defined.
d1b38208
TG
7445 * doc/gty.texi: Update GTY documentation to new syntax.
7446 * gengtype-lex.l: Enforce attribute-like syntax for GTY
7447 annotations on structs.
7448 * gengtype-parse.c: Likewise.
7449
a123d175
MH
74502009-04-22 Mark Heffernan <meheff@google.com>
7451
bf758008 7452 * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
a123d175 7453
4c7c486a
KH
74542009-04-22 Kazu Hirata <kazu@codesourcery.com>
7455
7456 * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
7457 where appropriate.
7458
6e782a29
KH
74592009-04-22 Kazu Hirata <kazu@codesourcery.com>
7460
7461 * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
7462 the same as a PLUS without a shift. Increase the cost of a
7463 CONST_INT in MULT.
7464
38d2336a
MLI
74652009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7466
7467 * Makefile.in: Update dependencies.
bf758008 7468 * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
38d2336a
MLI
7469 * errors.h: Remove bogus comment about compatibility.
7470 (warning): Update declaration.
7471 * genautomata.c: Update all calls to warning.
7472 * gimple.c: Do not include errors.h. Include toplev.h.
7473 * tree-ssa-structalias.c: Do not include errors.h.
7474 * omega.c: Likewise.
7475 * tree-ssa-reassoc.c: Likewise.
7476 * config/spu/spu-c.c: Likewise.
7477 * config/spu/t-spu-elf: Update dependencies.
7478
aea4deba
RG
74792009-04-22 Richard Guenther <rguenther@suse.de>
7480
7481 PR tree-optimization/39824
7482 * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
7483 make sure the types are compatible.
7484
cfc93532
MLI
74852009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7486
7487 PR c++/14875
7488 * c-common.c (c_parse_error): Take a token_flags parameter.
7489 Use token_type for the token type instead.
7490 Pass token_flags to cpp_type2name.
7491 * c-common.h (c_parse_error): Update declaration.
7492 * c-parser.c (c_parser_error): Pass 0 as token flags.
7493
8632d02a
AB
74942009-04-22 Andrey Belevantsev <abel@ispras.ru>
7495
7496 PR rtl-optimization/39580
7497 * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert.
7498
4c33221c
UW
74992009-04-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7500
7501 * function.c (expand_function_end): Do not emit a jump to the "naked"
7502 return label for fall-through returns.
7503 * except.c (sjlj_emit_function_exit): Always place the call to the
7504 unregister function at the location installed by expand_function_end.
7505
9925bce0
RG
75062009-04-22 Richard Guenther <rguenther@suse.de>
7507
7508 PR tree-optimization/39845
7509 * tree-switch-conversion.c (build_arrays): Add new referenced vars.
7510 (gen_inbound_check): Likewise.
7511
24a40b35
NS
75122009-04-22 Nathan Sidwell <nathan@codesourcery.com>
7513
7514 * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
7515 padding for PPC.
7516 (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
7517 * config/vxlib.c (__gthread_once): Add race guard for PPC.
7518
6c34a092
PB
75192009-04-22 Paolo Bonzini <bonzini@gnu.org>
7520
7521 * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
7522 sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
7523 shift counts to avoid out-of-bounds array accesses.
7524
baa48dfa
PB
75252009-04-22 Paolo Bonzini <bonzini@gnu.org>
7526
7527 * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
7528 (Pmode): Move above.
7529
7d83f4f5
UB
75302009-04-22 Uros Bizjak <ubizjak@gmail.com>
7531
7532 * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
7533 NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
7534 GET_CODE macro. Use IN_RANGE macro where appropriate.
7535 * config/alpha/alpha.h: Ditto.
7536 * config/alpha/alpha.md: Ditto.
7537 * config/alpha/constraints.md: Ditto.
7538 * config/alpha/predicates.md: Ditto.
7539
3ad606bc
PB
75402009-04-22 Paolo Bonzini <bonzini@gnu.org>
7541
7542 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
7543 * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7544 * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7545 * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7546 * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7547 * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7548 * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7549 * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7550 * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7551 * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7552 * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7553 * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7554 * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7555 * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7556 * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7557 * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7558 * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7559 * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7560 * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7561 * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7562 * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7563 * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7564 * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7565 * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7566 * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7567 * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7568 * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7569
3cabd6d1
LB
75702009-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
7571
7572 * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
7573 references from comments.
7574 * cfgbuild.c: (count_basic_blocks): Delete.
7575 (find_basic_blocks_1): Delete.
7576 (find_basic_blocks): Delete.
7577 * except.c (finish_eh_generation): Make static. Move comment from
7d83f4f5 7578 except.h here. Remove find_basic_blocks references from comments.
3cabd6d1
LB
7579 * except.h (finish_eh_generation): Delete.
7580 * basic-block.h (find_basic_blocks): Delete.
7581 * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
7582
270d1bcd
DK
75832009-04-22 Dave Korn <dave.korn.cygwin@gmail.com>
7584
7585 * sdbout.c (sdbout_symbol): Pass VOIDmode to eliminate_regs.
7586 (sdbout_parms): Likewise.
7587
b757d36f
KK
75882009-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
7589
7590 * config/sh/sh.c (prepare_cbranch_operands): Use
7591 LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
7592 (expand_cbranchdi4): Likewise.
7593 (from_compare): Add cast to enum type.
7594 (expand_cbranchsi4): Use add_reg_note.
7595 (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
7596 (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
7597 (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
7598 (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
7599 * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
7600 instead of CODE_FOR_nothing.
7601 (cbranchdi4): Likewise. Fix the order of arguments for
7602 gen_rtx_fmt_ee.
7603 (push_fpscr): Use add_reg_note.
7604 (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
7605 reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
7606
ad41bd84
JM
76072009-04-21 Joseph Myers <joseph@codesourcery.com>
7608
7609 * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
7610 ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
7611 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
7612 ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
7613 ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
7614 FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
7615 config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
7616 config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
7617 config/alpha/x-vms, config/arc/t-arc,
7618 config/arm/README-interworking, config/arm/arm-c.c,
7619 config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
7620 config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
7621 config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
7622 config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
7623 config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
7624 config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
7625 config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
7626 config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
7627 config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
7628 config/cris/t-elfmulti, config/crx/t-crx,
7629 config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
7630 config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
7631 config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
7632 config/h8300/t-h8300, config/i386/athlon.md,
7633 config/i386/darwin-libgcc.10.4.ver,
7634 config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
7635 config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
7636 config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
7637 config/i386/t-linux64, config/i386/t-nwld,
7638 config/i386/t-rtems-i386, config/i386/t-sol2-10,
7639 config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
7640 config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
7641 config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
7642 config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
7643 config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
7644 config/iq2000/t-iq2000, config/libgcc-glibc.ver,
7645 config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
7646 config/m32r/t-m32r, config/m68hc11/t-m68hc11,
7647 config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
7648 config/m68k/t-uclinux, config/mcore/t-mcore,
7649 config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
7650 config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
7651 config/mips/crtn.asm, config/mips/irix-crti.asm,
7652 config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
7653 config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
7654 config/mips/mips-fixed.md, config/mips/sb1.md,
7655 config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
7656 config/mips/t-iris6, config/mips/t-isa3264,
7657 config/mips/t-libgcc-mips16, config/mips/t-linux64,
7658 config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
7659 config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
7660 config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
7661 config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
7662 config/mn10300/t-linux, config/mn10300/t-mn10300,
7663 config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
7664 config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
7665 config/picochip/libgccExtras/clzsi2.asm,
7666 config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
7667 config/rs6000/darwin-libgcc.10.4.ver,
7668 config/rs6000/darwin-libgcc.10.5.ver,
7669 config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
7670 config/rs6000/t-aix43, config/rs6000/t-aix52,
7671 config/rs6000/t-darwin, config/rs6000/t-fprules,
7672 config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
7673 config/rs6000/t-lynx, config/rs6000/t-netbsd,
7674 config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
7675 config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
7676 config/rs6000/t-rtems, config/rs6000/t-spe,
7677 config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
7678 config/score/t-score-elf, config/sh/divcost-analysis,
7679 config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
7680 config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
7681 config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
7682 config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
7683 config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
7684 config/stormy16/stormy-abi, config/stormy16/t-stormy16,
7685 config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
7686 config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
7687 config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
7688 config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
7689 config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
7690 gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
7691 java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
7692 limitx.h, version.c, xcoff.h: Add copyright and license notices.
7693 * config/h8300/genmova.sh: Include copyright and license notices
7694 in generated output.
7695 * config/h8300/mova.md: Regenerate.
7696 * doc/install.texi2html: Include word "Copyright" in copyright
7697 notice and use name "Free Software Foundation, Inc.".
7698 * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
7699 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
7700 ChangeLog-2007, ChangeLog-2008: Correct dates.
7701
ca80e52b
EB
77022009-04-21 Eric Botcazou <ebotcazou@adacore.com>
7703
7704 * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
7705 NE_EXPR operations as well.
7706 * c-parser.c (c_parser_condition): Do not set location information on
7707 the condition.
7708 (c_parser_conditional_expression): Likewise.
7709 (c_parser_binary_expression): Set location information on operators.
7710 * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
7711 TRUTH_NOT_EXPR has been folded.
7712 * fold-const.c (fold_truth_not_expr): Copy location information from
7713 the incoming expression to the outgoing one.
7714 * gimplify.c (shortcut_cond_r): Add locus parameter. Pass it to
7715 recursive calls on the LHS of the operator but pass that of the
7716 operator to recursive calls on the RHS of the operator. Set it
7717 on the COND_EXPR.
7718 (shortcut_cond_expr): Set the locus of the operator on the second
7719 COND_EXPR and that of the expression on the first in degenerate cases.
7720 Pass the locus of the expression to calls to shortcut_cond_r.
7721 Set the locus of the 'then' block on the associated jump, if any.
7722 (gimplify_boolean_expr): Add locus parameter. Set it on the COND_EXPR.
7723 (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
7724 expression to call to gimplify_boolean_expr.
7725
35091630
KT
77262009-04-21 Kai Tietz <kai.tietz@onevision.com>
7727
7728 * config.gcc: Add additional configuration for
7729 i686-w64-mingw* and x86_64-w64-mingw* triplet.
7730 * config/i386/mingw-w64.h: New mingw-w64 specific header.
7731 (CPP_SPEC): Redefine for allowing -municode option.
7732 (STARTFILE_SPEC): Likewise.
7733 * config/i386/t-mingw-w64: New.
7734 * config/i386/mingw-w64.opt: New.
7735 (municode): Add new target option.
7736 * doc/invoke.texi (municode): Add documentation for new option.
7737
0267afc4
ILT
77382009-04-21 Ian Lance Taylor <iant@google.com>
7739
7740 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
7741 Correct test for number of arguments.
7742 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
7743
2ba9daa7
AS
77442009-04-21 Andreas Schwab <schwab@linux-m68k.org>
7745
7746 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
7747 argument of emit_library_call.
7748
ad8a1ac0
RG
77492009-04-21 Richard Guenther <rguenther@suse.de>
7750
7751 PR middle-end/39829
7752 * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
7753 inside VIEW_CONVERT_EXPRs.
7754
7156c8ab
MJ
77552009-04-21 Martin Jambor <mjambor@suse.cz>
7756
7757 * tree-switch-conversion.c (build_constructors): Split a long line.
7758 (constructor_contains_same_values_p): New function.
7d83f4f5
UB
7759 (build_one_array): Create assigns of constants if possible, do not
7760 call mark_sym_for_renaming, call update_stmt.
7156c8ab
MJ
7761 (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
7762 make_rename_temp. Do not call mark_symbols_for_renaming, call
7763 update_stmt.
7764 (gen_def_assigns): Do not call mark_symbols_for_renaming or
7765 find_new_referenced_vars, call update_stmt.
7766 (gen_inbound_check): Use create_tmp_var and create ssa names manually
7767 instead of calling make_rename_temp. Do not call
7768 find_new_referenced_vars or mark_symbols_for_renaming, call
7769 update_stmt.
7770
2970ccb3
RG
77712009-04-21 Richard Guenther <rguenther@suse.de>
7772
7773 PR tree-optimization/39827
7d83f4f5 7774 * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
2970ccb3
RG
7775 (tree_ssa_phiprop): Pass the correct array size.
7776
47f402d1
UB
77772009-04-21 Uros Bizjak <ubizjak@gmail.com>
7778
7779 * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
7780
1e4ae551
MLI
77812009-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
7782
7783 PR 16202
7784 * c-typeck.c (lvalue_p): Move declaration ...
7785 * c-common.h (lvalue_p): ... to here.
7786 * c-common.c (candidate_equal_p): New.
7787 (add_tlist): Use it.
7788 (merge_tlist): Use it.
7789 (warn_for_collisions_1): Likewise.
7790 (warning_candidate_p): Accept more candidates.
7791 (verify_tree): A warning candidate can be an expression. Use
7792 candidate_equal_p.
7793
244609a6
BE
77942009-04-21 Ben Elliston <bje@au.ibm.com>
7795
7796 PR target/5267
7797 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
7798 for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
7799 options. Remove -mcall-solaris documentation.
7800
9c650d90
MLI
78012009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7802
7803 PR c++/13358
7804 * doc/invoke.texi (-Wlong-long): Update description.
7805 * c-lex (interpret_integer): Only warn if there was no previous
7806 overflow and -Wlong-long is enabled.
7807 * c-decl.c (declspecs_add_type): Drop redundant flags.
7808 * c.opt (Wlong-long): Init to -1.
7809 * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
7810 and front-end warn_long_long. Wlong-long only depends on other
7811 flags if it is uninitialized.
7812 * c-parser.c (disable_extension_diagnostics): warn_long_long is
7813 the same for CPP and FE.
7814 (restore_extension_diagnostics): Likewise.
7815
bbbbb16a
ILT
78162009-04-20 Ian Lance Taylor <iant@google.com>
7817
7818 Fix enum conversions which are invalid in C++:
47f402d1
UB
7819 * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
7820 * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
7821 * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
7822 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
47f402d1 7823 * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
bbbbb16a 7824 (dbxout_parms): Likewise.
47f402d1 7825 * df-core.c (df_set_flags): Change changeable_flags parameter to int.
bbbbb16a
ILT
7826 (df_clear_flags): Likewise.
7827 * df-problems.c (df_rd_bb_local_compute_process_def): Change
7828 top_flag parameter to int.
7829 (df_chain_create_bb_process_use): Likewise.
47f402d1
UB
7830 (df_chain_add_problem): Change chain_flags parameter to unsigned int.
7831 Remove cast.
bbbbb16a
ILT
7832 * df-scan.c (df_ref_create): Change ref_flags parameter to int.
7833 (df_ref_create_structure, df_def_record_1): Likewise.
7834 (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
7835 (df_notes_rescan): Change 0 to VOIDmode in function call.
7836 (df_get_call_refs, df_insn_refs_collect): Likewise.
7837 (df_bb_regs_collect): Likewise.
7838 (df_entry_block_defs_collect): Likewise.
7839 (df_exit_block_uses_collect): Likewise.
7840 * df.h: Update declarations.
7841 * double-int.c (double_int_divmod): Add cast to enum type.
7842 * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
7843 * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
7844 (based_loc_descr): Likewise.
7845 (loc_descriptor_from_tree_1): Change first_op and second_op to
7846 enum dwarf_location_atom. Add cast to enum type.
7847 * expmed.c (init_expmed): Change 0 to SET in function call.
47f402d1 7848 * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
7849 (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
7850 (do_store_flag): Likewise.
7851 * fixed-value.h (struct fixed_value): Change mode to enum
7852 machine_mode.
47f402d1 7853 * function.c (assign_parms): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
7854 * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
7855 function call.
7856 (insert_insn_decl, insert_decl, insert_state): Likewise.
7857 (automata_list_finish): Likewise.
7858 * genrecog.c (process_define_predicate): Add cast to enum type.
7859 * gensupport.c (init_predicate_table): Add cast to enum type.
7860 * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
7861 function call.
7862 (gimple_build_call_1, gimple_build_label): Likewise.
7863 (gimple_build_goto, gimple_build_asm_1): Likewise.
7864 (gimple_build_switch_1, gimple_build_cdt): Likewise.
47f402d1 7865 * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
bbbbb16a
ILT
7866 (enum fallback): Rename from enum fallback_t.
7867 (fallback_t): Typedef as int.
7868 * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
7869 GSI_SAME_STMT in function call.
7870 * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
7871 enum type.
7872 (setup_reg_class_relations): Likewise.
47f402d1 7873 (setup_reg_class_nregs): Change cl to int. Add casts to enum type.
bbbbb16a
ILT
7874 (setup_prohibited_class_mode_regs): Add cast to enum type.
7875 (setup_prohibited_mode_move_regs): Likewise.
47f402d1 7876 * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
bbbbb16a
ILT
7877 (record_address_regs): Change i to enum reg_class.
7878 * lists.c (alloc_EXPR_LIST): Add cast to enum type.
7879 * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
7880 (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
7881 (GET_MODE_2XWIDER_MODE): Likewise.
7882 (GET_CLASS_NARROWEST_MODE): Likewise.
7883 * omp-low.c (expand_omp_for): Add cast to enum type.
7884 * optabs.c (debug_optab_libfuncs): Add casts to enum type.
7885 * opts.c (enable_warning_as_error): Change kind to diagostic_t.
7886 * postreload.c (reload_cse_simplify_operands): Change rclass local
7887 to enum reg_class.
7888 * predict.c (combine_predictions_for_insn): Change best_predictor
7889 and predictor to enum br_predictor.
7890 (combine_predictions_for_bb): Likewise.
7891 (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
7892 use SET_PREDICT_EXPR_OUTCOME.
47f402d1 7893 * real.c (real_arithmetic): Change icode to code in function call.
bbbbb16a
ILT
7894 * reginfo.c (init_move_cost): Add casts to enum type.
7895 (init_reg_sets_1, init_fake_stack_mems): Likewise.
7896 * regmove.c (regclass_compatible_p): Change class0 and class1 to
7897 enum reg_class.
7898 * reload.c (find_valid_class): Add casts to enum type.
7899 (push_reload): Change 0 to NO_REGS in function call.
7900 (find_reloads): Change this_alternative to array of enum
7901 reg_class. Remove some now-unnecessary casts.
7902 (make_memloc): Change 0 to VOIDmode in function call.
7903 * reload1.c (reload): Change 0 to VOIDmode in function call.
7904 (eliminate_regs_1, elimination_effects): Likewise.
7905 (eliminate_regs_in_insn): Likewise.
7906 (emit_input_reload_insns): Add cast to enum type.
7907 (delete_output_reload): Change 0 to VOIDmode in function call.
7908 * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
7909 to enum type in function call.
7910 * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
7911 (SET_PREDICT_EXPR_OUTCOME): Define.
47f402d1 7912 * tree-dump.c (get_dump_file_info): Change phase parameter to int.
bbbbb16a
ILT
7913 (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
7914 (dump_initialized_p, dump_flag_name, dump_end): Likewise.
7915 (dump_function): Likewise.
7916 * tree-dump.h: Update declarations.
7917 * tree-pass.h: Update declarations.
7918 * varasm.c (assemble_integer): Change mclass to enum mode_class.
7919 * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
7920 enum type.
7921 (arm_rtx_costs_1): Correct parenthesization.
7922 (arm_rtx_costs): Add casts to enum type.
7923 (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
7924 (vfp_emit_fstmd): Use add_rg_note.
7925 (emit_multi_reg_push, emit_sfm): Likewise.
7926 (thumb_set_frame_pointer): Likewise.
7927 (arm_expand_prologue): Likewise.
7928 (arm_regno_class): Change return type to enum reg_class.
7929 (thumb1_expand_prologue): Use add_reg_note.
7930 * config/arm/arm-protos.h (arm_regno_class): Update declaration.
7931 * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
7932 in function call.
7933 * config/arm/gentune.sh: Add cast to enum type.
7934 * config/arm/arm-tune.md: Rebuild.
7935 * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
7936 (ix86_split_fp_branch, predict_jump): Likewise.
7937 (ix86_expand_multi_arg_builtin): Change sub_code from enum
7938 insn_code to enum rtx_code.
7939 (ix86_builtin_vectorized_function): Add cast to enum type.
7940 * config/i386/i386.md (truncdfsf2): Change slot to enum
7941 ix86_stack_slot.
7942 (truncxf<mode>2, isinf<mode>2): Likewise.
7943 * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
7944 enum type.
7945 * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
7946 (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
7947 (insert_bundle_state): Change 1 to INSERT in function call.
7948 (ia64_add_bundle_selector_before): Likewise.
7949 * config/ia64/ia64.md (cpu attr): Add cast to enum type.
7950 (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
7951 (restore_stack_nonlocal): Likewise.
7952 * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
7953 function call.
7954 * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
7955 function call.
7956 (mips_rtx_costs): Likewise.
7957 (mips_override_options): Add casts to enum type.
7958 * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
7959 in function call.
7960 * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
7961 (store_reg, set_reg_plus_d): Likewise.
7962 (hppa_expand_prologue, hppa_profile_hook): Likewise.
7963 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
7964 cast to enum type.
7965 (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
7966 function call.
7967 (emit_unlikely_jump): Use add_reg_note.
7968 (rs6000_emit_allocate_stack): Likewise.
7969 (rs6000_frame_related, rs6000_emit_prologue): Likewise.
7970 (output_toc): Change 1 to INSERT in function call.
7971 (output_profile_hook): Change 0 to LCT_NORMAL in function call.
7972 (rs6000_initialize_trampoline): Likewise.
7973 (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
7974 function call.
7975 * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
7976 (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
7977 (s390_expand_setmem, s390_expand_cmpmem): Likewise.
7978 (save_gprs): Use add_reg_note.
7979 (s390_emit_prologue): Likewise.
47f402d1 7980 (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
7981 * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
7982 (sparc_fold_builtin): Add cast to enum type.
7983 * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
7984 enum insn_code.
7985 (spu_expand_prologue): Use add_reg_note.
47f402d1 7986 (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
7987
79882009-04-20 Ian Lance Taylor <iant@google.com>
7989
7990 * c-parser.c (c_parser_attributes): Change VEC back to tree list.
7991 (c_parser_postfix_expression_after_primary): Get VEC for list of
7992 arguments. Get original types of arguments. Call
7993 build_function_call_vec.
7994 (cached_expr_list_1, cached_expr_list_2): New static variables.
7995 (c_parser_expr_list): Change return type to VEC *. Add
7996 p_orig_types parameter. Change all callers.
7997 (c_parser_release_expr): New static function.
7998 (c_parser_vec_to_tree_list): New static function.
7999 * c-typeck.c (build_function_call): Rewrite to build a VEC and
8000 call build_function_call_vec.
8001 (build_function_call_vec): New function, based on old
8002 build_function_call.
8003 (convert_arguments): Remove nargs and argarray parameters. Change
8004 values to a VEC. Add origtypes parameter.
47f402d1 8005 (build_modify_expr): Add rhs_origtype parameter. Change all callers.
bbbbb16a
ILT
8006 (convert_for_assignment): Add origtype parameter. Change all
8007 callers. If warn_cxx_compat, check for conversion to an enum
8008 type when calling a function.
8009 (store_init_value): Add origtype parameter. Change all callers.
8010 (digest_init): Likewise.
8011 (struct init_node): Add origtype field.
8012 (add_pending_init): Add origtype parameter. Change all callers.
8013 (output_init_element): Likewise.
8014 (output_pending_init_elements): Pass origtype from init_node to
8015 output_init_element.
f28a61ab 8016 (process_init_element): Pass origtype from c_expr to
bbbbb16a
ILT
8017 output_init_element.
8018 (c_finish_return): Add origtype parameter. Change all callers.
8019 * c-common.c (sync_resolve_size): Change params to VEC *. Change
8020 caller.
8021 (sync_resolve_params): Likewise.
47f402d1 8022 (sync_resolve_return): Change params to first_param. Change caller.
bbbbb16a 8023 (resolve_overloaded_builtins): Change params to VEC *. Change
47f402d1 8024 callers. Save first parameter around call to build_function_call_vec.
bbbbb16a
ILT
8025 * c-decl.c (finish_decl): Add origtype parameter. Change all
8026 callers. Call build_function_call_vec rather than
8027 build_function_call for cleanup.
8028 * c-tree.h: Update declarations.
8029 * c-common.h: Update declarations.
8030 * stub-objc.c (objc_rewrite_function_call): Change parameter from
8031 params to first_param.
8032 * target.h (struct gcc_target): Change resolve_overloaded_builtin
8033 params parameter from tree to void *.
8034 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
8035 Change arglist parameter to have type void *, and to be a pointer
8036 to a VEC.
8037 * config/rs6000/rs6000-protos.h
8038 (altivec_resolve_overloaded_builtin): Update declaration.
8039 * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
8040 fnargs parameter to have type void *, and to be a pointer to a
8041 VEC. Call build_function_call_vec instead of
8042 build_function_call.
47f402d1 8043 * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
bbbbb16a 8044
6ff078d4 80452009-04-20 Joey Ye <joey.ye@intel.com>
60839f5d 8046 Xuepeng Guo <xuepeng.guo@intel.com>
6ff078d4
JY
8047 H.J. Lu <hongjiu.lu@intel.com>
8048
8049 * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
8050
8051 * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
8052 (IX86_LEA_PRIORITY): Likewise.
8053 (distance_non_agu_define): New function.
8054 (distance_agu_use): Likewise.
8055 (ix86_lea_for_add_ok): Likewise.
8056 (ix86_dep_by_shift_count): Likewise.
8057
8058 * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
8059 should split for LEA.
8060
8061 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
8062 function.
8063 (ix86_dep_by_shift_count): Likewise.
8064
87a5b4cc
RG
80652009-04-20 Richard Guenther <rguenther@suse.de>
8066
8067 * expr.c (handled_component_p): Move ...
8068 * tree.h (handled_component_p): ... here.
8069 * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
8070 ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
8071 and REALPART_EXPR to be in one group.
8072
438c239d
RG
80732009-04-20 Richard Guenther <rguenther@suse.de>
8074
8075 * basic-block.h (get_all_dominated_blocks): Declare.
8076 * dominance.c (get_all_dominated_blocks): New function.
8077 * tree-cfg.c (get_all_dominated_blocks): Remove.
8078 (remove_edge_and_dominated_blocks): Adjust.
8079 * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
8080 (tree_ssa_phiprop): ... here. Use get_all_dominated_blocks
8081 instead of recursing.
8082
fed5ae11
DK
80832009-04-20 Doug Kwan <dougkwan@google.com>
8084
8085 * cgraph.h (cgraph_node_ptr): New type for vector functions.
8086 (struct cgraph_node_set_def): New type.
8087 (cgraph_node_set) New type. Also declare vector functions.
8088 (struct cgraph_node_set_element_def): New type.
8089 (cgraph_node_set_element): Ditto.
8090 (cgraph_node_set_iterator): New iterator type.
8091 (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
8092 cgraph_node_set_remove, dump_cgraph_node_set,
8093 debug_cgraph_node_set): New prototypes.
8094 (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
8095 cgraph_node_set_size): New inlines.
8096 * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
8097 including cgraph.h.
8098 (struct ipa_opt_pass): Add struct cgraph_node_set_def
8099 argument to function 'write_summary'.
8100 * ipa.c: Include ggc.h.
8101 (hash_cgraph_node_set_element,
8102 eq_cgraph_node_set_element, cgraph_node_set_new,
8103 cgraph_node_set_add, cgraph_node_set_remove,
8104 cgraph_node_set_find, dump_cgraph_node_set,
8105 debug_cgraph_node_set): New functions.
8106 * Makefile.in (ipa.o): Add dependency on GGC_H.
8107
c4551b28
IR
81082009-04-20 Ira Rosen <irar@il.ibm.com>
8109
8110 PR tree-optimization/39675
2ba9daa7 8111 * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
47f402d1
UB
8112 check of the return code of vect_schedule_slp. Check that
8113 stmt_vec_info still exists for the statement, before checking its
8114 vectorization type.
c4551b28 8115
21a495fb
MM
81162009-04-20 Michael Matz <matz@suse.de>
8117
8118 * Makefile.in (generated_files): Take out $(simple_generated_c).
8119
8e208874
DK
81202009-04-19 Dave Korn <dave.korn.cygwin@gmail.com>
8121
8122 * config/i386/cygwin-stdint.h (INTPTR_TYPE): Remove "long".
8123 (UINTPTR_TYPE): Likewise.
8124
a45e580b
JM
81252009-04-19 Joseph Myers <joseph@codesourcery.com>
8126
8127 PR c/37481
8128 * c-typeck.c (digest_init): Check for initializing an array with a
8129 string literal.
8130
20845d35
JM
81312009-04-19 Joseph Myers <joseph@codesourcery.com>
8132
8133 PR c/19771
8134 * c-semantics.c (pop_stmt_list): Propagate
8135 STATEMENT_LIST_HAS_LABEL to parent statement list.
8136
28143fdd
AN
81372009-04-19 Adam Nemet <anemet@caviumnetworks.com>
8138
8139 * config/mips/mips.h (mips_tune_attr): New macro.
8140 * config/mips/mips.md (cpu): Use it.
8141
da377db9
JM
81422009-04-19 Joseph Myers <joseph@codesourcery.com>
8143
8144 PR c/38243
8145 * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
8146 declaring a tag.
8147
3baf459d
DN
81482009-04-19 Diego Novillo <dnovillo@google.com>
8149
8150 * toplev.c (compile_file): Move call to coverage_finish ...
8151 * cgraphunit.c (ipa_passes): ... here.
8152 Call cgraph_process_new_functions.
8153 * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
8154 * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
8155
b6fa5b01
JH
81562009-04-19 Jan Hubicka <jh@suse.cz>
8157
47f402d1
UB
8158 * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
8159 cfun.
b6fa5b01
JH
8160 (dump_cgraph_node): Dump can throw external flag.
8161 * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
8162
ca409efd
MLI
81632009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
8164
8165 PR c/32061
8166 PR c++/36954
8167 * doc/invoke.texi: Add -Wlogical-op to -Wextra.
8168 * common.opt (Wlogical-op): Move from here...
8169 * c.opt (Wlogical-op): ... to here.
8170 * c-typeck.c (parser_build_binary_op): Update call to
8171 warn_logical_operator.
8172 * c-opts.c (c_common_post_options): Enable warn_logical_op with
8173 extra_warnings.
8174 * c-common.c (warn_logical_op): Update.
8175 * c-common.h (warn_logical_op): Update declaration.
8176
9db4cdd3
EB
81772009-04-19 Eric Botcazou <ebotcazou@adacore.com>
8178
8179 * tree.c (protected_set_expr_location): Fix formatting.
8180
f37acdf9
JM
81812009-04-18 Joseph Myers <joseph@codesourcery.com>
8182
8183 PR c/27676
8184 * c-typeck.c (readonly_warning): new.
8185 (build_unary_op, build_modify_expr): Use readonly_warning for
8186 storing into something readonly but not const-qualified.
8187
2b4b7036
JM
81882009-04-18 Joseph Myers <joseph@codesourcery.com>
8189
8190 PR c/22367
8191 * c-typeck.c (build_unary_op): Check for taking address of
8192 expression of type void.
8193
3ce62965
JM
81942009-04-18 Joseph Myers <joseph@codesourcery.com>
8195
8196 PR c/35210
8197 * c-typeck.c (build_function_call): Check for calling a function
8198 with qualified void return types. Call require_complete_type when
8199 generating a trap.
8200
2505c5ed
JH
82012009-04-18 Jan Hubicka <jh@suse.cz>
8202
8203 * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
8204 Set nothrow flag.
8205 * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
8206 can_throw_external flag.
8207 * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
8208 * ipa-pure-const.c (ignore_edge): New function.
8209 (propagate): Compute order for NOTHROW computation; set NOTHROWs
8210 only over can_throw_external edges.
8211 (local_pure_const): Add nothrow flag.
8212 * ipa-utils.c (searchc): Add ignore_edge callback.
8213 (ipa_utils_reduced_inorder): Add ignore_edge callback.
8214 * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
8215 (set_nothrow_function_flags): Update cgraph.
8216 * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
8217
2586ba4b
RG
82182009-04-18 Richard Guenther <rguenther@suse.de>
8219
8220 PR middle-end/39804
8221 * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
8222 (fold_stmt): ... this and ...
8223 (fold_stmt_inplace): ... this.
8224 (fold_stmt_1): Fold references in calls and asms.
8225 * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
8226
1eefab17
KH
82272009-04-18 Kazu Hirata <kazu@codesourcery.com>
8228
8229 * tree-vrp.c (ssa_name_nonzero_p): Remove.
8230 * tree.h: Remove the prototype for ssa_name_nonzero_p.
8231
aa424b01
KH
82322009-04-18 Kazu Hirata <kazu@codesourcery.com>
8233
8234 * tree.c (function_args_count): Remove.
8235 * tree.h: Remove the prototype for function_args_count.
8236
613a896b
KH
82372009-04-18 Kazu Hirata <kazu@codesourcery.com>
8238
8239 * tree-iterator.c (expr_only): Remove.
8240 * tree.h: Remove the prototype for expr_only.
8241
579e694c
KH
82422009-04-18 Kazu Hirata <kazu@codesourcery.com>
8243
8244 * reginfo.c (cannot_change_mode_set_regs): Remove.
8245 * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
8246
ee7e3ad3
AS
82472009-04-08 Anatoly Sokolov <aesok@post.ru>
8248
8249 * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
8250 whether operands 0 and 1 overlaps.
8251
92ef7fb1
MLI
82522009-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
8253
8254 PR middle-end/36902
8255 * tree-vrp.c (check_array_ref): Pass a location_t instead of a
8256 pointer. Use warning_at instead of warning.
8257 (search_for_addr_array): Likewise.
8258 (check_array_bounds): Likewise.
8259 (check_all_array_refs): Check that the incoming edge is not in the
8260 list of edges to be removed.
8261 (check_all_array_refs): Avoid the temporal pointer.
8262 (vrp_visit_cond_stmt): Fix typo.
8263 (simplify_switch_using_ranges): Handle the case where the switch
8264 index is an integer constant.
8265
0e097268
AN
82662009-04-18 Adam Nemet <anemet@caviumnetworks.com>
8267
8268 * config/mips/mips.c (mips_final_postscan_insn): Make it static.
8269
c782f1dd
KH
82702009-04-18 Kazu Hirata <kazu@codesourcery.com>
8271
8272 * doc/extend.texi, doc/invoke.texi: Fix typos.
8273
668fb0e8
CC
82742009-04-17 Cary Coutant <ccoutant@google.com>
8275
8276 * tree-flow-inline.h (get_lineno): Fix inverted test.
8277
4d4014c1
DN
82782009-04-17 Diego Novillo <dnovillo@google.com>
8279
8280 * tree-ssa-pre.c (create_expression_by_pieces): Remove
8281 assertion for AVAIL_OUT.
8282
2984e1b6
MF
82832009-04-17 Mike Frysinger <vapier@gentoo.org>
8284
8285 PR target/38627
8286 * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
8287 * config/sh/linux-atomic.asm: Likewise.
8288
9994a182
DN
82892009-04-17 Diego Novillo <dnovillo@google.com>
8290
8291 * except.c (debug_eh_tree): New.
8292 (struct eh_region, struct eh_status): Move ...
8293 * except.h: ... here.
8294 (add_type_for_runtime): Declare extern.
8295 (lookup_type_for_runtime): Likewise.
8296 (debug_eh_tree): Declare.
8297 * Makefile.in (GTFILES): List except.h before except.c
8298
07485407
DN
82992009-04-17 Diego Novillo <dnovillo@google.com>
8300
47f402d1 8301 * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
07485407
DN
8302 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
8303 * tree-dfa.c (find_referenced_vars_in): Factor out of ...
8304 (find_vars_r): ... here.
8305 * tree-flow.h (find_referenced_vars_in): Declare.
8306 * tree-ssa-pre.c (create_expression_by_pieces): Assert
8307 that AVAIL_OUT exists for BLOCK.
8308 * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
8309 (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
8310 (tree-parloops.o): Likewise.
8311
4e53d196
SB
83122009-04-17 Simon Baldwin <simonb@google.com>
8313
8314 * toplev.c (default_tree_printer): Add handling for %E format.
8315
413d3aa8
DN
83162009-04-17 Diego Novillo <dnovillo@google.com>
8317
47f402d1
UB
8318 * tree-pretty-print.c (dump_generic_node): Add break after
8319 TREE_BINFO handler. Handle COMPLEX_TYPE, REAL_TYPE and
8320 FIXED_POINT_TYPE. Handle NULL TREE_TYPEs. Handle METHOD_TYPE and
8321 FUNCTION_TYPE together. Call print_struct_decl when printing
8322 structures and TDF_SLIM is not given.
413d3aa8
DN
8323 (print_struct_decl): Fix logic for detecting recursion.
8324
5a691e98
RAE
83252009-04-17 Rafael Avila de Espindola <espindola@google.com>
8326
8327 PR 31567
8328 * gcc.c (create_at_file): New.
8329 (compile_input_file_p): New.
8330 (do_spec_1): Use @args files for %i. Use create_at_file for %o.
8331 * main.c (main): Update call to toplev_main.
8332 * toplev.c (toplev_main): Change signature. Call expandargv.
8333 * toplev.h (toplev_main): Change signature.
8334
9eacf7a6
EB
83352009-04-17 Eric Botcazou <ebotcazou@adacore.com>
8336
8337 * dwarf2out.c (field_byte_offset): Use the type size as the field size
8338 if the latter is not constant.
8339
58298177
DE
83402009-04-17 David Edelsohn <edelsohn@gnu.org>
8341
8342 * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
8343
5b4c43d7
EB
83442009-04-17 Eric Botcazou <ebotcazou@adacore.com>
8345
8346 * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
8347 * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
8348
b51605c4
RG
83492009-04-17 Richard Guenther <rguenther@suse.de>
8350
8351 * tree-ssa-structalias.c (get_constraint_for_component_ref):
8352 Handle component references view-converting an invariant address.
8353
9e3be889
AN
83542009-04-17 Adam Nemet <anemet@caviumnetworks.com>
8355
8356 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
8357 TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
8358 TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
8359 TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
8360 Use @deftypevr rather than @deftypevar.
8361
7c3e9dc3
RG
83622009-04-17 Richard Guenther <rguenther@suse.de>
8363
47f402d1 8364 * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
7c3e9dc3
RG
8365 (get_prop_source_stmt): Likewise.
8366 (can_propagate_from): Likewise.
8367
aca600aa
AS
83682009-04-17 Andrew Stubbs <ams@codesourcery.com>
8369
8370 * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
8371 TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
8372 (--with-multilib-list): Add default value.
8373 * configure: Regenerate.
8374 * Makefile.in (TM_ENDIAN_CONFIG): Define.
8375 (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
8376 * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
8377 TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
8378 Don't add default cpu to multilib list unnecessarily, but do enable
8379 the relevant compiler option..
8380 Add support for --with-multilib-list=<blank> and
8381 --with-multilib-list=!<somelib> to supress unwanted multilibs.
8382 * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
8383 (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
8384 (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
8385 TM_MULTILIB_CONFIG.
8386 (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
8387 (MULTILIB_OSDIRNAMES): New variable.
8388 * config/sh/t-1e: Delete file.
8389 * config/sh/t-mlib-sh1: Delete file.
8390 * config/sh/t-mlib-sh2: Delete file.
8391 * config/sh/t-mlib-sh2a: Delete file.
8392 * config/sh/t-mlib-sh2a-nofpu: Delete file.
8393 * config/sh/t-mlib-sh2a-single: Delete file.
8394 * config/sh/t-mlib-sh2a-single-only: Delete file.
8395 * config/sh/t-mlib-sh2e: Delete file.
8396 * config/sh/t-mlib-sh3e: Delete file.
8397 * config/sh/t-mlib-sh4: Delete file.
8398 * config/sh/t-mlib-sh4-nofpu: Delete file.
8399 * config/sh/t-mlib-sh4-single: Delete file.
8400 * config/sh/t-mlib-sh4-single-only: Delete file.
8401 * config/sh/t-mlib-sh4a: Delete file.
8402 * config/sh/t-mlib-sh4a-nofpu: Delete file.
8403 * config/sh/t-mlib-sh4a-single: Delete file.
8404 * config/sh/t-mlib-sh4a-single-only: Delete file.
8405 * config/sh/t-mlib-sh4al: Delete file.
8406 * config/sh/t-mlib-sh5-32media: Delete file.
8407 * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
8408 * config/sh/t-mlib-sh5-64media: Delete file.
8409 * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
8410 * config/sh/t-mlib-sh5-compact: Delete file.
8411 * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
8412 * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
8413 * doc/install.texi (Options specification): Add
8414 --with-multilib-list and --with-endian.
8415
cf8aba7f
RAE
84162009-04-17 Rafael Avila de Espindola <espindola@google.com>
8417
8418 * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
8419 REVISION_c.
8420 (OBJS-common): Add plugin-version.o.
8421 (plugin-version.o): New.
8422 * gcc-plugin.h (plugin_gcc_version): New.
8423 (plugin_default_version_check): New.
8424 (plugin_init_func, plugin_init): Add version argument.
8425 * plugin-version.c: New.
8426 * plugin.c (str_plugin_gcc_version_name): New.
8427 (try_init_one_plugin): Read plugin_gcc_version from the plugin and
8428 pass it to the init function.
8429 (plugin_default_version_check): New.
8430
61e20b90
RG
84312009-04-17 Richard Guenther <rguenther@suse.de>
8432
8433 * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
8434 for decl-vs-decl disambiguation.
8435
90c6fd8a
AK
84362009-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
8437
8438 * config/s390/s390.h (s390_tune_attr): New macro definition.
8439 * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
8440
9fe9fe04
RG
84412009-04-17 Richard Guenther <rguenther@suse.de>
8442
8443 * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
8444 (fold_stmt_r): Likewise.
8445 (maybe_fold_reference): New function.
8446 (fold_gimple_assign): Handle cases fold_stmt_r did.
8447 (fold_stmt): Do not use fold_stmt_r.
8448 (fold_stmt_inplace): Likewise.
8449
7e673273
RG
84502009-04-17 Richard Guenther <rguenther@suse.de>
8451
8452 * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
8453 (record_equivalences_from_stmt): Remove useless checks and
8454 simplifications.
8455 * tree-ssa-pre.c (eliminate): Avoid converting a constant if
8456 the type is already suitable.
8457
fabf2749
PB
84582009-04-17 Paolo Bonzini <bonzini@gnu.org>
8459
8460 * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
8461
68f7b061
UB
84622009-04-17 Uros Bizjak <ubizjak@gmail.com>
8463
8464 * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
8465 (CMPtype): Define as __gcc_CMPtype.
8466
532bfb0a
AJ
84672009-04-17 Aurelien Jarno <aurelien@aurel32.net>
8468
8469 * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
8470 for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
8471
e3ac77ff
RG
84722009-04-17 Richard Guenther <rguenther@suse.de>
8473
8474 PR tree-optimization/39746
8475 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
8476 special-casing for builtins and static variable use/def.
8477 (call_may_clobber_ref_p_1): Likewise.
8478
7072a650
ILT
84792009-04-16 Ian Lance Taylor <iant@google.com>
8480
8481 * df.h: Include "timevar.h".
8482 (struct df_problem): Change tv_id field to timevar_id_t.
8483 * tree-pass.h: Include "timevar.h".
8484 (struct opt_pass): Change tv_id field to timevar_id_t.
8485 * timevar.h (timevar_id_t): Define TV_NONE.
8486 * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
8487 TV_NONE rather than tv_id != 0.
8488 (execute_one_pass): Likewise.
8489 * Makefile.in (DF_H): Add $(TIMEVAR_H).
8490 (TREE_PASS_H): Define. Change all instances of tree-pass.h in
8491 dependencies to $(TREE_PASS_H).
8492 * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
8493 to TV_NONE.
8494 (pass_branch_target_load_optimize2): Likewise.
8495 * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
8496 (pass_outof_cfg_layout_mode): Likewise.
8497 * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
8498 (pass_rebuild_cgraph_edges): Likewise.
8499 (pass_remove_cgraph_callee_edges): Likewise.
8500 * df-core.c (pass_df_initialize_opt): Likewise.
8501 (pass_df_initialize_no_opt): Likewise.
8502 (pass_df_finish): Likewise.
8503 * emit-rtl.c (pass_unshare_all_rtl): Likewise.
8504 * except.c (pass_set_nothrow_function_flags): Likewise.
8505 (pass_convert_to_eh_region_ranges): Likewise.
8506 * final.c (pass_compute_alignments): Likewise.
8507 * function.c (pass_instantiate_virtual_regs): Likewise.
8508 (pass_init_function): Likewise.
8509 (pass_leaf_regs): Likewise.
8510 (pass_match_asm_constraints): Likewise.
8511 * gimple-low.c (pass_lower_cf): Likewise.
8512 (pass_mark_used_blocks): Likewise.
8513 * init-regs.c (pass_initialize_regs): Likewise.
8514 * integrate.c (pass_initial_value_sets): Likewise.
8515 * ira.c (pass_ira): Likewise.
8516 * jump.c (pass_cleanup_barriers): Likewise.
8517 * omp-low.c (pass_expand_omp): Likewise.
8518 (pass_lower_omp): Likewise.
8519 * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
8520 * recog.c (pass_split_all_insns): Likewise.
8521 (pass_split_after_reload): Likewise.
8522 (pass_split_before_regstack): Likewise.
8523 (pass_split_before_sched2): Likewise.
8524 (pass_split_for_shorten_branches): Likewise.
8525 * reginfo.c (pass_reginfo_init): Likewise.
8526 (pass_subregs_of_mode_init): Likewise.
8527 (pass_subregs_of_mode_finish): Likewise.
8528 * passes.c (pass_postreload): Likewise.
8529 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
8530 * tree-cfg.c (pass_remove_useless_stmts): Likewise.
8531 (pass_warn_function_return): Likewise.
8532 (pass_warn_function_noreturn): Likewise.
8533 * tree-complex.c (pass_lower_complex): Likewise.
8534 (pass_lower_complex_O0): Likewise.
8535 * tree-if-conv.c (pass_if_conversion): Likewise.
8536 * tree-into-ssa.c (pass_build_ssa): Likewise.
8537 * tree-mudflap.c (pass_mudflap_1): Likewise.
8538 (pass_mudflap_2): Likewise.
8539 * tree-nomudflap.c (pass_mudflap_1): Likewise.
8540 (pass_mudflap_2): Likewise.
8541 * tree-nrv.c (pass_return_slot): Likewise.
8542 * tree-object-size.c (pass_object_sizes): Likewise.
8543 * tree-optimize.c (pass_all_optimizations): Likewise.
8544 (pass_early_local_passes): Likewise.
8545 (pass_all_early_optimizations): Likewise.
8546 (pass_cleanup_cfg): Likewise.
8547 (pass_cleanup_cfg_post_optimizing): Likewise.
8548 (pass_free_datastructures): Likewise.
8549 (pass_free_cfg_annotations): Likewise.
8550 (pass_fixup_cfg): Likewise.
8551 (pass_init_datastructures): Likewise.
8552 * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
8553 (pass_late_warn_uninitialized): Likewise.
8554 (pass_update_address_taken): Likewise.
8555 * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
8556 * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
8557 (pass_cse_sincos): Likewise.
8558 (pass_convert_to_rsqrt): Likewise.
8559 * tree-ssa-structalias.c (pass_build_alias): Likewise.
8560 * tree-stdarg.c (pass_stdarg): Likewise.
8561 * tree-tailcall.c (pass_tail_recursion): Likewise.
8562 (pass_tail_calls): Likewise.
8563 * tree-vect-generic.c (pass_lower_vector): Likewise.
8564 (pass_lower_vector_ssa): Likewise.
8565 * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
8566
0051ef59
JM
85672009-04-16 Joseph Myers <joseph@codesourcery.com>
8568
8569 * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
8570 XLR entry.
8571 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
8572 Handle -march=xlr.
8573 * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
8574 logical and signext.
8575
b3f8558a
KK
85762009-04-16 Kaz Kojima <kkojima@gcc.gnu.org>
8577
8578 PR target/39767
8579 * config/sh/predicates.md (arith_operand): Check if the operand
8580 of TRUNCATE is a REG.
8581
f57597d9
KH
85822009-04-16 Kazu Hirata <kazu@codesourcery.com>
8583
8584 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
8585 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
8586
b172d063
KH
85872009-04-16 Kazu Hirata <kazu@codesourcery.com>
8588
8589 * tree-iterator.c (tsi_split_statement_list_after,
8590 tsi_split_statement_list_before): Remove.
8591 * tree-iterator.h: Remove the prototypes for
532bfb0a 8592 tsi_split_statement_list_after and tsi_split_statement_list_before.
b172d063 8593
78fe4f1f
KH
85942009-04-16 Kazu Hirata <kazu@codesourcery.com>
8595
8596 * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
8597 * tree-ssa-propagate.h: Remove the prototype for
8598 stmt_makes_single_load.
8599
43dd3201
KH
86002009-04-16 Kazu Hirata <kazu@codesourcery.com>
8601
8602 * emit-rtl.c (set_mem_attrs_from_reg): Remove.
8603 * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
8604
4252a4aa
KH
86052009-04-16 Kazu Hirata <kazu@codesourcery.com>
8606
8607 * tree-iterator.c (EXPR_LAST_BODY): Remove.
8608
bfb69968
KH
86092009-04-16 Kazu Hirata <kazu@codesourcery.com>
8610
8611 * except.c (eh_region_outer_p): Remove.
8612 * except.h: Remove the prototype for eh_region_outer_p.
8613
c7db7fa5
KH
86142009-04-16 Kazu Hirata <kazu@codesourcery.com>
8615
8616 * function.c (current_function_assembler_name): Remove.
8617 * function.h: Remove the prototype for
8618 current_function_assembler_name.
8619
efc0b2bd
ILT
86202009-04-16 Ian Lance Taylor <iant@google.com>
8621
532bfb0a 8622 * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
efc0b2bd
ILT
8623 (add_reg_note): Call alloc_reg_note.
8624 * rtl.h (alloc_reg_note): Declare.
8625 * combine.c (try_combine): Use alloc_reg_note.
8626 (recog_for_combine, move_deaths): Likewise.
8627 (distribute_notes): Use alloc_reg_note and add_reg_note.
8628 * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
8629 * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
8630 * reload1.c (eliminate_regs_1): Use alloc_reg_note.
8631
6080348f
VM
86322009-04-16 Vladimir Makarov <vmakarov@redhat.com>
8633
8634 PR rtl-optimization/39762
8635 * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
8636 ira_may_move_out_cost): Add comments about way of their usage.
532bfb0a 8637 (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
2ba9daa7 8638
6080348f
VM
8639 * ira-conflicts.c (process_regs_for_copy): Use function
8640 ira_get_register_move_cost instead of global
8641 ira_register_move_cost.
8642
8643 * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
8644 color_pass, move_spill_restore, update_curr_costs): Ditto.
8645
8646 * ira-lives.c (process_single_reg_class_operands): Ditto.
8647
8648 * ira-emit.c (emit_move_list): Ditto.
8649
8650 * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
8651 (record_reg_classes): Ditto. Use functions
8652 ira_get_register_move_cost and ira_get_may_move_cost instead of
8653 global vars ira_register_move_cost, ira_may_move_out_cost and
8654 ira_may_move_in_cost.
8655 (record_address_regs): Don't call ira_init_register_move_cost.
8656 Use function ira_get_may_move_cost instead of global
8657 ira_may_move_in_cost.
8658 (process_bb_node_for_hard_reg_moves): Use function
532bfb0a 8659 ira_get_register_move_cost instead of global ira_register_move_cost.
6080348f 8660 (ira_costs): Don't call ira_init_register_move_cost.
2ba9daa7 8661
646bea10
RG
86622009-04-16 Richard Guenther <rguenther@suse.de>
8663
8664 * tree-cfg.c (verify_gimple_assign_binary):
8665 Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
8666 * ipa-struct-reorg.c (gen_size): Fold the built expressions.
8667 (create_general_new_stmt): Note that this function is broken.
8668
02e819ff
RAE
86692009-04-16 Rafael Avila de Espindola <espindola@google.com>
8670
8671 * common.opt (fhelp): Add Var(help_flag).
8672 * gcc-plugin.h (plugin_info): Add help.
8673 * plugin.c (plugin_name_args): Add help.
8674 (register_plugin_info): Set plugin->help.
8675 (print_help_one_plugin): New.
8676 (print_plugins_help): New.
8677 * plugin.h (print_plugins_help): New.
8678 * toplev.c (toplev_main): Call print_plugins_help if needed.
8679
ccacdf06
RG
86802009-04-16 Richard Guenther <rguenther@suse.de>
8681
8682 * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
8683 (gimple_ior_addresses_taken_1): New function.
8684 (gimple_ior_addresses_taken): Likewise.
8685 * gimple.h (struct gimple_statement_with_ops_base): Remove
8686 addresses_taken member.
8687 (gimple_ior_addresses_taken): Declare.
8688 (gimple_addresses_taken, gimple_addresses_taken_ptr,
8689 gimple_set_addresses_taken): Remove.
8690 * ipa-reference.c (mark_address): New function.
8691 (scan_stmt_for_static_refs): Use it for marking addresses taken.
8692 * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
8693 (mark_address_taken): ... this. Just set TREE_ADDRESSABLE.
8694 (gimple_add_to_addresses_taken): Remove.
8695 (get_tmr_operands): Call mark_address_taken.
8696 (get_asm_expr_operands): Likewise.
8697 (get_expr_operands): Likewise.
8698 (build_ssa_operands): Do not clear the addresses_taken bitmap.
8699 (free_stmt_operands): Do not free it.
8700 * tree-ssa.c (delete_tree_ssa): Likewise.
8701 (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
8702
346ef3fa
RG
87032009-04-16 Richard Guenther <rguenther@suse.de>
8704
8705 * gimple.h (walk_stmt_load_store_addr_ops): Declare.
8706 (walk_stmt_load_store_ops): Likewise.
8707 * gimple.c (get_base_loadstore): New function.
8708 (walk_stmt_load_store_addr_ops): Likewise.
8709 (walk_stmt_load_store_ops): Likewise.
8710 * ipa-pure-const.c (check_op): Simplify.
8711 (check_load, check_store): New functions.
8712 (check_stmt): Use walk_stmt_load_store_ops.
8713 * ipa-reference.c (mark_load): Adjust signature.
8714 (mark_store): Likewise.
8715 (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
8716
44e9f006
RAE
87172009-04-16 Rafael Avila de Espindola <espindola@google.com>
8718
8719 * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
8720 (plugin_info): New.
8721 * opts.c (common_handle_option): Don't call print_version.
8722 * plugin.c (plugin_name_args): Add version.
8723 (register_plugin_info): New.
8724 (register_callback): Handle PLUGIN_INFO.
8725 (try_init_one_plugin): New.
8726 (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
8727 if failed to init.
8728 (finalize_one_plugin): New.
8729 (finalize_plugins): New.
8730 (print_one_plugin): New.
8731 (print_plugins_versions): New.
8732 * plugin.h (print_plugins_versions): New.
8733 (finalize_plugins): New.
8734 * toplev.c (compile_file): Don't call initialize_plugins.
8735 (print_version): Call print_plugins_versions.
8736 (toplev_main): Call initialize_plugins. Print version if needed.
8737 Call finalize_plugins.
8738
41fd0f9b
RAE
87392009-04-16 Rafael Avila de Espindola <espindola@google.com>
8740
8741 * common.opt (fversion): New.
8742 * gcc.c (print_version): New.
8743 (process_command): Don't print the version. Just set print_version.
8744 (main): Print version. Call subprocesses if print_version and
8745 verbose_flag are set.
8746 * opts.c (common_handle_option): Handle OPT_fversion.
8747
550918ca 87482009-04-16 Richard Guenther <rguenther@suse.de>
532bfb0a 8749 Ira Rosen <irar@il.ibm.com>
550918ca
RG
8750
8751 PR tree-optimization/39698
8752 * tree-vect-loop.c (get_initial_def_for_reduction): Use the
8753 type of the reduction variable. Only generate the def if
8754 it is needed.
8755
8756 * omp-low.c (expand_omp_for_generic): When converting to a pointer
8757 make sure to first convert to an integer of the same precision.
8758 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
8759 the type of the evolution correctly in computing the new
8760 induction variable base.
8761
54634841
RG
87622009-04-16 Richard Guenther <rguenther@suse.de>
8763
8764 PR middle-end/39625
8765 * tree-cfg.c (make_blocks): Split statements with to-be
8766 abnormal SSA names on the lhs.
8767
b6fc2cdb
PB
87682009-04-16 Paolo Bonzini <bonzini@gnu.org>
8769
8770 * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
8771 Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
8772 * c-typeck.c (really_start_incremental_init): Likewise.
8773 * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
8774 (TARGET_INITIALIZER): Remove it.
8775 * target.h (struct target): Remove vector_opaque_p.
8776 * tree.c (build_opaque_vector_type): New.
8777 * tree.h (TYPE_VECTOR_OPAQUE): New.
8778 (build_opaque_vector_type): Declare.
8779 * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
8780 * config/rs6000/rs6000.c (build_opaque_vector_type,
8781 rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
8782 (rs6000_init_builtins): Use build_opaque_vector_type for
8783 opaque_V4SI_type_node.
8784
a417cdd9
CM
87852009-04-15 Catherine Moore <clm@codesourcery.com>
8786
532bfb0a
AJ
8787 * debug.h (set_name): Declare.
8788 * dwarf2out.c (dwarf2out_set_name): Declare.
8789 (dwarf2_debug_hooks): Add set_name.
8790 (find_AT_string): New.
8791 (add_AT_string): Call find_AT_string.
8792 (dwarf2out_set_name): New.
8793 * cp/decl.c (grokdeclarator): Call set_name.
8794 * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
8795 * debug.c (do_nothing_debug_hooks): Likewise.
8796 * dbxout.c (dbx_debug_hooks): Likewise.
8797 * sdbout.c (sdb_debug_hooks): Likewise.
a417cdd9 8798
60839f5d 87992009-04-15 Michael Eager <eager@eagercon.com>
2c5cac98 8800
532bfb0a
AJ
8801 * config/rs6000/rs6000.c (rs6000_function_value): Set function return
8802 reg for single-precision FPU.
8803 * config/rs6000/rs6000.md (movsi_internal1): Only for
8804 !TARGET_SINGLE_FPU.
8805 (movsi_internal1_single): New. Add pattern to move SI values to/from
2c5cac98
ME
8806 single-precision FP regs.
8807
ada39f0b
RG
88082009-04-15 Richard Guenther <rguenther@suse.de>
8809
8810 * omp-low.c (lower_rec_input_clauses): Build correct address
8811 expressions.
8812 (expand_omp_for_generic): Fix multiplication type.
532bfb0a 8813 * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
ada39f0b
RG
8814 (generate_memset_zero): Fix types.
8815 * tree-profile.c (prepare_instrumented_value): Correctly
8816 widen a pointer.
8817
6866c6e8
ILT
88182009-04-15 Ian Lance Taylor <iant@google.com>
8819
8820 * c.opt (Wenum-compare): Enable for C and Objc. Initialize to -1.
8821 * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
8822 for -Wall and for -Wc++-compat.
8823 (c_common_post_options): For C++, set warn_enum_compare if not
8824 already set.
8825 * c-tree.h (struct c_expr): Add field original_type.
8826 (build_external_ref): Update declaration.
8827 * c-parser.c (c_parser_braced_init): Set original_type.
8828 (c_parser_initelt): Likewise.
8829 (c_parser_expr_no_commas): Likewise.
8830 (c_parser_conditional_expression): Likewise.
8831 (c_parser_cast_expression): Likewise.
8832 (c_parser_unary_expression): Likewise. Pull setting of
8833 original_code to top of function.
8834 (c_parser_sizeof_expression): Set original_type.
8835 (c_parser_alignof_expression): Likewise.
8836 (c_parser_postfix_expression): Likewise. Pull setting of
8837 original_code to top of function.
532bfb0a 8838 (c_parser_postfix_expression_after_paren_type): Set original_type.
6866c6e8
ILT
8839 (c_parser_postfix_expression_after_primary): Likewise.
8840 (c_parser_expression): Likewise.
8841 * c-typeck.c (build_external_ref): Add type parameter. Change all
8842 callers.
8843 (c_expr_sizeof_expr): Set original_type field.
8844 (parser_build_unary_op): Likewise.
8845 (parser_build_binary_op): Likewise. Optionally warn about
8846 comparisons of enums of different types.
8847 (digest_init): Set original_type field.
8848 (really_start_incremental_init): Likewise.
8849 (push_init_level, pop_init_level): Likewise.
8850 * doc/invoke.texi (Warning Options): -Wenum-compare now
8851 supported in C.
8852
f116fecf
RG
88532009-04-15 Richard Guenther <rguenther@suse.de>
8854
8855 * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
8856 out a necessary conversion.
8857 * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
8858 names we didn't value number.
8859 * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
8860
25e20805
RG
88612009-04-15 Richard Guenther <rguenther@suse.de>
8862
8863 PR tree-optimization/39764
8864 * tree-ssa-ccp.c (get_value): Canonicalize value with
8865 canonicalize_float_value.
8866
90cc3676
JH
88672009-04-15 Jan Hubicka <jh@suse.cz>
8868
8869 * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
8870 Wrong version of patch.
8871
6d14c006
JH
88722009-04-15 Jan Hubicka <jh@suse.cz>
8873
8874 * builtins.def (va_start, va_end, va_copy): Mark nothrow.
8875
5afaa917
NS
88762009-04-15 Nathan Sidwell <nathan@codesourcery.com>
8877
8878 * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
8879 our distinct integral and vector types.
8880
3b482fca
RAE
88812009-04-15 Rafael Avila de Espindola <espindola@google.com>
8882
8883 * class.c (build_vtbl_ref_1): Remove call to assemble_external.
8884 * init.c (build_vtbl_address): Remove call to assemble_external.
8885
6cd1d2e2
DJ
88862009-04-14 Daniel Jacobowitz <dan@codesourcery.com>
8887
8888 * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
8889 output for other floating point modes.
8890
dab71827
DN
88912009-04-14 Diego Novillo <dnovillo@google.com>
8892
8893 * diagnostic.c (diagnostic_report_diagnostic): Do not
8894 warn about loaded plugins for DK_ERROR and DK_WARNING.
8895 * c-decl.c (declspecs_add_type): Move call to
8896 invoke_plugin_callbacks ...
8897 * c-parser.c (c_parser_declspecs): ... here.
8898 * plugin.c (dump_active_plugins): Tidy output.
8899
68a607d8
DN
89002009-04-14 Diego Novillo <dnovillo@google.com>
8901 Le-Chun Wu <lcwu@google.com>
8902
8903 * configure.ac: Add --enable-plugin support.
8904 Define ENABLE_PLUGIN and PLUGINLIBS when specified.
8905 * Makefile.in (PLUGIN_H): Define.
8906 Export ENABLE_PLUGIN and GMPINC to site.exp.
8907 Add PLUGINLIBS to link command.
8908 Add/modify dependencies for plugin.o and files including plugin.h.
8909 (plugin.o): New.
8910 * config.in: Regenerate.
2ba9daa7 8911
68a607d8
DN
8912 * opts.c (common_handle_option): Handle OPT_fplugin_ and
8913 OPT_fplugin_arg_.
8914
89152009-04-14 Le-Chun Wu <lcwu@google.com>
8916
8917 * tree-pass.h (register_one_dump_file): Add a prototype for
8918 register_one_dump_file.
8919 * toplev.c (compile_file): Call initialize_plugins.
8920 (do_compile): Call invoke_plugin_callbacks.
8921 (toplev_main): Call invoke_plugin_callbacks.
8922 * common.opt: Add -fplugin= and -fplugin-arg-.
8923 * gcc-plugin.h: New public header file for plugins to include.
8924 * plugin.c: New source file.
8925 * plugin.h: New internal header file.
8926 * passes.c (register_one_dump_file): Make it external.
2ba9daa7 8927
68a607d8
DN
8928 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
8929
89302009-04-14 Diego Novillo <dnovillo@google.com>
8931
8932 * doc/plugins.texi: New.
8933 * doc/gccint.texi: Add reference to Plugins chapter.
8934 * doc/invoke.texi: Document -fplugin and -fplugin-arg
8935 * diagnostic.c (diagnostic_report_diagnostic): Warn about
8936 loaded plugins, if any.
8937 * timevar.def (TV_PLUGIN_INIT): Define.
8938 (TV_PLUGIN_RUN): Define.
8939 * plugin.c: Include timevar.h
8940 (plugins_active_p): New.
8941 (dump_active_plugins): New.
8942 (debug_active_plugins): New.
8943
50617257
JM
89442009-04-14 Joseph Myers <joseph@codesourcery.com>
8945
8946 * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
8947 library paths.
8948 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
8949
b32f6fff
KH
89502009-04-14 Kazu Hirata <kazu@codesourcery.com>
8951
8952 * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
8953 the same as a minus without a shift.
8954
85d04fa2
NC
89552009-04-14 Nick Clifton <nickc@redhat.com>
8956
8957 * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
8958 comparisons with small integers will always produce a short
8959 branch.
8960
e495a0c8
RAE
89612009-04-14 Rafael Avila de Espindola <espindola@google.com>
8962
8963 Merge:
e495a0c8
RAE
8964 2008-12-19 Diego Novillo <dnovillo@google.com>
8965
532bfb0a 8966 * cgraph.c (dump_cgraph_node): Show memory address of NODE.
e495a0c8 8967
ad41bd84 89682009-04-14 Richard Guenther <rguenther@suse.de>
587aa063
RG
8969
8970 * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
8971 verification.
8972 (verify_gimple_assign_binary): Likewise. Handle shifts and
8973 rotates correctly.
8974 (verify_gimple_phi): Print the mismatched argument position.
8975 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
8976 Fix types.
8977 (vect_update_init_of_dr): Likewise.
8978 * matrix-reorg.c (transform_access_sites): Do what the
8979 comment suggests.
8980 * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
8981
60839f5d 89822009-04-13 Michael Eager <eager@eagercon.com>
9eca1774
ME
8983
8984 * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
8985 _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
8986 * config/rs6000/xilinx.h: New. Spec for powerpc-xilinx-eabi
2ba9daa7 8987 * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
9eca1774
ME
8988 remove duplicate config
8989
b0e2d008
DR
89902009-04-13 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
8991
8992 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
8993 file_name:line_number type locator of the call site.
2ba9daa7 8994
1244a8b7
VM
89952009-04-13 Vladimir Makarov <vmakarov@redhat.com>
8996
8997 * genautomata.c: Put blank after comma.
8998 (automaton_decls): New.
8999 (struct unit_usage): Add comments to member next.
9000 (store_alt_unit_usage): Keep the list ordered.
9001 (unit_present_on_list_p, equal_alternatives_p): New.
9002 (check_regexp_units_distribution): Check units distribution
9003 correctness correctly.
9004 (main): Don't write automata if error is found. Return correct
9005 exit code.
2ba9daa7 9006
1244a8b7
VM
9007 * config/m68k/cf.md (cfv4_ds): Remove.
9008 (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
9009 cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
9010
9011 * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
9012 power4-load-ext, power4-store, power4-store-update,
9013 power4-fpstore, power4-fpstore-update, power4-two, power4-three,
9014 power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
9015 power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
9016 power4-sqrt, power4-isync): Modify reservation to make correct
9017 unit distribution to automata.
9018
9019 * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
9020 power5-store-update, power5-two, power5-three, power5-lmul,
9021 power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
2ba9daa7 9022
f7dd1864
AN
90232009-04-13 Adam Nemet <anemet@caviumnetworks.com>
9024
9025 * except.c (pass_set_nothrow_function_flags): Set name and add
9026 TODO_dump_func.
9027 (set_nothrow_function_flags): Mention in the dump file when
9028 changing a function to nothrow.
9029
59a1171f
OS
90302009-04-13 Ozkan Sezer <sezeroz@gmail.com>
9031
9032 PR/39066
9033 * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
9034 instead of unsigned long.
9035
934c2060
RR
90362009-04-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9037
f7dd1864
AN
9038 * config/arm/arm.c (return_used_this_function): Remove.
9039 (arm_output_function_prologue): Remove use of
934c2060 9040 return_used_this_function.
f7dd1864 9041 (output_return_instruction): Replace use of
934c2060
RR
9042 return_used_this_function
9043 by cfun->machine->return_used_this_function.
f7dd1864
AN
9044 (arm_output_epilogue): Likewise.
9045 (arm_output_function_epilogue): Likewise.
9046 (thumb_unexpanded_epilogue): Likewise.
9047 * config/arm/arm.h (struct machine_function):
934c2060 9048 New member return_used_this_function.
f7dd1864 9049
ae5cc016
MM
90502009-04-12 Mark Mitchell <mark@codesourcery.com>
9051
9052 * doc/install.texi: Correct description of default directory for
9053 --with-gxx-include-dir.
9054
a0ce68df 90552009-04-12 Eric Botcazou <ebotcazou@adacore.com>
849d624b
EB
9056
9057 * fold-const.c (build_range_check): Properly deal with enumeral and
9058 boolean base types.
9059
3906a4a1
SB
90602009-04-12 Steven Bosscher <steven@gcc.gnu.org>
9061
9062 * doc/invoke.texi (max_gcse_passes): Remove documentation.
9063 * params.def (PARAM_MAX_GCSE_PASSES): Remove.
9064 * params.h (MAX_GCSE_PASSES): Remove.
9065 * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
9066 in sequence. Remove ability to run multiple passes.
9067 (bypass_jumps): Report run as third CPROP pass.
9068
efaadb93
AN
90692009-04-12 Adam Nemet <anemet@caviumnetworks.com>
9070
9071 PR middle-end/39651
9072 * except.c (can_throw_external): Look at each insn in a SEQUENCE
9073 when deciding whether the whole SEQUENCE can throw.
9074
4c48007b
UB
90752009-04-12 Uros Bizjak <ubizjak@gmail.com>
9076
9077 PR target/39740
9078 * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
9079 offseted label references.
9080
b4104018
JH
90812009-04-11 Jan Hubicka <jh@suse.cz>
9082
9083 * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
9084
32848948
RG
90852009-04-11 Richard Guenther <rguenther@suse.de>
9086
9087 PR middle-end/39732
9088 * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
9089 return variables as TREE_ADDRESSABLE.
9090
8810712e
RG
90912009-04-11 Richard Guenther <rguenther@suse.de>
9092
9093 PR tree-optimization/39713
9094 * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
9095 reference trees have SSA_NAME operands.
9096
fa78c0c1
RG
90972009-04-11 Richard Guenther <rguenther@suse.de>
9098
9099 PR c/39712
9100 * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
9101 address expressions.
9102
4d722130
DK
91032009-04-11 Dave Korn <dave.korn.cygwin@gmail.com>
9104
9105 * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE): Update to
9106 match changes in Cygwin 1.7
9107 (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
9108 UINT_FAST16_TYPE, UINT_FAST32_TYPE): Likewise.
9109
567a90f5
PB
91102009-04-10 Paolo Bonzini <bonzini@gnu.org>
9111
9112 PR tree-optimization/39701
9113 * doc/invoke.texi (Optimization Options): Document change in
9114 meaning and initialization of -fdelete-null-pointer-checks.
9115
1ad2f450
L
91162009-04-10 H.J. Lu <hongjiu.lu@intel.com>
9117
9118 PR middle-end/39701
9119 * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
9120
9121 * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
9122 here.
9123
9124 * doc/invoke.texi: Update -fdelete-null-pointer-checks.
9125
1afc5373
CF
91262009-04-10 Chao-ying Fu <fu@mips.com>
9127
9128 * doc/tm.texi (Instruction Output): Document
9129 TARGET_ASM_FINAL_POSTSCAN_INSN.
9130 * target.h (final_postscan_insn): New field in asm_out.
9131 * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
9132 (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
9133 * final.c (final_scan_insn): Call
9134 targetm.asm_out.final_postscan_insn after outputting
9135 an asm macro and a normal instruction.
9136
9137 * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
9138 * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
9139 * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
9140 (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
9141 (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
9142
4d35e75c
PB
91432009-04-10 Paolo Bonzini <bonzini@gnu.org>
9144
9145 PR middle-end/39701
1ad2f450
L
9146 * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
9147 variables as non-NULL even with -fdelete-null-pointer-checks.
4d35e75c 9148
62c49b83
L
91492009-04-10 H.J. Lu <hongjiu.lu@intel.com>
9150
9151 * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
9152
80558628
L
91532009-04-09 H.J. Lu <hongjiu.lu@intel.com>
9154
9155 PR target/39678
9156 * config/i386/i386.c (classify_argument): Handle SCmode with
9157 (bit_offset % 64) != 0.
9158
8c70d28b
SL
91592009-04-09 Sandra Loosemore <sandra@codesourcery.com>
9160
9161 * doc/invoke.texi (Optimize Options): Add cross-reference to
9162 -Q --help=optimizers examples.
9163
e1ff19bf
BE
91642009-04-10 Ben Elliston <bje@au.ibm.com>
9165
9166 PR target/36800
9167 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
9168 regalign for the reg == fpr and TDmode case.
9169
52daca75
DA
91702009-04-09 David Ayers <ayers@fsfe.org>
9171
9172 PR objc/29200
9173 * objc/objc-act.c (warn_with_method): Remove helper function.
9174 (check_duplicates): Call warning and inform directly.
9175 (really_start_method): Likewise.
9176
b45f0e58
PB
91772009-04-09 Paolo Bonzini <bonzini@gnu.org>
9178
9179 * expmed.c (expand_divmod): Always use a comparison for a division
9180 by a large unsigned integer.
9181
1ad2f450
L
9182 * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
9183 for things others than variables or functions as nonzero.
b45f0e58 9184
748086b7
JJ
91852009-04-09 Nick Clifton <nickc@redhat.com>
9186
9187 * unwind-compat.c: Change copyright header to refer to version
9188 3 of the GNU General Public License with version 3.1 of the
9189 GCC Runtime Library Exception and to point readers at the
7a715bba 9190 COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
748086b7
JJ
9191 * config/alpha/crtfastmath.c: Likewise.
9192 * config/alpha/linux-unwind.h: Likewise.
9193 * config/alpha/qrnnd.asm: Likewise.
9194 * config/alpha/vms-crt0-64.c: Likewise.
9195 * config/alpha/vms-crt0.c: Likewise.
9196 * config/alpha/vms-dwarf2.asm: Likewise.
9197 * config/alpha/vms-dwarf2eh.asm: Likewise.
9198 * config/alpha/vms-psxcrt0-64.c: Likewise.
9199 * config/alpha/vms-psxcrt0.c: Likewise.
9200 * config/alpha/vms_tramp.asm: Likewise.
9201 * config/arc/initfini.c: Likewise.
9202 * config/arc/lib1funcs.asm: Likewise.
9203 * config/arm/bpabi-v6m.S: Likewise.
9204 * config/arm/bpabi.S: Likewise.
9205 * config/arm/bpabi.c: Likewise.
9206 * config/arm/crti.asm: Likewise.
9207 * config/arm/crtn.asm: Likewise.
9208 * config/arm/ieee754-df.S: Likewise.
9209 * config/arm/ieee754-sf.S: Likewise.
9210 * config/arm/lib1funcs.asm: Likewise.
9211 * config/arm/libunwind.S: Likewise.
9212 * config/arm/linux-atomic.c: Likewise.
9213 * config/arm/mmintrin.h: Likewise.
9214 * config/arm/pr-support.c: Likewise.
9215 * config/arm/unaligned-funcs.c: Likewise.
9216 * config/arm/unwind-arm.c: Likewise.
9217 * config/arm/unwind-arm.h: Likewise.
9218 * config/avr/libgcc.S: Likewise.
9219 * config/bfin/crti.s: Likewise.
9220 * config/bfin/crtlibid.s: Likewise.
9221 * config/bfin/crtn.s: Likewise.
9222 * config/bfin/lib1funcs.asm: Likewise.
9223 * config/bfin/linux-unwind.h: Likewise.
9224 * config/cris/arit.c: Likewise.
9225 * config/cris/cris_abi_symbol.c: Likewise.
9226 * config/darwin-64.c: Likewise.
9227 * config/darwin-crt2.c: Likewise.
9228 * config/darwin-crt3.c: Likewise.
9229 * config/darwin.h: Likewise.
9230 * config/dbxelf.h: Likewise.
9231 * config/dfp-bit.c: Likewise.
9232 * config/dfp-bit.h: Likewise.
9233 * config/elfos.h: Likewise.
9234 * config/fixed-bit.c: Likewise.
9235 * config/fixed-bit.h: Likewise.
9236 * config/fp-bit.c: Likewise.
9237 * config/fp-bit.h: Likewise.
9238 * config/fr30/crti.asm: Likewise.
9239 * config/fr30/crtn.asm: Likewise.
9240 * config/fr30/lib1funcs.asm: Likewise.
9241 * config/freebsd-spec.h: Likewise.
9242 * config/frv/cmovd.c: Likewise.
9243 * config/frv/cmovh.c: Likewise.
9244 * config/frv/cmovw.c: Likewise.
9245 * config/frv/frvbegin.c: Likewise.
9246 * config/frv/frvend.c: Likewise.
9247 * config/frv/lib1funcs.asm: Likewise.
9248 * config/glibc-stdint.h: Likewise.
9249 * config/h8300/clzhi2.c: Likewise.
9250 * config/h8300/crti.asm: Likewise.
9251 * config/h8300/crtn.asm: Likewise.
9252 * config/h8300/ctzhi2.c: Likewise.
9253 * config/h8300/fixunssfsi.c: Likewise.
9254 * config/h8300/lib1funcs.asm: Likewise.
9255 * config/h8300/parityhi2.c: Likewise.
9256 * config/h8300/popcounthi2.c: Likewise.
9257 * config/i386/ammintrin.h: Likewise.
9258 * config/i386/att.h: Likewise.
9259 * config/i386/avxintrin.h: Likewise.
9260 * config/i386/biarch64.h: Likewise.
9261 * config/i386/bmmintrin.h: Likewise.
9262 * config/i386/cpuid.h: Likewise.
9263 * config/i386/cross-stdarg.h: Likewise.
9264 * config/i386/crtfastmath.c: Likewise.
9265 * config/i386/crtprec.c: Likewise.
9266 * config/i386/cygming-crtbegin.c: Likewise.
9267 * config/i386/cygming-crtend.c: Likewise.
9268 * config/i386/cygwin.asm: Likewise.
9269 * config/i386/emmintrin.h: Likewise.
9270 * config/i386/gmm_malloc.h: Likewise.
9271 * config/i386/gthr-win32.c: Likewise.
9272 * config/i386/i386.h: Likewise.
9273 * config/i386/immintrin.h: Likewise.
9274 * config/i386/linux-unwind.h: Likewise.
9275 * config/i386/linux64.h: Likewise.
9276 * config/i386/mm3dnow.h: Likewise.
9277 * config/i386/mmintrin-common.h: Likewise.
9278 * config/i386/mmintrin.h: Likewise.
9279 * config/i386/nmmintrin.h: Likewise.
9280 * config/i386/pmm_malloc.h: Likewise.
9281 * config/i386/pmmintrin.h: Likewise.
9282 * config/i386/smmintrin.h: Likewise.
9283 * config/i386/sol2-c1.asm: Likewise.
9284 * config/i386/sol2-ci.asm: Likewise.
9285 * config/i386/sol2-cn.asm: Likewise.
9286 * config/i386/sol2-gc1.asm: Likewise.
9287 * config/i386/tmmintrin.h: Likewise.
9288 * config/i386/unix.h: Likewise.
9289 * config/i386/w32-unwind.h: Likewise.
9290 * config/i386/wmmintrin.h: Likewise.
9291 * config/i386/x86-64.h: Likewise.
9292 * config/i386/x86intrin.h: Likewise.
9293 * config/i386/xmmintrin.h: Likewise.
9294 * config/ia64/crtbegin.asm: Likewise.
9295 * config/ia64/crtend.asm: Likewise.
9296 * config/ia64/crtfastmath.c: Likewise.
9297 * config/ia64/crti.asm: Likewise.
9298 * config/ia64/crtn.asm: Likewise.
9299 * config/ia64/fde-glibc.c: Likewise.
9300 * config/ia64/lib1funcs.asm: Likewise.
9301 * config/ia64/linux-unwind.h: Likewise.
9302 * config/ia64/quadlib.c: Likewise.
9303 * config/ia64/unwind-ia64.c: Likewise.
9304 * config/linux.h: Likewise.
9305 * config/m32c/m32c-lib1.S: Likewise.
9306 * config/m32c/m32c-lib2-trapv.c: Likewise.
9307 * config/m32c/m32c-lib2.c: Likewise.
9308 * config/m32r/initfini.c: Likewise.
9309 * config/m68hc11/larith.asm: Likewise.
9310 * config/m68hc11/m68hc11-crt0.S: Likewise.
9311 * config/m68k/cf.md: Likewise.
9312 * config/m68k/crti.s: Likewise.
9313 * config/m68k/crtn.s: Likewise.
9314 * config/m68k/lb1sf68.asm: Likewise.
9315 * config/m68k/linux-unwind.h: Likewise.
9316 * config/mcore/crti.asm: Likewise.
9317 * config/mcore/crtn.asm: Likewise.
9318 * config/mcore/lib1.asm: Likewise.
9319 * config/mips/linux-unwind.h: Likewise.
9320 * config/mips/loongson.h: Likewise.
9321 * config/mips/mips16.S: Likewise.
9322 * config/mmix/crti.asm: Likewise.
9323 * config/mmix/crtn.asm: Likewise.
9324 * config/pa/fptr.c: Likewise.
9325 * config/pa/hpux-unwind.h: Likewise.
9326 * config/pa/lib2funcs.asm: Likewise.
9327 * config/pa/linux-atomic.c: Likewise.
9328 * config/pa/linux-unwind.h: Likewise.
9329 * config/pa/milli64.S: Likewise.
9330 * config/pa/quadlib.c: Likewise.
9331 * config/pa/stublib.c: Likewise.
9332 * config/picochip/libgccExtras/adddi3.asm: Likewise.
9333 * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
9334 * config/picochip/libgccExtras/ashlsi3.c: Likewise.
9335 * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
9336 * config/picochip/libgccExtras/ashrsi3.c: Likewise.
9337 * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
9338 * config/picochip/libgccExtras/divmod15.asm: Likewise.
9339 * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
9340 * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
9341 * config/picochip/libgccExtras/longjmp.asm: Likewise.
9342 * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
9343 * config/picochip/libgccExtras/lshrsi3.c: Likewise.
9344 * config/picochip/libgccExtras/parityhi2.asm: Likewise.
9345 * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
9346 * config/picochip/libgccExtras/setjmp.asm: Likewise.
9347 * config/picochip/libgccExtras/subdi3.asm: Likewise.
9348 * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
9349 * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
9350 * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
9351 * config/rs6000/750cl.h: Likewise.
9352 * config/rs6000/altivec.h: Likewise.
9353 * config/rs6000/biarch64.h: Likewise.
9354 * config/rs6000/crtresfpr.asm: Likewise.
9355 * config/rs6000/crtresgpr.asm: Likewise.
9356 * config/rs6000/crtresxfpr.asm: Likewise.
9357 * config/rs6000/crtresxgpr.asm: Likewise.
9358 * config/rs6000/crtsavfpr.asm: Likewise.
9359 * config/rs6000/crtsavgpr.asm: Likewise.
9360 * config/rs6000/darwin-asm.h: Likewise.
9361 * config/rs6000/darwin-fallback.c: Likewise.
9362 * config/rs6000/darwin-fpsave.asm: Likewise.
9363 * config/rs6000/darwin-ldouble.c: Likewise.
9364 * config/rs6000/darwin-tramp.asm: Likewise.
9365 * config/rs6000/darwin-unwind.h: Likewise.
9366 * config/rs6000/darwin-vecsave.asm: Likewise.
9367 * config/rs6000/darwin-world.asm: Likewise.
9368 * config/rs6000/e500crtres32gpr.asm: Likewise.
9369 * config/rs6000/e500crtres64gpr.asm: Likewise.
9370 * config/rs6000/e500crtres64gprctr.asm: Likewise.
9371 * config/rs6000/e500crtrest32gpr.asm: Likewise.
9372 * config/rs6000/e500crtrest64gpr.asm: Likewise.
9373 * config/rs6000/e500crtresx32gpr.asm: Likewise.
9374 * config/rs6000/e500crtresx64gpr.asm: Likewise.
9375 * config/rs6000/e500crtsav32gpr.asm: Likewise.
9376 * config/rs6000/e500crtsav64gpr.asm: Likewise.
9377 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
9378 * config/rs6000/e500crtsavg32gpr.asm: Likewise.
9379 * config/rs6000/e500crtsavg64gpr.asm: Likewise.
9380 * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
9381 * config/rs6000/eabi-ci.asm: Likewise.
9382 * config/rs6000/eabi-cn.asm: Likewise.
9383 * config/rs6000/eabi.asm: Likewise.
9384 * config/rs6000/linux-unwind.h: Likewise.
9385 * config/rs6000/linux64.h: Likewise.
9386 * config/rs6000/paired.h: Likewise.
9387 * config/rs6000/paired.md: Likewise.
9388 * config/rs6000/ppc64-fp.c: Likewise.
9389 * config/rs6000/ppu_intrinsics.h: Likewise.
9390 * config/rs6000/rs6000.h: Likewise.
9391 * config/rs6000/si2vmx.h: Likewise.
9392 * config/rs6000/sol-ci.asm: Likewise.
9393 * config/rs6000/sol-cn.asm: Likewise.
9394 * config/rs6000/spe.h: Likewise.
9395 * config/rs6000/spu2vmx.h: Likewise.
9396 * config/rs6000/sysv4.h: Likewise.
9397 * config/rs6000/tramp.asm: Likewise.
9398 * config/rs6000/vec_types.h: Likewise.
9399 * config/s390/linux-unwind.h: Likewise.
9400 * config/s390/tpf-unwind.h: Likewise.
9401 * config/score/crti.asm: Likewise.
9402 * config/score/crtn.asm: Likewise.
9403 * config/sh/crt1.asm: Likewise.
9404 * config/sh/crti.asm: Likewise.
9405 * config/sh/crtn.asm: Likewise.
9406 * config/sh/divtab-sh4-300.c: Likewise.
9407 * config/sh/divtab-sh4.c: Likewise.
9408 * config/sh/divtab.c: Likewise.
9409 * config/sh/lib1funcs-4-300.asm: Likewise.
9410 * config/sh/lib1funcs-Os-4-200.asm: Likewise.
9411 * config/sh/lib1funcs.asm: Likewise.
9412 * config/sh/lib1funcs.h: Likewise.
9413 * config/sh/linux-atomic.asm: Likewise.
9414 * config/sh/linux-unwind.h: Likewise.
9415 * config/sh/shmedia.h: Likewise.
9416 * config/sh/sshmedia.h: Likewise.
9417 * config/sh/ushmedia.h: Likewise.
9418 * config/sparc/crtfastmath.c: Likewise.
9419 * config/sparc/linux-unwind.h: Likewise.
9420 * config/sparc/sol2-c1.asm: Likewise.
9421 * config/sparc/sol2-ci.asm: Likewise.
9422 * config/sparc/sol2-cn.asm: Likewise.
9423 * config/spu/divmodti4.c: Likewise.
9424 * config/spu/divv2df3.c: Likewise.
9425 * config/spu/float_disf.c: Likewise.
9426 * config/spu/float_unsdidf.c: Likewise.
9427 * config/spu/float_unsdisf.c: Likewise.
9428 * config/spu/float_unssidf.c: Likewise.
9429 * config/spu/mfc_multi_tag_release.c: Likewise.
9430 * config/spu/mfc_multi_tag_reserve.c: Likewise.
9431 * config/spu/mfc_tag_release.c: Likewise.
9432 * config/spu/mfc_tag_reserve.c: Likewise.
9433 * config/spu/mfc_tag_table.c: Likewise.
9434 * config/spu/multi3.c: Likewise.
9435 * config/spu/spu_internals.h: Likewise.
9436 * config/spu/spu_intrinsics.h: Likewise.
9437 * config/spu/spu_mfcio.h: Likewise.
9438 * config/spu/vec_types.h: Likewise.
9439 * config/spu/vmx2spu.h: Likewise.
9440 * config/stormy16/stormy16-lib2.c: Likewise.
9441 * config/svr4.h: Likewise.
9442 * config/sync.c: Likewise.
9443 * config/v850/lib1funcs.asm: Likewise.
9444 * config/vxlib-tls.c: Likewise.
9445 * config/vxlib.c: Likewise.
9446 * config/vxworks-dummy.h: Likewise.
9447 * config/xtensa/crti.asm: Likewise.
9448 * config/xtensa/crtn.asm: Likewise.
9449 * config/xtensa/ieee754-df.S: Likewise.
9450 * config/xtensa/ieee754-sf.S: Likewise.
9451 * config/xtensa/lib1funcs.asm: Likewise.
9452 * config/xtensa/lib2funcs.S: Likewise.
9453 * config/xtensa/linux-unwind.h: Likewise.
9454 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
9455 * config/xtensa/unwind-dw2-xtensa.h: Likewise.
9456 * coretypes.h: Likewise.
9457 * crtstuff.c: Likewise.
9458 * defaults.h: Likewise.
9459 * dwarf2.h: Likewise.
9460 * emutls.c: Likewise.
9461 * gbl-ctors.h: Likewise.
9462 * gcov-io.h: Likewise.
9463 * ginclude/float.h: Likewise.
9464 * ginclude/iso646.h: Likewise.
9465 * ginclude/stdarg.h: Likewise.
9466 * ginclude/stdbool.h: Likewise.
9467 * ginclude/stddef.h: Likewise.
9468 * ginclude/stdfix.h: Likewise.
9469 * ginclude/stdint-gcc.h: Likewise.
9470 * ginclude/tgmath.h: Likewise.
9471 * gthr-aix.h: Likewise.
9472 * gthr-dce.h: Likewise.
9473 * gthr-gnat.c: Likewise.
9474 * gthr-gnat.h: Likewise.
9475 * gthr-lynx.h: Likewise.
9476 * gthr-mipssde.h: Likewise.
9477 * gthr-nks.h: Likewise.
9478 * gthr-posix.c: Likewise.
9479 * gthr-posix.h: Likewise.
9480 * gthr-posix95.h: Likewise.
9481 * gthr-rtems.h: Likewise.
9482 * gthr-single.h: Likewise.
9483 * gthr-solaris.h: Likewise.
9484 * gthr-tpf.h: Likewise.
9485 * gthr-vxworks.h: Likewise.
9486 * gthr-win32.h: Likewise.
9487 * gthr.h: Likewise.
9488 * libgcc2.c: Likewise.
9489 * libgcc2.h: Likewise.
9490 * libgcov.c: Likewise.
9491 * tsystem.h: Likewise.
9492 * typeclass.h: Likewise.
9493 * unwind-c.c: Likewise.
9494 * unwind-compat.h: Likewise.
9495 * unwind-dw2-fde-compat.c: Likewise.
9496 * unwind-dw2-fde-darwin.c: Likewise.
9497 * unwind-dw2-fde-glibc.c: Likewise.
9498 * unwind-dw2-fde.c: Likewise.
9499 * unwind-dw2-fde.h: Likewise.
9500 * unwind-dw2.c: Likewise.
9501 * unwind-dw2.h: Likewise.
9502 * unwind-generic.h: Likewise.
9503 * unwind-pe.h: Likewise.
9504 * unwind-sjlj.c: Likewise.
9505 * unwind.inc: Likewise.
9506 * config/arm/neon-gen.ml: Change generated copyright header to
9507 refer to version 3 of the GNU General Public License with
9508 version 3.1 of the GCC Runtime Library Exception and to point
9509 readers at the COPYING3 and COPYING3.RUNTIME files and the
9510 FSF's license web page.
9511 * config/arm/arm_neon.h: Regenerate.
9512
95132009-04-09 Jakub Jelinek <jakub@redhat.com>
9514
9515 * config/cris/cris.md: Change copyright header to refer to version
9516 3 of the GNU General Public License.
9517 * doc/install.texi2html: Change copyright header to refer to version
9518 3 of the GNU General Public License and to point readers at the
9519 COPYING3 file and the FSF's license web page.
9520 * config/vax/linux.h: Likewise.
9521
4a77c72b
PB
95222009-04-09 Paolo Bonzini <bonzini@gnu.org>
9523
1ad2f450
L
9524 * config/i386/i386.md (cmpcc): New.
9525 * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
9526 (sync_compare_and_swap_cc*): Delete.
9527
9528 * config/s390/s390.c (s390_compare_emitted): Remove.
9529 (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
9530 s390_compare_emitted used to be handled. Assert that modes match.
9531 (s390_emit_compare_and_swap): Use s390_emit_compare, do not
9532 refer to sync_compare_and_swap_ccsi.
9533 * config/s390/s390.h (s390_compare_emitted): Remove.
9534 * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
9535 instead of s390_compare_emitted.
9536 (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
9537 instead of s390_compare_emitted.
9538 * config/s390/s390.md (cmpcc): New.
9539 (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
9540 CC_REGNUM, do not pretend it's set.
9541 (sync_compare_and_swap_cc*): Delete.
9542 * config/s390/predicates.md (cc_reg_operand): New.
9543
9544 * expr.c (sync_compare_and_swap_cc): Delete.
9545 * optabs.h (sync_compare_and_swap_cc): Delete.
9546 * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
9547 is being used with can_compare_p.
9548 (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
9549 (find_cc_set): New.
9550 (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
9551 look for a MODE_CC set instead. Use emit_store_flag.
9552 (expand_compare_and_swap_loop): Likewise, with some additional
9553 complication to avoid a force_reg when useless. Use
9554 emit_cmp_and_jump_insns.
9555 * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
9556 * doc/md.texi (sync_compare_and_swap_cc): Merge with
9557 sync_compare_and_swap documentation.
4a77c72b 9558
0c0efb33
JH
95592009-04-09 Jan Hubicka <jh@suse.cz>
9560
9561 * except.c (find_prev_try): Break out from ....
9562 (duplicate_eh_regions): ... here; properly update prev_try pointers
9563 when duplication part of tree.
9564 (dump_eh_tree): Improve dumping.
9565 (verify_eh_region): New.
9566 (verify_eh_tree): Use it.
9567
22a65a54
RG
95682009-04-06 Richard Guenther <rguenther@suse.de>
9569
9570 * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
9571 &ARRAY addresses by adjusting their types and prepending
9572 a conversion.
9573 * tree-cfg.c (verify_gimple_assign_single): Verify that
9574 addresses are correct.
9575
f76968e6
RG
95762009-04-09 Richard Guenther <rguenther@suse.de>
9577
9578 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
9579 indices into an array reference if possible.
9580 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
9581 Fold POINTER_PLUS_EXPR statements with invariant address.
9582
c90c5fb5
AM
95832009-04-09 Alan Modra <amodra@bigpond.net.au>
9584
9585 PR target/39634
9586 * config.gcc (powerpc64-*-linux*): Always build biarch.
9587
17cede2e
JM
95882009-04-09 Joseph Myers <joseph@codesourcery.com>
9589
9590 PR c/39613
9591 * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
9592 it and pedwarn if this results in an INTEGER_CST.
9593
a3337ea2
KG
95942009-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9595
9596 * doc/install.texi: Update minimum GMP version. Remove obsolete
9597 text in MPFR section.
9598
ce9ba79b
JJ
95992009-04-08 Jakub Jelinek <jakub@redhat.com>
9600
9601 * dwarf2out.c (class_scope_p): New static inline.
9602 (class_or_namespace_scope_p): Use it.
9603 (gen_variable_die): Use DW_TAG_member tag for static data member
9604 declarations instead of DW_TAG_variable.
9605
4f0ae266
JJ
9606 PR middle-end/39573
9607 * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
9608 variables.
9609
d27f0ddc
RG
96102009-04-08 Richard Guenther <rguenther@suse.de>
9611
9612 * tree-ssa-sccvn.c (valueize_refs): Do not continue to
9613 valueize random data.
9614
557cc596
DE
96152009-04-08 David Edelsohn <edelsohn@gnu.org>
9616
9617 * config.gcc (aix tm_file): Add aix-stdint.h.
9618 (aix tm clause use_gcc_stdint): Set to wrap.
9619 * config/rs6000/aix-stdint.h: New file.
2ba9daa7 9620
75ccc1e7
RG
96212009-04-08 Richard Guenther <rguenther@suse.de>
9622
9623 PR middle-end/36291
9624 * tree-dfa.c (add_referenced_var): Do not recurse into
9625 global initializers.
9626 * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
9627 exposed variables.
9628 (fold_const_aggregate_ref): Likewise.
9629
c6963675
PB
96302009-04-08 Paolo Bonzini <bonzini@gnu.org>
9631
6c44cf79
L
9632 * recog.c (ordered_comparison_operator): New.
9633 * gensupport.c (std_preds): Add it.
c6963675
PB
9634 * doc/md.texi (Machine-Independent Predicates): Document it.
9635
6d07ad98
JH
96362009-04-08 Jan Hubicka <jh@suse.cz>
9637
9638 * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
9639 * function.h (rtl_eh): Remove exception_handler_label_map.
9640 * except.c (ehl_hash, ehl_eq, add_ehl_entry,
9641 remove_exception_handler_label, for_each_eh_label_1): Remove.
9642 (rtl_remove_unreachable_regions): Remove.
9643 (convert_from_eh_region_ranges): Do not remove unreachable regions.
9644 (find_exception_handler_labels): Don't build the hashtable.
9645 (maybe_remove_eh_handler): Remove.
9646 (for_each_eh_label): Rewrite to walk the tree.
9647 (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
9648 * except.h (maybe_remove_eh_handler): Remove.
9649 * passes.c (init_optimization_passes): Schedule second EH cleanup
9650 before out-of-ssa.
9651 * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
9652 cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
9653
7ddf71e3
PB
96542009-04-08 Paolo Bonzini <bonzini@gnu.org>
9655
9656 * genoutput.c (validate_optab_operands): New.
9657 (gen_insn, gen_expand): Call it.
9658
9659 * genflags.c (gen_insn): Detect misused iterators.
9660 (main): Pass line_no to gen_insn, exit with status 1 on error.
9661
9662 * genextract.c (line_no): Make global.
9663 (VEC_safe_set_locstr): Change assertion to error message.
9664 (main): Exit with status 1 on error.
9665
4d84fe7c
JM
96662009-04-08 Joseph Myers <joseph@codesourcery.com>
9667
9668 PR c/39614
9669 PR c/39673
9670 * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
9671 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
9672 EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
9673 * c-convert.c (convert): Do not call fold on results of conversion
9674 functions when the result is a C_MAYBE_CONST_EXPR.
9675 * c-parser.c (c_parser_postfix_expression): Do not fold condition
9676 of __builtin_choose_expr.
9677 * c-typeck.c (remove_c_maybe_const_expr): New.
9678 (build_unary_op, build_conditional_expr, build_compound_expr,
9679 build_binary_op, c_objc_common_truthvalue_conversion): Call
9680 remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
9681 integer operands.
9682
60839f5d 96832009-04-08 Bingfeng Mei <bmei@broadcom.com>
d1d1c602 9684
2ba9daa7 9685 * fold-const.c (const_binop): Combine two VECTOR_CST under operation
6c44cf79 9686 CODE to produce a new one. Add a prototype to use fold_convert_const
d1d1c602 9687
8e481a2c
DS
96882009-04-08 Danny Smith <dannysmith@users.sourceforge.net>
9689
9690 PR bootstrap/39660
9691 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
9692 mix declarations and code.
9693
ee618c17
BE
96942009-04-08 Ben Elliston <bje@au.ibm.com>
9695
9696 * gcc.c: Replace `CC' with `GCC' throughout.
9697
f2a758a2
L
96982009-04-07 H.J. Lu <hongjiu.lu@intel.com>
9699
9700 * doc/invoke.texi: Document Atom support.
9701
6ea2bd47
JM
97022009-04-07 Jason Merrill <jason@redhat.com>
9703
9704 PR c++/25185
9705 * c-common.h, c-common.c: Add flag_pretty_templates.
9706 * c-opts.c (c_common_handle_option): Set it.
9707 * c.opt: Add -fno-pretty-templates.
9708 * doc/invoke.texi (C++ Dialect Options): Likewise.
9709
fcb82ab0
UB
97102009-04-07 Uros Bizjak <ubizjak@gmail.com>
9711
9712 * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
9713 (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
9714 (ia64_expand_builtin): Likewise.
9715
dc5e7298
MJ
97162009-04-07 Martin Jambor <mjambor@suse.cz>
9717
9718 * tree-ssa-alias.c (refs_may_alias_p_1): Check for
9719 is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
9720 ADDR_EXPRS are include too.
9721
0609b355
RG
97222009-04-07 Richard Guenther <rguenther@suse.de>
9723
9724 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
9725 decls are only used if passes as parameters or if they are
9726 local statics and the call is not to a builtin.
9727 (call_may_clobber_ref_p_1): Likewise.
9728
d8e535fa
PB
97292009-04-07 Paolo Bonzini <bonzini@gnu.org>
9730
9731 * expr.c (do_store_flag): Remove last argument. Simplify code
9732 to avoid duplication of tests already done by can_compare_p.
9733 (expand_expr_real_1): Adjust caller.
9734
c3c64f50
PB
97352009-04-07 Paolo Bonzini <bonzini@gnu.org>
9736
fcb82ab0
UB
9737 * optabs.c (can_compare_p): Test the predicate of a
9738 cbranch and cstore pattern.
c3c64f50 9739
9a53bc17
PB
97402009-04-07 Paolo Bonzini <bonzini@gnu.org>
9741
fcb82ab0
UB
9742 * expr.c (convert_move): Use emit_store_flag instead of
9743 "emulating" it.
9a53bc17 9744
67b8f1c1
PB
97452009-04-07 Paolo Bonzini <bonzini@gnu.org>
9746
fcb82ab0
UB
9747 * config/i386/i386.c (ix86_compare_emitted): Remove.
9748 (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
9749 ix86_compare_op0 like ix86_compare_emitted used to be handled.
9750 * config/i386/i386.h (ix86_compare_emitted): Remove.
9751 * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
9752 instead of ix86_compare_emitted.
9753 * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
67b8f1c1 9754
44509946
AS
97552009-04-07 Andrew Stubbs <ams@codesourcery.com>
9756
9757 * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
9758 Add t-sysroot-suffix to tmake_file.
9759 * config/print-sysroot-suffix.sh: New file.
9760 * config/t-sysroot-suffix: New file.
9761
ca22d882
BE
97622009-04-07 Ben Elliston <bje@au.ibm.com>
9763
9764 * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
9765 as the latter produces a warning when the target does not support
9766 infinity.
9767
95aac11b
BE
97682009-04-07 Ben Elliston <bje@au.ibm.com>
9769
9770 * dfp.c: Replace type punning assignments with memcpy throughout.
9771 * Makefile.in (dfp.o-warn): Remove.
2ba9daa7 9772
633dd061
AM
97732009-04-07 Alan Modra <amodra@bigpond.net.au>
9774
9775 PR target/39634
9776 * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
9777 Include soft-fp/t-softfp after rs6000/t-linux64.
9778
fe0a25ec
EB
97792009-04-06 Eric Botcazou <ebotcazou@adacore.com>
9780
9781 * stor-layout.c (set_sizetype): Use the full precision of their
9782 machine mode for bitsize types.
9783
0c011bc3
L
97842009-04-06 H.J. Lu <hongjiu.lu@intel.com>
9785
9786 * config/i386/i386.md: Revert 2 accidental checkins.
9787
b6837b94 97882009-04-06 Joey Ye <joey.ye@intel.com>
60839f5d 9789 Xuepeng Guo <xuepeng.guo@intel.com>
b6837b94
JY
9790 H.J. Lu <hongjiu.lu@intel.com>
9791
9792 Atom pipeline model, tuning and insn selection.
9793 * config.gcc (atom): Add atom config options and target.
9794
9795 * config/i386/atom.md: New.
9796
9797 * config/i386/i386.c (atom_cost): New cost.
9798 (m_ATOM): New macro flag.
9799 (initial_ix86_tune_features): Set m_ATOM.
9800 (x86_accumulate_outgoing_args): Likewise.
9801 (x86_arch_always_fancy_math_387): Likewise.
9802 (processor_target): Add Atom cost.
9803 (cpu_names): Add Atom cpu name.
9804 (override_options): Set Atom ISA.
9805 (ix86_issue_rate): New case PROCESSOR_ATOM.
9806 (ix86_adjust_cost): Likewise.
9807
9808 * config/i386/i386.h (TARGET_ATOM): New target macro.
9809 (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
9810 (TARGET_OPT_AGU): New target option.
9811 (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
9812 (processor_type): Add PROCESSOR_ATOM.
9813
9814 * config/i386/i386.md (cpu): Add new value "atom".
9815 (use_carry, movu): New attr.
9816 (atom.md): Include atom.md.
9817 (adddi3_carry_rex64): Set attr "use_carry".
9818 (addqi3_carry): Likewise.
9819 (addhi3_carry): Likewise.
9820 (addsi3_carry): Likewise.
9821 (*addsi3_carry_zext): Likewise.
9822 (subdi3_carry_rex64): Likewise.
9823 (subqi3_carry): Likewise.
9824 (subhi3_carry): Likewise.
9825 (subsi3_carry): Likewise.
9826 (x86_movdicc_0_m1_rex64): Likewise.
9827 (*x86_movdicc_0_m1_se): Likewise.
9828 (x86_movsicc_0_m1): Likewise.
9829 (*x86_movsicc_0_m1_se): Likewise.
9830 (*adddi_1_rex64): Emit add insn as much as possible.
9831 (*addsi_1): Likewise.
9832 (return_internal): Set atom_unit.
9833 (return_internal_long): Likewise.
9834 (return_pop_internal): Likewise.
9835 (*rcpsf2_sse): Set atom_sse_attr attr.
9836 (*qrt<mode>2_sse): Likewise.
9837 (*prefetch_sse): Likewise.
9838
9839 * config/i386/i386-c.c (ix86_target_macros_internal): New case
9840 PROCESSOR_ATOM.
9841 (ix86_target_macros_internal): Likewise.
9842
9843 * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
9844 (*prefetch_sse_rex): Likewise.
9845 (sse_rcpv4sf2): Likewise.
9846 (sse_vmrcpv4sf2): Likewise.
9847 (sse_sqrtv4sf2): Likewise.
9848 (<sse>_vmsqrt<mode>2): Likewise.
9849 (sse_ldmxcsr): Likewise.
9850 (sse_stmxcsr): Likewise.
9851 (*sse_sfence): Likewise.
9852 (sse2_clflush): Likewise.
9853 (*sse2_mfence): Likewise.
9854 (*sse2_lfence): Likewise.
9855 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
9856 (<sse>_movup<ssemodesuffixf2c>): Likewise.
9857 (avx_movdqu<avxmodesuffix>): Likewise.
9858 (avx_lddqu<avxmodesuffix>): Likewise.
9859 (sse2_movntv2di): Change attr "type" to "ssemov".
9860 (sse2_movntsi): Likewise.
9861 (rsqrtv8sf2): Change attr "type" to "sseadd".
9862 (sse3_addsubv2df3): Set attr "atom_unit".
9863 (sse3_h<plusminus_insn>v4sf3): Likewise.
9864 (*sse2_pmaddwd): Likewise.
9865 (*vec_extractv2di_1_rex64): Likewise.
9866 (*vec_extractv2di_1_avx): Likewise.
9867 (sse2_psadbw): Likewise.
9868 (ssse3_phaddwv8hi3): Likewise.
9869 (ssse3_phaddwv4hi3): Likewise.
9870 (ssse3_phadddv4si3): Likewise.
9871 (ssse3_phadddv2si3): Likewise.
9872 (ssse3_phaddswv8hi3): Likewise.
9873 (ssse3_phaddswv4hi3): Likewise.
9874 (ssse3_phsubwv8hi3): Likewise.
9875 (ssse3_phsubwv4hi3): Likewise.
9876 (ssse3_phsubdv4si3): Likewise.
9877 (ssse3_phsubdv2si3): Likewise.
9878 (ssse3_phsubswv8hi3): Likewise.
9879 (ssse3_phsubswv4hi3): Likewise.
9880 (ssse3_pmaddubsw128): Likewise.
9881 (sse3_pmaddubsw: Likewise.
9882 (ssse3_palignrti): Likewise.
9883 (ssse3_palignrdi): Likewise.
9884
53e350d3
GP
98852009-04-06 Gerald Pfeifer <gerald@pfeifer.com>
9886
9887 * doc/install.texi (Specific): Fix two cross-references to MinGW.
9888
439ef907
RG
98892009-04-06 Richard Guenther <rguenther@suse.de>
9890
9891 PR tree-optimization/28868
9892 * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
9893 of which PHI results we inserted.
9894 (insert_into_preds_of_block): Record inserted PHIs.
9895 (eliminate): Eliminate redundant PHI nodes.
9896 (init_pre): Init inserted_phi_names.
9897
4bad83f5
RG
98982009-04-06 Richard Guenther <rguenther@suse.de>
9899
9900 PR tree-optimization/39643
9901 * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
9902 IMAGPART_EXPRs of complex constants.
9903 (execute_fold_all_builtins): If we folded a call queue
9904 TODO_update_address_taken.
9905
570c4247
JH
99062009-04-06 Jan Hubicka <jh@suse.cz>
9907
9908 PR middle-end/39659
9909 * except.c (remove_unreachable_regions): Propagate may_contain_throw
9910 flag.
9911
a460d7a1
AS
99122009-04-06 Andrew Stubbs <ams@codesourcery.com>
9913
9914 * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
9915 delay slot.
9916 (ic_invalidate_array): Likewise.
9917
60839f5d 99182009-04-06 Hariharan Sandanagobalane <hariharan@picochip.com>
6bdf8c2e
HS
9919
9920 * calls.c (emit_library_call_value_1): Fix a problem with parameter
9921 alignment for library calls.
9922
7d253f6e
DS
99232009-04-06 Danny Smith <dannysmith@users.sourceforge.net>
9924
9925 * config.gcc (mingw32 tm_file): Add mingw-stdint.h.
9926 (mingw32 tm clause use_gcc_stdint): Set to wrap.
9927 * config/i386/mingw-stdint.h: New file.
9928
941c3614
RB
99292009-04-05 Richard Guenther <rguenther@suse.de>
9930
9931 PR tree-optimization/39648
9932 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
9933 our &A vs. &A[0] IL deficiencies.
9934
12633413
JH
99352009-04-04 Jan Hubicka <jh@suse.cz>
9936
941c3614
RB
9937 * except.c (sjlj_find_directly_reachable_regions): Be ready for
9938 removed toplevel regions.
12633413
JH
9939 (sjlj_mark_call_sites): Likewise.
9940
bb2aaded
DK
99412009-04-04 Dave Korn <dave.korn.cygwin@gmail.com>
9942
9943 * config.gcc (cygwin tm_file): Add cygwin-stdint.h.
9944 (cygwin tm clause use_gcc_stdint): Set to wrap.
9945 * config/i386/cygwin-stdint.h: New file.
9946
86290011
RG
99472009-04-04 Richard Guenther <rguenther@suse.de>
9948
9949 * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
9950 * tree-ssa-copy.c (init_copy_prop): Do not propagate through
9951 single-argument PHIs if we are in loop-closed SSA form.
9952 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
9953 for the pre-condition.
9954 (slpeel_tree_peel_loop_to_edge): Likewise.
9955 (vect_build_loop_niters): Take an optional sequence to append stmts.
9956 (vect_generate_tmps_on_preheader): Likewise.
9957 (vect_do_peeling_for_loop_bound): Take extra guards for the
9958 pre-condition.
9959 (vect_do_peeling_for_alignment): Adjust. Unconditionally apply
9960 the cost model check.
9961 (vect_loop_versioning): Take stmt and stmt list to put pre-condition
7a715bba 9962 guards if we are going to peel. Do not apply versioning in that case.
86290011
RG
9963 * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
9964 (vect_do_peeling_for_loop_bound): Likewise.
9965 * tree-vect-loop.c (vect_transform_loop): If we are peeling for
9966 loop bound only record extra pre-conditions, do not apply loop
9967 versioning.
9968
5eeeac64
RG
99692009-04-04 Richard Guenther <rguenther@suse.de>
9970
9971 * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
9972 renaming code.
9973
1ff7d06b
JH
99742009-04-04 Jan Hubicka <jh@suse.cz>
9975
9976 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
9977 last_basic_block for size of bb->index indexed array.
9978 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
9979 compute_out, link_btr_uses, build_btr_def_use_webs,
9980 build_btr_def_use_webs, migrate_btr_defs): Likewise.
9981
14925fcd
JH
99822009-04-04 Jan Hubicka <jh@suse.cz>
9983
9984 * except.c (remove_eh_handler_and_replace): Break out from ...
9985 (remove_eh_handler): ... here.
9986 (bring_to_root): New function.
9987 (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
9988 handled ones, bring others to root of tree.
9989
4e6d1743
JH
99902009-04-04 Jan Hubicka <jh@suse.cz>
9991
4cb735f7
JH
9992 * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
9993 (all_phis_safe_to_merge): New function.
9994 (update_info): New structure.
9995 (make_eh_edge_and_update_phi, update_eh_edges): New functions.
9996 (cleanup_empty_eh): Update SSA if possible.
4e6d1743 9997
c6803d43
RG
99982009-04-04 Richard Guenther <rguenther@suse.de>
9999
10000 * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
10001 * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
10002 (append_vuse): Likewise.
10003
54f5943c
JJ
100042009-04-04 Jakub Jelinek <jakub@redhat.com>
10005
10006 * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
10007 * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
10008 instead of REG_UNSAVED for DW_CFA_undefined.
10009 (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
10010 (uw_update_context): If RA column is REG_UNDEFINED, mark it as
10011 outermost frame.
10012
aad2bccb
RE
100132009-04-04 Richard Earnshaw <rearnsha@arm.com>
10014
10015 PR target/39501
10016 * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
10017 * testsuite/gcc.c-torture/execute/pr39501.c: New file.
10018 * testsuite/gcc.c-torture/execute/pr39501.x: New file.
10019
aa7069aa
RG
100202009-04-04 Richard Guenther <rguenther@suse.de>
10021
10022 PR tree-optimization/8781
10023 PR tree-optimization/37892
10024 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
10025 * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
10026 (valueize_refs): Call it for *& valueizations.
10027 (shared_reference_ops_from_ref): Rename to ...
10028 (valueize_shared_reference_ops_from_ref): ... this and valueize.
10029 (shared_reference_ops_from_call): Rename to ...
10030 (valueize_shared_reference_ops_from_call): ... this and valueize.
10031 (vn_reference_lookup): Update.
10032 (visit_reference_op_call): Likewise.
10033 * tree-ssa-pre.c (phi_translate_1): Fold *&.
10034 (eliminate): Value-replace the call address in call statements.
10035
cd15ad3e
RG
100362009-04-04 Richard Guenther <rguenther@suse.de>
10037
10038 PR tree-optimization/39636
10039 * tree-ssa-forwprop.c
10040 (forward_propagate_addr_into_variable_array_index): Check for
10041 GIMPLE_ASSIGN before accessing the rhs code.
10042
462f3262
JM
100432009-04-03 Jason Merrill <jason@redhat.com>
10044
10045 * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
10046
6adb807e
SE
100472009-04-03 Steve Ellcey <sje@cup.hp.com>
10048
10049 * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
10050 truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
10051 fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
10052 floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
10053 fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
10054 smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
10055 divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
10056 umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
10057 *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
10058 *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
10059 adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
10060 smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
10061 *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
10062 *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
10063 sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
10064 Use fr_reg_or_fp01_operand instead of fr_register_operand
10065
10066 * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
10067 recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
10068 divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
10069
174b3107
VM
100702009-04-03 Vladimir Makarov <vmakarov@redhat.com>
10071
b844e5d8
L
10072 PR rtl-optimization/39607
10073 PR rtl-optimization/39631
7a715bba
UB
10074
10075 Revert:
2ba9daa7 10076
174b3107
VM
10077 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
10078 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
10079 instead of DF_LR_OUT.
10080 * ira-lives.c (process_bb_node_lives): Ditto.
10081 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
10082 instead of DF_LR_{OUT,IN}.
10083 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
10084 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
10085
535b544a
SB
100862009-04-03 Steven Bosscher <steven@gcc.gnu.org>
10087
10088 * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
10089 (execute_lower_omp): Always run but take the short way out if -fopenmp
10090 is not given.
10091 (gate_lower_omp): Remove, forcing the pass manager to always run the
10092 pass and always set PROP_gimple_lomp.
10093 (pass_lower_omp): Remove gate function.
10094 * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
10095 PROP_trees. Instead, require it.
10096 * ipa-cp.c (pass_ipa_cp): Likewise.
10097 * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
10098 (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
10099 * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
10100 and PROP_gimple_leh.
10101
5006671f
RG
101022009-04-03 Richard Guenther <rguenther@suse.de>
10103
10104 PR middle-end/13146
10105 PR tree-optimization/23940
10106 PR tree-optimization/33237
10107 PR middle-end/33974
10108 PR middle-end/34093
10109 PR tree-optimization/36201
10110 PR tree-optimization/36230
10111 PR tree-optimization/38049
10112 PR tree-optimization/38207
10113 PR tree-optimization/38230
10114 PR tree-optimization/38301
10115 PR tree-optimization/38585
10116 PR middle-end/38895
10117 PR tree-optimization/38985
10118 PR tree-optimization/39299
10119 * tree-ssa-structalias.h: Remove.
10120 * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
10121 (NULL_DEF_OPERAND_P): Make of type def_operand_p.
10122 (struct vuse_element_d): Remove.
10123 (struct vuse_vec_d): Likewise.
10124 (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
10125 VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
10126 SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
10127 VUSE_ELEMENT_VAR): Likewise.
10128 (struct voptype_d): Likewise.
10129 (NUM_VOP_FREE_BUCKETS): Likewise.
10130 (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
10131 (struct stmt_operands_d): Remove.
10132 (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
10133 VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
10134 VDEF_NUM, VDEF_VECT): Likewise.
10135 (copy_virtual_operands): Remove.
10136 (operand_build_cmp): Likewise.
10137 (create_ssa_artificial_load_stmt): Likewise.
10138 (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
10139 (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
10140 vuse_index and mayuse_index members. Pack and move done and iter_type
10141 members to the front.
10142 (SSA_OP_VMAYUSE): Remove.
10143 (SSA_OP_VIRTUAL_USES): Adjust.
10144 (FOR_EACH_SSA_VDEF_OPERAND): Remove.
10145 (unlink_stmt_vdef): Declare.
10146 (add_to_addressable_set): Remove.
10147 * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
10148 (vrp_visit_stmt): Likewise.
10149 * doc/tree-ssa.texi (Alias analysis): Update.
10150 * doc/invoke.texi (max-aliased-vops): Remove docs.
10151 (avg-aliased-vops): Likewise.
10152 * tree-into-ssa.c (syms_to_rename): Remove.
10153 (need_to_update_vops_p): Likewise.
10154 (need_to_initialize_update_ssa_p): Rename to ...
10155 (update_ssa_initialized_fn): ... this. Track function we are
10156 initialized for.
10157 (symbol_marked_for_renaming): Simplify.
10158 (add_new_name_mapping): Do not set need_to_update_vops_p.
10159 (dump_currdefs): Use SYMS_TO_RENAME.
10160 (rewrite_update_stmt): Always walk all uses/defs.
10161 (dump_update_ssa): Adjust.
10162 (init_update_ssa): Take function argument. Track what we are
10163 initialized for.
10164 (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
10165 (create_new_def_for): Initialize for cfun, assert we are initialized
10166 for cfun.
10167 (mark_sym_for_renaming): Simplify.
10168 (mark_set_for_renaming): Do not initialize update-ssa.
10169 (need_ssa_update_p): Simplify. Take function argument.
10170 (name_mappings_registered_p): Assert we ask for the correct function.
10171 (name_registered_for_update_p): Likewise.
10172 (ssa_names_to_replace): Likewise.
10173 (release_ssa_name_after_update_ssa): Likewise.
10174 (update_ssa): Likewise. Use SYMS_TO_RENAME.
10175 (dump_decl_set): Do not print a newline.
10176 (debug_decl_set): Do it here.
10177 (dump_update_ssa): And here.
10178 * tree-ssa-loop-im.c (move_computations): Adjust.
10179 (movement_possibility): Likewise.
10180 (determine_max_movement): Likewise.
10181 (gather_mem_refs_stmt): Likewise.
10182 * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
10183 or NAME_MEMORY_TAG.
10184 * tree-complex.c (update_all_vops): Remove.
10185 (expand_complex_move): Adjust.
10186 * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
10187 Simplify test for memory referencing statement. Exclude
10188 non-invariant ADDR_EXPRs.
10189 * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
10190 * tree-loop-distribution.c (generate_memset_zero): Adjust.
10191 (rdg_flag_uses): Likewise.
10192 * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
10193 related code.
10194 (tree_optimize_tail_calls_1): Also split the
10195 edge from the entry block if we have degenerate PHI nodes in
10196 the first basic block.
10197 * tree.c (init_ttree): Remove memory-tag related code.
10198 (tree_code_size): Likewise.
10199 (tree_node_structure): Likewise.
10200 (build7_stat): Re-write to be build6_stat.
10201 * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
10202 (SSA_VAR_P): Adjust.
10203 (struct tree_memory_tag): Remove.
10204 (struct tree_memory_partition_tag): Likewise.
10205 (union tree_node): Adjust.
10206 (build7): Re-write to be build6.
10207 * tree-pass.h (pass_reset_cc_flags): Remove.
10208 (TODO_update_address_taken): New flag.
10209 (pass_simple_dse): Remove.
10210 * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
10211 * params.h (MAX_ALIASED_VOPS): Remove.
10212 (AVG_ALIASED_VOPS): Likewise.
10213 * omp-low.c (expand_omp_taskreg): Update SSA form.
10214 * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
10215 aliases the lhs in a copy stmt.
10216 * tree-ssa-dse.c (struct address_walk_data): Remove.
10217 (memory_ssa_name_same): Likewise.
10218 (memory_address_same): Likewise.
10219 (get_kill_of_stmt_lhs): Likewise.
10220 (dse_possible_dead_store_p): Simplify, use the oracle. Handle
10221 unused stores. Look through PHI nodes into post-dominated regions.
10222 (dse_optimize_stmt): Simplify. Properly remove stores.
10223 (tree_ssa_dse): Compute dominators.
10224 (execute_simple_dse): Remove.
10225 (pass_simple_dse): Likewise.
10226 * ipa-reference.c (scan_stmt_for_static_refs): Open-code
10227 gimple_loaded_syms and gimple_stored_syms computation.
10228 * toplev.c (dump_memory_report): Dump alias and pta stats.
10229 * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
10230 (vn_reference_eq): Likewise.
10231 (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
10232 copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
10233 valueize_vuses): Remove.
10234 (get_def_ref_stmt_vuses): Simplify. Rename to ...
10235 (get_def_ref_stmt_vuse): ... this.
10236 (vn_reference_lookup_2): New function.
10237 (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
10238 walking equivalent vuses. Simplify.
10239 (vn_reference_lookup): Likewise.
10240 (vn_reference_insert): Likewise.
10241 (vn_reference_insert_pieces): Likewise.
10242 (visit_reference_op_call): Simplify.
10243 (visit_reference_op_load): Likewise.
10244 (visit_reference_op_store): Likewise.
10245 (init_scc_vn): Remove shared_lookup_vuses initialization.
10246 (free_scc_vn): Remove shared_lookup_vuses freeing.
10247 (sort_vuses, sort_vuses_heap): Remove.
10248 (get_ref_from_reference_ops): Export.
10249 * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
10250 vector with single vuse pointer.
10251 (vn_reference_lookup_pieces, vn_reference_lookup,
10252 vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
10253 (shared_vuses_from_stmt): Remove.
10254 (get_ref_from_reference_ops): Declare.
10255 * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
10256 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
10257 memory-tag related code.
10258 * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
10259 (likely_value): Add comment, skip static-chain of call statements.
10260 (surely_varying_stmt_p): Adjust.
10261 (gimplify_and_update_call_from_tree): Likewise.
10262 (execute_fold_all_builtins): Do not rebuild alias info.
10263 (gimplify_and_update_call_from_tree): Properly update VOPs.
10264 * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
10265 (copy_ref_info): Remove memory-tag related code.
10266 * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
10267 * ipa-pure-const.c (check_decl): Remove memory-tag related code.
10268 (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
10269 computation.
10270 * tree-ssa-dom.c (gimple_p): Remove typedef.
10271 (eliminate_redundant_computations): Adjust.
10272 (record_equivalences_from_stmt): Likewise.
10273 (avail_expr_hash): Likewise.
10274 (avail_expr_eq): Likewise.
7a715bba 10275 * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
5006671f
RG
10276 (stmt_makes_single_load): Likewise.
10277 (stmt_makes_single_store): Likewise.
10278 * tree-ssa-alias.c: Rewrite completely.
10279 (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
10280 debug_mem_sym_stats, dump_mem_sym_stats_for_var,
10281 debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
10282 delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
10283 dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
10284 Remove public functions.
10285 (pass_reset_cc_flags): Remove.
10286 (pass_build_alias): Move ...
10287 * tree-ssa-structalias.c (pass_build_alias): ... here.
10288 * tree-ssa-alias.c (may_be_aliased): Move ...
10289 * tree-flow-inline.h (may_be_aliased): ... here.
10290 tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
10291 count_uses_and_derefs): Move ...
10292 * gimple.c: ... here.
10293 * gimple.h (count_uses_and_derefs): Declare.
10294 * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
10295 ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
10296 same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
10297 indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
10298 ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
10299 call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
10300 get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
10301 New functions.
10302 * tree-dfa.c (refs_may_alias_p): Move ...
10303 * tree-ssa-alias.c (refs_may_alias_p): ... here. Extend.
10304 * tree-ssa-alias.h: New file.
10305 * tree-ssa-sink.c (is_hidden_global_store): Adjust.
10306 (statement_sink_location): Likewise.
10307 * opts.c (decode_options): Do not adjust max-aliased-vops or
10308 avg-aliased-vops values.
10309 * timevar.def (TV_TREE_MAY_ALIAS): Remove.
10310 (TV_CALL_CLOBBER): Likewise.
10311 (TV_FLOW_SENSITIVE): Likewise.
10312 (TV_FLOW_INSENSITIVE): Likewise.
10313 (TV_MEMORY_PARTITIONING): Likewise.
10314 (TV_ALIAS_STMT_WALK): New timevar.
10315 * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
10316 * tree-ssa-address.c (create_mem_ref_raw): Use build6.
10317 (get_address_description): Remove memory-tag related code.
10318 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
10319 * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
10320 * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
10321 and immediate uses in statements. Document.
10322 * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
10323 (dump_symbols): Remove.
10324 (dump_gimple_mem_ops): Do not dump loaded or stored syms.
10325 * alias.c (get_deref_alias_set): New function split out from ...
10326 (get_alias_set): ... here.
10327 * alias.h (get_deref_alias_set): Declare.
10328 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
10329 type parameter. Remove restrict pointer handling. Create a
10330 ref-all pointer in case type-based alias sets do not conflict.
10331 (vect_analyze_data_refs): Remove SMT related code.
10332 * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
10333 (vectorizable_load): Likewise.
10334 * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
10335 (DR_SYMBOL_TAG, DR_VOPS): Remove.
10336 * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
10337 Ignore vops and SMTs.
10338 (dr_analyze_alias): Likewise..
10339 (free_data_ref): Likewise.
10340 (create_data_ref): Likewise.
10341 (analyze_all_data_dependences): Likewise.
10342 (get_references_in_stmt): Adjust.
10343 * tree-flow-inline.h (gimple_aliases_computed_p,
10344 gimple_addressable_vars, gimple_call_clobbered_vars,
10345 gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
10346 factoring_name_p, mark_call_clobbered, clear_call_clobbered,
10347 compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
10348 gimple_mem_ref_stats): Remove.
10349 (gimple_vop): New function.
10350 (op_iter_next_use): Remove vuses and mayuses cases.
10351 (op_iter_next_def): Remove vdefs case.
10352 (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
10353 (clear_and_done_ssa_iter): Do not set removed fields.
10354 (op_iter_init): Likewise. Skip vuse and/or vdef if requested.
10355 Assert we are not iterating over vuses or vdefs if not also
10356 iterating over uses or defs.
10357 (op_iter_init_use): Likewise.
10358 (op_iter_init_def): Likewise.
10359 (op_iter_next_vdef): Remove.
10360 (op_iter_next_mustdef): Likewise.
10361 (op_iter_init_vdef): Likewise.
10362 (compare_ssa_operands_equal): Likewise.
10363 (link_use_stmts_after): Handle vuse operand.
10364 (is_call_used): Use is_call_clobbered.
10365 (is_call_clobbered): Global variables are always call clobbered,
10366 query the call-clobbers bitmap.
10367 (mark_call_clobbered): Ignore global variables.
10368 (clear_call_clobbered): Likewise.
10369 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
10370 virtual operands sanity check.
10371 * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
10372 Remove.
10373 (TARGET_MEM_REF): Remove TMR_TAG operand.
10374 * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
10375 Remove call-clobber related code.
10376 (remove_referenced_var): Likewise. Do not clear mpt or symbol_mem_tag.
10377 (dump_variable): Do not dump SMTs, memory stats, may-aliases or
10378 partitions or escape reason.
10379 (get_single_def_stmt, get_single_def_stmt_from_phi,
10380 get_single_def_stmt_with_phi): Remove.
10381 (dump_referenced_vars): Tidy.
10382 (get_ref_base_and_extent): Allow bare decls.
10383 (collect_dfa_stats): Adjust.
10384 * graphite.c (rename_variables_in_stmt): Adjust.
10385 (graphite_copy_stmts_from_block): Likewise.
10386 (translate_clast): Likewise.
10387 * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
10388 (EXPR_DIES): New.
10389 (translate_vuse_through_block): Use the oracle.
10390 (phi_translate_1): Adjust.
10391 (value_dies_in_block_x): Use the oracle. Cache the outcome
10392 in EXPR_DIES.
10393 (valid_in_sets): Check if the VUSE for
10394 a REFERENCE is available.
10395 (eliminate): Do not remove stmts during elimination,
10396 instead queue and remove them afterwards.
10397 (do_pre): Do not rebuild alias info.
10398 (pass_pre): Run TODO_rebuild_alias before PRE.
10399 * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
10400 * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
10401 (mark_all_v_defs_stmt): Remove.
10402 (mark_all_v_defs_seq): Adjust.
10403 (sra_replace): Likewise.
10404 (scalarize_use): Likewise.
10405 (scalarize_copy): Likewise.
10406 (scalarize_init): Likewise.
10407 (scalarize_ldst): Likewise.
10408 (todoflags): Remove.
10409 (tree_sra): Do not rebuild alias info.
10410 (tree_sra_early): Adjust.
10411 (pass_sra): Run TODO_update_address_taken before SRA.
10412 * tree-predcom.c (set_alias_info): Remove.
10413 (prepare_initializers_chain): Do not call it.
10414 (mark_virtual_ops_for_renaming): Adjust.
10415 (mark_virtual_ops_for_renaming_list): Remove.
10416 (initialize_root_vars): Adjust.
10417 (initialize_root_vars_lm): Likewise.
10418 (prepare_initializers_chain): Likewise.
10419 * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
10420 (may_propagate_copy_into_stmt): Likewise.
10421 (merge_alias_info): Do nothing for now.
10422 (propagate_tree_value_into_stmt): Adjust.
10423 (stmt_may_generate_copy): Likewise.
10424 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
10425 not mark symbols for renaming.
10426 (forward_propagate_addr_expr): Match up push/pop_stmt_changes
10427 with the same statement, make sure to update the new pointed-to one.
10428 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
10429 call statements, do not mark symbols for renaming.
10430 (mark_operand_necessary): Dump something.
10431 (ref_may_be_aliased): New function.
10432 (mark_aliased_reaching_defs_necessary_1): New helper function.
10433 (mark_aliased_reaching_defs_necessary): Likewise.
10434 (mark_all_reaching_defs_necessary_1): Likewise.
10435 (mark_all_reaching_defs_necessary): Likewise.
10436 (propagate_necessity): Do not process virtual PHIs. For
10437 non-aliased loads mark all reaching definitions as necessary.
10438 For aliased loads and stores mark the immediate dominating
10439 aliased clobbers as necessary.
10440 (visited): New global static.
10441 (perform_tree_ssa_dce): Free visited bitmap after propagating
10442 necessity.
10443 (remove_dead_phis): Perform simple dead virtual PHI removal.
10444 (remove_dead_stmt): Properly unlink virtual operands when
10445 removing stores.
10446 (eliminate_unnecessary_stmts): Schedule PHI removal after
10447 stmt removal.
10448 * tree-ssa-ter.c (is_replaceable_p): Adjust.
10449 (process_replaceable): Likewise.
10450 (find_replaceable_in_bb): Likewise.
10451 * tree-ssa.c (verify_ssa_name): Verify all VOPs are
10452 based on the single gimple vop.
10453 (verify_flow_insensitive_alias_info): Remove.
10454 (verify_flow_sensitive_alias_info): Likewise.
10455 (verify_call_clobbering): Likewise.
10456 (verify_memory_partitions): Likewise.
10457 (verify_alias_info): Likewise.
10458 (verify_ssa): Adjust..
10459 (execute_update_addresses_taken): Export. Update SSA
10460 manually. Optimize only when optimizing. Use a local bitmap.
10461 (pass_update_address_taken): Remove TODO_update_ssa, add
10462 TODO_dump_func.
10463 (pass_update_address_taken): Just use TODO_update_address_taken.
10464 (init_tree_ssa): Do not initialize addressable_vars.
10465 (verify_ssa): Verify new VUSE / VDEF properties.
10466 Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
10467 Do not call verify_alias_info.
10468 (delete_tree_ssa): Clear the VUSE, VDEF operands.
10469 Do not free the loaded and stored syms bitmaps. Reset the escaped
10470 and callused solutions. Do not free addressable_vars.
10471 Remove memory-tag related code.
10472 (warn_uninitialized_var): Aliases are always available.
10473 * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
10474 * lambda-code.c (can_put_in_inner_loop): Adjust.
10475 (can_put_after_inner_loop): Likewise.
10476 (perfect_nestify): Likewise.
10477 * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
10478 (vect_gen_widened_results_half): Remove CALL_EXPR handling.
10479 (vectorizable_conversion): Do not mark symbols for renaming.
10480 * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
10481 (expand_call_inline): Unlink the calls virtual operands before
10482 replacing it.
10483 (tree_function_versioning): Do not call update_ssa if we are not
10484 updating clones. Simplify.
10485 * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
10486 (propagate_with_phi): Likewise..
10487 * tree-outof-ssa.c (create_temp): Remove memory tag and call
10488 clobber code. Assert we are not aliased or global.
10489 * tree-flow.h: Include tree-ssa-alias.h
10490 (enum escape_type): Remove.
10491 (struct mem_sym_stats_d): Likewise.
10492 (struct mem_ref_stats_d): Likewise.
10493 (struct gimple_df): Add vop member. Remove global_var,
10494 call_clobbered_vars, call_used_vars, addressable_vars,
10495 aliases_compted_p and mem_ref_stats members. Add syms_to_rename,
10496 escaped and callused members.
10497 (struct ptr_info_def): Remove all members, add points-to solution
10498 member pt.
10499 (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
10500 call_clobbered, escape_mask, mpt and symbol_mem_tag members.
10501 * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
10502 (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
10503 (tree-ssa-alias.o): Likewise.
10504 (toplev.o): Add tree-ssa-alias.h
10505 (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
10506 * gimple.c (gimple_set_bb): Fix off-by-one error.
10507 (is_gimple_reg): Do not handle memory tags.
10508 (gimple_copy): Also copy virtual operands.
10509 Delay updating the statement. Do not reset loaded and stored syms.
10510 (gimple_set_stored_syms): Remove.
10511 (gimple_set_loaded_syms): Likewise.
10512 (gimple_call_copy_skip_args): Copy the virtual operands
10513 and mark the new statement modified.
10514 * tree-ssa-structalias.c (may_alias_p): Remove.
10515 (set_uids_in_ptset): Take the alias set to prune with as
10516 parameter. Fold in the alias test of may_alias_p.
10517 (compute_points_to_sets): Compute whether a ptr is dereferenced
10518 in a local sbitmap.
10519 (process_constraint): Deal with &ANYTHING on the lhs, reject all
10520 other ADDRESSOF constraints on the lhs.
10521 (get_constraint_for_component_ref): Assert that we don't get
10522 ADDRESSOF constraints from the base of the reference.
10523 Properly generate UNKNOWN_OFFSET for DEREF if needed.
10524 (struct variable_info): Remove collapsed_to member.
10525 (get_varinfo_fc): Remove.
10526 (new_var_info): Do not set collapsed_to.
10527 (dump_constraint): Do not follow cycles.
10528 (dump_constraint_graph): Likewise.
10529 (build_pred_graph): Likewise.
10530 (build_succ_graph): Likewise.
10531 (rewrite_constraints): Likewise.
10532 (do_simple_structure_copy): Remove.
10533 (do_rhs_deref_structure_copy): Remove.
10534 (do_lhs_deref_structure_copy): Remove.
10535 (collapse_rest_of_var): Remove.
10536 (do_structure_copy): Re-implement.
10537 (pta_stats): New global variable.
10538 (dump_pta_stats): New function.
10539 (struct constraint_expr): Make offset signed.
10540 (UNKNOWN_OFFSET): Define special value.
10541 (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
10542 (solution_set_expand): New helper function split out from ...
10543 (do_sd_constraint): ... here.
10544 (solution_set_add): Handle UNKNOWN_OFFSET. Handle negative offsets.
10545 (do_ds_constraint): Likewise.
10546 (do_sd_constraint): Likewise. Do not special-case ESCAPED = *ESCAPED
10547 and CALLUSED = *CALLUSED.
10548 (set_union_with_increment): Make inc argument signed.
10549 (type_safe): Remove.
10550 (get_constraint_for_ptr_offset): Handle unknown and negative
10551 constant offsets.
10552 (first_vi_for_offset): Handle offsets before start. Bail
10553 out early for offsets beyond the variable extent.
10554 (first_or_preceding_vi_for_offset): New function.
10555 (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
10556 Together with ESCAPED = *ESCAPED this properly computes reachability.
10557 (find_what_var_points_to): New function.
10558 (find_what_p_points_to): Implement in terms of find_what_var_points_to.
10559 (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
10560 pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
10561 pt_solutions_intersect): New functions.
10562 (compute_call_used_vars): Remove.
10563 (compute_may_aliases): New main entry into PTA computation.
10564 * gimple.h (gimple_p): New typedef.
10565 (struct gimple_statement_base): Remove references_memory_p.
10566 (struct gimple_statement_with_memory_ops_base): Remove
10567 vdef_ops, vuse_ops, stores and loads members. Add vdef and vuse
10568 members.
10569 (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
10570 gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
10571 gimple_set_references_memory): Remove.
10572 (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
10573 gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
10574 New functions.
10575 * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
10576 (verify_expr): Allow RESULT_DECL.
10577 (gimple_duplicate_bb): Do not copy virtual operands.
10578 (gimple_duplicate_sese_region): Adjust.
10579 (gimple_duplicate_sese_tail): Likewise.
10580 (mark_virtual_ops_in_region): Remove.
10581 (move_sese_region_to_fn): Do not call it.
10582 * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
10583 and pass_simple_dse.
10584 (execute_function_todo): Handle TODO_update_address_taken,
10585 call execute_update_addresses_taken for TODO_rebuild_alias.
10586 (execute_todo): Adjust.
10587 (execute_one_pass): Init dump files early.
10588 * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
10589 call-clobbered.
10590 (create_general_new_stmt): Clear vops.
10591 * tree-ssa-reassoc.c (get_rank): Adjust.
10592 * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
10593 symbols for renaming.
10594 * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
10595 (PARAM_AVG_ALIASED_VOPS): Likewise.
10596 * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
10597 (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
7a715bba 10598 * tree-ssa-operands.c: Simplify for new virtual operand representation.
5006671f
RG
10599 (operand_build_cmp, copy_virtual_operands,
10600 create_ssa_artificial_load_stmt, add_to_addressable_set,
10601 gimple_add_to_addresses_taken): Remove public functions.
10602 (unlink_stmt_vdef): New function.
10603
457d1d00
AM
106042009-04-03 Alan Modra <amodra@bigpond.net.au>
10605
10606 * config.gcc (powerpc-*-linux*): Merge variants.
10607
e19da24c 106082009-04-02 Chao-ying Fu <fu@mips.com>
60839f5d 10609 James Grosbach <james.grosbach@microchip.com>
e19da24c
CF
10610
10611 * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
10612 num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
10613 cop0_sp_offset.
10614 (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
10615 keep_interrupts_masked_p, use_debug_exception_return_p.
10616 (mips_attribute_table): Add interrupt, use_shadow_register_set,
10617 keep_interrupts_masked, use_debug_exception_return.
10618 (mips_interrupt_type_p, mips_use_shadow_register_set_p,
10619 mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
10620 New functions.
10621 (mips_function_ok_for_sibcall): Return false for interrupt handlers.
10622 (mips_print_operand): Process COP0 registers to print $0 .. $31
10623 correctly for GAS to process.
10624 (mips_interrupt_extra_call_saved_reg_p): New function.
10625 (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
10626 extra registers.
10627 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
10628 (mips_compute_frame_info): Add supports for interrupt context that
10629 includes doubleword accumulators and COP0 registers.
10630 (mips_for_each_saved_acc): New function.
10631 (mips_for_each_saved_gpr_and_fpr): Change the function name from
10632 mips_for_each_saved_reg.
10633 (mips_save_reg): Save accumulators.
10634 (mips_kernel_reg_p): A new for_each_rtx callback.
10635 (mips_expand_prologue): Support interrupt handlers.
10636 (mips_restore_reg): Restore accumulators.
10637 (mips_expand_epilogue): Support interrupt handlers.
10638 (mips_can_use_return_insn): Return false for interrupt handlers.
10639 (mips_epilogue_uses): New function.
10640 * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
10641 UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
10642 (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
10643 cop0_move): New instructions.
10644 * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
10645 * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
10646 defines.
10647 (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
10648 New defines.
10649 (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
10650 (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
10651 interrupt handlers, we use K0 as the temporary register.
10652 (EPILOGUE_USES): Change to a function call.
10653 * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
10654 handlers, we use K0 as the temporary register.
2ba9daa7 10655
e19da24c
CF
10656 * doc/extend.texi (Function Attributes): Document interrupt,
10657 use_shadow_register_set, keep_interrupts_masked,
10658 use_debug_exception_return for MIPS attributes.
10659
aa1ca044
AM
106602009-04-03 Alan Modra <amodra@bigpond.net.au>
10661
10662 * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
10663 Remove a number of t-files from tmake_file.
10664 * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
10665 * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
10666 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
10667 target_prototype, not TARGET_PROTOTYPE.
10668 (LINK_OS_GNU_SPEC): Define.
10669 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
10670 and darwin-ldoubdle.c.
10671
14fdc613
MM
106722009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
10673
10674 PR driver/39293
10675 * gcc.c (save_temps_flag): Add support for -save-temps=obj.
10676 (cpp_options): Ditto.
10677 (default_compilers): Ditto.
10678 (display_help): Ditto.
10679 (process_command): Ditto.
10680 (do_spec_1): Ditto.
10681 (set_input): Use lbasename instead of duplicate code.
10682 (save_temps_prefix): New static for -save-temps=obj.
10683 (save_temps_length): Ditto.
2ba9daa7 10684
14fdc613
MM
10685 * doc/invoke.texi (-save-temps=obj): Document new variant to
10686 -save-temps switch.
10687
d3aa398e
JL
106882009-04-02 Jeff Law <law@redhat.com>
10689
10690 * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
10691 variable.
10692
83f0ccb8
L
106932009-04-02 H.J. Lu <hongjiu.lu@intel.com>
10694
10695 * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
10696 * configure: Regenerated.
10697
dcb6e951
RAE
106982009-04-02 Rafael Avila de Espindola <espindola@google.com>
10699
10700 * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
10701 share the argument list.
10702
d85478c2
RAE
107032009-04-02 Rafael Avila de Espindola <espindola@google.com>
10704
10705 Merge
10706
10707 2009-02-12 Diego Novillo <dnovillo@google.com>
10708
83f0ccb8
L
10709 * varpool.c (debug_varpool): New.
10710 * cgraph.h (debug_varpool): Declare.
d85478c2 10711
34f42a49
JH
107122009-04-02 Jan Hubicka <jh@suse.cz>
10713
10714 * passes.c (init_optimization_passes): Remove two copies of ehcleanup
10715 pass.
10716
a4747b4a
L
107172009-04-02 H.J. Lu <hongjiu.lu@intel.com>
10718
10719 * config/i386/i386.c (ix86_abi): Move initialization to ...
10720 (override_options): Here.
10721
63a9de54
CB
107222009-04-02 Christian Bruel <christian.bruel@st.com>
10723
10724 * config/sh/sh.c (sh_dwarf_register_span): New function.
10725 (TARGET_DWARF_REGISTER_SPAN): Define.
10726 * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
2ba9daa7 10727
2f0fa28e
IR
107282009-04-02 Ira Rosen <irar@il.ibm.com>
10729
10730 PR tree-optimization/39595
2ba9daa7 10731 * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
2f0fa28e
IR
10732 interleaved loads group is not greater than the SLP group size.
10733
bbf7ce11
RAE
107342009-04-02 Rafael Avila de Espindola <espindola@google.com>
10735
10736 * builtins.c (is_builtin_name): New.
10737 (called_as_built_in): Use is_builtin_name.
10738 * tree.h (is_builtin_name): New.
10739 * varasm.c (incorporeal_function_p): Use is_builtin_name
10740
47e4dfcf
AS
107412009-04-02 Andrew Stubbs <ams@codesourcery.com>
10742
10743 * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
10744
d0940d56
DS
107452009-04-02 Dodji Seketeli <dodji@redhat.com>
10746
10747 PR c++/26693
532bfb0a 10748 * c-decl.c (clone_underlying_type): Move this ...
d0940d56
DS
10749 * c-common.c (set_underlying_type): ... here.
10750 Also, make sure the function properly sets TYPE_STUB_DECL() on
10751 the newly created typedef variant type.
10752 * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
7a715bba
UB
10753 * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
10754 points.
d0940d56 10755
bf1cbdc6
RG
107562009-04-02 Richard Guenther <rguenther@suse.de>
10757
10758 PR tree-optimization/37221
10759 * tree-flow.h (degenerate_phi_result): Declare.
10760 * tree-ssa-dom.c (degenerate_phi_result): Export.
10761 * tree-scalar-evolution.c (analyze_initial_condition): If
10762 the initial condition is defined by a degenerate PHI node
10763 use the degenerate value.
10764
87cfb32c
EB
107652009-04-01 Eric Botcazou <ebotcazou@adacore.com>
10766
10767 PR rtl-optimization/39588
10768 * combine.c (merge_outer_ops): Do not set the constant when this
10769 is not necessary.
10770 (simplify_shift_const_1): Do not modify it either in this case.
10771
bbb6eae8
SB
107722009-04-01 Steven Bosscher <steven@gcc.gnu.org>
10773
10774 * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
10775 tuning is deprecated if -mtune value is set to an Itanium1 variant.
10776
839a3b8a
JJ
107772009-04-01 Janis Johnson <janis187@us.ibm.com>
10778
10779 PR c/29027
10780 * c-lex.c (interpret_float): Default (no suffix) is double.
10781
667e8acb
XDL
107822009-04-1 Xinliang David Li <davidxl@google.com>
10783
10784 * config/i386/i386.c (legitimate_constant_p): Recognize
10785 all one vector constant.
10786
60839f5d 107872009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10788
60839f5d 10789 * config/vax/vax.c: Add #includes to silence warnings.
c4e75102
MT
10790 Change #include order to silence two warnings.
10791
60839f5d 107922009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10793
60839f5d 10794 * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
c4e75102
MT
10795 (ASM_SPEC): Pass -k to the assembler for PIC code.
10796
60839f5d 107972009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10798
60839f5d
EB
10799 * config.gcc: Add vax-*-linux* to the switch.
10800 * config/vax/linux.h: New file. (TARGET_VERSION,
c4e75102
MT
10801 TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
10802
60839f5d 108032009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10804
60839f5d 10805 * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
c4e75102 10806 Use predicate macros instead of GET_CODE() == foo.
60839f5d 10807 * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
c4e75102
MT
10808 ashlsi3, rotrsi3, <unnamed>): Likewise.
10809
60839f5d 108102009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10811
60839f5d 10812 * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
c4e75102 10813 jbbccihi, jbbccisi): Remova trailing whitespace.
60839f5d
EB
10814 * config/vax/constraints.md: Likewise.
10815 * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
10816 * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
10817 * config/vax/predicates.md: Likewise.
10818 * config/vax/vax.c (print_operand_address, vax_output_int_move,
c4e75102 10819 vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
60839f5d
EB
10820 * config/vax/vax.h: Likewise.
10821 * config/vax/vax.md (nonlocal_goto): Likewise.
c4e75102 10822
60839f5d 108232009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10824
60839f5d 10825 * config/vax/vax.c (vax_float_literal, vax_output_int_move)
c4e75102
MT
10826 (indirectable_address_p, adjacent_operands_p): Add spaces around
10827 braces.
60839f5d 10828 * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
c4e75102 10829
60839f5d 108302009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10831
60839f5d 10832 * config/vax/vax.c (legitimate_constant_address_p,
c4e75102
MT
10833 legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
10834 index_term_p, reg_plus_index_p, legitimate_address_p,
10835 vax_mode_dependent_address_p): Update comments to match functions
10836 modified by the recent int->bool conversion.
10837
60839f5d 108382009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10839
60839f5d
EB
10840 * config/vax/builtins.md: Update copyright message.
10841 * config/vax/constraints.md: Likewise.
10842 * config/vax/netbsd-elf.h: Likewise.
10843 * config/vax/predicates.md: Likewise.
10844 * config/vax/vax-protos.h: Likewise.
10845 * config/vax/vax.c: Likewise.
10846 * config/vax/vax.h: Likewise.
10847 * config/vax/vax.md: Likewise.
10848 * config/vax/vax.opt: Likewise.
c4e75102 10849
60839f5d 108502009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10851
60839f5d 10852 * config/vax/builtins.md (ffssi2, ffssi2_internal,
c4e75102 10853 sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
60839f5d
EB
10854 * config/vax/constraints.md (B, R): Likewise.
10855 * config/vax/predicates.md (external_memory_operand,
c4e75102 10856 nonimmediate_addsub_di_operand): Likewise.
60839f5d
EB
10857 * config/vax/vax.c (vax_output_int_add): Likewise.
10858 * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
c4e75102
MT
10859 untyped_call): Likewise.
10860
60839f5d 108612009-04-01 Matt Thomas <matt@3am-software.com>
c4e75102 10862
7a715bba
UB
10863 * config/vax/predicates.md: New file.
10864 (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
c4e75102
MT
10865 external_const_operand, nonsymbolic_operand, external_memory_operand,
10866 indirect_memory_operand, indexed_memory_operand,
10867 illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
10868 nonimmediate_addsub_di_operand, general_addsub_di_operand): New
10869 predicate.
7a715bba
UB
10870 * config/vax/constraints.md: New file.
10871 (Z0, U06, U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
10872 New constraint.
10873 * config/vax/builtins.md: New file.
10874 (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
10875 jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
10876 jbbccisi): Define.
c4e75102
MT
10877 * config/vax/vax.opt (mqmath): Add option.
10878 * config/vax/vax.md (isfx): Extend with DI.
10879 (VAXintQH, VAXintQHSD): Define.
10880 (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
10881 mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
10882 and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
10883 one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
10884 (movdi): Update constraints and use vax_output_int_move().
10885 (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
10886 movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
10887 pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
10888 nonlocal_goto): New.
10889 (mov<mode>): Extend accepted operand types.
10890 (subdi3_old): Rename from subdi3, change update constraints and use
10891 a new implementation.
60839f5d 10892 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
c4e75102
MT
10893 (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
10894 MOVE_RATIO, CLEAR_RATIO): Define.
10895 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
10896 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
10897 (PRINT_OPERAND): Redefine using a function instead of inlined code.
60839f5d 10898 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
c4e75102
MT
10899 (split_quadword_operands): Make static and really allow variable
10900 splitting.
10901 (print_operand_address): Update for PIC generation.
10902 (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
10903 indexable_address_p, fixup_mathdi_operand,
10904 vax_expand_addsub_di_operands, adjacent_operands_p): New.
10905 (vax_float_literal, legitimate_constant_p,
10906 indirectable_constant_address_p, index_term_p,
10907 reg_plus_index_p): Return bool instead of int.
10908 (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
10909 where needed.
10910 (vax_output_int_move, vax_output_int_add): Extend to allow PIC
10911 generation.
10912 (vax_output_conditional_branch): Indent.
10913 (legitimate_constant_address_p, indirectable_constant_address_p,
10914 indirectable_address_p, nonindexed_address_p, legitimate_address_p,
10915 vax_mode_dependent_address_p): Return bool instead of int, update for
10916 PIC generation.
10917 * config/vax/vax-protos.h (legitimate_constant_address_p,
10918 legitimate_constant_p, legitimate_address_p,
10919 vax_mode_dependent_address_p): Change declaration to bool.
10920 (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
10921 vax_expand_addsub_di_operands, vax_output_int_subtract,
10922 vax_output_movmemsi): Declare.
10923 (split_quadword_operands, vax_float_literal): Delete declaration.
10924 * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
10925 * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
10926 VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
10927 ASM_OUTPUT_DWARF_PCREL): Define.
10928 (ASM_SPEC): Change definition to allow PIC generation.
10929
9332c6eb
L
109302009-04-01 Steve Ellcey <sje@cup.hp.com>
10931
10932 * doc/sourcebuild.texi: Update front-end requirements.
10933
d93e052c
JJ
109342009-04-01 Jakub Jelinek <jakub@redhat.com>
10935
10936 PR target/39226
10937 * config/rs6000/rs6000.md (andsi3_internal5_nomc,
10938 anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
10939 (booldi3_internal3): Use boolean_or_operator instead of
10940 boolean_operator.
10941
6ccb2a4a
JM
109422009-04-01 Joseph Myers <joseph@codesourcery.com>
10943
10944 PR c/39605
10945 * c-decl.c (grokdeclarator): Pedwarn for file-scope array
10946 declarator whose size is not an integer constant expression but
10947 folds to an integer constant, then treat it as a constant
10948 subsequently.
10949
299b87f8
RG
109502009-04-01 Richard Guenther <rguenther@suse.de>
10951
10952 * fold-const.c (fold_plusminus_mult_expr): Do not fold
10953 i * 4 + 2 to (i * 2 + 1) * 2.
10954
b85eb797
JJ
109552009-04-01 Jakub Jelinek <jakub@redhat.com>
10956
10957 PR c/37772
10958 * c-parser.c (c_parser_asm_statement): Skip until close paren and
10959 return if c_parser_asm_string_literal returned NULL.
10960
235e1fe8
NC
109612009-04-01 Nick Clifton <nickc@redhat.com>
10962
10963 * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
10964 already defined.
10965 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
10966 * config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the
10967 other typedefs to avoid conflicts with libgcc2.c. Define labels
10968 to gain 16-bit bit-manipulation functions from libgcc2.c and then
10969 include it.
10970 * config/m32c/m32c-lib2-trapv.c: New file. Define labels
10971 to gain 16-bit trapping arithmetic functions from libgcc2.c and
10972 then include it.
10973
d6868399
RAE
109742009-04-01 Rafael Avila de Espindola <espindola@google.com>
10975
7a715bba
UB
10976 * varasm.c (default_function_rodata_section): Declare DOT as
10977 const char*.
d6868399 10978
73d21f56 109792009-04-01 Kai Tietz <kai.tietz@onevision.com>
60839f5d 10980 Andrey Galkin <agalkin@hypercom.com>
73d21f56
KT
10981
10982 PR/39492
10983 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
10984 Make object_name unique for each process.
10985
03742a9b
JJ
109862009-04-01 Jakub Jelinek <jakub@redhat.com>
10987
10988 PR other/39591
10989 * omp-low.c (remove_exit_barrier): Don't optimize if there are any
10990 addressable variables in the parallel that could go out of scope while
10991 running queued tasks.
10992
4223ff5f
AS
109932009-04-01 Anatoly Sokolov <aesok@post.ru>
10994
10995 * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
10996 (CASE_VALUES_THRESHOLD): Redefine.
10997 * config/avr/avr.c (avr_override_options): Remove initialization of
10998 avr_case_values_threshold variable.
10999 (avr_case_values_threshold): Remove variable. Add new function.
11000 * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
11001 * config/avr/avr.opt (mno-tablejump): Remove option.
11002 * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
11003
e893f6f3
DD
110042009-04-01 DJ Delorie <dj@redhat.com>
11005
11006 * varasm.c (default_function_rodata_section): Don't assume
11007 anything about where the first '.' in the section name is.
11008
b246d100
AM
110092009-04-01 Alan Modra <amodra@bigpond.net.au>
11010
11011 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
11012 rs6000_emit_stack_tie.
11013
d3e37a9e
ILT
110142009-03-31 Ian Lance Taylor <iant@google.com>
11015
11016 * tree-eh.c (tree_remove_unreachable_handlers): Compare
11017 gimple_code with GIMPLE_RESX, not RESX.
11018
c1b61fca
JM
110192009-03-31 Joseph Myers <joseph@codesourcery.com>
11020
11021 * c-common.c (c_get_ident): New.
7a715bba 11022 (c_common_nodes_and_builtins): Call it for type names that may be NULL.
c1b61fca 11023
c2d2ad48
BE
110242009-04-01 Ben Elliston <bje@au.ibm.com>
11025
11026 * config/rs6000/sysv4.opt (msdata): Improve option description.
11027
13d1a6e7
SE
110282009-03-31 Steve Ellcey <sje@cup.hp.com>
11029
11030 * config/ia64/ia64.md (divsf3_internal_lat): Remove.
11031 (divdf3_internal_lat): Remove.
11032 (divxf3_internal_lat): Remove.
11033 (divxf3_internal_thr): Remove.
11034 (divxf): Use divxf3_internal.
11035 * config/ia64/div.md (divsf3_internal_lat): New.
11036 (divdf3_internal_lat): New.
11037 (divxf3_internal): New.
11038
207bf79d
JM
110392009-03-31 Joseph Myers <joseph@codesourcery.com>
11040
11041 PR c/448
11042 * Makefile.in (USE_GCC_STDINT): Define.
11043 (stmp-int-hdrs): Install stdint.h if applicable.
11044 * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
11045 if known.
11046 (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
11047 (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
11048 UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
11049 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
11050 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
11051 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
11052 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
11053 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
11054 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
11055 (c_common_nodes_and_builtins): Initialize
11056 underlying_wchar_type_node. Do not initialize
11057 signed_wchar_type_node or unsigned_wchar_type_node. Initialize
11058 nodes for new types.
11059 (c_stddef_cpp_builtins): Define macros for new types.
11060 * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
11061 Remove.
11062 (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
11063 CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
11064 CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
11065 CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
11066 CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
11067 CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
11068 CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
11069 CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
11070 CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
11071 (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
11072 (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
11073 int16_type_node, int32_type_node, int64_type_node,
11074 uint8_type_node, uint16_type_node, c_uint32_type_node,
11075 c_uint64_type_node, int_least8_type_node, int_least16_type_node,
11076 int_least32_type_node, int_least64_type_node,
11077 uint_least8_type_node, uint_least16_type_node,
11078 uint_least32_type_node, uint_least64_type_node,
11079 int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
11080 int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
11081 uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
11082 uintptr_type_node): Define.
11083 * c-cppbuiltin.c (builtin_define_constants,
11084 builtin_define_type_minmax): New.
11085 (builtin_define_stdint_macros): Define more macros.
11086 (c_cpp_builtins): Define more limit macros.
11087 (type_suffix): New.
11088 (builtin_define_type_max): Define in terms of
11089 builtin_define_type_minmax. Remove is_long parameter. All
11090 callers changed.
11091 * config.gcc (use_gcc_stdint): Define.
11092 (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
11093 Add newlib-stdint.h for generic targets.
11094 * config/glibc-stdint.h, config/newlib-stdint.h,
11095 ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
11096 * config/m32c/m32c.h (UINTPTR_TYPE): Define.
11097 * config/score/score.h (UINTPTR_TYPE): Define.
11098 * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
11099 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
11100 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
11101 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
11102 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
11103 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
11104 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
11105 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
11106 * config/spu/spu.h (STDINT_LONG32): Define.
11107 * configure.ac (use_gcc_stdint): Substitute.
11108 * configure: Regenerate.
11109 * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
11110 __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
11111 __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
11112 __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
11113 __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
11114 __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
11115 __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
11116 __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
11117 __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
11118 __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
11119 __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
11120 __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
11121 __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
11122 __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
11123 __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
11124 __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
11125 __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
11126 __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
11127 __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
11128 __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
11129 __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
11130 * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
11131 INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
11132 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
11133 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
11134 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
11135 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
11136 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
11137 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
11138
ed853664
BS
111392009-03-31 Bernd Schmidt <bernd.schmidt@analog.com>
11140
11141 * loop-iv.c (suitable_set_for_replacement): Renamed from
11142 simplify_using_assignment; changed to return bool and to accept new
11143 args DEST and SRC. Return true iff we find a source/destination pair
11144 that can be used to make a replacement, and fill SRC and DEST if so.
11145 Remove arg ALTERED. Don't deal with altered regs here. All callers
11146 changed.
11147 (simplify_using_initial_values): Deal with altered regs here and track
11148 more precisely the effect they have on the validity of our expression.
11149
1569e190
BS
11150 * loop-iv.c (simplify_using_condition): A condition of the form
11151 (EQ REG CONST) can be used to simply make a substitution.
11152 (simplify_using_initial_values): Keep track of conditions we have seen
11153 and keep using them to simplify new expressions, while applying the
11154 same substitutions to them as to the expression.
11155
1d1eb80c
BS
11156 * simplify-rtx.c (simplify_relational_operation_1): Simplify
11157 (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
11158 GEU/LTU reversed.
11159
28af33b0
BS
11160 * loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers
11161 changed. Use this when trying to improve the upper bound.
11162 Generate the comparison by using simplify_gen_relational.
11163
b30321cd
BS
11164 * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
11165
60081874
BS
11166 * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
11167 functions.
2ba9daa7 11168 (simplify_using_assignment, simplify_using_initial_values): Call
60081874
BS
11169 replace_in_expr to make replacements. Call replace_single_def_regs
11170 once on the initial version of the expression.
11171
bebc6e07
RR
111722009-03-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11173
fcb82ab0 11174 PR target/27237
bebc6e07 11175 * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
2ba9daa7 11176
6b12efe9
RG
111772009-03-31 Richard Guenther <rguenther@suse.de>
11178
11179 PR middle-end/31029
11180 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
11181 equality comparisons. Fold C - X CMP X if C % 2 == 1.
11182
108f6c2f
RG
111832009-03-31 Richard Guenther <rguenther@suse.de>
11184
11185 * tree.h (div_if_zero_remainder): Declare.
11186 * fold-const.c (div_if_zero_remainder): Export.
11187 * tree-ssa-forwprop.c
11188 (forward_propagate_addr_into_variable_array_index): Handle
11189 constant array index addition outside of the variable index.
11190
8f612190
JM
111912009-03-31 Joseph Myers <joseph@codesourcery.com>
11192
11193 PR target/39592
11194 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
11195 define_splits, floatunssi<mode>2): Require x87 conversions from
11196 DImode to be permitted.
11197
47580d22
JM
111982009-03-31 Joseph Myers <joseph@codesourcery.com>
11199
11200 PR preprocessor/15638
11201 * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
11202
ba4d8f9d
RG
112032009-03-31 Richard Guenther <rguenther@suse.de>
11204
11205 PR middle-end/23401
11206 PR middle-end/27810
11207 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
11208 (struct tree_decl_with_vis): Remove gimple_formal_temp member.
11209 * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
11210 a separate statement.
11211 * gimplify.c (pop_gimplify_context): Remove formal temp handling.
11212 (lookup_tmp_var): Likewise.
11213 (is_gimple_formal_tmp_or_call_rhs): Remove.
11214 (is_gimple_reg_or_call_rhs): Rename to ...
11215 (is_gimple_reg_rhs_or_call): ... this.
11216 (is_gimple_mem_or_call_rhs): Rename to ...
11217 (is_gimple_mem_rhs_or_call): ... this.
11218 (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set
11219 DECL_GIMPLE_REG_P only if is_formal is true.
11220 (gimplify_compound_lval): Use is_gimple_reg. Remove workaround
11221 for non-proper post-modify expression gimplification.
11222 (gimplify_self_mod_expr): For post-modify expressions gimplify
11223 the lvalue to a minimal lvalue.
11224 (rhs_predicate_for): Remove formal temp case.
11225 (gimplify_modify_expr_rhs): Likewise.
11226 (gimplify_addr_expr): Use is_gimple_reg.
11227 (gimplify_expr): Remove formal temp cases.
11228 (gimple_regimplify_operands): Likewise.
11229 * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
11230 and FILTER_EXPR like constants.
11231 * gimple.c (walk_gimple_op): Fix val_only initialization, use
11232 is_gimple_reg.
11233 (is_gimple_formal_tmp_rhs): Remove.
11234 (is_gimple_reg_rhs): Remove special casing.
11235 (is_gimple_mem_rhs): Fix.
11236 (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
11237 (is_gimple_formal_tmp_var): Remove.
11238 (is_gimple_formal_tmp_reg): Likewise.
11239 (is_gimple_min_lval): Allow invariant component ref parts.
11240 * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
11241 is_gimple_formal_tmp_reg): Remove declarations.
11242 * tree-cfg.c (verify_expr): Verify that variables with address
11243 taken do not have DECL_GIMPLE_REG_P set.
11244 * tree-mudflap.c (mf_build_check_statement_for): Use
11245 force_gimple_operand instead of gimplify_expr.
11246
8de9b877
AZ
112472009-03-31 Ayal Zaks <zaks@il.ibm.com>
11248
11249 * modulo-sched.c (sms_schedule_by_order): Pass the actual
11250 schedulable rows to compute_split_row.
11251
b5e3caf2
BE
112522009-03-31 Ben Elliston <bje@au.ibm.com>
11253
11254 PR target/31635
11255 * config/rs6000/rs6000.c (rs6000_handle_option): Handle
11256 OPT_mvrsave.
11257
9752c4ad
AM
112582009-03-31 Alan Modra <amodra@bigpond.net.au>
11259
11260 * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
11261 * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
11262 * configure: Regenerate.
11263 * config.in: Regenerate.
11264 * config/rs6000/rs6000.opt (mtls-markers): Add.
11265 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
11266 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
11267 (tls_ld_aix, tls_ld_sysv): Likewise.
11268 (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
11269 (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
11270
b597d1b6
AM
112712009-03-31 Alan Modra <amodra@bigpond.net.au>
11272
11273 * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
11274
a203a221
JH
112752009-03-30 Jan Hubicka <jh@suse.cz>
11276
b597d1b6
AM
11277 * tree-eh.c (make_eh_edges): Set probability 100% to first edge
11278 out of RESX.
11279 (tree_remove_unreachable_handlers): Cleanup EH predecestor
11280 detection and label handling.
a203a221 11281
5b0c0b2c
VM
112822009-03-30 Vladimir Makarov <vmakarov@redhat.com>
11283
11284 * ira-int.h (ira_allocno): Rename left_conflicts_num to
11285 left_conflicts_size.
11286 (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
11287 ALLOCNO_LEFT_CONFLICTS_SIZE.
11288
11289 * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
11290 remove_allocno_from_bucket_and_push,
11291 allocno_spill_priority_compare, push_allocnos_to_stack,
11292 setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
11293 instead of ALLOCNO_LEFT_CONFLICTS_NUM.
11294 (setup_allocno_left_conflicts_num): Ditto. Rename to
11295 setup_allocno_left_conflicts_size.
11296 (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
11297 instead of ALLOCNO_LEFT_CONFLICTS_NUM and
11298 setup_allocno_left_conflicts_size instead of
11299 setup_allocno_left_conflicts_num.
11300
11301 * ira-build.c (ira_create_allocno): Use
11302 ALLOCNO_LEFT_CONFLICTS_SIZE instead of
11303 ALLOCNO_LEFT_CONFLICTS_NUM.
2ba9daa7 11304
9a48a93f
VM
113052009-03-30 Vladimir Makarov <vmakarov@redhat.com>
11306
11307 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
11308 instead of DF_LR_OUT.
11309
11310 * ira-lives.c (process_bb_node_lives): Ditto.
11311
11312 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
11313 instead of DF_LR_{OUT,IN}.
11314
11315 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
11316
11317 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
11318
4c936d4f
JH
113192009-03-30 Jan Hubicka <jh@suse.cz>
11320
11321 * except.c (label_to_region_map): Fix thinko.
11322
f4d9f129
SE
113232009-03-30 Steve Ellcey <sje@cup.hp.com>
11324
11325 PR middle-end/38237
11326 * tree.h (tree_find_value): New declaration.
11327 * tree.c (tree_find_value): New function.
11328 * varasm.c (assemble_external): Avoid duplicate entries on lists.
11329
b3f27c15
JJ
113302009-03-30 Jakub Jelinek <jakub@redhat.com>
11331
11332 PR debug/39563
11333 * c-decl.c (struct c_binding): Add locus field.
11334 (bind): Add locus argument, set locus field from it.
11335 (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
11336 add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
11337 (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
11338 implicitly_declare, undeclared_variable, lookup_label,
11339 declare_label, c_make_fname_decl, c_builtin_function,
11340 c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
11341 bind callers.
11342
ad41bd84 113432009-03-30 H.J. Lu <hongjiu.lu@intel.com>
680e8a00
L
11344
11345 PR target/38781
11346 * config/i386/i386.c (classify_argument): Check total size of
11347 structure.
11348
133f9369
MJ
113492009-03-30 Martin Jambor <mjambor@suse.cz>
11350
11351 * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
11352 IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
11353 IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
11354 respectively.
11355
11356 * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
11357 seen_variable_array_ref while also traversing a union.
11358
11359 * tree-inline.c (optimize_inline_calls): Do not call
11360 cgraph_node_remove_callees.
11361 * cgraphbuild.c (remove_cgraph_callee_edges): New function.
11362 (pass_remove_cgraph_callee_edges): New variable.
11363 * passes.c (init_optimization_passes): Add
11364 pass_remove_cgraph_callee_edges after early inlining and before all
11365 late intraprocedural passes.
11366
11367 * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
11368
1190f2eb
PB
113692009-03-30 Paolo Bonzini <bonzini@gnu.org>
11370
11371 * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
11372 Fix typos in names.
11373
fedc1775
PB
113742009-03-30 Paolo Bonzini <bonzini@gnu.org>
11375
fcb82ab0
UB
11376 * combine.c (simplify_comparison): Use have_insn_for.
11377 * dojump.c (do_jump): Likewise.
fedc1775 11378
65c5ae8b
PB
113792009-03-30 Paolo Bonzini <bonzini@gnu.org>
11380
11381 * config/sparc/sparc.c (sparc_compare_emitted): Remove.
11382 (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
11383 sparc_compare_op0 like sparc_compare_emitted used to be handled.
11384 (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
11385 instead of sparc_compare_emitted.
11386 * config/sparc/sparc.h (sparc_compare_emitted): Remove.
11387 * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
11388 instead of sparc_compare_emitted.
11389
d25aa7ab
PB
113902009-03-30 Paolo Bonzini <bonzini@gnu.org>
11391
11392 * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
11393 enter/exit cfglayout mode.
11394 (pass_partition_block): Require it.
11395 * combine.c (find_single_use, reg_dead_at_p): Use CFG.
11396 (combine_instructions): Track basic blocks instead of labels.
11397 (update_cfg_for_uncondjump): New.
11398 (try_combine): Use it. Update jumps after rescanning.
11399 (pass_combine): Require PROP_cfglayout.
11400 * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
11401
9c9e26f5
PB
114022009-03-30 Paolo Bonzini <bonzini@gnu.org>
11403
fcb82ab0
UB
11404 * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
11405 Provide/destroy PROP_cfglayout respectively.
11406 * gcse.c (pass_jump_bypass, pass_gcse): Require it.
11407 * tree-pass.h (PROP_cfglayout): New.
9c9e26f5 11408
28ddeea1
PB
114092009-03-30 Paolo Bonzini <bonzini@gnu.org>
11410
11411 * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
11412 fold_convert_const_fixed_from_fixed,
11413 fold_convert_const_fixed_from_int,
11414 fold_convert_const_fixed_from_real, fold_negate_const): Do not
11415 set TREE_CONSTANT_OVERFLOW.
11416 * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
11417 * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
11418
ebfd146a
IR
114192009-03-30 Ira Rosen <irar@il.ibm.com>
11420
11421 * tree-vect-loop-manip.c: New file.
11422 * tree-vectorizer.c: Update documentation and included files.
11423 (vect_loop_location): Make extern.
11424 (rename_use_op): Move to tree-vect-loop-manip.c
2ba9daa7
AS
11425 (rename_variables_in_bb, rename_variables_in_loop,
11426 slpeel_update_phis_for_duplicate_loop,
ebfd146a
IR
11427 slpeel_update_phi_nodes_for_guard1,
11428 slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
11429 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
11430 slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
2ba9daa7 11431 set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
ebfd146a
IR
11432 find_loop_location): Likewise.
11433 (new_stmt_vec_info): Move to tree-vect-stmts.c.
11434 (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
11435 get_vectype_for_scalar_type, vect_is_simple_use,
11436 supportable_widening_operation, supportable_narrowing_operation):
11437 Likewise.
11438 (bb_in_loop_p): Move to tree-vect-loop.c.
2ba9daa7
AS
11439 (new_loop_vec_info, destroy_loop_vec_info,
11440 reduction_code_for_scalar_code, report_vect_op,
ebfd146a
IR
11441 vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
11442 (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
11443 (vect_supportable_dr_alignment): Likewise.
11444 * tree-vectorizer.h (tree-data-ref.h): Include.
11445 (vect_loop_location): Declare.
11446 Reorganize function declarations according to the new file structure.
11447 * tree-vect-loop.c: New file.
2ba9daa7 11448 * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
ebfd146a
IR
11449 tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
11450 * tree-vect-data-refs.c: New file.
11451 * tree-vect-patterns.c (timevar.h): Don't include.
11452 * tree-vect-stmts.c: New file.
2ba9daa7 11453 * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
ebfd146a 11454 tree-vect-slp.c, tree-vect-loop.c.
2ba9daa7
AS
11455 * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
11456 tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
ebfd146a
IR
11457 tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
11458 (tree-vect-analyze.o): Remove.
11459 (tree-vect-transform.o): Likewise.
11460 (tree-vect-data-refs.o): Add rule.
2ba9daa7 11461 (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
ebfd146a
IR
11462 tree-vect-slp.o): Likewise.
11463 (tree-vect-patterns.o): Remove redundant dependencies.
11464 (tree-vectorizer.o): Likewise.
11465 * tree-vect-slp.c: New file.
11466
40a1cfba
RW
114672009-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11468
11469 * optc-gen.awk: Warn if an option flag has multiple different
11470 help strings.
11471
a9a7a9a2
SP
114722009-03-30 Sebastian Pop <sebastian.pop@amd.com>
11473
11474 * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
11475 -floop-block): Document dependences on PPL, CLooG and Graphite.
11476
8ce94e44
JM
114772009-03-30 Joseph Myers <joseph@codesourcery.com>
11478
11479 PR rtl-optimization/323
11480 * c-common.c (c_fully_fold, convert_and_check,
11481 c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
11482 (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
11483 * c-common.def (EXCESS_PRECISION_EXPR): New.
11484 * c-cppbuiltin.c (builtin_define_float_constants): Define
11485 constants with enough digits for long double.
11486 * c-lex.c (interpret_float): Interpret constant with excess
11487 precision where appropriate.
11488 * c-opts.c (c_common_post_options): Set
11489 flag_excess_precision_cmdline. Give an error for
11490 -fexcess-precision=standard for C++ for processors where the
11491 option is significant.
11492 * c-parser.c (c_parser_conditional_expression): Handle excess
11493 precision in condition.
11494 * c-typeck.c (convert_arguments): Handle arguments with excess
11495 precision.
11496 (build_unary_op): Move excess precision outside operation.
11497 (build_conditional_expr): Likewise.
11498 (build_compound_expr): Likewise.
11499 (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
11500 (build_modify_expr): Handle excess precision in RHS.
11501 (convert_for_assignment): Handle excess precision in converted
11502 value.
11503 (digest_init, output_init_element, process_init_element): Handle
11504 excess precision in initializer.
11505 (c_finish_return): Handle excess precision in return value.
11506 (build_binary_op): Handle excess precision in operands and add
11507 excess precision as needed for operation.
11508 * common.opt (-fexcess-precision=): New option.
11509 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
11510 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
11511 For standard excess precision, output explicit conversion to and
11512 truncation from XFmode.
11513 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
11514 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
11515 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
11516 define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
11517 define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
11518 floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
11519 divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
11520 *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
11521 *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
11522 define_splits, sqrt<mode>2): Disable where appropriate for
11523 standard excess precision.
11524 * convert.c (convert_to_real): Do not shorten arithmetic to type
11525 for which excess precision would be used.
11526 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
11527 * doc/invoke.texi (-fexcess-precision=): Document option.
11528 (-mfpmath=): Correct index entry.
11529 * flags.h (enum excess_precision, flag_excess_precision_cmdline,
11530 flag_excess_precision): New.
11531 * langhooks.c (lhd_post_options): Set
11532 flag_excess_precision_cmdline.
11533 * opts.c (common_handle_option): Handle -fexcess-precision=.
11534 * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
11535 init_excess_precision): New.
11536 (lang_dependent_init_target): Call init_excess_precision.
11537 * tree.c (excess_precision_type): New.
11538 * tree.h (excess_precision_type): Declare.
11539
1e57bf47
JM
115402009-03-30 Joseph Myers <joseph@codesourcery.com>
11541
11542 PR c/35235
11543 * c-typeck.c (build_component_ref): Do not copy qualifiers from
11544 non-lvalue to component.
11545
148e4216
JM
115462009-03-29 Joseph Myers <joseph@codesourcery.com>
11547
11548 PR preprocessor/34695
11549 * Makefile.in (c-opts.o): Depend on c-tree.h.
11550 * c-common.c: Move down include of diagnostic.h.
11551 (done_lexing, c_cpp_error): New.
11552 * c-common.h (done_lexing): Declare.
11553 * c-decl.c (c_write_global_declarations): Don't check cpp_errors
11554 (parse_in).
11555 * c-opts.c: Include c-tree.h.
11556 (c_common_init_options): Set preprocessor error callback.
11557 (c_common_handle_option): Do not set preprocessor
11558 inhibit_warnings, warnings_are_errors, warn_system_headers,
11559 pedantic_errors or inhibit_warnings flags.
11560 (c_common_post_options): Do not check cpp_errors (parse_in).
11561 (c_common_finish): Do not output dependencies if there were
11562 errors. Do not check return value of cpp_finish.
11563 * c-ppoutput.c (pp_file_change): Set input_location.
11564 * c-tree.h (c_cpp_error): Declare.
11565 * diagnostic.c (diagnostic_set_info_translated): Also initialize
11566 override_column.
11567 (diagnostic_build_prefix): Check override_column.
11568 * diagnostic.h (diagnostic_info): Add override_column field.
11569 (diagnostic_override_column): Define.
11570
2ec5deb5
PB
115712009-03-28 Paolo Bonzini <bonzini@gnu.org>
11572
ba20e309
UB
11573 * c-common.c (c_expand_expr, c_staticp): Remove.
11574 * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
11575 * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
11576 COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
11577 * c-gimplify.c (gimplify_compound_literal_expr,
11578 optimize_compound_literals_in_ctor): Remove.
11579 (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
11580 * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
11581 * c-semantics.c (emit_local_var): Remove.
11582
11583 * langhooks-def.h (lhd_expand_expr): Remove.
11584 * langhooks.c (lhd_expand_expr): Remove.
11585 * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
11586
11587 * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
11588 handling from c-semantics.c; don't call into langhook.
11589 (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
11590 * gimplify.c (gimplify_compound_literal_expr,
11591 optimize_compound_literals_in_ctor): Move from c-gimplify.c.
11592 (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
11593 (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
11594 as was done in c-gimplify.c.
11595 * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
11596 * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
11597 Move from c-common.h.
11598 * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
2ec5deb5
PB
11599
11600 * tree.c (staticp): Do not call langhook.
11601 * langhooks.c (lhd_staticp): Delete.
11602 * langhooks-def.h (lhd_staticp): Delete prototype.
11603 (LANG_HOOKS_STATICP): Delete.
11604 (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
11605
ba20e309
UB
11606 * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
11607 instead of DECL_STMTs.
2ec5deb5 11608
928c19bb
JM
116092009-03-29 Joseph Myers <joseph@codesourcery.com>
11610
11611 PR c/456
11612 PR c/5675
11613 PR c/19976
11614 PR c/29116
11615 PR c/31871
11616 PR c/35198
11617 * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
11618 void_type_node.
11619 (fold_call_expr): Return a NOP_EXPR from folding rather than the
11620 contained expression.
ba20e309 11621 * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
928c19bb
JM
11622 (c_common_truthvalue_conversion): Use c_save_expr. Do not fold
11623 conditional expressions for C.
11624 (decl_constant_value_for_optimization): Move from
ba20e309 11625 decl_constant_value_for_broken_optimization in c-typeck.c. Check
928c19bb
JM
11626 whether optimizing and that the expression is a VAR_DECL not of
11627 array type instead of doing such checks in the caller. Do not
11628 check pedantic. Call gcc_unreachable for C++.
11629 * c-common.def (C_MAYBE_CONST_EXPR): New.
11630 * c-common.h (c_fully_fold, c_save_expr,
11631 decl_constant_value_for_optimization): New prototypes.
11632 (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
11633 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
11634 EXPR_INT_CONST_OPERANDS): Define.
11635 * c-convert.c (convert): Strip nops from expression.
11636 * c-decl.c (groktypename): Take extra parameters expr and
11637 expr_const_operands. Update call to grokdeclarator.
11638 (start_decl): Update call to grokdeclarator. Add statement for
11639 expressions used in type of decl.
11640 (grokparm): Update call to grokdeclarator.
11641 (push_parm_decl): Update call to grokdeclarator.
11642 (build_compound_literal): Add parameter non_const and build a
11643 C_MAYBE_COSNT_EXPR if applicable.
11644 (grokdeclarator): Take extra parameters expr and
11645 expr_const_operands. Track expressions used in declaration
11646 specifiers and declarators. Fold array sizes and track whether
11647 they are constant expressions and whether they are integer
11648 constant expressions.
11649 (parser_xref_tag): Set expr and expr_const_operands fields in
11650 return value.
11651 (grokfield): Update call to grokdeclarator.
11652 (start_function): Update call to grokdeclarator.
11653 (build_null_declspecs): Set expr and expr_const_operands fields in
11654 return value.
11655 (declspecs_add_type): Handle expressions in typeof specifiers.
11656 * c-parser.c (c_parser_declspecs): Set expr and
11657 expr_const_operands fields for declaration specifiers.
11658 (c_parser_enum_specifier): Likewise.
11659 (c_parser_struct_or_union_specifier): Likewise.
11660 (c_parser_typeof_specifier): Likewise. Update call to
11661 groktypename. Fold expression as needed. Return expressions with
11662 type instead of adding statements.
11663 (c_parser_attributes): Update calls to c_parser_expr_list.
11664 (c_parser_statement_after_labels): Fold expression before passing
11665 to objc_build_throw_stmt.
11666 (c_parser_condition): Fold expression.
11667 (c_parser_asm_operands): Fold expression.
11668 (c_parser_conditional_expression): Use c_save_expr. Update call
11669 to build_conditional_expr.
11670 (c_parser_alignof_expression): Update call to groktypename.
11671 (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
11672 original_code. Fold expression argument of va_arg. Create
11673 C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
11674 argument to va_arg. Update calls to groktypename. Fold array
11675 index for offsetof. Verify that first argument to
11676 __builtin_choose_expr has integer type.
11677 (c_parser_postfix_expression_after_paren_type): Update calls to
11678 groktypename and build_compound_literal. Handle expressions with
11679 side effects in type name.
11680 (c_parser_postfix_expression_after_primary): Update call to
11681 c_parser_expr_list. Set original_code for calls to
11682 __builtin_constant_p.
11683 (c_parser_expr_list): Take extra parameter fold_p. Fold
11684 expressions if requested.
11685 (c_parser_objc_type_name): Update call to groktypename.
11686 (c_parser_objc_synchronized_statement): Fold expression.
11687 (c_parser_objc_receiver): Fold expression.
11688 (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
11689 (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
11690 c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
11691 * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
11692 (struct c_typespec): Add elements expr and expr_const_operands.
11693 (struct c_declspecs): Add elements expr and expr_const_operands.
11694 (groktypename, build_conditional_expr, build_compound_literal):
11695 Update prototypes.
11696 (in_late_binary_op): Declare.
11697 * c-typeck.c (note_integer_operands): New function.
11698 (in_late_binary_op): New variable.
11699 (decl_constant_value_for_broken_optimization): Move to c-common.c
11700 and rename to decl_constant_value_for_optimization.
11701 (default_function_array_conversion): Do not strip nops.
11702 (default_conversion): Do not call
11703 decl_constant_value_for_broken_optimization.
11704 (build_array_ref): Do not fold result.
11705 (c_expr_sizeof_expr): Fold operand. Use C_MAYBE_CONST_EXPR for
11706 result when operand is a VLA.
11707 (c_expr_sizeof_type): Update call to groktypename. Handle
11708 expressions included in type name. Use C_MAYBE_CONST_EXPR for
11709 result when operand names a VLA type.
11710 (build_function_call): Update call to build_compound_literal.
11711 Only fold result for calls to __builtin_* functions. Strip
11712 NOP_EXPR from INTEGER_CST returned from such functions. Fold
11713 the function designator.
11714 (convert_arguments): Fold arguments. Update call to
11715 convert_for_assignment.
11716 (build_unary_op): Handle increment and decrement of
11717 C_MAYBE_CONST_EXPR. Move lvalue checks for increment and
11718 decrement earlier. Fold operand of increment and decrement.
11719 Handle address of C_MAYBE_CONST_EXPR. Only fold expression being
11720 built for integer operand. Wrap returns that are INTEGER_CSTs
11721 without being integer constant expressions or that have integer
11722 constant operands without being INTEGER_CSTs.
11723 (lvalue_p): Handle C_MAYBE_CONST_EXPR.
11724 (build_conditional_expr): Add operand ifexp_bcp. Track whether
11725 result is an integer constant expression or can be used in
11726 unevaluated parts of one and avoid folding and wrap as
11727 appropriate. Fold operands before possibly doing -Wsign-compare
11728 warnings.
11729 (build_compound_expr): Wrap result for C99 if operands can be used
11730 in integer constant expressions.
11731 (build_c_cast): Update call to digest_init. Do not ignore
11732 overflow from casting floating-point constants to integers. Wrap
11733 results that could be confused with integer constant expressions,
11734 null pointer constants or floating-point constants.
11735 (c_cast_expr): Update call to groktypename. Handle expressions
11736 included in type name.
11737 (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR. Fold
11738 lhs inside possible SAVE_EXPR. Fold RHS before assignment.
11739 Update calls to convert_for_assignment.
11740 (convert_for_assignment): Take new parameter
11741 null_pointer_constant. Do not strip nops or call
11742 decl_constant_value_for_broken_optimization. Set
11743 in_late_binary_op for conversions to boolean.
11744 (store_init_value): Update call to digest_init.
11745 (digest_init): Take new parameter null_pointer_constant. Do not
11746 call decl_constant_value_for_broken_optimization. pedwarn for
11747 initializers not constant expressions. Update calls to
11748 convert_for_assignment.
11749 (constructor_nonconst): New.
11750 (struct constructor_stack): Add nonconst element.
11751 (really_start_incremental_init, push_init_level, pop_init_level):
11752 Handle constructor_nonconst and nonconst element.
11753 (set_init_index): Call constant_expression_warning for array
11754 designators.
11755 (output_init_element): Fold value. Set constructor_nonconst as
11756 applicable. pedwarn for initializers not constant expressions.
11757 Update call to digest_init. Call constant_expression_warning
11758 where constant initializers are required.
11759 (process_init_element): Use c_save_expr.
11760 (c_finish_goto_ptr): Fold expression.
11761 (c_finish_return): Fold return value. Update call to
11762 convert_for_assignment.
11763 (c_start_case): Fold switch expression.
11764 (c_process_expr_stmt): Fold expression.
11765 (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
ba20e309 11766 ensure statement expression is not evaluated in constant expression.
928c19bb
JM
11767 (build_binary_op): Track whether results are integer constant
11768 expressions or may occur in such, disable folding and wrap results
11769 as applicable. Fold operands for -Wsign-compare warnings unless
11770 in_late_binary_op.
11771 (c_objc_common_truthvalue_conversion): Handle results folded to
11772 integer constants that are not integer constant expressions.
11773 * doc/extend.texi: Document when typeof operands are evaluated,
11774 that condition of __builtin_choose_expr is an integer constant
11775 expression, and more about use of __builtin_constant_p in
11776 initializers.
11777
5babbcc0
RG
117782009-03-29 Richard Guenther <rguenther@suse.de>
11779
11780 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
11781 propagate addresses of array references.
11782
0340f2ba
SB
117832009-03-29 Steven Bosscher <steven@gcc.gnu.org>
11784
11785 * regmove.c (perhaps_ends_bb_p): Remove.
11786 (optimize_reg_copy_1): Don't call perhaps_ends_bb_p. Get basic block
11787 from INSN and check that the main loop stays within that basic block.
11788 (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
11789 (regmove_forward_pass): Split out from regmove_optimize. Use
11790 FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
11791 (regmove_backward_pass): Split out from regmove_optimize. Use
11792 FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
11793 (regmove_optimize): Simplify.
11794
eeae74a1
L
117952009-03-29 H.J. Lu <hongjiu.lu@intel.com>
11796
11797 PR target/39545
11798 * config/i386/i386.c (classify_argument): Ignore flexible array
11799 member in struct and warn ABI change.
11800
a24078b2
L
118012009-03-29 H.J. Lu <hongjiu.lu@intel.com>
11802
11803 * config/i386/i386-protos.h (ix86_agi_dependent): New.
11804
11805 * config/i386/i386.c (ix86_agi_dependent): Rewrite.
11806 (ix86_adjust_cost): Updated.
11807
a8da523f
JH
118082009-03-29 Jan Hubicka <jh@suse.cz>
11809
11810 PR middle-end/28850
11811 * tree-pass.h (pass_cleanup_eh): New function.
11812 (remove_unreachable_regions): Break code handling RTL
11813 to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
11814 that can not be reached by runtime.
11815 (can_be_reached_by_runtime): New function.
11816 (label_to_region_map): New function.
11817 (num_eh_regions): New function.
11818 (rtl_remove_unreachable_regions): New function.
11819 (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
11820 (remove_eh_region): New function.
11821 * except.h: Include sbitmap and vecprim.
11822 (remove_eh_region, remove_unreachable_regions, label_to_region_map,
11823 num_eh_regions): Declare.
11824 * passes.c (init_optimization_passes): Schedule cleanup_eh.
ba20e309 11825 * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
a8da523f
JH
11826 * tree-eh.c (tree_remove_unreachable_handlers): New function.
11827 (tree_empty_eh_handler_p): New function.
11828 (cleanup_empty_eh): New function.
11829 (cleanup_eh): New function.
11830 (pass_cleanup_eh): New function.
11831
98f358e5
JH
118322009-03-29 Jan Hubicka <jh@suse.cz>
11833
11834 * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
11835 for removed regions.
11836
13a9fa44
JH
118372009-03-29 Jan Hubicka <jh@suse.cz>
11838
11839 * except.c (dump_eh_tree): Dump all datastructures.
11840
e38cf733
JH
118412009-03-29 Jan Hubicka <jh@suse.cz>
11842
11843 * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
11844 (duplicate_eh_regions_1): Likewise.
11845 (duplicate_eh_regions): Likewise; cleanup code gorwing the region
11846 vector; call EH verification.
11847 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
11848 Be ready for region being removed.
11849
12802c2b
JH
118502009-03-29 Jan Hubicka <jh@suse.cz>
11851
11852 * bitmap.c (bitmap_last_set_bit): New function.
11853 * bitmap.h (bitmap_last_set_bit): Declare.
11854
4ea80a41
DA
118552009-03-29 David Ayers <ayers@fsfe.org>
11856
11857 PR objc/27377
11858 * c-typeck.c (build_conditional_expr): Emit ObjC warnings
11859 by calling objc_compare_types and surpress warnings about
11860 incompatible C pointers that are compatible ObjC pointers.
2ba9daa7 11861
4ea80a41 118622009-03-29 Adam Nemet <anemet@caviumnetworks.com>
3dc9eaa6
AN
11863
11864 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
11865 call initialize_inline_failed.
11866 (initialize_inline_failed): Move it from here ...
11867 * cgraph.c (initialize_inline_failed): ... to here.
11868 (cgraph_create_edge): Call initialize_inline_failed rather than
11869 setting inline_failed directly.
11870
7fb0ee07
BE
118712009-03-29 Ben Elliston <bje@au.ibm.com>
11872
11873 PR target/32542
11874 * sysv4.opt (msdata): Improve comment.
11875 * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
11876 * sysv4.h (SVR4_ASM_SPEC): Likewise.
11877
0be77bf2
BE
118782009-03-29 Ben Elliston <bje@au.ibm.com>
11879
11880 PR target/30451
11881 * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
11882 load and store attributes.
11883
593812b6
BE
118842009-03-29 Ben Elliston <bje@au.ibm.com>
11885
11886 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
11887 (ix86_init_builtins): Add built-in function __builtin_huge_valq.
11888 (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
11889 * doc/extend.texi (X86 Built-in Functions): Add index entries for
11890 __builtin_infq and __builtin_huge_valq.
11891
8272d11d
AS
118922009-03-28 Anatoly Sokolov <aesok@post.ru>
11893
11894 * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
11895 atmega8m1 devices.
11896 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
11897 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
11898
74fe548b
XDL
118992009-03-28 Xinliang David Li <davidxl@google.com>
11900
2ba9daa7 11901 * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
74fe548b
XDL
11902 (do_dbg_cnt): New function.
11903
33977f81
JH
119042009-03-28 Jan Hubicka <jh@suse.cz>
11905
11906 Merge from pretty-ipa:
11907
11908 2009-03-27 Jan Hubicka <jh@suse.cz>
ba20e309 11909
33977f81
JH
11910 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
11911 * tree-pass.h (function_called_by_processed_nodes_p): Declare.
11912 * passes.c (function_called_by_processed_nodes_p): New.
11913 * ipa-pure-const.c (check_call): Fix handling of operands.
11914 (analyze_function): Dump debug output for skipped bodies.
11915 (local_pure_const): Use function_called_by_processed_nodes_p.
11916 * dwarf2out.c (reference_to_unused): Use output.
11917 * passes.c (do_per_function_toporder): Likewise.
11918
11919 2008-11-12 Jan Hubicka <jh@suse.cz>
11920
11921 * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
11922 * ipa-pure-const.c (funct_state_d): Add can throw field; make
11923 state_set_in_source enum
11924 (check_decl): Ignore memory tags; do not set fake looping flags;
11925 dump diagnostics.
11926 (check_operand, check_tree, check_rhs_var, check_lhs_var,
11927 get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
11928 (check_call, analyze_function): Rewrite.
11929 (check_stmt): New.
11930 (add_new_function): Update call of analyze_function.
11931 (generate_summary): Add call of analyze_function.
11932 (propagate): Propagate can_throw; handle state_set_in_source correctly.
11933 (local_pure_const): New function.
11934 (pass_local_pure_const): New pass.
11935 * ipa-inline.c (inline_transform): Set after_inlining.
11936 * tree-eh.c (stmt_can_throw_external): New.
11937 * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
11938 work with aliasing built.
11939 * tree-flow.h (stmt_can_throw_external): New.
11940 * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
11941 and local pure/const pass in early and late optimization queue.
ba20e309 11942
617f3897
MJ
119432009-03-28 Martin Jambor <mjambor@suse.cz>
11944
11945 * fold-const.c (get_pointer_modulus_and_residue): New parameter
11946 allow_func_align.
11947 (fold_binary): Allow function decl aligment consideration is the
11948 second argument is integer constant one.
11949 * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
11950 (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
11951 with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
11952
fe89fbc5
JH
119532009-03-28 Jan Hubicka <jh@suse.cz>
11954
11955 * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
11956 * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
11957 * function.h (rtl_data): Add nothrow flag.
11958 * except.c (set_nothrow_function_flags): Use crtl->nothrow;
11959 set DECL_NOTHROW for AVAILABLE functions.
11960
574872ff
JJ
119612009-03-28 Jakub Jelinek <jakub@redhat.com>
11962
b3bf8855
JJ
11963 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
11964 following vector keyword has expansion starting with pixel or bool
11965 keyword, expand vector to __vector and pixel or bool to __pixel or
11966 __bool.
11967
574872ff
JJ
11968 PR c++/39554
11969 * opts.c (warning_disallowed_functions, warn_disallowed_functions,
11970 warn_if_disallowed_function_p): Removed.
11971 (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
11972 * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
11973 warning_if_disallowed_function_p.
11974 * flags.h (warn_if_disallowed_function_p,
11975 warn_disallowed_functions): Removed.
11976 * common.opt (Wdisallowed-function-list=): Removed.
11977 * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
11978
b005da11
RG
119792009-03-28 Richard Guenther <rguenther@suse.de>
11980
11981 PR tree-optimization/38723
11982 * tree-ssa-pre.c (compute_avail): Add all default definitions to
11983 the entry block.
11984
1de812a6
JH
119852009-03-28 Jan Hubicka <jh@suse.cz>
11986
11987 * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
11988 test introduced by my previous patch.
11989
fbb789d4
RG
119902009-03-28 Richard Guenther <rguenther@suse.de>
11991
11992 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
11993 the PHIs value undefined.
11994
6f1873a1
JH
119952009-03-28 Jan Hubicka <jh@suse.cz>
11996
11997 * tree-pass.h (pass_fixup_cfg): New pass.
11998 * ipa-inline.c (inline_transform): Set
11999 always_inline_functions_inlined/after_inlining.
12000 * tree-optimize.c (execute_fixup_cfg): Do not set them here.
12001 (pass_fixup_cfg): New pass.
12002 * passes.c (init_optimization_passes): Add fixup_cfg.
12003
17021bc8
RG
120042009-03-28 Richard Guenther <rguenther@suse.de>
12005
12006 PR tree-optimization/38458
12007 * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
12008 argument use the arguments copy-of value.
12009
e8114fba
RG
120102009-03-28 Richard Guenther <rguenther@suse.de>
12011
12012 PR tree-optimization/38180
12013 * tree-ssa-ccp.c (get_default_value): Simplify.
12014 (likely_value): Likewise.
12015 (surely_varying_stmt_p): Properly handle VOP case.
12016 (ccp_initialize): Likewise.
12017 (ccp_fold): Handle propagating through *&.
12018 (fold_const_aggregate_ref): Also handle decls.
12019
257eb6e3
JH
120202009-03-28 Jan Hubicka <jh@suse.cz>
12021
12022 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
12023 * cgraph.h (cgraph_node): Likewise.
12024 * cgraphunit.c (cgraph_process_new_functions): Set process flag.
12025 (cgraph_reset_node): Use process flag.
12026 (cgraph_mark_functions_to_output): Likewise.
12027 (cgraph_expand_function): Likewise.
12028 (cgraph_expand_all_functions): Likewise.
12029 (cgraph_output_in_order): Likewise.
12030 * dwarf2out.c (reference_to_unused): Likewise.
12031 * passes.c do_per_function_toporder): Likewise.
12032
61a05df1
JH
120332009-03-28 Jan Hubicka <jh@suse.cz>
12034
12035 Bring from lto-branch:
ba20e309 12036
61a05df1
JH
12037 2008-09-03 Doug Kwan <dougkwan@google.com>
12038
12039 * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
12040 enums instead of reason strings.
12041 * cgraph.c (cgraph_create_edge): Same.
12042 (cgraph_inline_failed_string): New function.
12043 * cgraph.h (cgraph_inline_failed_t): New enum type.
12044 (cgraph_inline_failed_string): New prototype.
12045 (struct cgraph_edge): Change type of INLINED_FAILED from constant
12046 char pointer to cgraph_inline_failed_t.
12047 (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
12048 (cgraph_default_inline_p): Ditto.
60839f5d 12049 * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
61a05df1
JH
12050 to cgraph_inline_failed_t pointer.
12051 * cif-code.def: New file.
12052 * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
12053 reason string.
12054 (cgraph_check_inline_limits): Change type of REASON to pointer to
12055 cgraph_inline_failed_t. Replace reason strings with enums.
12056 (cgraph_default_inline_p): Ditto.
12057 (cgraph_recursive_inlining_p): Ditto.
12058 (update_caller_keys): Change type of FAILED_REASON to
12059 cgraph_inline_failed_t.
12060 (cgraph_set_inline_failed): Change type of REASON to pointer to
12061 cgraph_inline_failed_t. Call cgraph_inline_failed_string to
12062 convert enums to strings for text output.
12063 (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
12064 to be of type cgraph_inline_failed_t. Replace reason strings with
12065 enums. Call cgraph_inline_failed_string to covert enums
12066 to strings for text output.
12067 (cgraph_decide_inlining): Replace reason strings with enums.
12068 (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
12069 to cgraph_inline_failed_t type. Call cgraph_inline_failed_string
12070 for text output.
12071 * tree-inline.c (expand_call_inline): Change type of REASON
12072 to cgraph_inline_failed_t. Replace reason strings with enums.
12073 Call cgraph_inline_failed_string for text output.
12074 * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
12075 (cgraph.o): Ditto.
12076
144e8aac
JH
120772009-03-28 Jan Hubicka <jh@suse.cz>
12078
12079 * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
12080 cgraph_clone_node): Remove master clone handling.
12081 (cgraph_is_master_clone, cgraph_master_clone): Remove.
12082 * cgraph.h (master_clone): Remove.
12083 (cgraph_is_master_clone, cgraph_master_clone): Remove.
12084 * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
12085 (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
12086
4a371c8d
JH
120872009-03-28 Jan Hubicka <jh@suse.cz>
12088
12089 * cgraph.c (cgraph_function_body_availability): Functions declared
12090 inline are always safe to assume that it is not going to be replaced.
12091
6cdb0ee3
RG
120922009-03-28 Richard Guenther <rguenther@suse.de>
12093
12094 PR tree-optimization/38513
12095 * tree-ssa-pre.c (eliminate): Remove redundant stores.
12096 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
12097 EXC_PTR_EXPR and FILTER_EXPR.
12098 (get_ref_from_reference_ops): Likewise.
12099
8ca1fd76
RG
121002009-03-28 Richard Guenther <rguenther@suse.de>
12101
12102 PR tree-optimization/38968
12103 * tree-vect-analyze.c (vect_compute_data_ref_alignment):
12104 Use FLOOR_MOD_EXPR to compute misalignment.
12105
a254e44d
RG
121062009-03-28 Richard Guenther <rguenther@suse.de>
12107
12108 PR tree-optimization/37795
12109 * tree.h (combine_comparisons): Declare.
12110 * fold-const.c (combine_comparisons): Export.
12111 * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
12112 comparisons.
12113 (ifcombine_iforif): Use combine_comparisons.
12114
a8ee227c
JH
121152009-03-28 Jan Hubicka <jh@suse.cz>
12116
12117 * tree-eh.c (inlinable_call_p): New function.
12118 (make_eh_edges): Use it.
12119 (verify_eh_edges): Use it.
12120 (stmt_can_throw_external, stmt_can_throw_internal): Use it.
12121 * except.c (reachable_next_level): Add inlinable_function argument
12122 (sjlj_find_directly_reachable_regions): Update.
12123 (add_reachable_handler): Do not set saw_any_handlers.
12124 (reachable_next_level): Handle MUST_NOT_THROW more curefully.
12125 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
12126 Add new inlinable call parameter.
12127 (can_throw_internal, can_throw_external): Update.
12128 * except.h (can_throw_internal_1, can_throw_external_1,
12129 foreach_reachable_handler): Update declaration.
12130
52c0e446
JM
121312009-03-28 Joseph Myers <joseph@codesourcery.com>
12132
12133 * config/arm/t-arm-coff, config/h8300/coff.h,
12134 config/i386/i386-aout.h, config/i386/i386-coff.h,
12135 config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
12136 config/pdp11/2bsd.h, config/rs6000/aix41.h,
12137 config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
12138 fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
12139 scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
12140 sys-types.h: Remove.
12141 * Makefile.in: Remove protoize and fixproto support and references
12142 in comments.
12143 (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
12144 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
12145 Remove.
12146 (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
12147 (MOSTLYCLEANFILES): Remove protoize$(exeext) and
12148 unprotoize$(exeext).
12149 (rest.encap): Don't depend on $(STMP_FIXPROTO)
12150 (.PHONY): Don't depend on proto.
12151 (libgcc-support): Don't depend on $(STMP_FIXPROTO).
12152 (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
12153 protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
12154 deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
12155 build/gen-protos.o, build/scan.o, xsys-protos.h,
12156 build/fix-header$(build_exeext), build/fix-header.o,
12157 build/scan-decls.o, fixhdr.ready, stmp-fixproto,
12158 stmp-install-fixproto): Remove.
12159 (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
12160 SYSCALLS.c or fixproto files.
12161 (install-common): Don't install protoize.
12162 (install-headers-tar, install-headers-cpio, install-headers-cp):
12163 Don't depend on $(STMP_FIXPROTO).
12164 (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't
12165 install fixproto files or write out fixproto settings.
12166 (uninstall): Don't uninstall protoize.
12167 * config.gcc (use_fixproto): Remove.
12168 (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
12169 i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
12170 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
12171 * config/m32r/t-linux (STMP_FIXPROTO): Remove.
12172 * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
12173 * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
12174 * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
12175 * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
12176 * config/t-svr4 (FIXPROTO_DEFINES): Remove.
12177 * config/t-vxworks (STMP_FIXPROTO): Remove.
12178 * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
12179 STMP_FIXPROTO): Remove.
12180 * config.in, configure: Regenerate.
12181 * crtstuff.c (gid_t, uid_t): Don't undefine.
12182 * doc/install.texi: Change m68k-coff to m68k-elf in example.
12183 (arm-*-coff, arm-*-aout: Remove target entries.
12184 (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
12185 Remove mention of AIX 4.1.
12186 (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
12187 * doc/invoke.texi (Running Protoize): Remove.
12188 * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
12189 (Protoize Caveats): Remove.
12190 * tsystem.h: Update comments on headers assumed to exist.
12191
20a07f44
VM
121922009-03-27 Vladimir Makarov <vmakarov@redhat.com>
12193
12194 * genautomata.c: Add a new year to the copyright. Add a new
12195 reference.
12196 (struct insn_reserv_decl): Add comments for member bypass_list.
12197 (find_bypass): Remove.
12198 (insert_bypass): New.
12199 (process_decls): Use insert_bypass.
12200 (output_internal_insn_latency_func): Output all bypasses with the
12201 same input insn in one switch case.
12202
12203 * rtl.def (define_bypass): Describe bypass choice.
12204 * doc/md.texi (define_bypass): Ditto.
12205
3a0d06c1
RB
122062009-03-27 Richard Guenther <rguenther@suse.de>
12207
12208 * gimplify.c (mark_addressable): Export.
12209 * tree-flow.h (mark_addressable): Declare.
12210 * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
12211 * tree-ssa.c (verify_phi_args): Verify that address taken
12212 variables have TREE_ADDRESSABLE set.
12213
122142009-03-27 Richard Guenther <rguenther@suse.de>
12215
12216 * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
12217 (build_fold_addr_expr_with_type): ... this. Remove in_fold handling.
12218 Do not mark decls TREE_ADDRESSABLE.
12219 (build_fold_addr_expr): Adjust.
12220 (fold_addr_expr): Remove.
12221 (fold_unary): Use build_fold_addr_expr.
12222 (fold_comparison): Likewise.
12223 (split_address_to_core_and_offset): Likewise.
12224 * coverage.c (tree_coverage_counter_addr): Mark the array decl
12225 TREE_ADDRESSABLE.
12226 * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
12227 (gimplify_modify_expr_to_memcpy): Mark source and destination
12228 addressable.
12229 * omp-low.c (create_omp_child_function): Mark the object decl
12230 TREE_ADDRESSABLE.
12231 (lower_rec_input_clauses): Mark the var we take the address of
12232 TREE_ADDRESSABLE.
12233 (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
12234
2ac26e15
L
122352009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12236
12237 PR middle-end/39315
12238 * cfgexpand.c (expand_one_stack_var_at): Change alignment
12239 limit to MAX_SUPPORTED_STACK_ALIGNMENT.
12240
472c7fbd
RG
122412009-03-27 Richard Guenther <rguenther@suse.de>
12242
12243 PR tree-optimization/39120
12244 * tree-ssa-structalias.c (handle_rhs_call): Fill out return
12245 constraints.
12246 (handle_lhs_call): Process return constraints. Add escape
12247 constraints if necessary.
12248 (handle_const_call): Fill out return constraints. Make nested
12249 case more precise. Avoid consttmp if possible.
12250 (handle_pure_call): Fill out return constraints. Avoid
12251 callused if possible.
12252 (find_func_aliases): Simplify call handling.
12253
122542009-03-27 Richard Guenther <rguenther@suse.de>
12255
12256 PR tree-optimization/39120
12257 * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
12258 as a representative.
12259 (solve_graph): Do propagate CALLUSED.
12260 (handle_pure_call): Use a scalar constraint from CALLUSED for
12261 the return value.
12262 (find_what_p_points_to): CALLUSED shall not appear in poins-to
12263 solutions.
12264
d9223014
L
122652009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12266
12267 PR c/39323
12268 * c-common.c (handle_aligned_attribute): Properly check alignment
12269 overflow. Use (1U << i) instead of (1 << i).
12270
ba20e309 12271 * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
d9223014
L
12272
12273 * expr.h (get_mem_align_offset): Updated.
12274
12275 * tree.h (tree_decl_common): Change align to "unsigned int" and
12276 move it before pointer_alias_set.
12277
689b689c
L
122782009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12279 Jakub Jelinek <jakub@redhat.com>
12280
12281 PR target/38034
12282 * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
12283 gr_register_operand with gr_reg_or_0_operand.
12284 (cmpxchg_rel_di): Likewise.
12285 (sync_lock_test_and_set<mode>): Likewise.
12286
c619e982
L
122872009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12288
12289 * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
12290 (true_regnum): Likewise.
12291
12292 * rtlanal.c (subreg_info): Moved to ...
12293 * rtl.h (subreg_info): Here. New.
12294 (subreg_get_info): New.
12295
12296 * rtlanal.c (subreg_get_info): Make it extern.
12297
51212b32
L
122982009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12299
12300 PR target/39472
12301 * config/i386/i386.c (ix86_abi): New.
12302 (override_options): Handle -mabi=.
ba20e309 12303 (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
51212b32
L
12304 (ix86_call_abi_override): Likewise.
12305 (init_cumulative_args): Likewise.
12306 (function_arg_advance): Likewise.
12307 (function_arg_64): Likewise.
12308 (function_arg): Likewise.
12309 (ix86_pass_by_reference): Likewise.
12310 (ix86_function_value_regno_p): Likewise.
12311 (ix86_build_builtin_va_list_abi): Likewise.
12312 (setup_incoming_varargs_64): Likewise.
12313 (is_va_list_char_pointer): Likewise.
12314 (ix86_init_machine_status): Likewise.
ba20e309 12315 (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
51212b32
L
12316 (ix86_function_type_abi): Return enum calling_abi. Rewrite
12317 for 64bit. Replace DEFAULT_ABI with ix86_abi.
ba20e309 12318 (ix86_function_abi): Make it static and return enum calling_abi.
51212b32
L
12319 (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI
12320 with ix86_abi.
12321 (ix86_fn_abi_va_list): Updated.
12322
12323 * config/i386/i386.h (ix86_abi): New.
12324 (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
12325 (CONDITIONAL_REGISTER_USAGE): Likewise.
12326 (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
12327 (machine_function): Likewise.
12328
12329 * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
12330 with ix86_abi.
12331 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
12332 (STACK_BOUNDARY): Likewise.
12333 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
12334
12335 * config/i386/i386.opt (mabi=): New.
12336
12337 * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
12338 return enum calling_abi.
12339 (ix86_function_type_abi): Likewise.
12340 (ix86_function_abi): Removed.
12341
12342 * doc/invoke.texi: Document -mabi= option for x86.
12343
7338ea63
KG
123442009-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12345
12346 * builtins.c (real_dconstp): Delete.
12347 (fold_builtin_logarithm): Remove inaccurate log(e) special case.
12348
68599f33
DS
123492009-03-27 Dodji Seketeli <dodji@redhat.com>
12350 Jakub Jelinek <jakub@redhat.com>
12351
12352 PR debug/37959
12353 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
12354 (gen_subprogram_die): When a function is explicit, generate the
12355 DW_AT_explicit attribute.
12356 * langhooks.h (struct lang_hooks_for_decls): Add
12357 function_decl_explicit_p langhook.
12358 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
12359 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
12360
9f5e9983
JJ
123612009-03-27 Jakub Jelinek <jakub@redhat.com>
12362
64d7685c
JJ
12363 * builtins.c (fold_builtin_memory_op): Optimize memmove
12364 into memcpy if we can prove source and destination don't overlap.
12365
9f5e9983
JJ
12366 * tree-inline.c: Include gt-tree-inline.h.
12367 (clone_fn_id_num): New variable.
12368 (clone_function_name): New function.
12369 (tree_function_versioning): Use it.
12370 * Makefile.in (GTFILES): Add tree-inline.c.
12371
e54d52a8
MM
123722009-03-27 Mark Mitchell <mark@codesourcery.com>
12373
12374 * BASE-VER: Change to 4.5.0.
12375
e9d51dc6
XDL
123762009-03-27 Xinliang David Li <davidxl@google.com>
12377
12378 PR tree-optimization/39557
12379 * tree-ssa.c (warn_uninitialized_vars): free postdom info.
12380
4577cea1
XDL
123812009-03-27 Xinliang David Li <davidxl@google.com>
12382
12383 PR tree-optimization/39548
2ba9daa7 12384 * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
4577cea1
XDL
12385 candidate check.
12386
0f7464f4
L
123872009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12388
12389 * c-common.c (pointer_int_sum): Use %wd on return from
12390 tree_low_cst.
12391
a8847a7f
L
123922009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12393
12394 * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
12395 on return from tree_low_cst.
12396
b0957daf
AP
123972009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com>
12398
12399 PR c++/36799
ba20e309
UB
12400 * ginclude/stdarg.h (va_copy): Define also for
12401 __GXX_EXPERIMENTAL_CXX0X__.
b0957daf 12402
a5f805df
MLI
124032009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
12404
12405 PR c++/35652
12406 * builtins.h (c_strlen): Do not warn here.
12407 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
12408 * c-common.c (pointer_int_sum): Take an explicit location.
12409 Warn about offsets out of bounds.
12410 * c-common.h (pointer_int_sum): Adjust declaration.
12411
6f401211
RW
124122009-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12413
a5f805df
MLI
12414 * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
12415 markup glitch.
6f401211 12416
5a59b39e
JJ
124172009-03-26 Jakub Jelinek <jakub@redhat.com>
12418
12419 PR c++/39554
12420 * opts.c (warn_if_disallowed_function_p): Don't assume
12421 get_callee_fndecl must return non-NULL.
12422
d5f89b53
VM
124232009-03-26 Vladimir Makarov <vmakarov@redhat.com>
12424
12425 PR rtl-optimization/39522
12426 * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
12427 when reg_reloaded_valid is set.
12428
61238a79
UW
124292009-03-26 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12430
12431 * config/spu/divv2df3.c: New file.
12432 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
12433 (DPBIT_FUNCS): Filter out _div_df.
12434
03f8829b
BS
124352009-03-26 Bernd Schmidt <bernd.schmidt@analog.com>
12436
12437 * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
12438 a jump insn, count that jump in the distance to the loop start.
12439
9fdcdc74
KK
124402009-03-25 Kaz Kojima <kkojima@gcc.gnu.org>
12441
12442 PR target/39523
12443 * config/sh/sh.c (calc_live_regs): Fix condition for global
12444 registers except PIC_OFFSET_TABLE_REGNUM.
12445
46994828
KT
124462009-03-25 Kai Tietz <kai.tietz@onevision.com>
12447
12448 PR/39518
12449 * doc/invoke.texi (-mconsole): New.
12450 (-mcygwin): New.
12451 (-mno-cygwin): New.
12452 (-mdll): New.
12453 (-mnop-fun-dllimport): New.
12454 (-mthread): New.
12455 (-mwin32): New.
12456 (-mwindows): New.
12457 (sub section "i386 and x86-64 Windows Options"): New.
12458
60839f5d 124592009-03-25 Ralf Corsépius <ralf.corsepius@rtems.org>
370017b4
RC
12460
12461 * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
12462 * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
12463
ae560440
RG
124642009-03-25 Richard Guenther <rguenther@suse.de>
12465
12466 PR middle-end/39497
12467 * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
12468 of -Wno-error.
12469
cd510f15
AM
124702009-03-25 Andrey Belevantsev <abel@ispras.ru>
12471
12472 * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
12473 neither of haifa/selective schedulers are working.
12474
44ab0f0e
RW
124752009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12476
12477 * doc/invoke.texi (Debugging Options): Fix description of
12478 -fno-merge-debug-strings.
12479
ad9646c7
HPN
124802009-03-24 Hans-Peter Nilsson <hp@axis.com>
12481
e6142656
HPN
12482 * config/cris/libgcc.ver: New version-script.
12483 * config/cris/t-linux (SHLIB_MAPFILES): Use it.
12484
ad9646c7
HPN
12485 * configure.ac <GAS features, nop mnemonic>: Add pattern
12486 crisv32-*-* for "nop".
ba20e309 12487 <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
ad9646c7
HPN
12488 * configure: Regenerate.
12489
09ac4473
IR
124902009-03-24 Ira Rosen <irar@il.ibm.com>
12491
12492 PR tree-optimization/39529
12493 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
12494 mark_sym_for_renaming for the tag copied to the new vector
12495 pointer.
12496
d94a427e
AL
124972009-03-24 Arthur Loiret <aloiret@debian.org>
12498
ba20e309 12499 * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
d94a427e
AL
12500 * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
12501 EXTRA_SPEC_FUNCTIONS.
12502 (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
12503 * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
12504 * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
12505 -march and -mtune options.
12506
60839f5d 125072009-03-24 Ralf Corsépius <ralf.corsepius@rtems.org>
722d07aa
RC
12508
12509 * config/m68k/t-rtems: Add m5329 multilib.
12510
603f5959
DS
125112009-03-24 Dodji Seketeli <dodji@redhat.com>
12512 Jakub Jelinek <jakub@redhat.com>
12513
12514 PR debug/39524
12515 * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
12516 nodes.
12517
c5cdb03f
JJ
125182009-03-23 Jakub Jelinek <jakub@redhat.com>
12519
12520 PR c/39495
12521 * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
12522 instead of c_parser_expression_conv, if original_code isn't one of the
12523 4 allowed comparison codes, fail.
12524
3691626c
RG
125252009-03-23 Richard Guenther <rguenther@suse.de>
12526
12527 * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
12528 * tree.h (struct tree_type): Likewise.
12529 * reload.h (struct insn_chain): Likewise.
12530 * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
12531 * function.h (struct function): Likewise.
12532 * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
12533
88ccb72a
JJ
125342009-03-23 Jakub Jelinek <jakub@redhat.com>
12535
12536 PR tree-optimization/39516
12537 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
12538
60839f5d 125392009-03-23 Bingfeng Mei <bmei@broadcom.com>
a583a67e 12540
2ba9daa7 12541 * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
a583a67e
BM
12542 should be set true if BITS_PER_WORD of target is bigger than 32
12543
f82162f8
HPN
125442009-03-22 Hans-Peter Nilsson <hp@axis.com>
12545
12546 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
12547 Translate -B-options to -rpath-link. Correct existing
12548 rpath-link and conditionalize on !nostdlib.
12549
048fd785
RW
125502009-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12551
12552 * doc/extend.texi (Function Attributes, Variable Attributes):
12553 Fix typos.
12554 * doc/invoke.texi (Debugging Options, Optimize Options)
12555 (i386 and x86-64 Options, MCore Options): Likewise.
12556
6e75c1a9
JJ
125572009-03-20 Jakub Jelinek <jakub@redhat.com>
12558
12559 PR debug/37890
12560 * dwarf2out.c (gen_namespace_die): Add context_die argument and use
12561 it for block local namespace aliases.
12562 (gen_decl_die): Pass context_die to gen_namespace_die.
12563
ea1199ee
JJ
125642009-03-19 Jakub Jelinek <jakub@redhat.com>
12565
12566 PR c/39495
12567 * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
12568 minimum or maximum value.
12569
58929c10
AO
125702009-03-19 Alexandre Oliva <aoliva@redhat.com>
12571
12572 * reginfo.c (globalize_reg): Recompute derived reg sets.
12573
60839f5d 125742009-03-19 Ozkan Sezer <sezeroz@gmail.com>
234952b3
OS
12575
12576 PR target/39063
12577 * libgcc2.c (mprotect): Do not use signed arguments for
12578 VirtualProtect, use DWORD arguments. Also fix the 'may
12579 be used uninitialized' warning for the np variable.
12580
f57c2f04
JJ
125812009-03-19 Jakub Jelinek <jakub@redhat.com>
12582
12583 PR target/39496
12584 * config/i386/i386.c (ix86_function_regparm): Don't optimize local
12585 functions using regparm calling conventions when not optimizing.
12586 (ix86_function_sseregparm): Similarly for sseregparm calling
12587 conventions.
12588
9e517d61
LF
125892009-03-19 Li Feng <nemokingdom@gmail.com>
12590
12591 PR middle-end/39500
12592 * tree-data-ref.c (analyze_subscript_affine_affine): There is no
12593 dependence if the first conflict is after niter iterations.
12594
8ef20026
HPN
125952009-03-19 Hans-Peter Nilsson <hp@axis.com>
12596
12597 PR middle-end/38609
12598 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
12599 functions with dynamic stack-pointer adjustments.
12600
64e4a1a6
BE
126012009-03-19 Ben Elliston <bje@au.ibm.com>
12602
12603 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
12604 option; change to -msdata=data.
12605
9a0f3e86
RW
126062009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12607
12608 * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
12609 and -fopenmp.
12610
09bc5979
EB
126112009-03-18 Eric Botcazou <ebotcazou@adacore.com>
12612
12613 PR target/35180
12614 * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
12615
332459cd
SL
126162009-03-18 Sandra Loosemore <sandra@codesourcery.com>
12617
12618 * doc/invoke.texi (Code Gen Options): Expand discussion of
12619 -fno-common.
12620
8f5929e1
JJ
126212009-03-18 Jakub Jelinek <jakub@redhat.com>
12622
12623 * dse.c (struct group_info): Reorder fields for 64-bit hosts.
12624 * matrix-reorg.c (struct matrix_info): Likewise.
12625 * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
12626 * rtl.h (struct mem_attrs): Likewise.
12627 * df.h (struct df): Likewise.
12628 * tree-data-ref.h (struct data_dependence_relation): Likewise.
12629 * ira-int.h (struct ira_allocno): Likewise.
12630 * df-scan.c (struct df_collection_rec): Likewise.
12631 * ira.c (struct equivalence): Likewise.
12632 * function.c (struct temp_slot): Likewise.
12633 * cfgloop.h (struct loop): Likewise.
12634
d130d647
JJ
12635 PR debug/39485
12636 * function.c (use_register_for_decl): When not optimizing, disregard
12637 register keyword for variables with types containing methods.
12638
9968d233
SP
126392009-03-18 Sebastian Pop <sebastian.pop@amd.com>
12640
12641 PR middle-end/39447
12642 * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
12643 (is_simple_operand): Call contains_component_ref_p before calling data
12644 reference analysis that would fail on COMPONENT_REFs.
12645
12646 * tree-vrp.c (search_for_addr_array): Fix formatting.
12647
69484bfd
RG
126482009-03-18 Richard Guenther <rguenther@suse.de>
12649
12650 * tree-vect-transform.c (vect_loop_versioning): Fold the
12651 generated comparisons.
12652 * tree-vectorizer.c (set_prologue_iterations): Likewise.
12653 (slpeel_tree_peel_loop_to_edge): Likewise.
12654
66811228
RW
126552009-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12656
0631b69f
RW
12657 PR middle-end/37805
12658 * opts.c (print_specific_help): In addition to `undocumented',
12659 accept `separate' and `joined' flags if passed alone. Describe
12660 output by the first matched one of those.
12661 (common_handle_option): Skip over empty strings.
12662 * gcc.c (display_help): Fix help string for `--help='.
12663 * doc/invoke.texi (Option Summary, Overall Options): With
12664 `--help=', classes and qualifiers can both be repeated, but
12665 only the latter can be negated. One should not pass only
12666 negated qualifiers. Fix markup and examples.
12667
66811228
RW
12668 Revert
12669 2008-10-14 Jakub Jelinek <jakub@redhat.com>
12670 PR middle-end/37805
12671 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
12672 and -fhelp=separate.
12673
3c072c6b
JY
126742009-03-17 Jing Yu <jingyu@google.com>
12675
12676 PR middle-end/39378
80c65208
JY
12677 * function.h (struct rtl_data): Move is_thunk from here...
12678 (struct function): ...to here.
12679 * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
3c072c6b
JY
12680 * varasm.c (assemble_start_function): Change is_thunk from crtl to
12681 cfun.
80c65208
JY
12682 * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
12683 cfun.
12684 (alpha_does_function_need_gp, alpha_start_function): Likewise.
12685 (alpha_output_function_end_prologue): Likewise.
12686 (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
12687 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
12688 (rs6000_output_function_epilogue): Likewise.
12689 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
3c072c6b 12690
9ade279b
UB
126912009-03-17 Uros Bizjak <ubizjak@gmail.com>
12692
12693 PR target/39482
12694 * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
12695 from different units in a single alternative.
12696 (*truncdfsf_i387): Ditto.
12697 (*truncxfsf2_mixed): Ditto.
12698 (*truncxfdf2_mixed): Ditto.
12699
16e60c17
JJ
127002009-03-17 Jakub Jelinek <jakub@redhat.com>
12701
98381eb4
JJ
12702 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
12703 non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
12704
df5deb18
JJ
12705 PR debug/39474
12706 * tree-ssa-live.c (remove_unused_locals): Don't remove local
12707 unused non-artificial variables when not optimizing.
12708
a3f596ba
JJ
12709 PR debug/39471
12710 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
12711 DW_TAG_imported_module even if decl is IMPORTED_DECL with
12712 NAMESPACE_DECL in its DECL_INITIAL.
12713
6b2b8871
JJ
12714 PR middle-end/39443
12715 * optabs.c (set_user_assembler_libfunc): New function.
12716 * expr.h (set_user_assembler_libfunc): New prototype.
12717 * c-common.c: Include libfuncs.h.
12718 (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
12719 for memcmp, memset, memcpy, memmove and abort.
12720 * Makefile.in (c-common.o): Depend on libfuncs.h.
12721
16e60c17
JJ
12722 PR debug/39412
12723 * dwarf2out.c (gen_inlined_enumeration_type_die,
12724 gen_inlined_structure_type_die, gen_inlined_union_type_die,
12725 gen_tagged_type_instantiation_die): Removed.
12726 (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
12727 do nothing.
12728
4d936aca
JJ
127292009-03-17 Janis Johnson <janis187@us.ibm.com>
12730
12731 PR testsuite/38526
12732 * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
12733 its use.
12734 (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
12735 (check-parallel-%): Ditto.
12736 (check-consistency): Ditto.
12737
4e9b2e50
KT
127382009-03-17 Kai Tietz <kai.tietz@onevision.com>
12739
12740 * ipa-struct-reorg.c (create_general_new_stmt): Initialize
12741 local variable rhs by NULL_TREE.
12742
21440b2d
L
127432009-03-17 H.J. Lu <hongjiu.lu@intel.com>
12744
12745 PR target/39477
9ade279b 12746 * doc/extend.texi: Correct register behavior for regparm on Intel 386.
21440b2d 12747
d8905c6a
L
127482009-03-17 H.J. Lu <hongjiu.lu@intel.com>
12749
12750 PR target/39476
9ade279b 12751 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
d8905c6a
L
12752
127532009-03-17 H.J. Lu <hongjiu.lu@intel.com>
435a61d3
L
12754
12755 PR target/39473
12756 * config/i386/i386.c (ix86_expand_call): Check extra clobbers
12757 for ms->sysv ABI calls only in 64bit mode.
12758
12759 * config/i386/i386.md (untyped_call): Support 32bit.
12760
cdcabece
L
127612009-03-16 H.J. Lu <hongjiu.lu@intel.com>
12762
12763 * doc/extend.texi: Replace x86_65 with x86_64.
12764
97b4ba9f
JJ
127652009-03-16 Jakub Jelinek <jakub@redhat.com>
12766
12767 PR tree-optimization/39455
12768 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
12769 mismatches for POINTER_TYPE_P (type).
12770 (number_of_iterations_le): Likewise.
12771
60839f5d 127722009-03-16 Hariharan Sandanagobalane <hariharan@picochip.com>
83c191e1
HS
12773
12774 * config/picochip/picochip.c: Removed profiling support.
12775 * config/picochip/picochip.md: Removed profiling instruction.
12776 * config/picochip/picochip.h: Removed profiling builtin.
12777
f38095f3
JM
127782009-03-16 Joseph Myers <joseph@codesourcery.com>
12779
12780 * doc/install.texi (--with-host-libstdcxx): Document.
12781
2cb4817b
AS
127822009-03-14 Anatoly Sokolov <aesok@post.ru>
12783
12784 PR target/34299
12785 * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
12786 generate a warning if the function name does not begin with
12787 "__vector" and the function has either the 'signal' or 'interrupt'
12788 attribute, from here to ...
12789 (avr_declare_function_name): ...here. New function.
12790 * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
12791 * config/avr/avr-protos.h (avr_declare_function_name): Declare.
12792
39b2ac74
JJ
127932009-03-14 Jakub Jelinek <jakub@redhat.com>
12794
12795 PR bootstrap/39454
12796 * cse.c (fold_rtx): Don't modify original const_arg1 when
12797 canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
12798 separate variable instead.
12799 * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
12800 from out of range shift counts.
12801 (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
12802
ad41bd84 128032009-03-13 Catherine Moore <clm@codesourcery.com>
f7a82dee 12804
60839f5d 12805 * config/i386/x-mingw32 (host-mingw32.o): Replace
f7a82dee
CM
12806 diagnostic.h with $(DIAGNOSTIC_H).
12807
ad41bd84 128082009-03-12 Jakub Jelinek <jakub@redhat.com>
03a18198
JJ
12809
12810 PR target/39431
12811 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
12812 predicate.
12813 * config/i386/sync.md (sync_compare_and_swap<mode>,
12814 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
12815 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
12816 into a register.
12817 (sync_double_compare_and_swapdi_pic,
12818 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
12819 cmpxchg8b_pic_memory_operand instead of just memory_operand.
12820
122c59c7
L
128212009-03-12 H.J. Lu <hongjiu.lu@intel.com>
12822
12823 PR target/39445
9ade279b 12824 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
122c59c7 12825
cec8874f
L
128262009-03-12 H.J. Lu <hongjiu.lu@intel.com>
12827
12828 PR target/39327
12829 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
12830 (avx_addsubv4df3): Likewise.
12831 (*avx_addsubv4sf3): Likewise.
12832 (sse3_addsubv4sf3): Likewise.
12833
bbb52802
L
128342009-03-12 H.J. Lu <hongjiu.lu@intel.com>
12835
12836 PR target/38824
9ade279b 12837 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
bbb52802 12838
a812fb07
VM
128392009-03-12 Vladimir Makarov <vmakarov@redhat.com>
12840
12841 PR debug/39432
12842 * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
12843 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
12844 registers for allocnos created from user-defined variables.
12845
4caab5ba
UW
128462009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12847
12848 PR target/39181
12849 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
12850 of non-integer mode as well.
12851
498e51ca
AN
128522009-03-11 Adam Nemet <anemet@caviumnetworks.com>
12853
12854 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
12855 for functions for which the parameter types are unknown.
12856
9bfaf89d
JJ
128572009-03-11 Jakub Jelinek <jakub@redhat.com>
12858
12859 PR target/39137
9ade279b 12860 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
9bfaf89d
JJ
12861 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
12862 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
12863 * config/i386/i386.c (ix86_local_alignment): For
12864 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
12865 long long variables on the stack to avoid dynamic realignment.
12866 Allow the first argument to be a decl rather than type.
12867 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
12868
18a3bdcb
NC
128692009-03-11 Nick Clifton <nickc@redhat.com>
12870
12871 PR target/5362
40190a76
NC
12872 * config/mcore/mcore.opt: Remove deprecated m4align and m8align
12873 options.
12874 Add description to mno-lsim option.
12875 * config/mcore/mcore.h: Remove comment about deprecated m4align
12876 option.
12877 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
12878 * doc/invoke.texi: Add description of mno-lsim and
12879 mstack-increment options.
12880
18a3bdcb
NC
12881 * config/fr30/fr30.opt: Document the -mno-lsim option.
12882 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
12883 and -mno-lsim options.
12884
dc215785
UW
128852009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12886
12887 * fold-const.c (fold_comparison): Only call fold_inf_compare
12888 if the mode supports infinities.
12889
7716876b
JM
128902009-03-11 Jason Merrill <jason@redhat.com>
12891
12892 PR debug/39086
12893 * tree-nrv.c (tree_nrv): Don't do this optimization if the front
12894 end already did. Notice GIMPLE_CALL modifications of the result.
12895 Don't copy debug information from an ignored decl or a decl from
12896 another function.
12897
ddef83d2
RG
128982009-03-10 Richard Guenther <rguenther@suse.de>
12899 Nathan Froyd <froydnj@codesourcery.com>
12900
12901 PR middle-end/37850
9ade279b 12902 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
ddef83d2
RG
12903 (__divMODE3): Likewise.
12904
9a9ba8d9
JJ
129052009-03-09 Jakub Jelinek <jakub@redhat.com>
12906
12907 PR tree-optimization/39394
12908 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
12909 DECL_SIZE_UNIT of variable length FIELD_DECLs.
12910
929b7fc3
AK
129112009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12912
12913 * recog.c (verfiy_changes): Disallow renaming of hard regs in
12914 inline asms for register asm ("") declarations.
12915
1803581d
EB
129162009-03-09 Eric Botcazou <ebotcazou@adacore.com>
12917
12918 * fold-const.c (fold_unary): Fix comment.
12919
8454d27e
JH
129202009-03-07 Jan Hubicka <jh@suse.cz>
12921
12922 PR target/39361
969a5433
JJ
12923 * tree-inline.c (setup_one_parameter): Do replacement of const
12924 argument by constant in SSA form.
8454d27e 12925
3a695389
UW
129262009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12927
12928 PR middle-end/38028
12929 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
12930 determine alignment passed to assign_stack_local.
12931 (assign_parms_unsplit_complex): Likewise.
12932 * except.c (sjlj_build_landing_pads): Likewise.
12933
9f0e7885
JJ
129342009-03-06 Jakub Jelinek <jakub@redhat.com>
12935
65401a0b
JJ
12936 PR middle-end/39360
12937 * tree-flow.h (add_referenced_var): Return bool instead of void.
12938 * tree-dfa.c (add_referenced_var): Return result of
12939 referenced_var_check_and_insert call.
12940 * tree-inline.c (expand_call_inline): Call add_referenced_var instead
12941 of referenced_var_check_and_insert.
12942
9f0e7885 12943 PR debug/39372
9ade279b 12944 * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
9f0e7885
JJ
12945 (gen_variable_die): Emit DW_AT_location on abstract static variable's
12946 DIE, don't emit it if abstract origin already has it.
12947 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
12948 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
12949
3b664bd1
JBG
129502009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
12951
ba20e309 12952 * genpreds.c (needs_variable): Fix parentheses at variable name
3b664bd1
JBG
12953 detection.
12954 (write_tm_constrs_h): Indent generated code.
12955
d8f8ca80
RR
129562009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12957
12958 * doc/extend.texi (Function Attributes): Add documentation
12959 for isr attributes.
12960
6c3d550c
JJ
129612009-03-06 Jakub Jelinek <jakub@redhat.com>
12962
12963 PR debug/39387
12964 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
12965 take locus from its DECL_SOURCE_LOCATION instead of input_location.
12966
f9e96751
BS
129672009-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
12968
12969 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
12970 the loop as bad.
12971
ee0ee7e2
JJ
129722009-03-05 Jakub Jelinek <jakub@redhat.com>
12973
12974 PR debug/39379
12975 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
12976 with blocks containing IMPORTED_DECLs in BLOCK_VARS.
12977
6c6094f1
UB
129782009-03-05 Uros Bizjak <ubizjak@gmail.com>
12979
12980 * config/i386/i386.md (R8_REG, R9_REG): New constants.
12981 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
12982 constants instead of magic numbers.
12983 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
12984 (QI_REG_P): Ditto.
12985 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
12986 (x86_64_ms_abi_int_parameter_registers): Ditto.
12987 (x86_64_int_return_registers): Ditto.
09f8a8d3 12988 (ix86_maybe_switch_abi): Ditto.
6c6094f1
UB
12989 (ix86_expand_call): Ditto for clobbered_registers array.
12990 (ix86_hard_regno_mode_ok): Ditto.
12991 (x86_extended_QIreg_mentioned_p): Ditto.
12992
b267bd41
R
129932009-03-05 J"orn Rennecke <joern.rennecke@arc.com>
12994
6c6094f1 12995 PR tree-optimization/39349
1f3ad3f0
R
12996 * cse.c (cse_insn): Fix loop to stop at VOIDmode.
12997
b267bd41
R
12998 * combine.c (gen_lowpart_for_combine): Use omode when generating
12999 clobber.
13000
1242bc9d
R
130012009-03-04 J"orn Rennecke <joern.rennecke@arc.com>
13002
6c6094f1 13003 PR rtl-optimization/39235
1242bc9d
R
13004 * loop-iv.c (get_simple_loop_desc): Use XCNEW.
13005
48f03606
ZD
130062009-03-04 Zdenek Dvorak <ook@ucw.cz>
13007
13008 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
13009
b505e785
RG
130102009-03-04 Richard Guenther <rguenther@suse.de>
13011
13012 PR tree-optimization/39362
13013 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
13014 that occur in abnormal PHIs should be varying.
13015
f017bf5e
ZD
130162009-03-04 Zdenek Dvorak <ook@ucw.cz>
13017
13018 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
13019 Extend comments.
13020 (simple_iv): Take loop as an argument instead of statement.
13021 * tree-scalar-evolution.h (simple_iv): Declaration changed.
13022 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
13023 to simple_iv.
13024 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
13025 Ditto.
13026 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
13027 * matrix-reorg.c (analyze_transpose): Ditto.
13028 * tree-data-ref.c (dr_analyze_innermost): Ditto.
13029 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
13030 * tree-predcom.c (ref_at_iteration): Ditto.
13031 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
13032
6a66f28e
RG
130332009-03-04 Richard Guenther <rguenther@suse.de>
13034
13035 PR tree-optimization/39358
13036 * tree-ssa-structalias.c (do_sd_constraint): Fix check for
13037 escaped_id and callused_id.
13038 (solve_graph): Likewise.
13039
57e454ee
RG
130402009-03-04 Richard Guenther <rguenther@suse.de>
13041
13042 PR tree-optimization/39339
13043 * tree-sra.c (try_instantiate_multiple_fields): Make it
13044 no longer ICE on the above.
13045
a6fe9ed4
JM
130462009-03-03 Joseph Myers <joseph@codesourcery.com>
13047
13048 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
13049 that fits within Pmode.
13050
dc672951
SE
130512009-03-03 Steve Ellcey <sje@cup.hp.com>
13052
13053 PR middle-end/10109
13054 * tm.texi (LIBCALL_VALUE): Update description.
13055
8b9d598f
SE
130562009-03-03 Steve Ellcey <sje@cup.hp.com>
13057
13058 PR middle-end/34443
13059 * doc/extend.texi (section): Update description.
13060
13e4e36e
L
130612009-03-03 H.J. Lu <hongjiu.lu@intel.com>
13062
13063 PR middle-end/39345
13064 * tree-inline.c (remapped_type): New.
13065 (can_be_nonlocal): Call remapped_type instead of remap_type.
13066
067dd3c9
JJ
130672009-03-03 Jakub Jelinek <jakub@redhat.com>
13068
13069 PR fortran/39354
13070 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
13071 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
13072
9bd9f738
RG
130732009-03-03 Richard Guenther <rguenther@suse.de>
13074
13075 PR middle-end/39272
13076 * tree.c (tree_nonartificial_location): New function.
13077 * tree.h (tree_nonartificial_location): Declare.
13078 * builtins.c (expand_builtin_memory_chk): Provide location
13079 of the call location for artificial function pieces.
13080 (maybe_emit_chk_warning): Likewise.
13081 (maybe_emit_sprintf_chk_warning): Likewise.
13082 (maybe_emit_free_warning): Likewise.
13083 * expr.c (expand_expr_real_1): Likewise.
13084
f07049c8
JJ
130852009-03-03 Jakub Jelinek <jakub@redhat.com>
13086
13087 PR tree-optimization/39343
13088 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
13089 COMPONENT_REF t has ARRAY_TYPE.
13090
7d4fba4a
SP
130912009-03-02 Sebastian Pop <sebastian.pop@amd.com>
13092
13093 PR middle-end/39335
13094 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
13095 when the type precision of the induction variable should be
13096 larger than the type precision of nit.
13097 (gen_parallel_loop): Update use of canonicalize_loop_ivs.
13098 * graphite.c (graphite_loop_normal_form): Same.
13099 * tree-flow.h (canonicalize_loop_ivs): Update declaration.
13100
78168632
UB
131012009-03-02 Uros Bizjak <ubizjak@gmail.com>
13102
13103 * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
13104 (*call_1_rex64_ms_sysv): Use named constants instead of magic
6c6094f1 13105 numbers to describe clobbered registers.
78168632 13106 (*call_value_0_rex64_ms_sysv): Ditto.
6c6094f1
UB
13107 * config/i386/mmx.md (mmx_emms): Ditto.
13108 (mmx_femms): Ditto.
78168632 13109
63553059
RS
131102009-03-02 Richard Sandiford <rdsandiford@googlemail.com>
13111
13112 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
13113 of ABI_64.
13114
500a1f85
UW
131152009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13116
13117 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
13118 (spu_section_type_flags): New function.
13119
962aae34
UB
131202009-03-02 Uros Bizjak <ubizjak@gmail.com>
13121
13122 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
13123 reg_class_contents of FLOAT_REGS into a temporary.
13124
6dfb529c 131252009-03-02 Richard Guenther <rguenther@suse.de>
962aae34 13126 Ira Rosen <irar@il.ibm.com>
6dfb529c
RG
13127
13128 PR tree-optimization/39318
13129 * tree-vect-transform.c (vectorizable_call): Transfer the EH region
13130 information to the vectorized statement.
13131
6b5629db
UB
131322009-03-01 Uros Bizjak <ubizjak@gmail.com>
13133
434426d2
UB
13134 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
13135 variable. Use defined names instead of magic constants for REX SSE
13136 registers.
6b5629db 13137
14e5b285
RG
131382009-03-01 Richard Guenther <rguenther@suse.de>
13139
13140 PR tree-optimization/39331
13141 * omp-low.c (lower_send_shared_vars): Do not receive new
13142 values for the reference of DECL_BY_REFERENCE parms or results.
13143
526d73ab
JH
131442009-03-01 Jan Hubicka <jh@suse.cz>
13145
13146 PR debug/39267
13147 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
13148 BLOCK_NONLOCALIZED_VAR): New macros.
13149 (tree_block): Add nonlocalized_vars.
f4ea99bd
EB
13150 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
13151 gen_decl_die): Add origin argument. Allow generation of die with
13152 origin at hand only.
526d73ab 13153 (gen_member_die, gen_type_die_with_usage, force_decl_die,
f4ea99bd
EB
13154 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
13155 of gen_*.
526d73ab
JH
13156 (gen_block_die): Fix checking for unused blocks.
13157 (process_scope_var): Break out from .... ; work with origins only.
13158 (decls_for_scope) ... here; process nonlocalized list.
13159 (dwarf2out_ignore_block): Look for nonlocalized vars.
f4ea99bd
EB
13160 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
13161 vars.
526d73ab
JH
13162 (dump_scope_block): Dump them.
13163 * tree-inline.c (remap_decls): Handle nonlocalized vars.
13164 (remap_block): Likewise.
13165 (can_be_nonlocal): New predicate.
13166 (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
13167
7a9d3fe8
RW
131682009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13169
13170 * configure: Regenerate.
13171
b3cdf3cb
RW
131722009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13173
a16d1645 13174 * optc-gen.awk: No need to duplicate option flags twice.
9ade279b 13175 Reuse help texts for duplicate options which do not have any.
a16d1645 13176
1156c176
RW
13177 * gcc.c (display_help): Document --version.
13178
033505fc
RW
13179 * gcc.c (main): If print_help_list and verbose_flag, ensure
13180 driver output comes before subprocess output.
13181
4d077054
RW
13182 * optc-gen.awk: Assign all remaining fields to help string,
13183 space-separated, for multi-line help in *.opt.
13184
a072f1cf
RW
13185 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
13186 -Wno-pedantic-ms-format is for MinGW targets only.
13187
b3cdf3cb
RW
13188 * doc/options.texi (Option file format): Fix bad indentation,
13189 restoring dropped sentence.
13190
a3aadcc5
JH
131912009-02-28 Jan Hubicka <jh@suse.cz>
13192
13193 * tree-inline.c (tree_function_versioning): Output debug info.
13194
1cf5abb3
JH
131952009-02-28 Jan Hubicka <jh@suse.cz>
13196
13197 PR debug/39267
13198 * tree-inline.c (setup_one_parameter): Do not copy propagate
13199 arguments when not optimizing.
13200
c4d3f42f
L
132012009-02-28 H.J. Lu <hongjiu.lu@intel.com>
13202
13203 PR target/39327
13204 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
13205 (avx_addsubv4df3): Likewise.
13206 (*avx_addsubv4sf3): Likewise.
13207 (sse3_addsubv4sf3): Likewise.
13208 (*avx_addsubv2df3): Likewise.
13209 (sse3_addsubv2df3): Likewise.
13210 (avx_unpckhps256): Correct item selectors.
13211 (avx_unpcklps256): Likewise.
13212 (avx_unpckhpd256): Likewise.
13213 (avx_unpcklpd256): Likewise.
13214
eb50f5f4
JH
132152009-02-28 Jan Hubicka <jh@suse.cz>
13216
13217 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
13218 static vars.
13219 (copy_arguments_for_versioning): If var is declared don't declare it.
13220 (tree_function_versioning): First setup substitutions and then copy
13221 args.
13222
26140130
JH
132232009-02-27 Jan Hubicka <jh@suse.cz>
13224
13225 PR debug/39267
13226 * cgraph.h (varpool_output_debug_info): Remove.
13227 * cgraphunit.c (varpool_output_debug_info): Remove.
13228 * dwarf2out.c (deferred_locations_struct): New struct
13229 (deferred_locations): New type.
13230 (deferred_locations_list): New static var.
13231 (deffer_location): New function.
13232 (gen_variable_die): Use it.
13233 (decls_for_scope): Output info on local static vars.
13234 (dwarf2out_finish): Process deferred locations.
13235 * varpool.c (varpool_output_debug_info): Remove.
13236
cff7525f
JH
132372009-02-27 Jan Hubicka <jh@suse.cz>
13238
13239 PR debug/39267
13240 * tree.h (TREE_PROTECTED): Fix comment.
13241 (BLOCK_HANDLER_BLOCK): Remove.
13242 (struct tree_block): Remove handler_block add body_block.
13243 (inlined_function_outer_scope_p): New.
13244 (is_body_block): Remove.
13245 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
13246 * dwarf2out.c (is_inlined_entry_point): Remove.
13247 (add_high_low_attributes): Use inlined_function_outer_scope_p.
f10a1c6c
EB
13248 (gen_block_die): Use is_inlined_entry_point check. Remove body block
13249 code.
cff7525f
JH
13250 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
13251 * gimplify.c (gimplify_expr): Gimplify body blocks.
f10a1c6c
EB
13252 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
13253 block with multiple subblocks.
cff7525f
JH
13254 (dump_scope_block): Prettier output; dump more flags and info.
13255 (dump_scope_blocks): New.
13256 (remove_unused_locals): Use dump_scope_blocks.
13257 * tree-flow.h (dump_scope_blocks): Declare.
13258 * tree-cfg.c (execute_build_cfg): Dump scope blocks.
13259 * stmt.c (is_body_block): Remove.
13260 * tree-inline.c (remap_block): Copy BODY_BLOCK info.
13261 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
13262
c20993b9
SP
132632009-02-27 Sebastian Pop <sebastian.pop@amd.com>
13264
13265 PR middle-end/39308
2ba9daa7 13266 * graphite.c (graphite_loop_normal_form): Do not call
c20993b9
SP
13267 number_of_iterations_exit from a gcc_assert.
13268
e3cba5e5
AK
132692009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13270
60839f5d 13271 * config/s390/s390.c (s390_swap_cmp): Look for conditional
e3cba5e5
AK
13272 jumps if COND is NULL.
13273 (find_cond_jump): New function.
13274 (s390_z10_optimize_cmp): Handling for reg-reg compares added.
60839f5d 13275 * config/s390/s390.md: Remove z10_cobra attribute value.
e3cba5e5 13276
9dadeeb8
UB
132772009-02-26 Uros Bizjak <ubizjak@gmail.com>
13278
13279 * config/alpha/alpha.h (alpha_expand_mov): Return false if
13280 force_const_mem returns NULL_RTX.
13281
625d3251
EB
132822009-02-26 Jan Hubicka <jh@suse.cz>
13283
13284 PR debug/39267
13285 * cgraph.h (varpool_output_debug_info): Remove.
13286 * cgraphunit.c (varpool_output_debug_info): Remove.
13287 * dwarf2out.c (deferred_locations_struct): New struct
13288 (deferred_locations): New type.
13289 (deferred_locations_list): New static var.
13290 (deffer_location): New function.
13291 (gen_variable_die): Use it.
13292 (decls_for_scope): Output info on local static vars.
13293 (dwarf2out_finish): Process deferred locations.
13294 * varpool.c (varpool_output_debug_info): Remove.
13295
38432148 132962009-02-25 H.J. Lu <hongjiu.lu@intel.com>
8592acaf
L
13297
13298 PR rtl-optimization/39241
13299 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
13300 to subreg_offset_representable_p.
13301
62d049cf
PB
133022009-02-25 Paolo Bonzini <bonzini@gnu.org>
13303
13304 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
13305 execute function prototype. Get f and nregs from max_reg_num
13306 and get_insns. Remove the first backward pass as it's dead,
13307 guard the forward pass by flag_expensive_optimizations.
13308 (rest_of_handle_regmove): Delete.
13309 (pass_regmove): Replace it with regmove_optimize.
13310
f618d33e
MJ
133112009-02-25 Martin Jambor <mjambor@suse.cz>
13312
13313 PR tree-optimization/39259
13314 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
6c6094f1 13315 calls_alloca function flags.
f618d33e
MJ
13316 (copy_bb): Set calls_setjmp and alls_alloca function flags if such
13317 calls are detected.
13318
c8a05f7c
PB
133192009-02-25 Paolo Bonzini <bonzini@gnu.org>
13320
13321 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
13322 flags_set_1_rtx, flags_set_1_set): Delete.
13323 (regmove_optimize): Do not call mark_flags_life_zones.
13324
6d2538f5
JB
133252009-02-24 Julian Brown <julian@codesourcery.com>
13326
13327 PR target/35965
13328 * config/arm/arm.c (require_pic_register): Only set
13329 cfun->machine->pic_reg once per function.
13330
a2fa6772
SL
133312009-02-24 Sandra Loosemore <sandra@codesourcery.com>
13332
13333 * doc/invoke.texi (Link Options): Document an easier way to pass
9dadeeb8 13334 options that take arguments to the GNU linker using -Xlinker and -Wl.
a2fa6772 13335
5472de36
SE
133362009-02-24 Steve Ellcey <sje@cup.hp.com>
13337
13338 PR target/33785
13339 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
13340
844216f3
RG
133412009-02-24 Richard Guenther <rguenther@suse.de>
13342
13343 PR debug/39285
13344 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
13345
71adbef3 133462009-02-24 Richard Guenther <rguenther@suse.de>
8592acaf 13347 Zdenek Dvorak <ook@ucw.cz>
71adbef3
RG
13348
13349 PR tree-optimization/39233
13350 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
13351 from converting them to a generic type.
13352
f1a558e0
SP
133532009-02-23 Sebastian Pop <sebastian.pop@amd.com>
13354
13355 PR tree-optimization/39260
13356 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
13357 contains a condition with a real type.
13358 (build_scop_conditions_1): Conditions are always last_stmt of a bb.
13359
d8028f2c
JM
133602009-02-23 Jason Merrill <jason@redhat.com>
13361
13362 PR c++/38880
13363 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
13364 narrowing_initializer_constant_valid_p.
2ba9daa7 13365 (narrowing_initializer_constant_valid_p): Don't return
d8028f2c
JM
13366 null_pointer_node for adding a pointer to itself.
13367
9283b513
JH
133682009-02-23 Jan Hubicka <jh@suse.cz>
13369
13370 PR c/12245
9dadeeb8
UB
13371 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
13372 resizing.
9283b513 13373
61e04322
JH
133742009-02-23 Jan Hubicka <jh@suse.cz>
13375
9dadeeb8
UB
13376 PR tree-optimization/37709
13377 * tree.c (block_ultimate_origin): Move here from dwarf2out.
13378 * tree.h (block_ultimate_origin): Declare.
13379 * dwarf2out.c (block_ultimate_origin): Move to tree.c
61e04322
JH
13380 * tree-ssa-live.c (remove_unused_scope_block_p):
13381 Eliminate blocks containig no instructions nor live variables nor
13382 nested blocks.
13383 (dump_scope_block): New function.
13384 (remove_unused_locals): Enable removal of dead blocks by default;
9dadeeb8 13385 enable dumping at TDF_DETAILS.
61e04322 13386
38432148 133872009-02-21 H.J. Lu <hongjiu.lu@intel.com>
5339d3ea
L
13388
13389 * config/i386/i386.c (classify_argument): Don't allow COImode
13390 and OImode.
13391 (function_arg_advance_32): Don't allow OImode.
13392 (function_arg_32): Likewise.
13393 (function_value_32): Likewise.
13394 (return_in_memory_32): Likewise.
13395 (function_arg_64): Remove OImode comment.
13396
38432148 133972009-02-21 H.J. Lu <hongjiu.lu@intel.com>
f161e158
L
13398
13399 PR target/39261
13400 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
13401 ix86_expand_vector_set for V4DImode in 64bit mode only.
13402 (ix86_expand_vector_init_one_var): Likewise.
13403
dcd739a6
SP
134042009-02-21 Sebastian Pop <sebastian.pop@amd.com>
13405
13406 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
13407
6c3b938d
RS
134082009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
13409
8e361f23 13410 PR bootstrap/39257
6c3b938d
RS
13411 * loop-iv.c: Revert last change.
13412 * emit-rtl.c: Likewise.
13413
38432148 134142009-02-21 H.J. Lu <hongjiu.lu@intel.com>
4c64d3dd
L
13415
13416 PR target/39256
13417 * config/i386/i386.c (type_natural_mode): Remove an extra
13418 space in the warning message.
13419 (function_value_32): Handle 32-byte vector modes.
13420 (return_in_memory_32): Likewise.
13421
2ec62529
RS
134222009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
13423
13424 * loop-iv.c (truncate_value): New function.
13425 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
13426 of lowpart_subreg.
13427 (lowpart_subreg): Move to...
13428 * emit-rtl.c: ...here.
13429
ecb8c3cc 134302009-02-21 Danny Smith <dannysmith@users.sourceforge.net>
f814e489 13431
ecb8c3cc
DS
13432 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
13433 accidental and undocumented change at revision 140860.
13434
ae46a823
JM
134352009-02-21 Joseph Myers <joseph@codesourcery.com>
13436
13437 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
13438 take gimple_seq * arguments.
13439 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
13440 types_compatible_p langhook.
13441
07d8efe3 134422009-02-20 Mark Mitchell <mark@codesourcery.com>
f814e489 13443 Joseph Myers <joseph@codesourcery.com>
07d8efe3
MM
13444
13445 * config/arm/arm.c (arm_builtin_va_list): New function.
13446 (arm_expand_builtin_va_start): Likewise.
13447 (arm_gimplify_va_arg_expr): Likewise.
13448 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
13449 (TARGET_BUILD_BUILTIN_VA_START): Likewise.
13450 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
13451 (va_list_type): New variable.
13452 (arm_mangle_type): Mangle va_list_type appropriately.
13453
b1fb9f56
JJ
134542009-02-20 Jakub Jelinek <jakub@redhat.com>
13455
13456 PR middle-end/39157
13457 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
13458 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
13459 * params.def (loop-invariant-max-bbs-in-loop): New parameter.
13460 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
13461 parameter to 1000 for -O1 by default.
13462 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
13463 parameter.
13464 * loop-invariant.c: Include params.h.
13465 (move_loop_invariants): Don't call move_single_loop_invariants on
13466 very large loops.
13467
5bc0807c
JM
134682009-02-20 Jaka Mocnik <jaka@xlab.si>
13469
13470 * calls.c (emit_library_call_value_1): Use slot_offset instead of
13471 offset when calculating bounds for indexing stack_usage_map. Fixes
13472 a buffer overflow with certain target setups.
13473
c69cd1f5
JJ
134742009-02-20 Jakub Jelinek <jakub@redhat.com>
13475
13476 PR target/39240
13477 * calls.c (expand_call): Clear try_tail_call if caller and callee
13478 disagree in promotion of function return value.
13479
09812622
JJ
134802009-02-19 Jakub Jelinek <jakub@redhat.com>
13481
13482 PR target/39175
13483 * c-common.c (c_determine_visibility): If visibility changed and
13484 DECL_RTL has been already set, call make_decl_rtl to update symbol
13485 flags.
13486
68017cb4
L
134872009-02-19 H.J. Lu <hongjiu.lu@intel.com>
13488
13489 PR c++/39188
13490 * varasm.c (assemble_variable): Don't check DECL_NAME when
13491 globalizing a variable.
13492
ab4194da
JM
134932009-02-19 Joseph Myers <joseph@codesourcery.com>
13494
13495 PR c/38483
13496 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
13497 expression before any __builtin_trap call.
13498 * c-typeck.c (build_function_call): Convert and check function
13499 arguments before generating a call to a trap. Evaluate the
13500 function arguments before the trap.
13501
6b67572e
UB
135022009-02-19 Uros Bizjak <ubizjak@gmail.com>
13503
13504 PR target/39228
13505 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
13506 (UNSPEC_FXAM_MEM): New unspec.
13507 (fxam<mode>2_i387_with_temp): New insn and split pattern.
13508 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
13509 memory using fxam<mode>2_i387_with_temp to remove excess precision.
13510
9e39dba6
RG
135112009-02-19 Richard Guenther <rguenther@suse.de>
13512
13513 PR tree-optimization/39207
13514 PR tree-optimization/39074
13515 * tree-ssa-structalias.c (storedanything_id, var_storedanything,
13516 storedanything_tree): New.
13517 (do_ds_constraint): Simplify ANYTHING shortcutting. Update
6b67572e 13518 the STOREDANYTHING solution if the lhs solution contains ANYTHING.
9e39dba6
RG
13519 (build_succ_graph): Add edges from STOREDANYTHING to all
13520 non-direct nodes.
13521 (init_base_vars): Initialize STOREDANYTHING.
13522 (compute_points_to_sets): Free substitution info after
13523 building the succ graph.
13524 (ipa_pta_execute): Likewise.
13525
13526 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
13527 field.
13528 (do_ds_constraint): Do not add to special var or non-pointer
13529 field solutions.
13530 (type_could_have_pointers): Split out from ...
13531 (could_have_pointers): ... here. For arrays use the element type.
13532 (create_variable_info_for): Initialize may_have_pointers.
13533 (new_var_info): Likewise.
13534 (handle_lhs_call): Make the HEAP variable unknown-sized.
13535 (intra_create_variable_infos): Use a type with pointers for
13536 PARM_NOALIAS, make it unknown-sized.
13537
fd7b2603
L
135382009-02-18 H.J. Lu <hongjiu.lu@intel.com>
13539
13540 PR target/39224
6b67572e 13541 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
fd7b2603 13542
98b80692
JM
135432009-02-18 Jason Merrill <jason@redhat.com>
13544
13545 PR target/39179
13546 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
13547 value if DECL_EXTERNAL.
13548 * tree-sra.c (sra_walk_gimple_assign): Likewise.
13549 * target.h (gcc_target::binds_local_p): Clarify "module".
13550 * tree.h (TREE_PUBLIC): Clarify "module".
13551
0705d3f4
L
135522009-02-17 Xuepeng Guo <xuepeng.guo@intel.com>
13553
13554 PR target/38891
13555 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
13556 initialization for MS_ABI prior to the hunk of !TARGET_MMX.
13557
bce08d50
L
135582009-02-17 H.J. Lu <hongjiu.lu@intel.com>
13559
13560 PR target/39082
13561 * c.opt (Wabi): Support C and ObjC.
13562 (Wpsabi): New.
13563
13564 * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
13565
13566 * config/i386/i386.c (classify_argument): Warn once about the ABI
13567 change when passing union with long double.
13568
13569 * doc/invoke.texi: Update -Wabi for warning psABI changes.
13570
5600f233
JM
135712009-02-18 Joseph Myers <joseph@codesourcery.com>
13572
13573 PR c/35447
13574 * c-parser.c (c_parser_compound_statement): Always enter and leave
13575 a scope.
13576
8cd01fe6
JDA
135772009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13578
13579 PR target/34587
13580 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
13581
418df9d7
JJ
135822009-02-18 Jakub Jelinek <jakub@redhat.com>
13583
13584 PR tree-optimization/36922
13585 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
13586 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
13587 Likewise.
13588
082d2ebb
RS
135892009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
13590
13591 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
13592 to 0 for EABI64.
13593
17de576c
RS
135942009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
13595
13596 * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
13597
6d8d5435
RS
135982009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
13599
13600 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
13601 tree sharing.
13602
e69ff910
RB
136032009-02-17 Ruan Beihong <ruanbeihong@gmail.com>
13604 Richard Sandiford <rdsandiford@googlemail.com>
13605
13606 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
13607 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
13608 (loongson_biadd): ...this.
13609
6b24ee26
RG
136102009-02-17 Richard Guenther <rguenther@suse.de>
13611
13612 PR tree-optimization/39202
13613 * tree-ssa-structalias.c (do_structure_copy): Before collapsing
13614 a var make sure to follow existing collapses.
13615
91ab2c86
RG
136162009-02-17 Richard Guenther <rguenther@suse.de>
13617
13618 PR middle-end/39214
13619 * langhooks.c (lhd_print_error_function): Check for NULL block.
13620
73a63870
RG
136212009-02-17 Richard Guenther <rguenther@suse.de>
13622
13623 PR tree-optimization/39204
13624 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
13625 of the PHI arg.
13626
0e08f686
UB
136272009-02-17 Uros Bizjak <ubizjak@gmail.com>
13628
13629 * config/soft-fp/double.h: Update from glibc CVS.
13630
a60b7ddb
RG
136312009-02-17 Richard Guenther <rguenther@suse.de>
13632
13633 PR tree-optimization/39207
13634 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
13635 strict-aliasing warnings for pointers pointing to NULL.
13636
a47e20fd
JM
136372009-02-16 Joseph Myers <joseph@codesourcery.com>
13638
13639 PR c/35446
13640 * c-parser.c (c_parser_braced_init): Call pop_init_level when
13641 skipping until next close brace.
13642
50aab7dc
L
136432009-02-16 H.J. Lu <hongjiu.lu@intel.com>
13644
13645 PR target/37049
13646 * config/i386/i386.c (ix86_expand_push): Set memory alignment
13647 to function argument boundary.
13648
68e53db0
HS
136492009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com>
13650
13651 * config/picochip/picochip.md (lea_add): Allow any nonimmediate
13652 in the lea_add. Reload eventually constraints it properly.
0d50d55a 13653 * config/picochip/constraints.md: Remove the target constraint
68e53db0
HS
13654 "b", since it is not needed anymore.
13655
09e361bb
JJ
136562009-02-16 Jakub Jelinek <jakub@redhat.com>
13657
13658 * gthr-dce.h: Uglify function parameter and local variable names.
13659 * gthr-gnat.h: Likewise.
13660 * gthr-mipssde.h: Likewise.
13661 * gthr-nks.h: Likewise.
13662 * gthr-posix95.h: Likewise.
13663 * gthr-posix.h: Likewise.
13664 * gthr-rtems.h: Likewise.
13665 * gthr-single.h: Likewise.
13666 * gthr-solaris.h: Likewise.
13667 * gthr-tpf.h: Likewise.
13668 * gthr-vxworks.h: Likewise.
13669 * gthr-win32.h: Likewise.
13670
47f5a48f
L
136712009-02-15 H.J. Lu <hongjiu.lu@intel.com>
13672
13673 PR target/39196
13674 * config/i386/i386.md: Restrict the new peephole2 to move
13675 between MMX/SSE registers.
13676
68c9ab45
RG
136772009-02-15 Richard Guenther <rguenther@suse.de>
13678
13679 Revert
13680 2009-02-13 Richard Guenther <rguenther@suse.de>
13681
13682 * configure.ac: Enable LFS.
13683 * configure: Re-generate.
13684 * config.in: Likewise.
13685
d7815554
UW
136862009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13687
13688 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
13689 spu_srqwbyte, spu_srqwbytebc): Define.
13690 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
13691 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
13692 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
13693 "shrqby_<mode>"): New insn-and-split patterns.
13694 * config/spu/spu.c (expand_builtin_args): Determine and return
13695 number of operands using spu_builtin_description data.
13696 (spu_expand_builtin_1): Use it.
13697
c208436c
SE
136982009-02-13 Steve Ellcey <sje@cup.hp.com>
13699
13700 PR target/38056
13701 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
13702 TARGET_CONST_GP.
13703
c2e7ba7e
L
137042009-02-13 H.J. Lu <hongjiu.lu@intel.com>
13705
13706 PR target/39149
13707 * config/i386/i386.c (override_options): Correct warning
6c6094f1 13708 messages for -malign-loops, -malign-jumps and -malign-functions.
c2e7ba7e 13709
72f4e3a7
L
137102009-02-13 H.J. Lu <hongjiu.lu@intel.com>
13711
13712 PR target/39152
13713 * config/i386/i386.md: Restrict the new peephole2 to move
13714 between the general purpose registers.
13715
53f648e2
L
137162009-02-13 H.J. Lu <hongjiu.lu@intel.com>
13717
13718 PR target/39162
13719 * config/i386/i386.c (type_natural_mode): Add a new argument.
6b67572e 13720 Return the original mode and warn ABI change if vector size is 32byte.
53f648e2
L
13721 (function_arg_advance): Updated.
13722 (function_arg): Likewise.
13723 (ix86_function_value): Likewise.
13724 (ix86_return_in_memory): Likewise.
13725 (ix86_sol10_return_in_memory): Likewise.
13726 (ix86_gimplify_va_arg): Likewise.
13727 (function_arg_32): Don't warn ABX ABI change here.
13728 (function_arg_64): Likewise.
13729
38432148 137302009-02-13 Bernd Schmidt <bernd.schmidt@analog.com>
b1c92d54
BS
13731
13732 * loop-iv.c (implies_p): In the final case, test that operands 0
13733 of the two comparisons match.
13734
dd2139e7
BS
13735 * config/bfin/bfin.c (find_prev_insn_start): New function.
13736 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
13737 (find_next_insn_start): Move.
13738
601b3e1a
RG
137392009-02-13 Richard Guenther <rguenther@suse.de>
13740
13741 * configure.ac: Enable LFS.
13742 * configure: Re-generate.
13743 * config.in: Likewise.
13744
f007042e
JM
137452009-02-13 Joseph Myers <joseph@codesourcery.com>
13746
13747 PR c/35444
13748 * c-parser.c (c_parser_parms_list_declarator): Discard pending
13749 sizes on syntax error after some arguments have been parsed.
13750
3f238e8b
JJ
137512009-02-12 Jakub Jelinek <jakub@redhat.com>
13752
13753 * doc/invoke.texi (-fira): Remove.
13754
328e13b7
L
137552009-02-12 H.J. Lu <hongjiu.lu@intel.com>
13756
13757 * caller-save.c: Replace regclass.c with reginfo.c in comments.
13758 * recog.c: Likewise.
13759 * rtl.h: Likewise.
13760
c252db20
L
137612009-02-12 Uros Bizjak <ubizjak@gmail.com>
13762
13763 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
13764 (umul_ppmm): Likewise.
13765 (count_leading_zeros): Likewise.
13766 (count_trailing_zeros): Likewise.
13767 (UMUL_TIME): Likewise.
13768
137692009-02-12 H.J. Lu <hongjiu.lu@intel.com>
13770
ba181049
UB
13771 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
13772 soft-fp/t-softfp to tmake_file.
c252db20
L
13773
13774 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
ba181049
UB
13775 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
13776 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
13777 IA64_BUILTIN_INFQ]: New.
c252db20
L
13778 (ia64_init_builtins): Initialize __builtin_infq,
13779 __builtin_fabsq and __builtin_copysignq if not HPUX.
13780 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
13781 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
13782
13783 * config/ia64/lib1funcs.asm (__divtf3): Define only if
13784 SHARED is defined.
13785 (__fixtfti): Likewise.
13786 (__fixunstfti): Likewise.
13787 (__floattitf): Likewise.
13788
13789 * config/ia64/libgcc-glibc.ver: New.
13790 * config/ia64/t-fprules-softfp: Likewise.
13791 * config/ia64/sfp-machine.h: Likewise.
13792
13793 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
13794 (LIBGCC2_TF_CEXT): Likewise.
13795 (TF_SIZE): Likewise.
13796 (TARGET_INIT_LIBFUNCS): Likewise.
13797
ba181049 13798 * config/ia64/t-glibc (SHLINB_MAPFILES):
6b67572e 13799 Add $(srcdir)/config/ia64/libgcc-glibc.ver.
c252db20 13800
f13eae6a
L
138012009-02-12 H.J. Lu <hongjiu.lu@intel.com>
13802
13803 * config/i386/i386.c (construct_container): Rewrite processing
13804 BLKmode with X86_64_SSE_CLASS.
13805
12019aec
L
138062009-02-12 Paolo Bonzini <bonzini@gnu.org>
13807
13808 PR target/39152
13809 * config/i386/i386.md: Replace simplify_replace_rtx with
13810 replace_rtx in the new peephole2.
13811
28c11eb3
NS
138122009-02-12 Nathan Sidwell <nathan@codesourcery.com>
13813
13814 * doc/invoke.texi (Optimize Options): Stop claiming inlining and
13815 loop unrolling do not happen at -O2.
13816
c7b94907
MM
138172009-02-12 Michael Matz <matz@suse.de>
13818
13819 * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
13820
61e98967
JJ
138212009-02-12 Jakub Jelinek <jakub@redhat.com>
13822
13823 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
13824 for -g3.
13825
a2a237b5
BE
138262009-02-12 Ben Elliston <bje@au.ibm.com>
13827
13828 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
13829 patterns when updating the back chain. Missed in the 2009-02-10
13830 change.
13831
853eda8d
JJ
138322009-02-11 Janis Johnson <janis187@us.ibm.com>
13833
13834 * doc/extend.texi (Decimal Floating Types): Update identifier of
13835 draft TR and list of missing support.
13836
3ad6b266
JJ
138372009-02-11 Jakub Jelinek <jakub@redhat.com>
13838
13839 PR middle-end/39154
13840 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
13841 bit to variable length decl's flags, add it also to its
13842 pointer replacement variable.
13843
b058b753
UB
138442009-02-11 Uros Bizjak <ubizjak@gmail.com>
13845 Jakub Jelinek <jakub@redhat.com>
13846
13847 PR target/39118
13848 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
13849 (memory_blockage): New expander.
13850 (*memory_blockage): New insn pattern.
13851 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
13852 instead of general blockage at the end of function prologue when
13853 frame pointer is used to access red zone area. Do not emit blockage
13854 when profiling, it is emitted in generic code.
13855 (ix86_expand_epilogue): Emit memory_blockage at the beginning of
13856 function epilogue when frame pointer is used to access red zone area.
13857
bab64f23
PB
138582009-02-11 Paolo Bonzini <bonzini@gnu.org>
13859
0ce6dcfa 13860 PR target/38824
bab64f23
PB
13861 * config/i386/i386.md: Add two new peephole2 to avoid mov followed
13862 by arithmetic with memory operands.
13863 * config/i386/predicates.md (commutative_operator): New.
13864
8fd94bda
JJ
138652009-02-10 Janis Johnson <janis187@us.ibm.com>
13866
13867 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
13868 bulleted lists.
13869
794511d2
EB
138702009-02-10 Eric Botcazou <ebotcazou@adacore.com>
13871
13872 * alias.h (record_alias_subset): Declare.
13873 * alias.c (record_alias_subset): Make global.
13874
6da7fc87
NC
138752009-02-10 Nick Clifton <nickc@redhat.com>
13876
13877 * tree-parloops.c: Change license to GPLv3.
13878 * ipa-struct-reorg.c: Change license to GPLv3.
13879 * ipa-struct-reorg.h: Change license to GPLv3.
13880
a03813c8
SE
138812009-02-10 Steve Ellcey <sje@cup.hp.com>
13882
13883 PR c/39084
13884 * c-decl.c (start_struct): Return NULL on error.
13885
fc3103e7
JJ
138862009-02-10 Jakub Jelinek <jakub@redhat.com>
13887
9b43d37b
JJ
13888 PR middle-end/39124
13889 * cfgloopmanip.c (remove_path): Call remove_bbs after
13890 cancel_loop_tree, not before it.
13891
fc3103e7 13892 PR target/39139
b058b753 13893 * function.h (struct function): Add has_local_explicit_reg_vars bit.
fc3103e7
JJ
13894 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
13895 VAR_DECLs were seen.
13896 * tree-ssa-live.c (remove_unused_locals): Recompute
13897 cfun->has_local_explicit_reg_vars.
13898 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
13899 copies or clearings if cfun->has_local_explicit_reg_vars.
13900
dbf9ee15
UB
139012009-02-10 Uros Bizjak <ubizjak@gmail.com>
13902
13903 PR target/39118
13904 * config/i386/i386.c (expand_prologue): Emit blockage at the end
13905 of function prologue when frame pointer is used to access
13906 red zone area.
13907
bdec4dc7
RG
139082009-02-10 Richard Guenther <rguenther@suse.de>
13909
13910 PR middle-end/39127
13911 * gimplify.c (gimple_regimplify_operands): Always look if
13912 we need to create a temporary.
13913
7cae94fc
RG
139142009-02-10 Richard Guenther <rguenther@suse.de>
13915
13916 PR tree-optimization/39132
13917 * tree-loop-distribution.c (todo): New global var.
13918 (generate_memset_zero): Trigger TODO_rebuild_alias.
13919 (tree_loop_distribution): Return todo.
13920
a8800687
L
139212009-02-10 H.J. Lu <hongjiu.lu@intel.com>
13922
13923 PR target/39119
13924 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
13925 (x86_64_reg_class_name): Removed.
13926 (classify_argument): Return 0 if bytes > 32. Return 0 if the
13927 first one isn't X86_64_SSE_CLASS or any other ones aren't
13928 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn
13929 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
13930 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS
13931 and 3 X86_64_SSEUP_CLASS.
13932 (construct_container): Remove X86_64_AVX_CLASS. Handle 4
13933 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
13934
d4bacef0
BE
139352009-02-10 Ben Elliston <bje@au.ibm.com>
13936
13937 * config/rs6000/rs6000.md (allocate_stack): Always use an update
13938 form instruction to update the stack back chain word, even if the
13939 user has disabled the generation of update instructions.
13940 (movdi_<mode>_update_stack): New.
13941 (movsi_update_stack): Likewise.
13942 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
13943 always use an update form instruction to update the stack back
13944 chain word.
13945
01d7d2f3
SP
139462009-02-09 Sebastian Pop <sebastian.pop@amd.com>
13947
13948 PR middle-end/38953
b058b753
UB
13949 * graphite.c (if_region_set_false_region): After moving a region in
13950 the false branch of a condition, remove the empty dummy basic block.
01d7d2f3
SP
13951 (gloog): Remove wrong fix for PR38953.
13952
e41e2ab4
UW
139532009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13954
13955 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
13956 generation due to implicit sign extension.
13957
4bb07c5d
EB
139582009-02-09 Eric Botcazou <ebotcazou@adacore.com>
13959
13960 PR middle-end/38981
13961 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
13962 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
13963
f060a261
RG
139642009-02-09 Richard Guenther <rguenther@suse.de>
13965
13966 PR middle-end/35202
13967 * convert.c (convert_to_real): Disable (float)fn((double)x)
13968 to fnf(x) conversion if errno differences may occur and
13969 -fmath-errno is set.
13970
5a7e237c
AS
139712009-02-07 Anatoly Sokolov <aesok@post.ru>
13972
13973 * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
13974 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
13975 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
13976
feab5a67
JM
139772009-02-06 Joseph Myers <joseph@codesourcery.com>
13978
13979 PR c/35434
13980 * c-common.c (handle_alias_attribute): Disallow attribute for
13981 anything not a FUNCTION_DECL or VAR_DECL.
13982
90ef2296
JJ
139832009-02-06 Janis Johnson <janis187@us.ibm.com>
13984
13985 PR c/39035
13986 * real.c (do_compare): Special-case compare of zero against
13987 decimal float value.
13988
1de2c900
JM
139892009-02-06 Joseph Myers <joseph@codesourcery.com>
13990
13991 PR c/36432
13992 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
13993 as indicating flexible array members unless the field itself is
13994 being declarared as the incomplete array.
13995
e901811a
JH
139962009-02-06 Jan Hubicka <jh@suse.cz>
13997
13998 PR tree-optimization/38844
13999 * ipa-inline.c (try_inline): Stop inlining recursion when edge
14000 is already inlined.
14001
3cfa762b
RG
140022009-02-06 Richard Guenther <rguenther@suse.de>
14003
14004 PR middle-end/38977
14005 * tree-cfg.c (need_fake_edge_p): Force a fake edge for
14006 fork because we may expand it as __gcov_fork.
14007
8506528c
NC
140082009-02-06 Nick Clifton <nickc@redhat.com>
14009
dbf9ee15 14010 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
8506528c 14011
85169114
PB
140122009-02-06 Paolo Bonzini <bonzini@gnu.org>
14013
14014 PR tree-optimization/35659
14015 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
14016 vn_phi_eq): Shortcut if hashcode does not match.
14017 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
14018 NULL operands.
14019 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
14020 and avoid iterative_hash_expr.
14021 (FOR_EACH_VALUE_ID_IN_SET): New.
14022 (value_id_compare): Remove.
14023 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
14024 sort expressions by value id.
14025
6d39673d
KK
140262009-02-05 Kaz Kojima <kkojima@gcc.gnu.org>
14027
14028 PR target/38991
14029 * config/sh/predicates.md (general_movsrc_operand): Don't check
14030 the subreg of system registers here.
14031
e6e1c050
JJ
140322009-02-05 Jakub Jelinek <jakub@redhat.com>
14033
14034 PR c++/39106
14035 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
14036 on the copied decl.
14037
65a74b5d
PB
140382009-02-05 Paolo Bonzini <bonzini@gnu.org>
14039
14040 PR rtl-optimization/39110
14041 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
14042 addresses, not aligned ones.
14043
08e14b2a
DB
140442009-02-05 Daniel Berlin <dberlin@dberlin.org>
14045 Richard Guenther <rguenther@suse.de>
14046
14047 PR tree-optimization/39100
14048 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
14049 comment says and add edges.
14050
5006381c
JM
140512009-02-05 Joseph Myers <joseph@codesourcery.com>
14052
14053 PR c/35435
14054 * c-common.c (handle_tls_model_attribute): Ignore attribute for
14055 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
14056
2ba9daa7 140572009-02-04 Tobias Grosser <grosser@fim.uni-passau.de>
b0789219
TG
14058
14059 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
14060 sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
14061 register_bb_in_sese, new_sese, free_sese): Moved.
14062 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
14063 outermost_loop_in_scop, build_scop_iteration_domain,
14064 expand_scalar_variables_ssa_name, get_vdef_before_scop,
14065 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
14066 Use loop_in_sese_p instead of loop_in_scop_p.
14067 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
14068 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
14069 (scopdet_basic_block_info): Fix bug in scop detection.
14070 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
14071 eq_loop_to_cloog_loop): Remove.
14072 (nb_loops_around_loop_in_scop, nb_loop
14073 ref_nb_loops): Moved here...
14074 * graphite.h (ref_nb_loops): ... from here.
14075 (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
14076 (loop_domain_dim, loop_iteration_vector_dim): Remove.
14077 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
14078 * testsuite/gcc.dg/graphite/scop-19.c: New
14079
48e8382e
PB
140802009-02-04 Paolo Bonzini <bonzini@gnu.org>
14081 Hans-Peter Nilsson <hp@axis.com>
14082
14083 PR rtl-optimization/37889
14084 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
14085 Move offset handling from PLUS to before the switch. Use new
14086 arguments when considering SYMBOL_REFs too.
14087 (rtx_addr_can_trap_p): Pass dummy offset and size.
14088 (enum may_trap_p_flags): Remove.
14089 (may_trap_p_1): Pass size from MEM_SIZE.
14090
14091 PR rtl-optimization/38921
14092 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
14093 * rtl.h (may_trap_after_code_motion_p): Delete prototype.
14094 * rtlanal.c (may_trap_after_code_motion_p): Delete.
14095 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
14096
69349ea5
L
140972009-02-04 H.J. Lu <hongjiu.lu@intel.com>
14098
14099 AVX Programming Reference (January, 2009)
14100 * config/i386/sse.md (*vpclmulqdq): New.
14101
b545e411
JJ
141022009-02-04 Jakub Jelinek <jakub@redhat.com>
14103
14104 PR tree-optimization/38977
14105 PR gcov-profile/38292
bf9b2cc9 14106 * calls.c (special_function_p): Disregard __builtin_ prefix.
b545e411 14107
5b43bf05
HS
141082009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com>
14109
14110 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
14111 non-indexable addresses even before reload.
14112
062c4bb3
JM
141132009-02-03 Joseph Myers <joseph@codesourcery.com>
14114
14115 PR c/29129
14116 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
14117 as having variable size. Do not give an error for unnamed
14118 parameters with [*] declarators. Give a warning for type names
14119 with [*] declarators and mark them as variable size.
14120 * c-parser.c (c_parser_sizeof_expression): Do not give an error
14121 for sizeof applied to [*] type names.
14122
6175f578
AP
141232009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
14124
14125 PR C++/36607
14126 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
14127
d4f4bc84
JJ
141282009-02-03 Jakub Jelinek <jakub@redhat.com>
14129
14130 * gcc.c (process_command): Update copyright notice dates.
14131 * gcov.c (print_version): Likewise.
14132 * gcov-dump.c (print_version): Likewise.
14133 * mips-tfile.c (main): Likewise.
14134 * mips-tdump.c (main): Likewise.
14135
f6294de7
JM
141362009-02-03 Joseph Myers <joseph@codesourcery.com>
14137
14138 PR c/35433
14139 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
14140 for composite type involving a zero-length array type.
14141
754ccf7c
JJ
141422009-02-03 Jakub Jelinek <jakub@redhat.com>
14143
70f16287
JJ
14144 PR target/35318
14145 * function.c (match_asm_constraints_1): Skip over
14146 initial optional % in the constraint.
14147
754ccf7c
JJ
14148 PR inline-asm/39059
14149 * c-parser.c (c_parser_postfix_expression): If fixed point is not
14150 supported, don't accept FIXED_CSTs.
14151 * c-decl.c (finish_declspecs): Error if fixed point is not supported
14152 and _Sat is used without _Fract/_Accum. Set specs->type to
14153 integer_type_node for cts_fract/cts_accum if fixed point is not
14154 supported.
14155
965fdadf
CM
141562009-02-02 Catherine Moore <clm@codesourcery.com>
14157
dbf9ee15 14158 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
965fdadf 14159
2e8a796f
RS
141602009-02-02 Richard Sandiford <rdsandiford@googlemail.com>
14161
14162 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
14163 (ABI_HAS_64BIT_SYMBOLS): Use it.
14164 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
14165
e0079468
PB
141662009-02-02 Paul Brook <paul@codesourcery.com>
14167
14168 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
14169
eca72963
JJ
141702009-02-02 Jakub Jelinek <jakub@redhat.com>
14171
14172 PR inline-asm/39058
14173 * recog.h (asm_operand_ok): Add constraints argument.
14174 * recog.c (asm_operand_ok): Likewise. If it is set, for digits
14175 recurse on matching constraint.
14176 (check_asm_operands): Pass constraints as 3rd argument to
14177 asm_operand_ok. Don't look up matching constraint here.
14178 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
14179 to asm_operand_ok.
14180
b5bde9ff
BE
141812009-02-02 Ben Elliston <bje@au.ibm.com>
14182
14183 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
14184 TARGET_NARROW_VOLATILE_BITFIELD macro names.
14185
30f3e427
JDA
141862009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14187
be7659ba
JDA
14188 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
14189 information. Remove some obsolete information. Reorganize.
14190
30f3e427
JDA
14191 * config/pa/fptr.c: Revert license to GPL 2.
14192 * config/pa/milli64.S: Likewise.
14193
3cbfaf98
DK
141942009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
14195
14196 PR target/38904
14197 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass
14198 LIBRARY name in, instead of hard-coding it.
14199 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an
14200 extra target make frag to tmake_files according to EH model.
14201 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
14202 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target
14203 frags that define makefile variable EH_MODEL appropriately.
14204 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment.
14205 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or
14206 to "-sjlj" according to type of EH configured.
14207 (LIBGCC_SONAME): Concatenate it to shared library base name.
14208 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or
14209 to "_sjlj" according to type of EH configured.
14210 (LIBGCC_SONAME): Concatenate it to shared library base name.
14211 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL.
14212 (SHLIB_LINK): Add missing semicolon to if-else construct.
14213 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
14214 string value of "pe_dll" command-line option.
14215 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper.
14216 (SHLIB_SONAME): Use it when overriding t-cygming default.
14217 (SHLIB_IMPLIB): Override t-cygming default.
14218 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
14219 string value of "pe_dll" command-line option.
14220
8d0b6068
DK
142212009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
14222
14223 PR target/38952
14224 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
bf9b2cc9 14225 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
8d0b6068 14226
14c28276
RG
142272009-01-31 Richard Guenther <rguenther@suse.de>
14228
14229 PR tree-optimization/38937
14230 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
14231 computing the transitive closure.
14232
5f4d82c2
RG
142332009-01-30 Richard Guenther <rguenther@suse.de>
14234
14235 PR tree-optimization/39041
14236 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
14237 Propagate variable indices only if the types match for this stmt.
14238
d0728ae0
JJ
142392009-01-30 Jakub Jelinek <jakub@redhat.com>
14240
14241 PR target/39013
14242 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
14243 inline but never defined.
14244
6b67572e 142452009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com>
9fec758d
WG
14246
14247 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
14248 (*insv_h_di_reg_extimm): New insn.
14249 (*insv_l<mode>_reg_extimm): New insn.
14250
142512009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
9e8be1e4
HS
14252
14253 * config/picochip/picochip.c (flag_conserve_stack): set
14254 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
14255 fconserve-stack. Reduce call-overhead used by inliner.
14256
9fec758d 142572009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
df9198ab
HS
14258
14259 PR/38157
14260 * common.opt (flag_conserve_stack): Initialised to zero.
14261
7f1c539c
KT
142622009-01-30 Kai Tietz <kai.tietz@onevision.com>
14263
14264 PR/39002
14265 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
14266 (ix86_expand_epilogue): Take nsseregs in account to use proper restore
14267 method.
14268
3631be48
L
142692009-01-29 H.J. Lu <hongjiu.lu@intel.com>
14270
14271 * ira-color.c (allocno_reload_assign): Update comments.
14272 * regmove.c (regmove_optimize): Likewise.
14273
14274 * ra.h: Removed.
14275
416ac4d4
RM
142762009-01-29 Robert Millan <rmh@aybabtu.com>
14277
60839f5d
EB
14278 * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
14279 * config/i386/kopensolaris-gnu.h: New file. Undefine
416ac4d4 14280 `MD_UNWIND_SUPPORT'.
60839f5d 14281 * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
416ac4d4 14282
d5e54bc1
KH
142832009-01-29 Kazu Hirata <kazu@codesourcery.com>
14284
14285 PR tree-optimization/39007
14286 * tree-loop-distribution.c (generate_builtin): Use
14287 recompute_dominator to compute the immediate dominator of the
14288 basic block just after the loop.
14289
38432148 142902009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
e9e077fa
RO
14291
14292 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
14293 (ASM_OUTPUT_DWARF_PCREL): Define.
14294
38432148 142952009-01-29 Vladimir Makarov <vmakarov@redhat.com>
2af2dbdc
VM
14296
14297 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
14298 * doc/passes.texi: Remove entries about regclass, local-alloc, and
14299 global. Modify entries about regmove and IRA.
14300
14301 * ra-conflict.c: Remove the file.
14302
14303 * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
14304
14305 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
14306 (pass_regclass_init): Rename to pass_reginfo_init.
14307
14308 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
14309
14310 * toplev.h (flag_ira): Remove.
14311
14312 * caller-save.c (setup_save_areas): Remove flag_ira.
14313
bf9b2cc9 14314 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
2af2dbdc
VM
14315
14316 * global.c: Remove the file.
14317
ba20e309 14318 * opts.c (decode_options): Remove flag_ira.
2af2dbdc
VM
14319
14320 * hard-reg-set.h (losing_caller_save_reg_set): Remove.
14321
14322 * regmove.c: Modify file description.
14323 (find_use_as_address, try_auto_increment): Define them only if
14324 AUTO_INC_DEC is defined.
14325 (replacement_quality, replace_in_call_usage, fixup_match_1,
14326 stable_and_no_regs_but_for_p): Remove.
14327 (reg_set_in_bb): Make it static.
14328 (regmove_optimize): Remove flag_ira and code which worked for
14329 !flag_ira.
14330
14331 * local-alloc.c: Remove the file.
14332
14333 * common.opt (fira): Remove.
14334
14335 * ira.c: Include except.h.
14336 (eliminable_regset): Move from global.c.
14337 (mark_elimination): Ditto. Remove flag_ira.
14338 (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
14339 equiv_mem_modified, validate_equiv_mem_from_store,
14340 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
14341 contains_replace_regs, memref_referenced_p, memref_used_between_p,
14342 no_equiv, recorded_label_ref): Move from local-alloc.c.
14343 (update_equiv_regs): Ditto. Make it static.
14344 (print_insn_chain, print_insn_chains): Move it from global.c.
bf9b2cc9 14345 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira.
2af2dbdc
VM
14346 (build_insn_chain): Ditto. Make it static.
14347 (ra_init_live_subregs): Move from ra-conflict.c. Make it static.
14348 Rename to init_live_subregs.
14349 (gate_ira): Remove flag_ira.
14350
14351 * regclass.c: Rename reginfo.c. Change file description.
14352 (FORBIDDEN_INC_DEC_CLASSES): Remove.
dbf9ee15 14353 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
2af2dbdc
VM
14354 (init_reg_sets_1): Remove code for evaluation of
14355 reg_class_superclasses and losing_caller_save_reg_set.
14356 (init_regs): Remove init_reg_autoinc.
14357 (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
14358 ok_for_base_p_nonstrict): Remove.
bf9b2cc9 14359 (regclass_init): Rename to reginfo_init. Don't initialize init_cost.
2af2dbdc
VM
14360 (pass_regclass_init): Rename to pass_reginfo_init. Modify
14361 corresponding entries.
14362 (dump_regclass, record_operand_costs, scan_one_insn,
14363 init_reg_autoinc, regclass, record_reg_classes, copy_cost,
14364 record_address_regs, auto_inc_dec_reg_p): Remove.
14365 (gt-regclass.h): Rename to gt-reginfo.h.
14366
14367 * rtl.h (dump_global_regs, retry_global_alloc,
bf9b2cc9 14368 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
2af2dbdc
VM
14369
14370 * Makefile.in (RA_H): Remove.
14371 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
14372 Rename regclass.o to reginfo.o.
14373 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to
14374 gt-reginfo.h.
14375 (global.o, local-alloc.o, ra-conflict.o): Remove entries.
14376 (GTFILES): Rename regclass.c to reginfo.c.
14377
14378 * passes.c (init_optimization_passes): Remove pass_local_alloc and
bf9b2cc9 14379 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init.
2af2dbdc
VM
14380
14381 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
14382 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
14383 Remove flag_ira.
6b67572e 14384 (finish_spills): Ditto. Remove code for !flag_ira.
2ba9daa7 14385
c95b2534 143862009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
00b251a0
KZ
14387
14388 PR middle-end/35854
14389 * doc/invoke.texi (rtl debug options): Complete rewrite.
14390 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
14391 to auto_inc_dec".
14392 * mode-switching.c (pass_mode_switching): Rename pass from
14393 "mode-sw" to "mode_sw".
14394 * except.c (pass_convert_to_eh_ranges): Rename pass from
14395 "eh-ranges" to "eh_ranges".
14396 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
14397 to "subreg1".
2ba9daa7
AS
14398
14399
72a54528
AM
144002009-01-29 Andrey Belevantsev <abel@ispras.ru>
14401 Alexander Monakov <amonakov@ispras.ru>
14402
14403 PR middle-end/38857
14404 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
14405 register.
14406 (move_exprs_to_boundary): Change return type and pass through
14407 should_move from move_op. Relax assert. Update usage ...
14408 (schedule_expr_on_boundary): ... here. Use should_move instead of
14409 cant_move.
14410 (move_op_orig_expr_found): Indicate that insn was disconnected from
14411 stream.
14412 (code_motion_process_successors): Do not call after_merge_succs
14413 callback if original expression was not found when traversing any of
14414 the branches.
14415 (code_motion_path_driver): Change return type. Update prototype.
14416 (move_op): Update comment. Add a new parameter (should_move). Update
14417 prototype. Set *should_move based on indication provided by
14418 move_op_orig_expr_found.
14419
001b9eb6
PH
144202009-01-28 Pat Haugen <pthaugen@us.ibm.com>
14421
14422 * doc/invoke.texi (avoid-indexed-addresses): Document new option.
14423 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
14424 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
14425 * config/rs6000/rs6000.c (rs6000_override_options): Default
14426 avoid-indexed-addresses on for Power6, off for everything else.
14427 (avoiding_indexed_address_p): New function.
14428 (rs6000_legitimize_address): Use it.
14429 (rs6000_legitimate_address): Likewise.
14430 * config/rs6000/rs6000.md (movXX_updateX): Likewise
14431
59dc4898
KH
144322009-01-28 Kazu Hirata <kazu@codesourcery.com>
14433
14434 PR tree-optimization/38997
14435 * tree-loop-distribution.c (generate_memset_zero): Use
14436 POINTER_PLUS_EXPR for a pointer addition.
14437
07da44ab
AK
144382009-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
14439
14440 * config/s390/s390.md (bswap<mode>2): New pattern added.
14441
cdc15d23
WG
144422009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
14443
14444 * config/s390/s390.md (*tls_load_31): Added type attribute.
14445
d46f24b6
WG
144462009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
14447
14448 * config/s390/s390.md: Fix a few comments.
14449
729e750f
WG
144502009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
14451
14452 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
14453 (*tm<mode>_full): Fixed z10prop attribute.
14454 (*tst<mode>_extimm): Fixed z10prop attribute.
14455 (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
14456 (*tstqiCCT_cconly): Fixed z10prop attribute.
14457 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
14458 (*movsi_larl): Fixed z10prop attribute.
14459 (*movsi_zarch): Fixed z10prop attribute.
14460 (*movsi_eas): Fixed z10prop attribute.
14461 (*movhi): Fixed z10prop attribute.
14462 (*movqi): Fixed z10prop attribute.
14463 (*movstrictqi): Fixed z10prop attribute.
14464 (*mov<mode>): Fixed z10prop attribute.
14465 (*movcc): Fixed z10prop attribute.
14466 (*sethighpartdi_64): Fixed z10prop attribute.
14467 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
14468 (*negdi2_sign_cc): Fixed z10prop attribute.
14469 (*negdi2_sign): Fixed z10prop attribute.
14470 (*absdi2_sign_cc): Fixed z10prop attribute.
14471 (*absdi2_sign): Fixed z10prop attribute.
14472 (*negabsdi2_sign_cc): Fixed z10prop attribute.
14473 (*negabsdi2_sign): Fixed z10prop attribute.
14474 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
14475 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
14476 (doloop_si64): Fixed z10prop attribute.
14477 (doloop_si31): Fixed z10prop attribute.
14478 (doloop_long): Fixed z10prop attribute.
14479 (indirect_jump): Fixed z10prop attribute.
14480 (nop): Fixed z10prop attribute.
14481 (main_base_64): Fixed z10prop attribute.
14482 (reload_base_64): Fixed z10prop attribute.
14483
c7789bfb
JJ
144842009-01-28 Jakub Jelinek <jakub@redhat.com>
14485
14486 PR rtl-optimization/38740
6b67572e
UB
14487 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
14488 if !optimize.
c7789bfb
JJ
14489 * config/mips/mips.c (mips_reorg): Likewise.
14490
de081cfd
RG
144912009-01-28 Richard Guenther <rguenther@suse.de>
14492
14493 PR tree-optimization/38926
14494 * tree-ssa-pre.c (add_to_value): Assert we add only expressions
14495 with the correct value id to a value.
14496 (do_regular_insertion): Use the value number of edoubleprime
14497 for the value number of the expr.
14498
14499 Revert
14500 2008-08-21 Richard Guenther <rguenther@suse.de>
bf9b2cc9 14501
d748c406
UB
14502 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
14503 a PHI ask VN if it is already available.
14504 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
14505 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
de081cfd 14506
a9d386a1
JJ
145072009-01-28 Jakub Jelinek <jakub@redhat.com>
14508
14509 PR middle-end/38934
14510 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
14511 set to varying whenever max has TREE_OVERFLOW set, similarly
14512 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
14513
97a170cd
RG
145142009-01-28 Richard Guenther <rguenther@suse.de>
14515
14516 PR middle-end/38908
14517 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
14518 uninitialized aggregate uses in call arguments.
14519
89ebafc6
PB
145202009-01-28 Paolo Bonzini <bonzini@gnu.org>
14521
14522 PR tree-optimization/38984
14523 * tree-ssa-structalias.c (get_constraints_for_1): Do not use
14524 the nothing_id variable if -fno-delete-null-pointer-checks.
14525
bef3c57b
UB
145262009-01-28 Uros Bizjak <ubizjak@gmail.com>
14527
14528 PR target/38988
14529 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
14530 (set_got_offset_rex64): Ditto.
14531
0c6390fa
L
145322009-01-27 H.J. Lu <hongjiu.lu@intel.com>
14533
14534 PR target/38941
14535 * doc/extend.texi: Improve local variable with asm reg.
14536
bee6fa6d
AN
145372009-01-27 Adam Nemet <anemet@caviumnetworks.com>
14538
14539 * c.opt (Wpacked-bitfield-compat): Change init value to -1.
14540 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
14541 was not supplied then set warn_packed_bitfield_compat to the
14542 default value of 1.
14543 * stor-layout.c (place_field): Check warn_packed_bitfield_compat
14544 against 1.
14545
b5c3dfbb
RG
145462009-01-27 Richard Guenther <rguenther@suse.de>
14547
14548 PR tree-optimization/38503
14549 * cfgexpand.c (expand_gimple_basic_block): Ignore
14550 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
14551 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
14552 variables that cannot have TBAA applied.
14553 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
14554 statements.
14555
d748c406 145562009-01-27 Uros Bizjak <ubizjak@gmail.com>
576de5cb
UB
14557
14558 PR middle-end/38969
14559 * calls.c (initialize_argument_information): Do not wrap complex
14560 arguments in SAVE_EXPR.
14561
9112bb38
AT
145622009-01-26 Andreas Tobler <a.tobler@schweiz.org>
14563
14564 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
5efb79fc 14565 (INSTALL_LIBGCC): Revert typo commit.
9112bb38 14566
4757704f
RG
145672009-01-26 Richard Guenther <rguenther@suse.de>
14568
14569 PR tree-optimization/38745
14570 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
14571 from special handling.
14572
e3e6cff4
RG
145732009-01-26 Richard Guenther <rguenther@suse.de>
14574
14575 PR tree-optimization/38745
14576 * tree-ssa.c (execute_update_addresses_taken): Do not include
14577 variables that cannot possibly be a register in not_reg_needs.
14578 Do not clear TREE_ADDRESSABLE on vars that may not become
14579 registers.
14580 * tree-ssa.c (update_alias_info_1): Include those in the set
14581 of addressable vars.
14582
dc874b53
RG
145832009-01-26 Richard Guenther <rguenther@suse.de>
14584
14585 PR middle-end/38851
14586 * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
14587 * tree-ssa-dse.c: Include langhooks.h
14588 (execute_simple_dse): Remove stores with zero size.
14589
849421a3
JJ
145902009-01-24 Jakub Jelinek <jakub@redhat.com>
14591
14592 PR c/38957
14593 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
14594 as PLUS_EXPR.
14595
82f70421
JB
145962009-01-24 Julian Brown <julian@codesourcery.com>
14597
14598 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
14599 config/arm/linux-atomic.c.
14600 * config/arm/linux-atomic.c: New.
14601
863412d6
EB
146022009-01-24 Eric Botcazou <ebotcazou@adacore.com>
14603
14604 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
14605 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
14606 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
14607
8c684300
L
146082009-01-24 H.J. Lu <hongjiu.lu@intel.com>
14609
14610 PR c/38938
93f1527a 14611 * c-opts.c (c_common_handle_option): Update warn_pointer_sign
8c684300
L
14612 properly.
14613
b840fb02
SP
146142009-01-24 Sebastian Pop <sebastian.pop@amd.com>
14615
14616 PR tree-optimization/38953
14617 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
14618 (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
14619 (gloog): Split the exit of the scop when the scop exit is a loop exit.
14620 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
14621 changed the CFG.
14622
ecee559f
PB
146232009-01-24 Paul Brook <paul@codesourcery.com>
14624
14625 * config/arm/neon.md (neon_type): Move to arm.md.
14626 (neon_mov<VSTRUCT>): Add neon_type attribute.
14627 * config/arm/arm.md (neon_type): Move to here.
14628 (conds): Add "unconditioal" and use as default for NEON insns.
14629
61ad0914
BE
146302009-01-24 Ben Elliston <bje@au.ibm.com>
14631
14632 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
14633 void *' warning from -Wc++-compat.
14634 * Makefile.in (dominance.o-warn): Remove.
14635
38432148 146362009-01-23 Paolo Bonzini <bonzini@gnu.org>
9bacafeb
PB
14637
14638 PR tree-optimization/38932
14639 * fold-const.c (fold_unary_ignore_overflow): New.
14640 * tree.h (fold_unary_ignore_overflow): Declare.
14641 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
14642 * tree-ssa-sccvn.c (visit_reference_op_load,
14643 simplify_unary_expression): Likewise.
14644
2cd36c22
AN
146452009-01-22 Adam Nemet <anemet@caviumnetworks.com>
14646
14647 * c-decl.c (finish_struct): Move code to set DECL_PACKED after
14648 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields
14649 regardless of their type.
14650 * c-common.c (handle_packed_attribute): Don't ignore packed on
14651 bitfields.
14652 * c.opt (Wpacked-bitfield-compat): New warning option.
14653 * stor-layout.c (place_field): Warn if offset of a field changed.
14654 * doc/extend.texi (packed): Mention the ABI change.
14655 * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
14656 (Warning Options): Add it to the list.
14657
e4e624ab
L
146582009-01-22 H.J. Lu <hongjiu.lu@intel.com>
14659
14660 * c-opts.c (c_common_post_options): Fix a typo in comments.
14661
d0ea0759
SE
146622009-01-22 Steve Ellcey <sje@cup.hp.com>
14663
14664 PR middle-end/38615
14665 * gimplify.c (gimplify_init_constructor): Fix promotion of const
14666 variables to static.
14667 * doc/invoke.texi (-fmerge-all-constants): Update description.
14668
87673f84
UB
146692009-01-22 Uros Bizjak <ubizjak@gmail.com>
14670
14671 PR target/38931
14672 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
14673 (*movdi_1_rex64): Use type "mmx" for alternative 5.
14674
96339268
RE
146752009-01-22 Richard Earnshaw <rearnsha@arm.com>
14676
14677 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
14678 a word boundary.
14679 (LOCAL_ALIGNMENT): Similarly.
14680
442dc742 146812009-01-22 Mark Shinwell <shinwell@codesourcery.com>
87673f84 14682 Joseph Myers <joseph@codesourcery.com>
442dc742
MS
14683
14684 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
14685 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
14686 * config/arm/arm-tune.md: Regenerate.
14687 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
14688 -march=iwmmxt2.
14689
9b34732e
MS
146902009-01-22 Mark Shinwell <shinwell@codesourcery.com>
14691
14692 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
14693 version number to five.
14694
03c2a308
DS
146952009-01-22 Dodji Seketeli <dodji@redhat.com>
14696
14697 PR c++/38930
ba20e309 14698 * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
03c2a308
DS
14699 * c-common.c (set_underlying_type): Likewise.
14700 (is_typedef_decl ): Likewise
14701 * tree.h: Likewise
14702 (set_underlying_type): Likewise.
14703 (is_typedef_type): Likewise.
14704
1240d76e
VM
147052009-01-21 Vladimir Makarov <vmakarov@redhat.com>
14706
14707 PR middle-end/38587
14708 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
14709 crossing setjmps.
14710
b8a1087d
DK
147112009-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
14712
14713 PR bootstrap/37660
14714 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro.
14715 (LIBGCC_SPEC): Don't define.
14716 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC.
14717
435da628
UB
147182009-01-21 Uros Bizjak <ubizjak@gmail.com>
14719
14720 PR rtl-optimization/38879
14721 * alias.c (base_alias_check): Unaligned access via AND address can
14722 alias all surrounding object types except those with sizes equal
14723 or wider than the size of unaligned access.
14724
d597b3ce
DS
147252009-01-21 Dodji Seketeli <dodji@redhat.com>
14726
14727 PR c++/26693
ba20e309 14728 * c-decl.c (clone_underlying_type): Move this ...
d597b3ce 14729 * c-common.c (set_underlying_type): ... here.
435da628 14730 Also, make sure the function properly sets TYPE_STUB_DECL() on
d597b3ce
DS
14731 the newly created typedef variant type.
14732 (is_typedef_decl ): New entry point.
14733 * tree.h: Added a new member member_types_needing_access_check to
14734 struct tree_decl_non_common.
14735 (set_underlying_type): New entry point.
14736 (is_typedef_type): Likewise.
14737
71a6fe66
BM
147382009-01-21 Bingfeng Mei <bmei@broadcom.com>
14739
14740 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
14741 Check whether two instructions have memory references that
14742 belong to conflicting alias sets. walk_mems_1 and walk_mems_2
14743 are helper functions for traversing.
14744 * alias.h (insn_alias_sets_confilict_p): New prototypes.
14745 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
14746 not to draw dependency edge for instructions with non-conflicting
14747 alias sets.
14748
5a248274
JM
147492009-01-20 Joseph Myers <joseph@codesourcery.com>
14750
14751 PR other/38758
6b67572e
UB
14752 * longlong.h: Update copyright years. Use soft-fp license notice.
14753 Sync __clz_tab declaration with glibc.
5a248274 14754
4b84f3de
SE
147552009-01-20 Steve Ellcey <sje@cup.hp.com>
14756
14757 PR target/30687
14758 * doc/extend.texi (syscall_linkage): New.
14759 (version_id): Modify.
14760
37348bf1 147612009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
435da628 14762 Richard Guenther <rguenther@suse.de>
37348bf1
AP
14763
14764 PR tree-optimization/38747
14765 PR tree-optimization/38748
14766 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
14767 conversion if the base address is an indirect reference and the
14768 aliasing sets could cause issues.
14769
d0a58904
SP
147702009-01-20 Sebastian Pop <sebastian.pop@amd.com>
14771
2ba9daa7 14772 * common.opt (fgraphite, fgraphite-identity): Add comment for
d0a58904
SP
14773 explaining why these options are not documented.
14774
71e7afb2
SP
147752009-01-20 Sebastian Pop <sebastian.pop@amd.com>
14776
14777 * graphite.c (stmt_simple_for_scop_p): Also handle cases when
14778 gimple_call_lhs is NULL.
14779
38432148 147802009-01-20 Paolo Bonzini <bonzini@gnu.org>
09efeca1
PB
14781
14782 PR target/38868
14783 * emit-rtl.c (adjust_address_1): Make sure memref is never
14784 overwritten.
14785
cbb8dee3
BE
147862009-01-20 Ben Elliston <bje@au.ibm.com>
14787
14788 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
435da628 14789 const qualifier from arg parameter. Remove unnecessary cast to char *.
cbb8dee3
BE
14790 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
14791 const qualifier from arg 2.
14792
72c66596
IS
147932009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
14794
435da628 14795 * config/darwin.h: Add static-libgfortran to LINK_SPEC.
72c66596 14796
f68211cd
VM
147972009-01-19 Vladimir Makarov <vmakarov@redhat.com>
14798
14799 PR c/38869
14800 * rtl.h (reinit_regs): New prototype.
14801 * regclass.c: Include ira.h.
14802 (reinit_regs): New.
14803 * Makefile.in (regclass.o): Add ira.h.
14804 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
14805
6e4f1168
L
148062009-01-18 H.J. Lu <hongjiu.lu@intel.com>
14807
14808 PR target/38736
14809 * c-common.c (handle_aligned_attribute): Use
14810 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
14811 default alignment value.
14812
14813 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
14814
14815 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
14816 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
14817
14818 * doc/extend.texi: Update __attribute__ ((aligned)). Document
14819 __BIGGEST_ALIGNMENT__.
14820
14821 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
14822
890065bf
RG
148232009-01-18 Richard Guenther <rguenther@suse.de>
14824
14825 PR tree-optimization/38819
14826 * tree-flow.h (operation_could_trap_helper_p): Declare.
14827 * tree-eh.c (operation_could_trap_helper_p): Export.
14828 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
14829 * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
14830 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
14831 are about to insert a possibly trapping instruction and fail
14832 in this case.
14833
a729d731
AS
148342009-01-18 Andreas Schwab <schwab@suse.de>
14835
14836 * doc/install.texi (Configuration): Remove obsolete paragraph
14837 about use of --with-gnu-ld with --with-gnu-as.
14838
a640c13b
KH
148392009-01-18 Kazu Hirata <kazu@codesourcery.com>
14840
14841 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
14842 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
14843 Follow spelling conventions.
14844
dba2cc0c
BE
148452009-01-18 Ben Elliston <bje@au.ibm.com>
14846
14847 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
14848 C++ warning about implicit conversion from void * to struct
14849 bitmap_head_def *.
14850 (bitmap_obstack_free): Likewise for bitmap_element *.
bc127c63 14851 * Makefile.in (bitmap.o-warn): Remove.
dba2cc0c 14852
2207a498
DK
148532009-01-17 Dave Korn <dave.korn.cygwin@gmail.com>
14854
14855 * Makefile.in (BACKENDLIBS): Reorder to match dependencies.
14856
8137e465
SP
148572009-01-17 Sebastian Pop <sebastian.pop@amd.com>
14858 Tobias Grosser <tobi.grosser@amd.com>
14859
14860 * graphite.c (graphite_trans_scop_block): Do not block single
14861 nested loops.
14862
5be1c58c
AO
148632009-01-16 Alexandre Oliva <aoliva@redhat.com>
14864
14865 * ebitmap.h (ebitmap_iter_init): Initialize all fields.
14866 * ipa-struct-reorg.c (gen_struct_type): Replace known-true
14867 test with assertion.
14868
786ce82d
RG
148692009-01-16 Richard Guenther <rguenther@suse.de>
14870
14871 PR tree-optimization/38835
14872 PR middle-end/36227
14873 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
14874 and INT + PTR -> (INT)(PTR p+ INT) folding.
14875 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
14876
c1cb09ad
AN
148772009-01-16 Adam Nemet <anemet@caviumnetworks.com>
14878
14879 PR target/38554
14880 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
14881 the subreg from a lowpart subreg if it is also casting the value.
14882
bcab4e19
SP
148832009-01-16 Sebastian Pop <sebastian.pop@amd.com>
14884 Tobias Grosser <tobi.grosser@amd.com>
14885
14886 * graphite.c (compare_prefix_loops): New.
14887 (build_scop_canonical_schedules): Rewritten.
14888 (graphite_transform_loops): Move build_scop_canonical_schedules
14889 after build_scop_iteration_domain.
14890
0b040072
SP
148912009-01-16 Sebastian Pop <sebastian.pop@amd.com>
14892 Tobias Grosser <tobi.grosser@amd.com>
14893
2ba9daa7 14894 * graphite.c (add_conditions_to_domain): Add the loops to
0b040072
SP
14895 the dimension of the iteration domain. Do copy the domain
14896 only when it exists.
14897 (build_scop_conditions_1): Do not call add_conditions_to_domain.
14898 (add_conditions_to_constraints): New.
14899 (can_generate_code_stmt, can_generate_code): Removed.
14900 (gloog): Do not call can_generate_code.
14901 (graphite_transform_loops): Call add_conditions_to_constraints
14902 after building the iteration domain.
14903
56c6a499
JJ
149042009-01-16 Jakub Jelinek <jakub@redhat.com>
14905
14906 PR tree-optimization/38789
14907 * tree-ssa-threadedge.c
14908 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
14909 __builtin_constant_p.
14910
c95b2534 149112009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com>
cd3f1729
KZ
14912
14913 * dce.c (delete_unmarked_insns): Reversed the order that insns are
14914 examined before deleting them.
2ba9daa7 14915
c433cb14
RE
149162009-01-16 Richard Earnshaw <rearnsha@arm.com>
14917
14918 * function.c (aggregate_value_p): Correctly extract the function
14919 type from CALL_EXPR_FN lookup.
14920
c95b2534 149212009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com>
27d62fa4
HS
14922
14923 * config/picochip/picochip.c (picochip_override_options): Revert
14924 CFI asm flag disable commited previously.
14925
c77bb78f
SP
149262009-01-15 Sebastian Pop <sebastian.pop@amd.com>
14927 Tobias Grosser <tobi.grosser@amd.com>
14928 Jan Sjodin <jan.sjodin@amd.com>
14929
14930 * graphite.c (scan_tree_for_params): On substractions negate
14931 all the coefficients of the term.
14932 (clast_to_gcc_expression_red): New. Handle reduction expressions
14933 of more than two operands.
14934 (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
14935 (get_vdef_before_scop): Handle also the case of default definitions.
14936
574af2d6
RS
149372009-01-15 Richard Sandiford <rdsandiford@googlemail.com>
14938
14939 * caller-save.c (add_used_regs_1, add_used_regs): New functions.
14940 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
14941 Also use them when walking CALL_INSN_FUNCTION_USAGE.
14942
e939805b
L
149432009-01-15 H.J. Lu <hongjiu.lu@intel.com>
14944 Joey Ye <joey.ye@intel.com>
14945
14946 PR middle-end/37843
14947 * cfgexpand.c (expand_stack_alignment): Don't update stack
14948 boundary nor check incoming stack boundary here.
14949 (gimple_expand_cfg): Update stack boundary and check incoming
14950 stack boundary here.
14951
c95b2534 149522009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com>
750900db 14953
435da628 14954 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
2ba9daa7 14955
0196c95e
JJ
149562009-01-14 Jakub Jelinek <jakub@redhat.com>
14957
14958 PR rtl-optimization/38245
14959 * calls.c (expand_call): Add stack arguments to
14960 CALL_INSN_FUNCTION_USAGE even for pure calls (when
14961 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
14962 in regs and partially in memory or BLKmode arguments.
14963 (emit_library_call_value_1): Add stack arguments to
14964 CALL_INSN_FUNCTION_USAGE even for pure calls (when
14965 ACCUMULATE_OUTGOING_ARGS).
14966 * dce.c: Include tm_p.h.
14967 (find_call_stack_args): New function.
14968 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
14969 argument.
14970 (mark_insn): Call find_call_stack_args for CALL_Ps.
14971 (prescan_insns_for_dce): Walk insns backwards in bb rather than
14972 forwards. Allocate and free arg_stores bitmap if needed, pass it
14973 down to deletable_insn_p, don't mark stores set in arg_stores
14974 bitmap, clear the bitmap at the beginning of each bb.
14975 * Makefile.in (dce.o): Depend on $(TM_P_H).
14976
6df6bcfa
MM
149772009-01-14 Michael Meissner <gnu@the-meissners.org>
14978
14979 PR target/22599
435da628
UB
14980 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
14981 to make sure the insn is a conditional test (bug 22599). Reformat a
14982 few long lines.
6df6bcfa 14983
765ec70c
SP
149842009-01-14 Sebastian Pop <sebastian.pop@amd.com>
14985
14986 PR middle-end/38431
14987 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
14988 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
14989 (gloog): Do not call cleanup_tree_cfg.
2ba9daa7 14990 (graphite_transform_loops): Call cleanup_tree_cfg after all
765ec70c
SP
14991 scops have been code generated.
14992
7de2b688
BS
149932009-01-14 Basile Starynkevitch <basile@starynkevitch.net>
14994 * doc/gty.texi (Invoking the garbage collector): Added new node
14995 and section documenting ggc_collect.
14996
10bd6c5c
RG
149972009-01-14 Richard Guenther <rguenther@suse.de>
14998
14999 PR tree-optimization/38826
15000 PR middle-end/38477
15001 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
15002 initialization notes only if we actually emitted a warning.
15003 (intra_create_variable_infos): Add constraints for a result decl
15004 that is passed by hidden reference.
15005 (build_pred_graph): Mark all related variables non-direct on
15006 address-taking.
15007
9c7c70ee
NC
150082009-01-14 Nick Clifton <nickc@redhat.com>
15009
15010 * ira-conflicts.c: Include addresses.h for the definition of
15011 base_reg_class.
435da628
UB
15012 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
15013 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
9c7c70ee 15014
cf0c2a60
VM
150152009-01-13 Vladimir Makarov <vmakarov@redhat.com>
15016
15017 PR target/38811
15018 * Makefile.in (ira-lives.o): Add except.h.
15019
15020 * ira-lives.c: Include except.h.
15021 (process_bb_node_lives): Process can_throw_internal.
15022
d3302fd3
JJ
150232009-01-13 Jakub Jelinek <jakub@redhat.com>
15024
15025 PR rtl-optimization/38774
15026 * combine.c (simplify_set): When undoing cc_use change, don't do
15027 PUT_CODE on the newly created comparison, but instead put back the
15028 old comparison.
15029
7ab23fd0
JM
150302009-01-13 Joseph Myers <joseph@codesourcery.com>
15031
15032 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
15033 values. Remove duplicate arm8 entry.
15034
f9344488
SP
150352009-01-13 Sebastian Pop <sebastian.pop@amd.com>
15036
15037 PR tree-optimization/38786
15038 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
15039 the SSA_NAME case of expand_scalar_variables_expr.
15040 Set the type of an expression to the type of its assign statement.
15041 (expand_scalar_variables_expr): Also gather the scalar computation
15042 used to index the memory access. Do not pass loop_p.
15043 Fix comment. Stop recursion on tcc_constant or tcc_declaration.
15044 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
bef3c57b
UB
15045 the gimple_stmt_iterator where it inserts new code.
15046 Do not pass loop_p.
f9344488
SP
15047 (copy_bb_and_scalar_dependences): Do not pass loop_p.
15048 (translate_clast): Update call to copy_bb_and_scalar_dependences.
15049
2d8bb84d
SP
150502009-01-13 Sebastian Pop <sebastian.pop@amd.com>
15051
15052 * graphite.h (debug_value): Removed.
15053 * graphite.c (debug_value): Removed.
15054
ff128632
RE
150552009-01-13 Richard Earnshaw <rearnsha@arm.com>
15056
435da628
UB
15057 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
15058 ldrd/strd with two 32-bit instructions.
ff128632 15059
d5a0a47b
RE
150602009-01-13 Richard Earnshaw <rearnsha@arm.com>
15061
435da628
UB
15062 * config/arm/arm.c (struct processors): Pass for speed down into
15063 cost helper functions.
d5a0a47b
RE
15064 (const_ok_for_op): Handle COMPARE and inequality nodes.
15065 (arm_rtx_costs_1): Rewrite.
15066 (arm_size_rtx_costs): Update prototype.
15067 (arm_rtx_costs): Pass speed down to helper functions.
15068 (arm_slowmul_rtx_costs): Rework cost calculations.
15069 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
15070 (arm_9e_rtx_costs): Likewise.
15071
26d5bf5b
UB
150722009-01-13 Uros Bizjak <ubizjak@gmail.com>
15073
15074 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
435da628 15075 relocations of local symbols wider than UNITS_PER_WORD are not valid.
26d5bf5b
UB
15076 (alpha_legitimize_address): Do not split local symbols wider than
15077 UNITS_PER_WORD into HIGH/LO_SUM parts.
15078
5d14e3d5
DS
150792009-01-13 Danny Smith <dannysmith@users.sourceforge.net>
15080
15081 PR bootstrap/38580
15082 * gcc.c (process_command): Replace call to execvp with calls
15083 to pex_one and exit.
15084
33faafca
AS
150852009-01-03 Anatoly Sokolov <aesok@post.ru>
15086
15087 PR target/29141
15088 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
15089 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
15090 variant for devices with 3-byte PC.
ba20e309 15091 (__tablejump_elpm__): New.
33faafca 15092
634b5df5
JJ
150932009-01-12 Jakub Jelinek <jakub@redhat.com>
15094
15095 PR c/32041
15096 * c-parser.c (c_parser_postfix_expression): Allow `->' in
15097 offsetof member-designator, handle it as `[0].'.
15098
2842bb86
JDA
150992009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15100
15101 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
15102 function when not using named sections on targets with named sections
15103 if branch distance is less than 262132.
15104
76ee70f6
RE
151052009-01-12 Richard Earnshaw <rearnsha@arm.com>
15106
15107 * combine.c (combine_instructions): Recompute
15108 optimize_this_for_speed_p for each BB in the main combine loop.
15109
f56e675d
TB
151102009-01-12 Tomas Bily <tbily@suse.cz>
15111
15112 PR middlend/38385
26d5bf5b
UB
15113 * tree-loop-distribution.c (prop_phis): New function.
15114 (generate_builtin): Call prop_phis.
15115 * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
f56e675d 15116
c2152239
JJ
151172009-01-12 Jakub Jelinek <jakub@redhat.com>
15118
15119 PR tree-optimization/38807
15120 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
15121 gimple_visited_p unless stmt is GIMPLE_ASSIGN.
15122
0e510b3e
AN
151232009-01-11 Adam Nemet <anemet@caviumnetworks.com>
15124
15125 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
15126 subreg of op0 to the original op0.
15127
c95b2534 151282009-01-11 Laurent GUERBY <laurent@guerby.net>
10270471
LG
15129
15130 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
2ba9daa7 15131
53a7ff9a
MS
151322009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
15133
15134 PR debug/7055
60839f5d 15135 * mips-tfile.c (parse_def): Fix parsing of def strings
53a7ff9a
MS
15136 starting with digits.
15137
b3a796bc
JJ
151382009-01-10 Jakub Jelinek <jakub@redhat.com>
15139
15140 PR target/38695
15141 * config/arm/arm.c (arm_is_long_call_p): Don't call
15142 arm_function_in_section_p if decl isn't a FUNCTION_DECL.
15143
b21b850e
SB
151442009-01-09 Steven Bosscher <steven@gcc.gnu.org>
15145
15146 * regrename.c (regrename_optimize): Fix dumping.
15147 (find_oldest_value_reg): Preserve REG_POINTER.
15148 (copy_hardreg_forward_1): Likewise.
15149
e0e10d3a
DN
151502009-01-09 Diego Novillo <dnovillo@google.com>
15151
bf9b2cc9 15152 * gimple.h (struct gimple_statement_base) <uid>: Document
e0e10d3a
DN
15153 the restrictions on its use.
15154 (gimple_uid): Tidy.
15155 (gimple_set_uid): Tidy.
15156
c9da2ae8
JJ
151572009-01-09 Jakub Jelinek <jakub@redhat.com>
15158
15159 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
15160 zero guard even if align_bytes != 0 and count is smaller than
15161 size_needed.
15162
38432148 151632009-01-09 Vladimir Makarov <vmakarov@redhat.com>
a174c19c
VM
15164
15165 PR rtl-optimization/38495
26d5bf5b 15166 * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
a174c19c
VM
15167 (add_range_and_copies_from_move_list): Print all added ranges.
15168 Add ranges to memory optimized destination.
15169
260fda3d
JJ
151702009-01-09 Jakub Jelinek <jakub@redhat.com>
15171
6f6278ad
JJ
15172 PR target/38686
15173 PR target/38708
15174 * config/i386/i386.c (override_options): Reject
15175 -mstringop-strategy=rep_8byte with -m32.
15176 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
15177 to 1. Do count comparison against epilogue_size_needed at compile
15178 time even when count_exp was constant forced into register. For
15179 size_needed don't jump to epilogue, instead just avoid aligning
15180 and invoke the body algorithm. If need_zero_guard, add zero guard
15181 even if count is non-zero, but smaller than size_needed + number of
15182 bytes that could be stored for alignment.
15183 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
15184 to 1. If need_zero_guard, add zero guard even if count is non-zero,
15185 but smaller than size_needed + number of bytes that could be stored
15186 for alignment. Compare size_needed with epilogue_size_needed instead
15187 of desired_align - align, don't adjust size_needed, pass
15188 epilogue_size_needed to the epilogue expanders.
15189
260fda3d 15190 PR c/35742
26d5bf5b 15191 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
260fda3d 15192
67b846fa
JDA
151932009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15194
15195 * pa.c (last_address): Change to unsigned.
15196 (update_total_code_bytes): Change argument to unsigned. Don't
15197 check if insn addresses are set.
15198 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
15199 addresses are not set.
15200 (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
15201
91c82473
NC
152022009-01-09 Nick Clifton <nickc@redhat.com>
15203
15204 * config/sh/symbian.c: Replace uses of DECL_INLINE with
15205 DECL_DECLARED_INLINE_P.
15206
4017e262
JJ
152072009-01-09 Jakub Jelinek <jakub@redhat.com>
15208
0a49e5c2
JJ
15209 PR middle-end/38347
15210 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
15211 GET_MODE (op0) in operand_subword_force calls.
15212
4017e262
JJ
15213 PR middle-end/38771
15214 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
15215 fold_convert arg0 operands to TREE_TYPE (op0) first.
15216
7cd06356
VM
152172009-01-08 Vladimir Makarov <vmakarov@redhat.com>
15218
15219 * params.def (ira-max-conflict-table-size): Decrease default value
15220 to 1000.
15221
96867bbd
JJ
152222009-01-08 Jakub Jelinek <jakub@redhat.com>
15223
15224 PR tree-optimization/37031
15225 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
15226 on parameter_set.
15227 (build_access_matrix): Reserve correct size for AM_MATRIX vector,
15228 allocate it using gc instead of heap, use VEC_quick_push instead of
15229 VEC_safe_push.
15230 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
15231 instead of heap, use VEC_quick_push instead of VEC_safe_push.
15232 * tree-data-ref.h (struct access_matrix): Change matrix to gc
15233 allocated vector from heap allocated.
15234 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
15235 * tree-loop-linear.c (linear_transform_loops): Allocate nest
15236 vector only after perfect_loop_nest_depth call.
15237
68f61c3d
SP
152382009-01-08 Sebastian Pop <sebastian.pop@amd.com>
15239 Jan Sjodin <jan.sjodin@amd.com>
15240
15241 PR tree-optimization/38559
15242 * graphite.c (debug_value, copy_constraint,
15243 swap_constraint_variables, scale_constraint_variable, ): New.
15244 (get_lower_bound, get_upper_bound): Removed.
15245 (graphite_trans_bb_strip_mine): Clean up this code that works
15246 only for constant number of iterations. Fully copy upper and
15247 lower bound constraints, not only the constant part of them.
15248 * graphite.h (debug_value): Declared.
15249
82567e33
IR
152502009-01-08 Ira Rosen <irar@il.ibm.com>
15251
15252 PR tree-optimization/37194
15253 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
2ba9daa7 15254 Don't add the cost of cost model guard in prologue to scalar
82567e33
IR
15255 outside cost in case of known number of iterations.
15256
7da13f1d
NF
152572009-01-07 Nathan Froyd <froydnj@codesourcery.com>
15258 Alan Modra <amodra@bigpond.net.au>
15259
15260 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
15261 non-word-aligned REG+CONST addressing.
15262
c0f64575
UB
152632009-01-07 Uros Bizjak <ubizjak@gmail.com>
15264
15265 PR target/38706
15266 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
15267 free_after_compilation when outputting a thunk.
15268 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
15269 Do not call free_after_compilation here.
15270
301b6a4e
UB
152712009-01-07 Uros Bizjak <ubizjak@gmail.com>
15272
15273 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
301b6a4e
UB
15274 (ix86_valid_target_attribute_inner_p): Ditto.
15275
6a114766
JS
152762009-01-07 Jan Sjodin <jan.sjodin@amd.com>
15277
15278 PR tree-optimization/38492
15279 PR tree-optimization/38498
15280 * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
15281 * tree-chrec.h (scev_is_linear_expression): Declared.
15282 * graphite.c (graphite_cannot_represent_loop_niter): New.
15283 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
15284 (graphite_loop_normal_form): Use gcc_assert.
15285 (scan_tree_for_params): Use CASE_CONVERT.
15286 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
15287 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
15288 Use gcc_assert. Discard scops that contain unhandled cases.
15289 (build_scop_conditions): Return a boolean status for unhandled cases.
15290 (strip_mine_profitable_p): Print the loop number, not its depth.
15291 (is_interchange_valid): Pass the depth of the loop nest, don't
15292 recompute it wrongly.
15293 (graphite_trans_bb_block): Same.
15294 (graphite_trans_bb_block): Print tentative of loop blocking.
15295 (graphite_trans_scop_block): Do not print that the loop has been
15296 blocked.
15297 (graphite_transform_loops): Do not handle scops that contain condition
15298 scalar phi nodes.
15299
65b82caa
L
153002009-01-07 H.J. Lu <hongjiu.lu@intel.com>
15301
15302 AVX Programming Reference (December, 2008)
15303 * config/i386/avxintrin.h (_mm256_stream_si256): New.
15304 (_mm256_stream_pd): Likewise.
15305 (_mm256_stream_ps): Likewise.
15306
15307 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
15308 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
15309 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
15310 (bdesc_special_args): Add __builtin_ia32_movntdq256,
15311 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
15312 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
15313 (ix86_expand_special_args_builtin): Likewise.
15314
15315 * config/i386/sse.md (AVXMODEDI): New.
15316 (avx_movnt<mode>): Likewise.
15317 (avx_movnt<mode>): Likewise.
15318 (<sse>_movnt<mode>): Remove AVX support.
15319 (sse2_movntv2di): Likewise.
15320
cef158f9
RG
153212009-01-07 Richard Guenther <rguenther@suse.de>
15322
15323 PR middle-end/38751
15324 * fold-const.c (extract_muldiv): Remove obsolete comment.
15325 (fold_plusminus_mult_expr): Undo MINUS_EXPR
15326 to PLUS_EXPR canonicalization for the canonicalization.
15327
246cb5be
GP
153282009-01-07 Gerald Pfeifer <gerald@pfeifer.com>
15329
15330 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
15331 hosted cross-compilers generating less efficient code.
15332
84b9b872
RS
153332009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
15334
15335 * function.h (rtl_data): Add a dbr_scheduled_p field.
15336 * reorg.c (dbr_schedule): Set it.
15337 (gate_handle_delay_slots): Check it.
15338 * config/mips/mips.c (mips_base_delayed_branch): Delete.
15339 (mips_reorg): Check flag_delayed_branch instead of
15340 mips_base_delayed_branch.
15341 (mips_override_options): Don't set mips_base_delayed_branch
15342 or flag_delayed_branch.
15343
ace984c8
RS
153442009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
15345
15346 PR rtl-optimization/38426.
15347 * ira.c (ira): Set current_function_is_leaf earlier.
15348
7ad7809b
JJ
153492009-01-06 Jakub Jelinek <jakub@redhat.com>
15350
15351 PR rtl-optimization/38722
15352 * combine.c (try_combine): Don't modify PATTERN (i3) and notes
15353 too early, only set a flag and modify after last possible
15354 undo_all point.
15355
c52ec948
JJ
153562009-01-06 Janis Johnson <janis187@us.ibm.com>
15357
15358 PR c/34252
15359 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
15360 * real.c (decimal_single_format): Correct values of emin and emax.
15361 (decimal_double_format): Ditto.
15362 (decimal_quad_format): Ditto.
15363 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
15364 computation of DECnn_MIN and DECnn_MAX for corrected values of
15365 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of
15366 __DECnn_MIN__, and adjust its computation for the corrected value
15367 of emin.
15368
300240e1
JH
153692009-01-06 Jan Hubicka <jh@suse.cz>
15370
15371 PR target/38744
435da628 15372 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
300240e1 15373
271c069e
GP
153742009-01-06 Gerald Pfeifer <gerald@pfeifer.com>
15375
15376 * doc/contrib.texi (Contributors): Slightly adjust the end note.
15377 Add Robert Clark to the list of testers.
15378
64e4c301 153792009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 15380 Kai Tietz <kai.tietz@onevision.com>
64e4c301 15381
435da628
UB
15382 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
15383 * config/i386/i386.c (ix86_expand_call): Add clobbers.
64e4c301 15384
7650b83e 153852009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 15386 Kai Tietz <kai.tietz@onevision.com>
7650b83e 15387
435da628
UB
15388 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
15389 for w64 ABI.
15390 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
7650b83e
JH
15391 (ix86_nsaved_regs): Count only general purpose regs.
15392 (ix86_nsaved_sseregs): New.
15393 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
15394 to 16 for w64; compute padding and size of sse reg save area.
301b6a4e
UB
15395 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
15396 general purpose regs.
7650b83e
JH
15397 (ix86_emit_save_sse_regs_using_mov): New.
15398 (ix86_expand_prologue): Save SSE regs if needed.
15399 (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
15400 (ix86_emit_restore_sse_regs_using_mov): New.
15401 (ix86_expand_epilogue): Save SSE regs if needed.
15402
9aa5c1b2 154032009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 15404 Kai Tietz <kai.tietz@onevision.com>
9aa5c1b2 15405
435da628
UB
15406 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
15407 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
15408 functions when accumulate outgoing args is off.
9aa5c1b2 15409
f7556aae
L
154102009-01-06 H.J. Lu <hongjiu.lu@intel.com>
15411
15412 PR bootstrap/38742
15413 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
15414 before using pseudos_have_intersected_live_ranges_p.
15415
15416 * ira-int.h (ira_assert): Always define.
15417
e47b7d04
L
154182009-01-06 H.J. Lu <hongjiu.lu@intel.com>
15419
15420 AVX Programming Reference (December, 2008)
15421 * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
15422 (_mm256_permute2_pd): Likewise.
15423 (_mm_permute2_ps): Likewise.
15424 (_mm256_permute2_ps): Likewise.
15425 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
15426 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
15427
15428 * config/i386/i386.c (ix86_builtins): Remove
15429 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
15430 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
15431 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
15432 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
15433 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
15434 (bdesc_args): Remove __builtin_ia32_vpermil2pd,
15435 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
15436 __builtin_ia32_vpermil2ps256.
15437 (ix86_init_mmx_sse_builtins): Updated.
15438 (ix86_expand_args_builtin): Likewise.
15439
44b86471
JDA
154402009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15441
e47b7d04
L
15442 * pa.c (output_call): Relocate non-jump insns in the delay slot of
15443 long absolute calls when generating PA 2.0 code.
44b86471 15444
311aab06
VM
154452009-01-05 Vladimir Makarov <vmakarov@redhat.com>
15446
15447 PR rtl-optimization/38583
15448 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
15449
15450 * params.def (ira-max-conflict-table-size): New.
15451
15452 * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
2ba9daa7 15453
311aab06 15454 * ira.h (ira_conflicts_p): New external definition.
2ba9daa7 15455
311aab06
VM
15456 * ira-conflicts.c (build_conflict_bit_table): Do not build too big
15457 table. Report this. Return result of building.
15458 (ira_build_conflicts): Use ira_conflicts_p. Check result of
15459 building conflict table.
15460
301b6a4e 15461 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
311aab06 15462 (ira_color): Use ira_conflicts_p.
2ba9daa7 15463
311aab06
VM
15464 * global.c: Include ira.h.
15465 (pseudo_for_reload_consideration_p, build_insn_chain): Use
15466 ira_conflicts_p.
15467
15468 * Makefile.in (global.o): Add ira.h.
2ba9daa7 15469
311aab06
VM
15470 * ira-build.c (mark_all_loops_for_removal,
15471 propagate_some_info_from_allocno): New.
15472 (remove_unnecessary_allocnos): Call
15473 propagate_some_info_from_allocno.
15474 (remove_low_level_allocnos): New.
15475 (remove_unnecessary_regions): Add parameter. Call
15476 mark_all_loops_for_removal and remove_low_level_allocnos. Pass
15477 parameter to remove_unnecessary_regions.
15478 (ira_build): Remove all regions but root if the conflict table was
15479 not built. Update conflict hard regs for allocnos crossing calls.
15480
15481 * ira.c (ira_conflicts_p): New global.
15482 (ira): Define and use ira_conflicts_p.
15483
15484 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
15485 count_spilled_pseudo, find_reg, alter_reg, finish_spills,
301b6a4e 15486 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
2ba9daa7 15487
5641785f
BE
154882009-01-06 Ben Elliston <bje@au.ibm.com>
15489
15490 * gengtype-lex.l (YY_NO_INPUT): Define.
15491
e4e5261f
AP
154922009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
15493
15494 PR c/34911
5641785f
BE
15495 * c-common.c (handle_vector_size_attribute): Also reject
15496 BOOLEAN_TYPE types.
e4e5261f 15497
7b10257f
SP
154982009-01-05 Sebastian Pop <sebastian.pop@amd.com>
15499
15500 PR tree-optimization/38492
15501 * graphite.c (rename_map_elt, debug_rename_elt,
301b6a4e
UB
15502 debug_rename_map_1, debug_rename_map, new_rename_map_elt,
15503 rename_map_elt_info, eq_rename_map_elts,
15504 get_new_name_from_old_name, bb_in_sese_p): Moved around.
7b10257f
SP
15505 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
15506 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
15507 (sese_build_livein_liveouts): New.
15508 (new_sese, free_sese): New.
15509 (new_scop): Call new_sese.
15510 (free_scop): Call free_sese.
15511 (rename_variables_from_edge, rename_phis_end_scop): Removed.
15512 (register_old_new_names): Renamed register_old_and_new_names.
15513 (register_scop_liveout_renames, add_loop_exit_phis,
15514 insert_loop_close_phis, struct igp,
15515 default_liveout_before_guard, add_guard_exit_phis,
15516 insert_guard_phis, copy_renames): New.
15517 (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
15518 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
15519 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
15520 (scop_adjust_phis_for_liveouts): New.
15521 (gloog): Call scop_adjust_phis_for_liveouts.
15522
15523 * graphite.h (struct sese): Documented. Added fields liveout,
301b6a4e 15524 num_ver and livein.
7b10257f
SP
15525 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
15526 (new_sese, free_sese, sese_build_livein_liveouts): Declared.
15527 (struct scop): Added field liveout_renames.
15528 (SCOP_LIVEOUT_RENAMES): New.
15529
9761fcc7
HJ
155302009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
15531
15532 PR tree-optimization/38510
15533 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
15534 (translate_clast): Call recompute_all_dominators before
15535 graphite_verify.
15536 (gloog): Call recompute_all_dominators before graphite_verify.
15537
155382009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
c95b2534 15539 Jan Sjodin <jan.sjodin@amd.com>
9761fcc7
HJ
15540
15541 PR tree-optimization/38500
15542 * graphite.c (create_sese_edges): Call fix_loop_structure after
15543 splitting blocks.
15544
c95b2534 155452009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
48a01864
JS
15546
15547 * config.gcc: Add m32r*-*-rtems*.
15548 * config/m32r/rtems.h: New file.
15549
fc0cd180
BE
155502009-01-05 Ben Elliston <bje@au.ibm.com>
15551
15552 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
15553 (.po.pox): Likewise.
15554 (po/gcc.pot): Likewise.
15555
3106d8e5
DM
155562009-01-04 David S. Miller <davem@davemloft.net>
15557
15558 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
15559 (STARTING_FRAME_OFFSET): Always set to zero.
15560
0009b473
RS
155612009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
15562
15563 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
15564 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
15565 fixed-point types, and vectors of the same.
15566
4f24c6d6
RS
155672009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
15568
15569 * config/mips/sync.md (*mb_barrier): Rename to...
15570 (*memory_barrier): ...this.
15571
1df48f5c
JW
155722009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com>
15573
15574 * doc/extend.texi (Function Attributes): Move @cindex after @item
eefe5da0 15575 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
1df48f5c
JW
15576 and put in alphabetical order. Fix 'target' name and put in order.
15577 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
15578 typos.
15579
1a8c13b3
UB
155802009-01-04 Uros Bizjak <ubizjak@gmail.com>
15581
15582 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
15583 (memory_barrier): Expand as unspec instead of unspec_volatile.
15584 Remove mem:BLK from insn operands. Use Pmode scratch register.
15585 (*memory_barrier): Define as unspec instead of unspec_volatile.
15586 Use (match_dup 0) as input operand.
15587
15588 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
15589 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
15590 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
15591 scratch register. Remove operand 1.
15592 (*stbar): Define as unspec instead of unspec_volatile.
15593 Use (match_dup 0) as input operand, remove (const_int 8).
15594 (*membar): Define as unspec instead of unspec_volatile.
15595 Use (match_dup 0) as input operand, remove input operand 2.
15596
15597 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
15598 (memory_barrier): Expand as unspec instead of unspec_volatile.
15599 Remove mem:BLK from insn operands. Use Pmode scratch register.
15600 (*memory_barrier): Define as unspec instead of unspec_volatile.
15601 Use (match_dup 0) as input operand.
15602
15603 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
15604 Remove mem:BLK from insn operands. Use Pmode scratch register.
15605 Set volatile flag on operand 0.
15606 (*memory_barrier): New insn pattern.
15607
15608 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
15609 insn operands.
15610 (*memory_barrier): Use (match_dup 0) as input operand.
15611
15612 * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
15613 Remove mem:BLK from insn operands. Use Pmode scratch register.
15614 Set volatile flag on operand 0.
301b6a4e 15615 (*mb_internal): New insn pattern.
1a8c13b3
UB
15616
15617 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
15618
fb0703f7
SB
156192009-01-04 Steven Bosscher <steven@gcc.gnu.org>
15620
15621 PR middle-end/38586
15622 * function.c (struct temp_slot): Move to the section of the file
15623 that deals with temp slots. Remove field 'address'.
15624 (temp_slot_address_table): New hash table of address -> temp slot.
15625 (struct temp_slot_address_entry): New struct, items for the table.
15626 (temp_slot_address_compute_hash, temp_slot_address_hash,
15627 temp_slot_address_eq, insert_temp_slot_address): Support functions
15628 for the new table.
15629 (find_temp_slot_from_address): Rewrite to use the new hash table.
15630 (remove_unused_temp_slot_addresses): Remove addresses of temp
15631 slots that have been made available.
15632 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
15633 worker function for remove_unused_temp_slot_addresses.
15634 (assign_stack_temp_for_type): Don't clear the temp slot address list.
15635 Add the temp slot address to the address -> temp slot map.
15636 (update_temp_slot_address): Update via insert_temp_slot_address.
15637 (free_temp_slots): Call remove_unused_temp_slot_addresses.
15638 (pop_temp_slots): Likewise.
15639 (init_temp_slots): Allocate the address -> temp slot map, or empty
15640 the map if it is already allocated.
15641 (prepare_function_start): Initialize temp slot processing.
15642
b5a430f3
SB
156432009-01-04 Steven Bosscher <steven@gcc.gnu.org>
15644
15645 PR middle-end/38584
15646 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
15647 Calculate the size of all stack vars assuming no packing of stack
15648 vars will happen, replacing a quadratic algorithm with a linear one.
15649
5d560619
JJ
156502009-01-03 Jakub Jelinek <jakub@redhat.com>
15651
15652 PR target/38707
15653 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
15654 can't be used.
15655
953a7caa
DN
156562009-01-03 Diego Novillo <dnovillo@google.com>
15657
15658 * doc/contrib.texi: Update contributions.
15659
5f26a230
JJ
156602009-01-03 Jakub Jelinek <jakub@redhat.com>
15661
493aa551
JJ
15662 PR c++/38705
15663 * builtins.c (fold_builtin_memory_op): Give up if either operand
15664 is volatile. Set srctype or desttype to non-qualified version
15665 of the other type.
15666
5f26a230
JJ
15667 PR c/38700
15668 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
15669 and FUNCTION_DECLs.
15670
c95b2534 156712009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
fafe34f9
KZ
15672
15673 PR rtl-optimization/35805
15674 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
15675 problem if fast dce is able to remove any instructions.
15676 * dce.c (dce_process_block): Fix dump message.
2ba9daa7 15677
0b355794
MM
156782009-01-02 Mark Mitchell <mark@codesourcery.com>
15679
15680 PR 33649
15681 * tree-ssa-pre.c (compute_antic): Correct loop bounds.
15682
0cf0d02b
JJ
156832009-01-02 Jakub Jelinek <jakub@redhat.com>
15684
15685 PR middle-end/38690
15686 * tree-flow.h (op_code_prio, op_prio): New prototypes.
15687 * tree-pretty-print.c (op_code_prio): New function.
15688 (op_prio): No longer static. Use op_code_prio.
15689 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
15690 Use op_prio and op_code_prio to determine if () should be
15691 printed around operand(s) or not.
15692
15693 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
15694 dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
15695 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
15696 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
15697 pp_character instead of pp_string for single letter printing.
15698
e3606f3b
RS
156992009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
15700
15701 * doc/extend.texi: Fix '#pragma GCC option' typo.
15702
c95b2534 157032009-01-02 Richard Guenther <rguenther@suse.de>
00f39bd5 15704
a5f061dc
RG
15705 * doc/install.texi (--enable-checking): Mention different
15706 default for stage1.
15707 (--enable-stage1-checking): Document.
00f39bd5 15708
26de0bcb
AP
157092009-01-01 Andrew Pinski <pinskia@gmail.com>
15710
15711 PR middle-end/30142
15712 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
15713 case to be an error.
15714
7a7d8fab
BE
157152009-01-02 Ben Elliston <bje@au.ibm.com>
15716
15717 * config/fp-bit.h (pack_d): Constify argument.
15718 * config/fp-bit.c (makenan): Constify return type. Remove casts.
15719 (isnan): Constify argument.
15720 (isinf): Likewise.
15721 (iszero): Likewise.
15722 (pack_d): Likewise.
15723 (_fpadd_parts): Constify return type.
15724 (_fpmul_parts): Likewise.
15725 (_fpdiv_parts): Likewise.
15726
b295aee2
JJ
157272009-01-01 Jakub Jelinek <jakub@redhat.com>
15728
15729 PR c/36489
15730 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only
15731 warn about overwriting initializer with side-effects or
15732 -Woverride-init if !IMPLICIT.
15733 (output_init_element): Likewise. Pass IMPLICIT down to
15734 add_pending_init.
15735 (process_init_element): Add IMPLICIT argument. Pass it down
15736 to output_init_element.
15737 (push_init_element, pop_init_level, set_designator): Adjust
15738 process_init_element callers.
15739 (set_nonincremental_init, set_nonincremental_init_from_string):
15740 Adjust add_pending_init callers.
15741 (output_pending_init_elements): Adjust output_init_element callers.
15742 * c-tree.h (process_init_element): Adjust prototype.
15743 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
15744 process_init_element callers.
ad41bd84
JM
15745
15746\f
15747Copyright (C) 2009 Free Software Foundation, Inc.
15748
15749Copying and distribution of this file, with or without modification,
15750are permitted in any medium without royalty provided the copyright
15751notice and this notice are preserved.