]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
sel-sched.c: Make forward declarations of move_op_hooks and fur_hooks explicitly...
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
c32e2175
ILT
12009-06-16 Ian Lance Taylor <iant@google.com>
2
3 * sel-sched.c: Make forward declarations of move_op_hooks and
4 fur_hooks explicitly extern.
5
415a06c2
ILT
62009-06-16 Ian Lance Taylor <iant@google.com>
7
8 * df-problems.c (df_byte_lr_alloc): Don't set problem_data to
9 itself.
10 * vec.c (vec_gc_o_reserve_1): Don't set alloc to itself.
11
675f99c9
ILT
122009-06-16 Ian Lance Taylor <iant@google.com>
13
14 * resource.c (mark_referenced_resources): Change
15 include_delayed_effects parameter to bool. Change all callers.
16 (mark_end_of_function_resources): Likewise.
17 * reorg.c (insn_references_resource_p): Likewise.
18 (insn_sets_resource_p): Likewise.
19 * resource.h (mark_referenced_resources): Update declaration.
20 (mark_end_of_function_resources): Update declaration.
21
a322799d
DE
222009-06-16 David Edelsohn <edelsohn@gnu.org>
23
24 * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove -lstdc++.
25
c58c92f5
DE
262009-06-16 David Edelsohn <edelsohn@gnu.org>
27
28 * doc/install.texi (*-*-aix): Update explanation of XLC bootstrap.
29 GCC can bootstrap on AIX with GNU Binutils 2.20.
30
95228603
ILT
312009-06-16 Ian Lance Taylor <iant@google.com>
32
33 * Makefile.in (tree-vect-stmts.o): Depend upon $(TOPLEV_H).
34
9c727c9a
ILT
352009-06-16 Ian Lance Taylor <iant@google.com>
36
37 * toplev.h (floor_log2): If GCC_VERSION >= 3004, declare as static
38 inline, not extern inline.
39 (exact_log2): Likewise.
40 * toplev.c (floor_log2): Only define if GCC_VERSION < 3004. Don't
41 test CLZ_HWI.
42 (exact_log2): Likewise, but don't test CTZ_HWI.
43
5fd8300b
ILT
442009-06-16 Ian Lance Taylor <iant@google.com>
45
46 * bitmap.c (bitmap_clear): Don't declare as inline.
47 * gimple.c (gimplify_assign): Likewise.
48 * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
49 * haifa-sched.c (insn_cost): Don't declare with HAIFA_INLINE.
50 (sched_scan_info): Remove duplicate definition.
51
7d882b83
ILT
522009-06-16 Ian Lance Taylor <iant@google.com>
53
54 * c-common.c (skip_evaluation): Don't define.
55 (c_inhibit_evaluation_warnings): Define global variable.
56 (overflow_warning): Check c_inhibit_evaluation_warnings rather
57 than skip_evaluation.
58 (convert_and_check, warn_for_div_by_zero): Likewise.
59 * c-common.h (skip_evaluation): Don't declare.
60 (c_inhibit_evaluation_warnings): Declare.
61 * c-parser.c (c_parser_typeof_specifier): Set
62 c_inhibit_evaluation_warnings rather than skip_evaluation.
63 (c_parser_conditional_expression): Likewise.
64 (c_parser_binary_expression): Likewise.
65 (c_parser_sizeof_expression): Likewise.
66 (c_parser_alignof_expression): Likewise.
67 * c-typeck.c (build_indirect_ref): Check
68 c_inhibit_evaluation_warnings rather than skip_evaluation.
69 (build_conditional_expr, build_binary_op): Likewise.
70
2e407842
RG
712009-06-16 Richard Guenther <rguenther@suse.de>
72
73 * tree-ssa-alias.c (is_escape_site): Remove.
74 * tree-ssa-alias.h (enum escape_type): Remove.
75 (is_escape_site): Likewise.
76 * tree-ssa-structalias.c (find_func_aliases): Handle escapes
77 via casts and asms without deferring to is_escape_site.
78
f2ff8872
JJ
792009-06-16 Jakub Jelinek <jakub@redhat.com>
80
81 PR middle-end/40446
82 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Don't
83 use gen_lowpart if op0 has complex mode.
84
de70bb20
RG
852009-06-16 Richard Guenther <rguenther@suse.de>
86
87 * tree-ssa-structalias.c (do_ds_constraint): Stores in global
88 variables add them to ESCAPED.
89 (find_func_aliases): Do not make all indirectly stored values
90 escaped.
91
daa0eeb8
RAE
922009-06-16 Rafael Avila de Espindola <espindola@google.com>
93
94 * config/i386/winnt.c (i386_pe_encode_section_info): Update call to
95 make_decl_one_only.
96
0ec19b8c
MJ
972009-06-16 Martin Jambor <mjambor@suse.cz>
98
99 PR tree-optimization/40432
100 * tree-sra.c (sra_modify_assign): When creating VIEW_CONVERT_EXPR,
101 check whether we need to force gimple register operand.
102
2b26b801
MJ
1032009-06-16 Martin Jambor <mjambor@suse.cz>
104
105 PR tree-optimization/40413
106 * tree-sra.c (load_assign_lhs_subreplacements): Pass offset to
107 build_ref_for_offset.
108 (propagate_subacesses_accross_link): Fix a typo in a comment.
109
7c5222ff
IR
1102009-06-16 Ira Rosen <irar@il.ibm.com>
111
112 * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
113 with additional parameter.
114 * tree-vectorizer.h (enum vect_def_type): Add new value
115 vect_nested_cycle.
116 (enum vect_relevant): Add comments.
117 (vect_is_simple_reduction): Add new argument.
118 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Add comments.
119 Detect nested cycles.
120 (vect_is_simple_reduction): Update documentation, add an argument to
121 distinguish inner-loop reduction from nested cycle, detect nested
122 cycles, fix printings and indentation, don't swap operands in case
123 of nested cycle.
124 (get_initial_def_for_reduction): Handle subtraction.
125 (vect_create_epilog_for_reduction): Add new argument to specify
126 reduction variable.
127 (vect_finalize_reduction): Handle subtraction, fix comments.
128 (vectorizable_reduction): Handle nested cycles. In case of nested cycle
129 keep track of the reduction variable position. Call
130 vect_is_simple_reduction with additional parameter. Use original
131 statement code in reduction epilogue for nested cycle. Call
132 vect_create_epilog_for_reduction with additional parameter.
133 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Assert inner-loop
134 vectorization.
135 (vect_recog_widen_sum_pattern): Likewise.
136 * tree-vect-stmts.c (process_use): Distinguish between nested cycles
137 and reductions.
138 (vect_mark_stmts_to_be_vectorized): Likewise.
139 (vect_get_vec_def_for_operand): Handle nested cycles.
140
d376d545
RW
1412009-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
142
143 * doc/invoke.texi (Debugging Options): Fix option index entries
144 for -fdump-statistics, -frandom-seed add entries for
145 -fdump-tree-original, -fdump-tree-optimized, -frandom-seed.
146 (FRV Options): Fix entries for -mTLS, -mtls.
147 (HPPA Options): Fix entries for -mgnu-ld, -mhp-ld.
148 (i386 and x86-64 Options): Fix entry for -mno-red-zone.
149 (M68hc1x Options): Fix @itemx for -mnominmax.
150 (MCore Options): Fix entry for -mno-lsim.
151 (MMIX Options): Fix entry for -mabi=mmixware.
152 (PDP-11 Options): Fix entry for -mbcopy-builtin.
153
bd117bb6
BS
1542009-06-16 Basile Starynkevitch <basile@starynkevitch.net>
155
156 * doc/plugins.texi (Interacting with the GCC Garbage Collector):
157 Mention the plugin mode of gengtype.
158 * doc/gty.texi (Source Files Containing Type Information):
159 Likewise.
160 * gengtype.c: Updated copyright.
161 (plugin_files, nb_plugin_files) Added new static variables.
162 (measure_input_list) Care about plugin_files.
163 (write_rtx_next): Added early return in plugin mode.
164 (create_file): Updated copyright year in generated file. Added
165 asserts.
166 (oprintf): Added early return if NULL outf.
167 (get_output_file_with_visibility): Care of plugin_files.
168 (get_output_file_name): May return null.
169 (write_local): Added early return.
170 (put_mangled_filename): Ditto.
171 (finish_root_table): Added check for base_files.
172 (write_roots): Care about null when plugins.
173 (main): Added plugin mode.
174
e1b7793c
ILT
1752009-06-15 Ian Lance Taylor <iant@google.com>
176
177 * df-problems.c (df_simulate_one_insn_forwards): Fix braces in
178 switch.
179 * gcov.c (read_count_file): Add braces around variables declared
180 before label.
181
182 * c.opt (Wjump-misses-init): New warning.
183 * c-opts.c (c_common_handle_option): Set warn_jump_misses_init for
184 -Wall and -Wc++-compat if not already set.
185 (c_common_post_options): Clear warn_jump_misses_init if it was not
186 set.
187 * c-decl.c (struct c_binding): Change type field to a union with
188 new label field. Make it the first field in the struct. Update
189 references to type to use u.type instead.
190 (struct c_spot_bindings): Define.
191 (struct c_goto_bindings): Define.
192 (c_goto_bindings_p): Define, along with VECs.
193 (struct c_label_vars): Define.
194 (struct c_scope): Add has_label_bindings field.
195 (bind_label, set_spot_bindings): New static functions.
196 (decl_jump_unsafe, update_spot_bindings): New static functions.
197 (update_label_decls): New static function.
198 (pop_scope): Call update_label_decls. Don't call c_end_vm_scope.
199 Update binding u.label field to shadowed field.
200 (c_binding_start_stmt_expr): New function.
201 (c_binding_end_stmt_expr): New function.
202 (pushdecl): Don't call c_begin_vm_scope.
203 (make_label): Add defining and p_label_vars parameters. Change
204 all callers.
205 (lookup_label): Correct test for whether a label has not yet been
206 defined. Call bind_label rather than bind.
207 (warn_about_goto): New static function.
208 (lookup_label_for_goto): New function.
209 (declare_label): Call bind_label rather than bind.
210 (check_earlier_gotos): New static function.
211 (define_label): Don't give errors about jumping into statement
212 expressions or scopes of variably modified types. Call
213 set_spot_bindings and check_earlier_gotos. Call bind_label
214 instead of bind. Don't set label_context_stack_se or
215 label_context_stack_vm.
216 (c_get_switch_bindings): New function.
217 (c_release_switch_bindings): New function.
218 (c_check_switch_jump_warnings): New function.
219 (start_function): Don't set label_context_stack_se or
220 label_context_stack_vm.
221 (finish_function): Likewise.
222 * c-typeck.c (label_context_stack_se): Don't define.
223 (label_context_stack_vm): Don't define.
224 (c_finish_goto_label): Call lookup_label_for_goto rather than
225 lookup_label. Don't give errors about jumping into a statement
226 expression or the scope of a variably modified type. Don't set
227 label_context_stack_se or label_context_stack_vm.
228 (struct c_switch): Remove blocked_stmt_expr and blocked_vm
229 fields. Add bindings field.
230 (c_start_case): Don't set deleted fields. Set bindings field.
231 (do_case): Rework order of tests. Don't check blocked_stmt_expr
232 or blocked_vm. Call c_check_switch_jump_warnings.
233 (c_finish_case): Don't test blocked_stmt_expr field. Call
234 c_release_switch_bindings.
235 (c_begin_stmt_expr): Don't increment blocked_stmt_expr in
236 c_switch_stack. Don't walk label_context_stack_se labels. Don't
237 set label_context_stack_se. Call c_bindings_start_stmt_expr.
238 (c_finish_stmt_expr): Don't decrement blocked_stmt_expr in
239 c_switch_stack. Don't walk label_context_stack_se labels. Don't
240 set label_context_stack_se. Call c_bindings_end_stmt_expr.
241 (c_begin_vm_scope, c_end_vm_scope): Don't define.
242 * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR): Don't define.
243 (C_DECL_UNDEFINABLE_STMT_EXPR): Don't define.
244 (C_DECL_UNJUMPABLE_VM): Don't define.
245 (C_DECL_UNDEFINABLE_VM): Don't define.
246 (struct c_label_list): Don't define.
247 (struct c_label_context_se): Don't define.
248 (struct c_label_context_vm): Don't define.
249 (struct c_spot_bindings): Declare.
250 (c_bindings_start_stmt_expr): Declare.
251 (c_bindings_end_stmt_expr): Declare.
252 (lookup_label_for_goto): Declare.
253 (c_get_switch_bindings, c_release_switch_bindings): Declare.
254 (c_check_switch_jump_warnings): Declare.
255 (label_context_stack_se, label_context_stack_vm): Don't declare.
256 (c_finish_goto_label): Update declaration.
257 (c_begin_vm_scope, c_end_vm_scope): Don't declare.
258 * doc/invoke.texi (Option Summary): Mention -Wjump-misses-init.
259 (Warning Options): Document -Wjump-misses-init.
260
98a129b9
JJ
2612009-06-15 Jakub Jelinek <jakub@redhat.com>
262
263 * tree-object-size.c (addr_object_size): Fix a pasto in the last
264 change.
265
19751f1f
RAE
2662009-06-15 Rafael Avila de Espindola <espindola@google.com>
267
268 * cgraph.c (cgraph_make_node_local): Use DECL_COMDAT_GROUP.
269
d40eb158
AH
2702009-06-15 Aldy Hernandez <aldyh@redhat.com>
271
272 * except.c (init_eh): Use BUILTINS_LOCATION when calling build_decl.
273
2742009-06-15 Aldy Hernandez <aldyh@redhat.com>
275
276 * tree-eh.c (lower_try_finally_switch): Initialize tf_loc.
277
fc26fae3
RAE
2782009-06-15 Rafael Avila de Espindola <espindola@google.com>
279
280 * cgraphunit.c (cgraph_function_versioning,save_inline_function_body):
281 Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
282 * cgraph.c (cgraph_create_virtual_clone): Use DECL_COMDAT_GROUP.
283 * config/i386/i386.c (ix86_file_end): Compute DECL_COMDAT_GROUP.
284 * dwarf2asm.c(dw2_force_const_mem): Update call to make_decl_one_only.
285 * langhooks-def.h (lhd_comdat_group, LANG_HOOKS_COMDAT_GROUP): Remove.
286 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_COMDAT_GROUP.
287 * langhooks.c (lhd_comdat_group): Remove.
288 * langhooks.h (lang_hooks_for_decls): Remove comdat_group.
289 * tree.h (DECL_COMDAT_GROUP): New.
290 (DECL_ONE_ONLY): Use DECL_COMDAT_GROUP.
291 (tree_decl_with_vis): Add comdat_group. Remove one_only.
292 (make_decl_one_only): Change signature.
293 * varasm.c (get_emutls_init_templ_addr, emutls_decl): Update call to
294 make_decl_one_only.
295 (make_decl_one_only): Change signature.
296 (default_elf_asm_named_section): Use DECL_COMDAT_GROUP.
297
0eb92735
RG
2982009-06-15 Richard Guenther <rguenther@suse.de>
299
300 PR middle-end/40439
301 * tree.c (widest_int_cst_value): Fix bootstrap on 32bit HWI hosts.
302
0ab352d5
AK
3032009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
304
305 * tree-ssa-math-opts.c: Remove extra divide.
306
677fbff4
AK
3072009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
308
309 * config/s390/s390.md ("bswap<mode>2"): Only available on z900.
310
03bd2f1a
AK
3112009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
312
313 * passes.c: Add bswap pass.
314 * tree-pass.h: Add pass_optimize_bswap declaration.
315 * tree-ssa-math-opts.c: Include diagnostics.h for print_gimple_stmt.
316 Include rtl.h, expr.h and optabs.h for optab_handler check.
317 (struct symbolic_number, pass_optimize_bswap): New definition.
318 (do_shift_rotate, verify_symbolic_number_p): New functions.
319 (find_bswap_1, find_bswap, execute_optimize_bswap): New functions.
320 (gate_optimize_bswap): New function.
321 * tree.c (widest_int_cst_value): New function.
322 * tree.h (widest_int_cst_value): Prototype added.
323
fb4c4640
SB
3242009-06-14 Steven Bosscher <steven@gcc.gnu.org>
325
326 * cfgcleanup.c (old_insns_match_p): Remove code to substitute
327 REG_EQUAL/REG_EQUIV notes.
328
1d24fdd9
RG
3292009-06-14 Richard Guenther <rguenther@suse.de>
330
331 PR middle-end/40389
332 * gimple.c (walk_stmt_load_store_addr_ops): The LHS of a call
333 has its address taken if NRV was applied and it is addressable.
334 * tree-ssa-structalias.c (get_constraint_for_address_of): New
335 function split out from ...
336 (get_constraint_for_1): ... here.
337 (handle_rhs_call): Use it to mark the return slot escaped if
338 it is addressable and NRV was applied.
339
4b29c5e5
AH
3402009-06-13 Aldy Hernandez <aldyh@redhat.com>
341
342 * config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin):
343 Change first argument type to location_t.
344 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Same.
345 Do not set input_location.
346 Use loc instead of input_location throughout.
347
e1e6dc73
RG
3482009-06-13 Richard Guenther <rguenther@suse.de>
349
1d24fdd9 350 PR tree-optimization/40421
e1e6dc73
RG
351 * tree-predcom.c (should_unroll_loop_p): Remove.
352 (tree_predictive_commoning_loop): Use can_unroll_loop_p.
353
8012b923
MM
3542009-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
355
356 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
357 Add location argument.
358
4c4bde29
AH
3592009-06-13 Aldy Hernandez <aldyh@redhat.com>
360
361 * config/alpha/alpha.c (alpha_build_builtin_va_list): Pass location to
362 build_decl.
363 * config/s390/s390.c (s390_build_builtin_va_list): Same.
364 (s390_gimplify_va_arg): Pass location to create_artificial_label.
365 * config/spu/spu-protos.h: Add location to
366 spu_resolve_overloaded_builtin.
367 * config/spu/spu.c (spu_build_builtin_va_list): Pass location to
368 spu_build_builtin_va_list.
369 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Add location
370 argument. Pass location to build_function_call_vec.
371 * config/sh/sh.c (sh_build_builtin_va_list): Pass location to
372 build_decl.
373 (emit_fpu_switch): Same.
374 (sh_gimplify_va_arg_expr): Pass location to create_artificial_label.
375 * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Pass location
376 to build_decl and create_artificial_label.
377 (xtensa_gimplify_va_arg_expr): Same.
378 * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list): Same.
379 (xstormy16_gimplify_va_arg_expr): Same.
380 * config/iq2000/iq2000.c (iq2000_expand_prologue): Same.
381 * config/arm/arm.c (arm_build_builtin_va_list): Same.
382 * config/mips/mips.c (mips_build_builtin_va_list): Same.
383 (mips16_build_function_stub): Same.
384 (mips16_build_call_stub): Same.
385
81beb031
RE
3862009-06-13 Richard Earnshaw <rearnsha@arm.com>
387
388 PR target/40327
389 * arm/constraints.md (Pa, Pb): New constraints.
390 * arm/arm.md (thumb1_addsi3): Support more complex additions. Add a
391 split pattern to deal with them.
392
98f6c600
JS
3932009-06-13 Joerg Sonnenberger <joerg@britannica.bec.de>
394
395 * doc/invoke.texi: Add missing option -Wp,OPTION in list,
396 fix index entry for -Xpreprocessor.
397
71856685
AH
3982009-06-12 Aldy Hernandez <aldyh@redhat.com>
399
400 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
401 Add location argument to build_decl call.
402 * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Same.
403 (rs6000_init_builtins): Same.
404 (spe_init_builtins): Same.
405 (rs6000_gimplify_va_arg): Add location argument to
406 create_artificial_label call.
407
756b65f5
SB
4082009-06-12 Steven Bosscher <steven@gcc.gnu.org>
409
410 * timevar.def (TV_COMBINE_STACK_ADJUST): New timevar.
411 * combine-stack-adj.c (pass_stack_adjustments): Use it.
412 * Makefile.in: Fix GGC dependency for gcse.o.
413
c2255bc4
AH
4142009-06-12 Aldy Hernandez <aldyh@redhat.com>
415
416 * tree-pretty-print.c (dump_generic_node): Dump column numbers.
417 * gimple-pretty-print.c (dump_gimple_stmt): Same.
418 * gimplify.c (gimplify_modify_expr): Set location for GIMPLE_ASSIGNs
419 created.
420 * c-parser.c (c_parser_binary_expression): Use current column while
421 building binary operations.
422 * common.opt (fshow-column): Enable by default.
423 * tree-vrp.c (check_array_ref): Use warning_at.
424 (check_array_bounds): Use location from call back if expr has no
425 location.
426 * tree.h: Add location argument to maybe_fold_*.
427 * tree-ssa-ccp.c (ccp_fold): Pass location to maybe_fold_*.
428 (maybe_fold_offset_to_array_ref): Add location argument and use it.
429 (maybe_fold_offset_to_component_ref): Same.
430 (maybe_fold_offset_to_reference): Same.
431 (maybe_fold_offset_to_address): Same.
432 (maybe_fold_stmt_indirect): Same.
433 (maybe_fold_stmt_addition): Same.
434 (fold_stmt_r): Pass location to maybe_fold_*.
435 (fold_gimple_assign): Same.
436 * c-tree.h: Add location argument to finish_decl,
437 default_function_array_conversion, store_init_value.
438 * c-decl.c (define_label): Use error_at.
439 (c_make_fname_decl): Pass location to finish_decl.
440 (finish_decl): New location argument.
441 (build_compound_literal): Pass location to store_init_value.
442 (grokdeclarator): Pass location to finish_decl.
443 (grokfield): Same.
444 * c-typeck.c (array_to_pointer_conversion): New location argument.
445 (function_to_pointer_conversion): Same.
446 (default_function_array_conversion): Same.
447 (parser_build_unary_op): Pass location to overflow_warning.
448 (parser_build_binary_op): Same. Use warning_at.
449 (build_unary_op): Pass location to array_to_pointer_conversion.
450 (build_c_cast): Pass location to digest_init.
451 (build_modify_expr): New location argument.
452 (convert_for_assignment): Same.
453 (store_init_value): Same.
454 (digest_init): Same.
455 (output_init_element): Pass location to digest_init and
456 array_to_pointer_conversion.
457 (c_finish_return): Pass location to convert_for_assignment.
458 * gimplify.c (gimplify_conversion): Pass location to
459 maybe_fold_offset_to_address.
460 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Pass location
461 to maybe_fold_stmt_addition.
462 * c-omp.c (c_finish_omp_atomic): Pass new location to
463 build_modify_expr.
464 (c_finish_omp_for): Same.
465 * c-common.c (overflow_warning): New argument.
466 * c-common.h: New argument to build_modify_expr, overflow_warning.
467 * c-parser.c (c_parser_declaration_or_fndef): Pass location to
468 finish_decl.
469 (c_parser_initializer): Pass location to
470 default_function_array_conversion.
471 (c_parser_initelt): Same.
472 (c_parser_initval): Same.
473 (c_parser_asm_operands): Same.
474 (c_parser_expr_no_commas): Same. Pass location to build_modify_expr.
475 (c_parser_conditional_expression): Same.
476 (c_parser_binary_expression): Add location info to stack. Use it.
477 (c_parser_unary_expression): Pass location to
478 default_function_array_conversion, parser_build_unary_op,
479 build_indirect_ref, c_parser_postfix_expression_after_primary.
480 (c_parser_postfix_expression_after_primary): New location argument.
481 Use it.
482 (c_parser_expression_conv): Pass location to
483 default_function_array_conversion.
484 (c_parser_expr_list): Same.
485 (c_parser_omp_atomic): Same.
486 (c_parser_omp_for_loop): Same.
487 * c-tree.h: (struct c_declarator): Add comment to id_loc.
488 (build_array_declarator): New argument.
489 * c-decl.c (build_array_declarator): Add location argument.
490 (grokdeclarator): Set id_loc for cdk_array.
491 * c-parser.c (c_parser_direct_declarator_inner): Pass location to
492 build_array_declarator.
493 * tree.c (build_omp_clause): Add location argument.
494 * tree.h (OMP_CLAUSE_HAS_LOCATION): New macro.
495 (OMP_CLAUSE_LOCATION): New macro.
496 (struct tree_omp_clause): Add location field.
497 (build_omp_clause): Add argument.
498 * testsuite/gcc.dg/gomp/for-1.c: Fix column.
499 * cp/pt.c (tsubst_omp_for_iterator): Pass location to
500 build_omp_clause.
501 * cp/parser.c (cp_parser_omp_var_list_no_open): Same.
502 (cp_parser_omp_clause_collapse): Same.
503 (cp_parser_omp_clause_default): Same.
504 (cp_parser_omp_clause_if): Same.
505 (cp_parser_omp_clause_nowait): Same.
506 (cp_parser_omp_clause_num_threads): Same.
507 (cp_parser_omp_clause_ordered): Same.
508 (cp_parser_omp_clause_schedule): Same.
509 (cp_parser_omp_clause_untied): Same.
510 (cp_parser_omp_for_loop): Same.
511 (cp_parser_omp_parallel): Pass location to c_split_parallel_clauses.
512 * c-tree.h (c_start_case): Add location argument.
513 (c_process_expr_stmt): Same.
514 (c_finish_goto_*): Same.
515 * tree-parloops.c (initialize_reductions): Pass location to
516 build_omp_clause.
517 (create_parallel_loop): Same.
518 * fortran/trans-openmp.c (gfc_trans_omp_variable_list): Same.
519 (gfc_trans_omp_reduction_list): Same.
520 (gfc_trans_omp_clauses): Same.
521 (gfc_trans_omp_do): Same.
522 * c-typeck.c (c_finish_goto_label): Same.
523 (c_finish_goto_ptr): New location argument.
524 (c_start_case): Same.
525 (emit_side_effect_warnings): Same.
526 (c_process_expr_stmt): Same.
527 (c_finish_stmt_expr): Same.
528 (c_finish_omp_clauses): Use error_at instead of error.
529 * gimplify.c (gimplify_adjust_omp_clauses_1): Pass location to
530 build_omp_clause.
531 * c-omp.c (c_split_parallel_clauses): New location argument.
532 * tree-nested.c (convert_nonlocal_reference_stmt): Pass location
533 to build_omp_clause.
534 (convert_local_reference_stmt): Same.
535 (convert_gimple_call): Same.
536 * c-common.h (c_split_parallel_clauses): New argument.
537 * c-parser.c (c_parser_statement_after_labels): Pass location to
538 c_finish_goto_label.
539 (c_parser_switch_statement): Pass location to c_start_case.
540 (c_parser_for_statement): Pass location to c_finish_expr_stmt,
541 and c_process_expr_stmt.
542 (c_parser_omp_variable_list): Add location argument.
543 (c_parser_omp_clause_collapse): Pass location to
544 build_omp_clause.
545 (c_parser_omp_clause_default): Same.
546 (c_parser_omp_clause_if): Same.
547 (c_parser_omp_clause_num_threads): Same.
548 (-c_parser_omp_clause_ordered): Same.
549 (c_parser_omp_clause_reduction): Pass location to
550 c_parser_omp_variable_list.
551 (c_parser_omp_clause_schedule): Pass location to build_omp_clause.
552 (c_parser_omp_clause_untied): Same.
553 (c_parser_omp_for_loop): Pass location to c_process_expr_stmt.
554 (c_parser_omp_parallel): Pass location to
555 c_split_parallel_clauses.
556
557 * c-tree.h (check_for_loop_decls, undeclared_variable,
558 build_component_ref, build_array_ref, build_external_ref,
559 c_expr_sizeof_expr, c_expr_sizeof_type, parser_build_unary_op,
560 build_conditional_expr, build_compound_expr, c_cast_expr,
561 build_c_cast, build_asm_expr, c_end_compound_stmt, c_finish_stmt_expr,
562 c_finish_return, c_finish_omp_parallel, c_finish_omp_task): New
563 argument.
564 * c-semantics.c (build_stmt): Same.
565 (build_case_label): Same.
566 * c-decl.c (c_finish_incomplete_decl): Pass location on down.
567 (undeclared_variable): New argument.
568 (make_label): Same.
569 (lookup_label): Pass location on down.
570 (define_label): Same.
571 (finish_decl): Same.
572 (build_compound_literal): Same.
573 (finish_struct): Same.
574 (finish_function): Do not set location here.
575 (check_for_loop_decls): New argument.
576 * tree.c (save_expr): Set location.
577 (build_empty_stmt): New argument.
578 * tree.h (build_empty_stmt): New argument to build_empty_stmt.
579 (CAN_HAVE_LOCATION_P): Make sure we have a non empty node.
580 * builtins.c (gimplify_va_arg_expr): Use locations.
581 (expand_builtin_sync_operation): Same.
582 * c-typeck.c (build_component_ref): New argument.
583 (build_array_ref): Same.
584 (build_external_ref): Same.
585 (c_expr_sizeof_expr): Same.
586 (c_expr_sizeof_type): Same.
587 (parser_build_unary_op): Same.
588 (build_conditional_expr): Same.
589 (build_compound_expr): Pass location on down.
590 (build_compound_expr): New argument.
591 (build_c_cast): Same.
592 (c_cast_expr): Same.
593 (build_asm_expr): Same.
594 (c_finish_return): Same.
595 (c_process_expr_stmt): Pass location on down.
596 (c_finish_stmt_expr): New argument.
597 (push_clenaup): Same.
598 (c_finish_omp_parallel): Same.
599 (c_finish_omp_task): Same.
600 * gimplify.c (gimplify_call_expr): Pass location on down.
601 * c-omp.c (c_finish_omp_master): New argument.
602 (c_finish_omp_critical): Same.
603 (c_finish_omp_ordered): Same.
604 (c_finish_omp_barrier): Same.
605 (-c_finish_omp_taskwait): Same.
606 (c_finish_omp_atomic): Same.
607 (c_finish_omp_flush): Same.
608 * tree-inline.c (copy_tree_body_r): Pass location on down.
609 (inline_forbidden_p): Remove use of input_location.
610 * c-gimplify.c (c_build_bind_expr): New argument.
611 * c-common.c (c_common_truthvalue_conversion): Pass location on down.
612 (c_sizeof_or_alignof_type): New argument.
613 (c_alignof_expr): Same.
614 (build_va_arg): Same.
615 (c_add_case_label): Same.
616 * c-common.h (c_sizeof_or_alignof_type, c_alignof_expr,
617 c_sizeof, c_alignof, build_va_arg, build_stmt, build_case_label,
618 c_build_bind_expr, objc_build_selector_expr, objc_build_throw_stmt,
619 c_finish_omp_master, c_finish_omp_critical, c_finish_omp_ordered,
620 c_finish_omp_barrier, c_finish_omp_atomic, c_finish_omp_flush,
621 c_finish_omp_taskwait, c_finish_omp_for, c_split_parallel_clauses):
622 New argument.
623 * stub-objc.c (objc_build_selector_expr): Same.
624 (objc_build_throw_stmt): Same.
625 * c-parser.c (c_parser_declaration_or_fndef): Pass location on down.
626 (c_parser_initelt): Same.
627 (c_parser_compound_statement): Same.
628 (c_parser_compound_statement_nostart): Same.
629 (c_parser_label): Same.
630 (c_parser_statement_after_labels): Same.
631 (c_parser_if_body): Same.
632 (c_parser_else_body): Same.
633 (c_parser_if_statement): Same.
634 (c_parser_switch_statement): Same.
635 (c_parser_while_statement): Same.
636 (c_parser_do_statement): Same.
637 (c_parser_for_statement): Same.
638 (c_parser_asm_statement): Same.
639 (c_parser_conditional_expression): Same.
640 (c_parser_binary_expression): Same.
641 (c_parser_cast_expression): Same.
642 (c_parser_unary_expression): Same.
643 (c_parser_sizeof_expression): Same.
644 (c_parser_alignof_expression): Same.
645 (c_parser_postfix_expression): Same.
646 (c_parser_expression): Same.
647 (c_parser_objc_receiver): Same.
648 (c_parser_omp_variable_list): Same.
649 (c_parser_omp_structured_block): Same.
650 (c_parser_omp_atomic): New argument.
651 (c_parser_omp_barrier): Same.
652 (c_parser_omp_critical): Same.
653 (c_parser_omp_flush): Pass location on down.
654 (c_parser_omp_for_loop): New argument.
655 (c_parser_omp_for): Same.
656 (c_parser_omp_master): Same.
657 (c_parser_omp_ordered): Same.
658 (c_parser_omp_sections_scope): Same.
659 (c_parser_omp_sections): Same.
660 (c_parser_omp_parallel): Same.
661 (c_parser_omp_single): Same.
662 (c_parser_omp_task): Same.
663 (c_parser_omp_taskwait): Pass location on down.
664 (c_parser_omp_construct): Same.
665 (c_parser_omp_threadprivate): Same.
666 * dwarf2asm.c, targhooks.c, optabs.c, tree.c, tree.h, target.h,
667 builtins.c, omp-low.c, cgraphunit.c, tree-call-cdce.c,
668 tree-ssa-alias.c, gimple-low.c, c-tree.h, expr.c, tree-parloops.c,
669 c-decl.c, tree-eh.c, langhooks.c, function.c, stor-layout.c,
670 c-typeck.c, gimplify.c, c-pragma.c, expmed.c, except.c, coverage.c,
671 emit-rtl.c, cfgexpand.c, tree-mudflap.c, varasm.c, tree-nested.c,
672 rtl.h, tree-inline.c, tree-profile.c, c-common.c, c-common.h,
673 tree-switch-conversion.c, tree-cfg.c, ipa-struct-reorg.c, c-parser.c,
674 config/i386/i386.c, stmt.c:
675 Add location argument to the following function definitions and/or
676 function calls: build_decl, objcp_start_struct, objcp_finish_struct,
677 start_struct, finish_struct, PUSH_FIELD, create_artificial_label,
678 cp_make_fname_decl, pushtag, implicitly_declare, c_make_fname_decl,
679 build_compound_literal, parser_xref_tag, resolve_overloaded_builtin,
680 do_case, c_finish_bc_stmt, build_compound_literal,
681 build_function_call.
682 * c-decl.c (build_compound_literal): Add location argument.
683 Make all diagnostic calls use location.
684 (start_struct): Same.
685 (finish_struct): Same.
686 (start_enum): Same.
687 (build_enumerator): Same.
688 (start_function): Same.
689 (grokdeclarator): Make all diagnostic calls use location.
690 (store_parm_decls_oldstyle): Same.
691 * c-typeck.c (build_function_call): Add location argument.
692 Make all diagnostic calls use location.
693 (do_case): Same.
694 (c_finish_bc_stmt): Same.
695 * tree-nested.c (get_trampoline_type): Add argument.
696 Pass location to build_decl.
697 (lookup_tramp_for_decl): Pass location to get_trampoline_type.
698 * rtl.h (RTL_LOCATION): New.
699 * c-common.c (c_add_case_label): Add location argument.
700 Make all diagnostic calls use location.
701 * c-common.h: Add location argument to make_fname_decl, do_case,
702 c_add_case_label, build_function_call, resolve_overloaded_builtin.
703 * c-parser.c (c_parser_enum_specifier): Rename ident_loc to enum_loc.
704 Set it appropriately for every case. Pass enum_loc to start_enum
705 call. Pass value_loc first to build_enumerator. Pass enum_loc to
706 parser_xref_tag.
707 (c_parser_struct_or_union_specifier): Save location. Use it for
708 start_struct, finish_struct, and parser_xref_tag.
709
3d8b2a98
ILT
7102009-06-12 Ian Lance Taylor <iant@google.com>
711
712 * fold-const.c (fold_unary): Rename local variable and to
713 and_expr.
714
715 * c-opts.c (c_common_handle_option): For -Wc++-compat set
716 cpp_opts->warn_cxx_operator_names.
717
737142ce
AP
7182009-06-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
719
720 PR tree-opt/38865
721 * tree-ssa-sccvn.c (visit_reference_op_load): If vn_reference_lookup
722 is returns NULL and OP is a VCE, look through the VCE.
723
d3a0d55d
ILT
7242009-06-12 Ian Lance Taylor <iant@google.com>
725
726 PR bootstrap/40430
727 * collect2.c (main): Use CONST_CAST2 in code inside #if
728 LINK_ELIMINATE_DUPLICATE_LDIRECTORIES.
729
f85882d8
JY
7302009-06-12 Joey Ye <joey.ye@intel.com>
731
732 PR middle-end/39146
733 * cfgexpand.c (get_decl_align_unit): Update
734 max_used_stack_slot_alignment with align instead of
735 stack_alignment_needed.
736
737 * function.c (assign_stack_local_1): Update
738 max_used_stack_slot_alignment with alignment_in_bits instead
739 of stack_alignment_needed.
740 (locate_and_pad_parm): Don't update max_used_stack_slot_alignment
741 here.
742
fc9f468b
JJ
7432009-06-12 Jakub Jelinek <jakub@redhat.com>
744
745 * dwarf2out.c (last_var_location_insn): New variable.
746 (dwarf2out_end_epilogue): Clear last_var_location_insn.
747 (dwarf2out_var_location): Don't record anything after last real
748 insn. Only change labels if there were any real instructions
749 in between last note and this one, or if changed sections.
750
7c1db202
RH
7512009-06-11 Richard Henderson <rth@redhat.com>
752
f85882d8 753 * alpha.c (alpha_expand_prologue): Add a REF_CFA_REGISTER
15cb981a
RH
754 note when storing the frame pointer in a register.
755 (FRP): Don't redefine to nothing for epilogue.
756 (alpha_expand_epilogue): Mark register and sp restores.
757 (unicosmk_gen_dsib): Don't mark weird frame pointer adjust.
758
7c1db202
RH
759 * config/alpha/alpha.c (alpha_emit_setcc): Fix test for
760 when gen_lowpart is needed.
761
f2ae7631
RH
7622009-06-11 Richard Henderson <rth@redhat.com>
763
42755c21
RH
764 * dwarf2out.c (def_cfa_1): Likewise for DW_CFA_cfa_offset.
765
f2ae7631
RH
766 * dwarf2out.c (need_data_align_sf_opcode): New.
767 (div_data_align): Move earlier.
768 (def_cfa_1, reg_save): Use it.
769
8ed0ce99
L
7702009-06-11 H.J. Lu <hongjiu.lu@intel.com>
771
772 * config/i386/i386.c (OPTION_MASK_ISA_CRC32_SET): New.
773 (OPTION_MASK_ISA_CRC32_UNSET): Likewise.
774 (ix86_handle_option): Handle OPT_mcrc32.
775 (ix86_target_string): Add -mcrc32.
776 (bdesc_args): Enable crc32 builtins with OPTION_MASK_ISA_CRC32.
777
778 * config/i386/i386.h (TARGET_CRC32): New.
779
780 * config/i386/i386.md (sse4_2_crc32<mode>): Also check
781 TARGET_CRC32.
782 (sse4_2_crc32di): Likewise.
783
784 * config/i386/i386.opt (mcrc32: New.
785
786 * doc/invoke.texi: Document -mcrc32.
787
9fd68a1f
RH
7882009-06-11 Richard Henderson <rth@redhat.com>
789
8ed0ce99 790 * common.opt (gdwarf-): Accept a version number.
9fd68a1f
RH
791 * doc/invoke.texi (gdwarf-): Update docs.
792 * opth-gen.awk: Special case -gdwarf+ to OPT_gdwarfplus.
793 * opts.c (common_handle_option) [OPT_gdwarf_]: Verify dwarf
794 version level, and record it.
795
796 * dwarf2.h (DW_CIE_VERSION): Remove.
797 * dwarf2out.c (DWARF_VERSION): Remove.
798 (add_fde_cfi): Skip DW_CFA_set_loc addition for dwarf3.
799 (output_call_frame_info): Use CIE version 3 for dwarf3,
800 or if the return register column is out of range for version 1.
801 (dwarf_stack_op_name): Add all dwarf3 values.
802 (DEBUG_PUBTYPES_SECTION): New.
803 (size_of_die) [dw_val_class_die_ref]: Handle DW_FORM_ref_addr
804 encoding change for dwarf3.
805 (output_die) [dw_val_class_die_ref]: Likewise.
806 (output_compilation_unit_header): Emit correct version for dwarf3.
807 (output_line_info): Likewise.
808 (output_pubnames): Update for DWARF_VERSION removal.
809 (output_aranges): Likewise.
810 (gen_subprogram_die): Emit DW_OP_call_frame_cfa if emitting dwarf3.
811 (dwarf2out_init): Don't ifdef DEBUG_PUBTYPES_SECTION.
812 (dwarf2out_finish): Likewise.
813
4de8ce3b
DD
8142009-06-11 David Daney <ddaney@caviumnetworks.com>
815
816 * system.h (gcc_assert, gcc_unreachable): Revert accidental commit
817 in r148403.
818
468059bc
DD
8192009-06-11 David Daney <ddaney@caviumnetworks.com>
820
821 PR c/39252
822 * doc/extend.texi ( __builtin_unreachable): Document new builtin.
823 * builtins.c (expand_builtin_unreachable): New function.
824 (expand_builtin): Handle BUILT_IN_UNREACHABLE case.
825 * builtins.def (BUILT_IN_UNREACHABLE): Add new builtin.
826 * cfgcleanup.c (try_optimize_cfg): Delete empty blocks with no
827 successors.
828 * cfgrtl.c (rtl_verify_flow_info): Handle empty blocks when
829 searching for missing barriers.
830
b5a6e96f
FXC
8312009-06-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
832
833 * config/darwin.h (LINK_COMMAND_SPEC): Adjust spec to link libcov
834 when -fprofile-generate* was passed.
835 * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
836
6be6462e
AG
8372009-06-11 Anthony Green <green@moxielogic.com>
838
839 * config/moxie/moxie.md: Define length attribute for all
840 instructions.
841 (rCC): Define.
842 (*b<cond:code>): Support limited branch ranges for new PC-relative
843 branch instructions.
844 * config/moxie/moxie.h (HAS_LONG_UNCOND_BRANCH): Define.
845
caaabe0a
JJ
8462009-06-11 Jakub Jelinek <jakub@redhat.com>
847
e5219642
JJ
848 * config/i386/i386.c (min_insn_size): Use get_attr_length
849 for normal insns other than TYPE_MULTI, TYPE_OTHER and TYPE_FCMP.
850 For __asm return 0.
851
caaabe0a
JJ
852 * config/i386/i386.c (ix86_pad_returns): Use emit_jump_insn_before
853 instead of emit_insn_before.
854
a567fa6a
ILT
8552009-06-10 Ian Lance Taylor <iant@google.com>
856
857 PR bootstrap/40408
858 * graphite.c (add_conditions_to_domain): Change SWITCH_EXPR to
859 GIMPLE_SWITCH.
860
6a753d5f
RE
8612009-06-10 Revital Eres <eres@il.ibm.com>
862
863 * passes.c (init_optimization_passes): Reschedule
864 predictive-commoning pass before complete unroll pass.
865
a550d677
MJ
8662009-06-10 Martin Jambor <mjambor@suse.cz>
867
868 * cgraph.c (cgraph_node_can_be_local_p): New function.
869 (cgraph_make_node_local): New function.
870 * cgraph.h (cgraph_node_can_be_local_p): Declare.
871 (cgraph_make_node_local): Declare.
872
d8259b07
NF
8732009-06-10 Nathan Froyd <froydnj@codesourcery.com>
874
875 * tree.h (tree_base): Add packed_flag and user_align fields.
876 Decrease size of spare field.
877 (TYPE_USER_ALIGN): Use user_align from tree_base.
878 (DECL_USER_ALIGN): Likewise.
879 (TYPE_PACKED): Use packed_flag from tree_base.
880 (DECL_PACKED): Likewise.
881 (tree_type): Delete packed_flag and user_align fields. Widen
882 precision field. Widen mode field and shuffle fields to align
883 mode on an 8-bit boundary.
884 (tree_decl_common): Delete decl_flag_1 and user_align fields.
885 Renumber decl_flag_* fields. Fix comments. Widen
886 decl_common_unused field.
887 (DECL_HAS_VALUE_EXPR_P): Adjust for renumbering of decl_flag_*
888 fields.
889 (DECL_EXTERNAL): Likewise.
890 (DECL_BIT_FIELD): Likewise.
891 (DECL_NONADDRESSABLE_P): Likewise.
892 (TYPE_DECL_SUPRESS_DEBUG): Likewise.
893 * config/arm/arm-modes.def (XImode): Make it an INT_MODE.
894
c2569604
ILT
8952009-06-10 Ian Lance Taylor <iant@google.com>
896
897 * vec.h (DEF_VEC_ALLOC_I): Use DEF_VEC_NONALLOC_FUNCS_I.
898 (DEF_VEC_ALLOC_P): Use DEF_VEC_NONALLOC_FUNCS_P.
899 (DEF_VEC_ALLOC_O): Use DEF_VEC_NONALLOC_FUNCS_O.
900 (DEF_VEC_ALLOC_FUNC_P): Only define VEC_OP (T,A,alloc).
901 (DEF_VEC_NONALLOC_FUNCS_P): New macro, broken out of old
902 DEF_VEC_ALLOC_FUNC_P.
903 (DEF_VEC_ALLOC_FUNC_O): Only define VEC_OP (T,A,alloc).
904 (DEF_VEC_NONALLOC_FUNCS_O): New macro, broken out of old
905 DEF_VEC_ALLOC_FUNC_O.
906 (DEF_VEC_ALLOC_FUNC_I): Only define VEC_OP (T,A,alloc).
907 (DEF_VEC_NONALLOC_FUNCS_I): New macro, broken out of old
908 DEF_VEC_ALLOC_FUNC_I.
909 (vec_stack_p_reserve, vec_stack_p_reserve_exact): Declare.
910 (vec_stack_p_reserve_exact_1): Declare.
911 (vec_stack_o_reserve, vec_stack_o_reserve_exact): Declare.
912 (vec_stack_free): Declare.
913 (VEC_stack_alloc): Define.
914 (DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_FUNC_P_STACK): Define.
915 (DEF_VEC_ALLOC_O_STACK, DEF_VEC_ALLOC_FUNC_O_STACK): Define.
916 (DEF_VEC_ALLOC_I_STACK, DEF_VEC_ALLOC_FUNC_I_STACK): Define.
917 * vec.c (void_p): New type. Call DEF_VEC_P and DEF_VEC_ALLOC_P
918 for void_p.
919 (stack_vecs): New static variable.
920 (vec_stack_p_reserve_exact_1): New function.
921 (vec_stack_o_reserve_1): New static function.
922 (vec_stack_p_reserve, vec_stack_p_reserve_exact): New functions.
923 (vec_stack_o_reserve, vec_stack_o_reserve_exact): New functions.
924 (vec_stack_free): New function.
925 * df-scan.c (df_ref): Use DEF_VEC_P and DEF_VEC_ALLOC_P_STACK.
926 (VEC_df_ref_stack_alloc): Define.
927 (df_mw_hardreg_ptr): New type. Use DEF_VEC_P and
928 DEF_VEC_ALLOC_P_STACK.
929 (VEC_df_mw_hardreg_ptr_stack_alloc): Define.
930 (struct df_collection_rec): Change _vec fields to VEC. Remove
931 _use fields.
932 (df_free_collection_rec): Adjust for new fields.
933 (df_insn_rescan): Use new df_collection_rec fields.
934 (df_notes_rescan, df_canonize_collection_rec): Likewise.
935 (df_ref_create_structure, df_ref_record): Likewise.
936 (df_get_conditional_uses, df_get_call_refs): Likewise.
937 (df_insn_refs_collect, df_bb_refs_collect): Likewise.
938 (df_bb_refs_record, df_record_entry_block_defs): Likewise.
939 (df_record_exit_block_uses, df_bb_verify): Likewise.
940 (df_swap_refs): Change ref_vec parameter to VEC. Change all
941 callers.
942 (df_sort_and_compress_refs): Change ref_vec parameter to VEC.
943 Remove count parameter. Change return type to void. Change all
944 callers.
945 (df_sort_and_compress_mws): Change mw_vec parameter to VEC.
946 Remove count parameter. Change return type to void. Change all
947 callers.
948 (df_install_refs): Change old_vec parameter to VEC. Remove count
949 parameter. Change all callers.
950 (df_install_mws): Change old_vec parameter to VEC. Remove count
951 parameter. Change all callers.
952 (df_refs_verify): Change new_rec parameter to VEC. Change call
953 callers.
954 (df_mws_verify): Likewise.
955
e7aae3e8
AO
9562009-06-10 Alexandre Oliva <aoliva@redhat.com>
957
958 * gcc.c (compare_files): Cast munmap argumento to caddr_t.
959
412ac8d5
L
9602009-06-10 H.J. Lu <hongjiu.lu@intel.com>
961
962 * doc/extend.texi: Add description for __builtin_ia32_crc32di.
963
cceb575c
AG
9642009-06-10 Anthony Green <green@moxielogic.com>
965
966 * config/moxie/crti.asm: New file.
967 * config/moxie/crtn.asm: New file.
968 * config/moxie/moxie.c: New file.
969 * config/moxie/moxie.h: New file.
970 * config/moxie/sfp-machine.h: New file.
971 * config/moxie/moxie-protos.h: New file.
972 * config/moxie/t-moxie: Created.
973 * config/moxie/t-moxie-softfp: Created.
974 * config/moxie/moxie.md: Created.
975 * config/moxie/constraints.md: Created.
976 * config.gcc: Add moxie support.
977 * doc/md.texi (Machine Constraints): Add moxie constraints.
978 * doc/contrib.texi (Contributors): Mention moxie port.
979 * doc/install.texi (Specific): Mention the moxie port.
980
bf406687
ILT
9812009-06-09 Ian Lance Taylor <iant@google.com>
982
983 * system.h (HAVE_DESIGNATED_INITIALIZERS): Don't define if
984 compiling with C++.
985 * optabs.c (optab_table): Only use designated initializers if
986 HAVE_DESIGNATED_INITIALIZERS is defined.
987 (convert_optab_table): Likewise.
988 (init_optabs): Always call init_insn_codes if
989 HAVE_DESIGNATED_INITIALIZERS is not defined.
990
744aa42f
ILT
9912009-06-09 Ian Lance Taylor <iant@google.com>
992
993 * targhooks.c (default_builtin_vectorized_function): Change fn
994 parameter to unsigned int.
995 (default_builtin_vectorized_conversion): Change code parameter to
996 unsigned int.
997 (default_builtin_reciprocal): Change fn parameter to unsigned int.
998 * targhooks.h: Update declarations.
999 * config/rs6000/rs6000.c (rs6000_builtin_conversion): Change code
1000 parameter to unsigned int.
1001
1002 * c-typeck.c (comptypes_check_enum_int): New static function.
1003 (comptypes_internal): Add enum_and_int_p parameter. Change all
1004 callers.
1005 (comp_target_types): Add location parameter. Change all callers.
1006 (tagged_types_tu_compatible_p): Add enum_and_int_p parameter.
1007 Change all callers.
1008 (function_types_compatible_p, type_lists_compatible_p): Likewise.
1009 (build_conditional_expr): Add colon_loc parameter. Change all
1010 callers.
1011 (convert_for_assignment): Add location parameter. Change all
1012 callers.
1013 * c-parser.c (c_parser_conditional_expression): Pass location of
1014 colon to build_conditional_expr.
1015 * c-tree.h (build_conditional_expr): Update declaration.
1016
bcbe3b25
SP
10172009-06-09 Sebastian Pop <sebastian.pop@amd.com>
1018
1019 * graphite.c: Revert previous patch.
1020
dc2a6925
SP
10212009-06-09 Sebastian Pop <sebastian.pop@amd.com>
1022
1023 PR bootstrap/40103
1024 * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
1025
d81f5387
GS
10262009-06-09 Ghassan Shobaki <ghassan.shobaki@amd.com>
1027
8ed0ce99
L
1028 * tree-ssa-loop-prefetch.c
1029 (loop_prefetch_arrays): Fixed a portability problem in printf format
1030 string.
d81f5387 1031
8056eb4f
MJ
10322009-06-09 Martin Jambor <mjambor@suse.cz>
1033
1034 PR tree-optimization/40351
1035 * tree-sra.c (propagate_subacesses_accross_link): Check that a refrence
1036 to a potential artifical subaccess can be constructed.
1037
bd9a3465
KK
10382009-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
1039
1040 * config/sh/sh-protos.h (sh_optimization_options): Declare.
1041 (sh_override_options): Likewise.
1042 * config/sh/sh.c: Include params.h.
1043 (sh_optimization_options): New.
1044 (sh_override_options): Likewise.
1045 * config/sh/sh.c (OPTIMIZATION_OPTIONS): Use sh_optimization_options.
1046 (OVERRIDE_OPTIONS): Use sh_override_options.
1047
8845deab
JJ
10482009-06-08 Jakub Jelinek <jakub@redhat.com>
1049
1050 * dwarf2out.c (emit_cfa_remember): New variable.
1051 (add_fde_cfi): If emit_cfa_remember, recurse to add
1052 DW_CFA_remember_state first.
1053 (dwarf2out_begin_epilogue): Don't add_fde_cfi DW_CFA_remember_state,
1054 instead just set emit_cfa_remember.
1055
9ea81b0c
JH
10562009-06-08 Jan Hubicka <jh@suse.cz>
1057
1058 PR debug/40126
1059 * dwarf2out.c (dwarf2out_abstract_function): Free decl_loc_table.
1060
21ecdec5
JH
10612009-06-08 Jan Hubicka <jh@suse.cz>
1062
1063 PR middle-end/39834
1064 * cgraphunit.c (save_inline_function_body): Do not copy transform hooks
1065 for saved inline bodies.
1066 * ipa-passes.c (do_per_function): Do not add the hoks multiple times
1067 for given function.
1068
72e48218
AN
10692009-06-08 Adam Nemet <anemet@caviumnetworks.com>
1070
1071 * jump.c (returnjump_p): Handle delayed branches. Add missing
1072 function comment.
1073
6ce2002b
JH
10742009-06-08 Jan Hubicka <jh@suse.cz>
1075
1076 PR middle-end/40102
1077 * cgraph.c (cgraph_create_edge_including_clones): Also asume that the
1078 original node might've been modified.
1079 * tree-inline.c (copy_bb): Do not assume that all clones are the same.
1080
eb9ed98a
JJ
10812009-06-08 Jakub Jelinek <jakub@redhat.com>
1082
1083 * tree-object-size.c (addr_object_size): Add OSI argument.
1084 Handle also INDIRECT_REF with SSA_NAME inside of it as base address.
1085 (compute_builtin_object_size, expr_object_size): Adjust callers.
1086 (plus_stmt_object_size): Call addr_object_size instead of
1087 compute_builtin_object_size.
1088
db34470d 10892009-06-08 Ghassan Shobaki <ghassan.shobaki@amd.com>
8ed0ce99 1090 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
db34470d
GS
1091
1092 * tree-ssa-loop-prefetch.c
1093 (gather_memory_references): Introduced a counter for the number of
1094 memory references.
1095 (anything_to_prefetch_p): Introduced a counter for the number of
1096 prefetches.
1097 (is_loop_prefetching_profitable): New function with a cost model
1098 for prefetching.
1099 (loop_prefetch_arrays): Use the new cost model to determine if
1100 prefetching is profitable.
1101 * params.def (MIN_INSN_TO_PREFETCH_RATIO,
1102 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
1103 * params.h (MIN_INSN_TO_PREFETCH_RATIO,
1104 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
1105 * doc/invoke.texi (MIN_INSN_TO_PREFETCH_RATIO,
1106 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
1107
eb7adebc
MM
11082009-06-08 Michael Matz <matz@suse.de>
1109
1110 PR debug/40012
eb7adebc
MM
1111 * cfgexpand.c (set_rtl): Store place also in DECL_RTL, if all
1112 partitions use the same.
1113 (expand_one_var): Deal with DECL_RTL sometimes begin set also
1114 for basevars of SSA_NAMEs.
1115 (expand_used_vars): Reset TREE_USED for basevars of SSA_NAMEs,
1116 to not expand them twice.
1117 (gimple_expand_cfg): Clear DECL_RTL for those decls that have
1118 multiple places.
1119
2153915d
AO
11202009-06-08 Alexandre Oliva <aoliva@redhat.com>
1121
1122 * common.opt (fcompare-debug=, fcompare-debug-second): New.
1123 (fdump-final-insns=, gtoggle): New.
1124 * doc/invoke.texi: Document them.
1125 * final.c (rest_of_clean_state): Dump final insn stream.
1126 * gcc.c (invoke_as): Hook in -fcompare-debug.
1127 (static_spec_functions): Add compare-debug-dump-opt,
1128 compare-debug-self-opt and compare-debug-auxbase-opt.
1129 (compare_debug, compare_debug_second, compare_debug_opt): New.
1130 (switches_debug_check, n_switches_debug_check): New.
1131 (debug_auxbase_opt, debug_check_temp_file): New.
1132 (process_command): Handle -fno-compare-debug, -fcompare-debug and
1133 -fcompare-debug=*.
1134 (do_self_spec): Handle arguments after switches.
1135 (do_spec_1): Add .gk extension to temp file basenames for compare.
1136 (check_live_switch): Take SWITCH_IGNORE into account, and earlier.
1137 (cc1_options): Use it instead of normal auxbase computation for
1138 the second compare-debug compilation.
1139 (compare_files): New.
1140 (main): Set up and implement compare debug mode.
1141 (compare_debug_dump_opt_spec_function): New.
1142 (compare_debug_self_opt_spec_function): New.
1143 (compare_debug_auxbase_opt_spec_function): New.
1144 * toplev.c (process_options): Handle flag_gtoggle,
1145 flag_dump_final_insns.
1146 * coverage.c (coverage_begin_output): Don't overwrite .gcno file
1147 during -fcompare-debug-second compilation.
1148
cdb88468
ILT
11492009-06-07 Ian Lance Taylor <iant@google.com>
1150
1151 * dwarf2.h (enum dwarf_location_atom): Add
1152 INTERNAL_DW_OP_tls_addr.
1153 * dwarf2out.c (INTERNAL_DW_OP_tls_addr): Don't #define.
1154
1155 * c-common.c (c_do_switch_warnings): Don't exit early for -Wswitch
1156 with no default node. Change warning with %H to warning_at.
1157 Don't clear warn_switch around case checking.
1158 * doc/invoke.texi (Warning Options): Clarify distinction between
1159 -Wswitch and -Wswitch-enum.
1160
4fe8e1a2
BRF
11612009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1162
1163 * tree-pass.h (TODO_update_ssa_any): Document internal use only.
1164
69952c1d
BRF
11652009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1166
1167 * gbl-ctors.h: Add header guard.
1168
b2ad0284
BRF
11692009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1170
1171 * tree-flow.h (make_value_handle, set_value_handle, sort_vuses,
1172 sort_vuses_heap, vn_lookup_or_add, vn_lookup_or_add_with_stmt,
1173 vn_lookup_or_add_with_vuses, vn_add, vn_add_with_vuses,
1174 vn_lookup_with_stmt, vn_lookup, vn_lookup_with_vuses): Remove
1175 prototypes for removed functions.
1176 (expressions_equal_p): Move to ...
1177 * tree-ssa-sccvn.h: ... here and ...
1178 * matrix-reorg.c: ... adjust includes.
1179
c3df55f9
BRF
11802009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1181
1182 * ipa-struct-reorg.c (do_reorg_1): Fix whitespace in dump output.
1183
b5a7159f
BRF
11842009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1185
1186 * c-decl.c (finish_decl): Use bool for variable was_incomplete.
1187 (finish_function): Remove erroneous whitespace.
1188
95bca6b0
BRF
11892009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1190
2cd713a0
BRF
1191 * tree-cfg.c (gimple_merge_blocks): Commentary typo fix.
1192 (verify_stmts): Print statement who's gimple_bb is set to a wrong BB
249eb506
BRF
1193
11942009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1195
1196 * errors.c (internal_error): Commentary typo fix.
1197 * gimple-iterator.c (gsi_insert_seq_on_edge): Ditto.
1198 * tree-ssa-pre.c: Ditto.
95bca6b0 1199
2cd713a0
BRF
12002009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1201
1202 * basic-block.h (ENTRY_BLOCK, EXIT_BLOCK): Document that neither of
1203 them is supposed to hold actual statements.
1204
5bca4e80
ILT
12052009-06-06 Ian Lance Taylor <iant@google.com>
1206
1207 * doc/extend.texi (Attribute Syntax): Document that C++ labels on
1208 empty statements can now have attributes.
1209
47ac44d6
SZ
12102009-06-05 Shujing Zhao <pearly.zhao@oracle.com>
1211
1212 * config/mips/mips.c: Use REG_P and CONST_INT_P where applicable.
1213 * config/mips/mips.md: Ditto.
1214
19b905ce
NF
12152009-06-05 Nathan Froyd <froydnj@codesourcery.com>
1216
1217 * config/rs6000/eabi.asm (__eabi_convert): Don't define if
1218 _RELOCATABLE.
1219 (__eabi_uconvert): Likewise.
1220
16702e19
NF
12212009-06-05 Nathan Froyd <froydnj@codesourcery.com>
1222
1223 * config/rs6000/ppc-asm.h: Protect auto-host.h inclusion and
1224 CFI_* definitions with IN_GCC.
1225
a735afd1
DE
12262009-06-05 David Edelsohn <edelsohn@gnu.org>
1227
1228 * xcoffout.h (xcoffout_source_line): Update prototype.
1229
26a347c5
KG
12302009-06-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1231
1232 * builtins.c (do_mpc_ckconv, do_mpc_arg1): Use
1233 mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM.
1234
9f706f23
JJ
12352009-06-05 Jakub Jelinek <jakub@redhat.com>
1236
1237 PR middle-end/40340
1238 * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
1239 inlined_function_outer_scope_p blocks for artificial inlines
1240 even at -g0/-g1.
1241 * tree.c (tree_nonartificial_location): Rewrite using
1242 block_nonartificial_location.
1243
8f439681
RE
12442009-06-05 Revital Eres <eres@il.ibm.com>
1245 Leehod Baruch <leehod@il.ibm.com>
1246
1247 * expr.c (expand_assignment): Expand MISALIGNED_INDIRECT_REF.
1248 (expand_expr_real_1): Remove comment.
1249 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
1250 Vectorize misaligned access when the target supports it.
1251 (vect_supportable_dr_alignment): Check for unaligned access
1252 support.
1253 * tree-vect-stmts.c (vectorizable_store): Generate misaligned store
1254 and remove asset.
1255
b89f8e3c
JB
12562009-06-05 Julian Brown <julian@codesourcery.com>
1257
1258 * config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP.
1259 * config/arm/ieee754-sf.S (cmpsf2): Likewise.
1260
47d1f191
RG
12612009-06-05 Richard Guenther <rguenther@suse.de>
1262
1263 PR bootstrap/40350
1264 * dwarf2out.c (dwarf2out_begin_function): Mark discriminator
1265 as possibly unused.
1266
9f706f23 12672009-06-05 Jakub Jelinek <jakub@redhat.com>
75707b28
JJ
1268
1269 * config/s390/s390.c (global_not_special_regno_p): New static inline.
1270 (save_gprs): Don't tell unwinder when a global register is saved.
1271 (s390_emit_epilogue): Emit needed epilogue unwind info.
1272
90f06248
AO
12732009-06-05 Alexandre Oliva <aoliva@redhat.com>
1274
1275 * dwarf2out.c (deferred_asm_name): New.
1276 (add_name_and_src_coords_attributes): Defer creation of
1277 DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not
1278 computed yet.
1279 (move_linkage_attr): New.
1280 (dwarf2out_finish): Revisit deferrals and emit attributes at the
1281 right place.
1282
c10348e5
AO
12832009-06-05 Alexandre Oliva <aoliva@redhat.com>
1284
1285 * tree-nested.c (finalize_nesting_tree_1): Declare the
1286 frame_decl in the binding tree.
1287
6c52e687
CC
12882009-06-04 Cary Coutant <ccoutant@google.com>
1289
1290 * basic-block.h (struct basic_block_def): Add discriminator field.
1291 * dbxout.c (dbxout_source_line): Add new parameter. Change all
1292 callers.
1293 * debug.c (do_nothing_debug_hooks): Add additional entry.
1294 (debug_nothing_int_charstar_int): New function.
1295 * debug.h (struct gcc_debug_hooks): Add parameter to source_line
1296 hook.
1297 (debug_nothing_int_charstar_int): New declaration.
1298 * dwarf2out.c (dwarf2out_source_line): Add new parameter. Write
1299 discriminator value in .loc directive.
1300 * final.c (last_discriminator): New variable.
1301 (discriminator): New variable.
1302 (final_start_function): Initialize above variables, pass current
1303 discriminator to debug hook.
1304 (notice_source_line): Check for discriminator change.
1305 * gimple-pretty-print.c (dump_bb_header): Print discriminator value.
1306 * sdbout.c (sdbout_source_line): New parameter.
1307 * tree-cfg.c (struct locus_discrim_map): New structure type.
1308 (discriminator_per_locus): New hash table.
1309 (build_gimple_cfg): Allocate and free discriminator hash table.
1310 (make_edges): Call assign_discriminator.
1311 (locus_map_hash): New function.
1312 (locus_map_eq): New function.
1313 (next_discriminator_for_locus): New function.
1314 (same_line_p): New function.
1315 (assign_discriminator): New function.
1316 (make_cond_expr_edges): Call assign_discriminator.
1317 (make_gimple_switch_edges): Likewise.
1318 (first_non_label_stmt): New function.
1319 * vmsdbgout.c (vmsdbgout_source_line): Add new parameter. Change
1320 all callers.
1321 * xcoffout.c (xcoffout_source_line): Add new parameter.
1322
1323 * configure.ac (gcc_cv_as_discriminator): New configury check for
1324 gas support for discriminator.
1325 * configure: Regenerate.
1326 * config.in: Regenerate.
1327
e07e020b
RR
13282009-06-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1329
1330 * config/arm/arm.c (thumb2_legitimate_index_p): Initialize
1331 val after checking for integers.
1332
72fa3605
UB
13332009-06-04 Uros Bizjak <ubizjak@gmail.com>
1334
1335 * config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from
1336 X64_REGPARM_MAX.
1337 (REGPARM_MAX): Use X86_64_MS_REGPARM_MAX.
1338 (X86_64_MS_SSE_REGPARM_MAX): Rename from X64_SSE_REGPARM_MAX.
1339 (SSE_REGPARM_MAX): Use X86_64_MS_SSE_REGPARM_MAX.
1340 * config/i386/i386.c: Use X86_64_MS_REGPARM_MAX instead of
1341 X64_REGPARM_MAX. Use X86_64_MS_SSE_REGPARM_MAX instead of
1342 X64_SSE_REGPARM_MAX.
1343 * config/i386/i386.md: Use X86_64_MS_SSE_REGPARM_MAX instead of
1344 X64_SSE_REGPARM_MAX.
1345
bdde878c
AO
13462009-06-04 Alexandre Oliva <aoliva@redhat.com>
1347
1348 * gcc.c (report_times_to_file): New.
1349 (execute): Implement it.
1350 (process_command): Support -time=.
1351 * doc/invoke.texi: Document it.
1352
2ce59df7
AO
13532009-06-04 Alexandre Oliva <aoliva@redhat.com>
1354
1355 * tree-ssa-live.c (remove_unused_scope_block_p): Keep variables
1356 that have value exprs.
1357
78bd9046
AO
13582009-06-04 Alexandre Oliva <aoliva@redhat.com>
1359
1360 * dwarf2asm.c (dw2_force_const_mem): Defer creation of
1361 declarations for constants until...
1362 (dw2_output_indirect_constant_1): ... this point.
1363
e63d4106
RE
13642009-06-04 Richard Earnshaw <rearnsha@arm.com>
1365
1366 PR target/10242
1367 * arm.md (arm_addsi3): Don't try to split an add with an
1368 eliminable register until after reload has completed.
1369
6bc7bc14
ILT
13702009-06-03 Ian Lance Taylor <iant@google.com>
1371
1372 * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST.
1373 * genattrtab.c (write_length_unit_log): Likewise.
1374 * genchecksum.c (dosum): Likewise.
1375 * gengtype.c (write_rtx_next): Likewise.
1376 (finish_root_table, write_roots): Likewise.
1377 * gimple.c (gimple_ops_offset_): Likewise.
1378 * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise.
1379 * config/arc/arc.c (arc_attribute_table): Likewise.
1380 * config/arm/arm.c (arm_attribute_table): Likewise.
1381 * config/avr/avr.c (avr_attribute_table): Likewise.
1382 * config/crx/crx.c (crx_attribute_table): Likewise.
1383 * config/m32r/m32r.c (m32r_attribute_table): Likewise.
1384 * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise.
1385 * config/mcore/mcore.c (mcore_attribute_table): Likewise.
1386 * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
1387 * config/sh/sh.c (sh_attribute_table): Likewise.
1388 * config/sparc/sparc.c (sparc_attribute_table): Likewise.
1389 * config/spu/spu.c (spu_attribute_table): Likewise.
1390 * config/v850/v850.c (v850_attribute_table): Likewise.
1391
1392 * config/alpha/alpha.c (vms_attribute_table): Make static.
1393 * config/bfin/bfin.c (bfin_attribute_table): Likewise.
1394 * config/h8300/h8300.c (h8300_attribute_table): Likewise.
1395 * config/mips/mips.c (mips_attribute_table): Likewise.
1396
1397 * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and
1398 $(SYSTEM_H).
1399 (cc1-checksum.o): Likewise.
1400
19d892fd
SE
14012009-06-03 Steve Ellcey <sje@cup.hp.com>
1402
1403 * config/ia64/vect.md (*movv2sf_internal): Handle big endian case.
1404
679f3354
JJ
14052009-06-03 Jakub Jelinek <jakub@redhat.com>
1406
ff35822b
JJ
1407 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated
1408 insn if it is changing sp. Use gen_add3_insn instead of
1409 conditionally gen_addsi3 and gen_adddi3.
1410 (offset_below_red_zone_p): New static inline function.
1411 (rs6000_emit_epilogue): Emit needed epilogue unwind info.
1412 Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3.
1413 * config/rs6000/ppc-asm.h: Include auto-host.h.
1414 (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET,
1415 CFI_RESTORE): Define.
1416 * config/rs6000/crtresxgpr.asm: Add unwind info.
1417 * config/rs6000/crtresxfpr.asm: Likewise.
1418 * config/rs6000/crtresgpr.asm: Likewise.
1419 * config/rs6000/crtresfpr.asm: Likewise.
1420 * config/rs6000/crtsavgpr.asm: Likewise.
1421 * config/rs6000/crtsavfpr.asm: Likewise.
1422
679f3354
JJ
1423 * dwarf2out.c (output_cfi_directive): Pass 1 instead of
1424 0 to second argument of DWARF2_FRAME_REG_OUT macros.
1425
2e94c12d
JB
14262009-06-03 Julian Brown <julian@codesourcery.com>
1427
1428 * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four
1429 words or less (including TImode) in core registers.
1430
3111cce0
RG
14312009-06-03 Richard Guenther <rguenther@suse.de>
1432
1433 PR middle-end/40328
1434 * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.
1435
5e1b50f6
AB
14362009-06-03 Andrey Belevantsev <abel@ispras.ru>
1437
1438 * statistics.c (statistics_counter_event): Do not record event
1439 in pass dump if its number == -1.
1440 (curr_statistics_hash): Add assert that we never get passes
1441 with static number == -1.
1442
6f11d690
RG
14432009-06-03 Richard Guenther <rguenther@suse.de>
1444 Andrey Belevantsev <abel@ispras.ru>
1445
1446 * cfgexpand.c (discover_nonconstant_array_refs_r): Make only
1447 non-BLKmode arrays addressable.
1448
88961471
MK
14492009-06-03 Maxim Kuvyrkov <maxim@codesourcery.com>
1450
1451 * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
1452 * config/m68k/m68k.h: ... here.
1453 * testsuite/gcc.dg/falign-labels.c (dg-options): Don't restrict for
1454 m68k and fido.
1455
9961eb45
MJ
14562009-06-03 Martin Jambor <mjambor@suse.cz>
1457
1458 PR tree-optimization/40323
1459 * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single
1460 assignment.
1461
2f2c62a0
RG
14622009-06-03 Richard Guenther <rguenther@suse.de>
1463
1464 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
1465 consistently.
1466
d6ced3b7
SZ
14672009-06-03 Shujing Zhao <pearly.zhao@oracle.com>
1468
1469 * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
1470 JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
1471 JUMP_TABLE_DATA_P where applicable.
1472 * config/sh/sh.c: Ditto.
1473 * config/sh/sh.h: Ditto.
1474 * config/sh/sh.md: Ditto.
1475 * config/sh/symbian.c: Ditto.
1476
f3afc8a7
UB
14772009-06-03 Uros Bizjak <ubizjak@gmail.com>
1478
1479 * config/i386/driver-i386.c (describe_cache): Optimize
1480 concatenation of strings. Use snprintf instead of sprintf.
1481 (host_detect_local_cpu): Ditto. Ignore -march and -mtune for native
1482 target when not compiling with GCC.
1483
1964788a
KK
14842009-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
1485
1486 * config/sh/sh.c: Revert last change.
1487 (sh_expand_epilogue): Emit a blockage insn before the frame
1488 pointer adjustment unconditionally.
1489
8633c315
RS
14902009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1491
1492 * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
1493 * config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
1494 * config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
1495 * gcc.c (set_collect_gcc_options): Don't add -fwhole-program
1496 to COLLECT_GCC_OPTIONS.
1497
781a1758
RS
14982009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1499
1500 * collect2.c (target_system_root): New variable.
1501 (main): Handle --sysroot=.
1502 (ignore_library): Strip the sysroot from the library path.
1503
dfb636dc
RS
15042009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1505
1506 * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
1507 (collect2.o): Depend on collect2-aix.h.
1508 (collect2-aix.o): New rule.
1509 * collect2-aix.h: New file.
1510 * collect2-aix.c: Likewise.
1511 * collect2.c: Include collect2-aix.h. Don't undefine
1512 OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
1513 Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
1514 Use TARGET_AIX_VERSION instead of _AIX51.
1515 * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
1516 * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
1517 * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
1518 * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
1519 * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.
1520
51136ae8
RS
15212009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1522
1523 * collect2.c (ignore_library): Avoid premature post-increment
1524 and null deference.
1525
7f142d33
RS
15262009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1527
1528 * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
1529 * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
1530 !CROSS_DIRECTORY_STRUCTURE alternative and use it for
1531 CROSS_DIRECTORY_STRUCTURE too.
1532 (LINK_LIBG_SPEC): Likewise.
1533 (LIB_SPEC): Add %R to sysroot paths.
1534 * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
1535 (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
1536 * config/rs6000/aix51.h: As for aix43.h.
1537 * config/rs6000/aix52.h: Likewise.
1538 * config/rs6000/aix53.h: Likewise.
1539 * config/rs6000/aix61.h: Likewise.
1540 * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
1541 to the beginning of sysroot paths.
1542
9e74b7d2
AO
15432009-06-02 Alexandre Oliva <aoliva@redhat.com>
1544
1545 * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
1546 INSN_LISTs that are out of the REG_NOTE range.
1547
a9f6ecee
AO
15482009-06-02 Alexandre Oliva <aoliva@redhat.com>
1549
1550 * loop-unroll.c (struct iv_to_split): Add pointer to next.
1551 (struct var_to_expand): Likewise.
1552 (struct opt_info): Add head and tail for linked lists of the above.
1553 (analyze_insn_to_expand_var): Initialize next.
1554 (analyze_iv_to_split_insn): Likewise.
1555 (analyze_insns_in_loop): Create linked lists.
1556 (allocate_basic_variable): Simplify for use without hash table.
1557 (insert_var_expansion_initialization): Likewise, make it type-safer.
1558 (combine_var_copies_in_loop_exit): Likewise.
1559 (apply_opt_in_copies): Walk lists rather than hash tables.
1560 (release_var_copies): Simplified and inlined by hand into...
1561 (free_opt_info): ... this function.
1562
69596c69
RG
15632009-06-02 Richard Guenther <rguenther@suse.de>
1564
1565 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
1566 for field decls.
1567
fe8a7779
AO
15682009-06-02 Alexandre Oliva <aoliva@redhat.com>
1569
1570 * cfgexpand.c (gimple_expand_cfg): Discard the source location
1571 only for builtins that are not overridden.
1572
1bcca2c5
AO
15732009-06-02 Alexandre Oliva <aoliva@redhat.com>
1574
1575 * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
1576 label string.
1577
8588f797
AO
15782009-06-02 Alexandre Oliva <aoliva@redhat.com>
1579
1580 * df-core.c (df_ref_debug): Honor -fdump-noaddr.
1581
45f39d78
AO
15822009-06-02 Alexandre Oliva <aoliva@redhat.com>
1583
1584 * combine.c (move_deaths): Compare LUIDs within the same BB only.
1585
2aa7c49b
AO
15862009-06-02 Alexandre Oliva <aoliva@redhat.com>
1587
1588 * common.opt (fdump-unnumbered-links): New.
1589 * doc/invoke.texi (-fdump-unnumbered-links): Document it.
1590 * print-rtl.c (flag_dump_unnumbered_links): New.
1591 (print_rtx): Test it.
1592
55b2829b
RE
15932009-06-02 Richard Earnshaw <rearnsha@arm.com>
1594
1595 * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
1596 push/pop multiple to 8-byte alignment.
e63d4106 1597
6c0d7021
JJ
15982009-06-01 Jakub Jelinek <jakub@redhat.com>
1599
0aa34d44
JJ
1600 * config/i386/i386.c (queued_cfa_restores): New static variable.
1601 (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
1602 functions.
1603 (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
1604 (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
1605 Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
1606 Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
1607 note unconditionally.
1608 (ix86_emit_restore_regs_using_mov): Likewise.
1609 (ix86_emit_restore_sse_regs_using_mov): Likewise.
1610 (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
1611 it through to ix86_emit_restore_reg_using_pop.
1612 (ix86_emit_leave): Add RED_OFFSET argument. Call
1613 ix86_add_queued_cfa_restore_notes. Call ix86_add_cfa_restore_note
1614 instead of adding REG_CFA_OFFSET note unconditionally.
1615 (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
1616 the above functions. Call ix86_add_queued_cfa_restore_notes when
1617 needed.
1618
1619 * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
1620 force output of the label even for dwarf2out_do_cfi_asm.
1621 (add_fde_cfi): If -g2 and above and cfi might change CFA,
1622 force creation of CFI label and chain DW_CFA_set_loc jumping to it
1623 for convert_cfa_to_fb_loc_list. Adjust other dwarf2out_cfi_label
1624 caller.
1625 (dwarf2out_stack_adjust, dwarf2out_frame_debug,
1626 dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
1627 dwarf2out_cfi_label callers.
1628 * tree.h (dwarf2out_cfi_label): Adjust prototype.
1629 * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
1630 Adjust dwarf2out_cfi_label callers.
1631 * config/vax/vax.c (vax_output_function_prologue): Likewise.
1632
604a6be9
JJ
1633 * config/i386/i386.h (struct machine_cfa_state,
1634 struct machine_function): Guard with ifndef USED_FOR_TARGET
1635 instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.
1636
df0026a7
JJ
1637 PR other/40024
1638 * emutls.c (__emutls_get_address): Change arr->size to mean number
1639 of allocated arr->data entries instead of # of slots + 1.
1640
6c0d7021
JJ
1641 PR middle-end/40316
1642 * recog.c (peep2_reinit_state): New function.
1643 (peephole2_init_state): Use it at the end of a basic block and also
1644 when seeing a RTX_FRAME_RELATED_P insn.
1645
49df2fb8
SE
16462009-06-01 Steve Ellcey <sje@cup.hp.com>
1647
1648 * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
1649 fixuns_truncrfdi2): New.
1650 (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
1651 *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
1652 *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
1653 *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
1654 *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
1655 *recip_approx): Remove.
1656 (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
1657 moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
1658 divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
1659 move to div.md.
1660 * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
1661 setf_exp_rf): New.
1662
67165eb3
ILT
16632009-06-01 Ian Lance Taylor <iant@google.com>
1664
1665 * attribs.c (register_attribute): Use CONST_CAST.
1666 * collect2.c (main): Use CONST_CAST2.
1667 (scan_prog_file): Likewise.
1668 * gcc.c (process_command, main): Likewise.
1669 * toplev.c (toplev_main): Likewise.
1670
1671 * c-typeck.c (handle_warn_cast_qual): New static function,
1672 partially broken out of build_c_cast.
1673 (build_c_cast): Call handle_warn_cast_qual.
1674 * doc/invoke.texi (Warning Options): Document new effect of
1675 -Wcast-qual.
1676
e74fe492
AH
16772009-06-01 Aldy Hernandez <aldyh@redhat.com>
1678
1679 * diagnostic.c (diagnostic_build_prefix): Always print columns.
1680 (diagnostic_report_current_module): Print columns.
1681 * common.opt (flag_show_column): Enable by default.
1682
7eba2d1f
LM
16832009-06-01 Luis Machado <luisgpm@br.ibm.com>
1684
1685 * alias.c (find_base_term): Check for NULL term before returning.
1686
ee88d9aa
MK
16872009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
1688
1689 Revert due to PR40320:
ee88d9aa
MK
1690 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
1691 * calls.c (emit_library_call_value_1): Don't force_operand for move
1692 and push insns.
1693
324c9b02 16942009-06-01 Olivier Hainque <hainque@adacore.com>
40d0d9e4 1695 Eric Botcazou <ebotcazou@adacore.com>
324c9b02
OH
1696
1697 * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
1698 to be processed as a bitfield for constructor output purposes.
1699 * output.h (initializer_constant_valid_for_bitfield_p): Declare
1700 new function.
1701 * varasm.c (oc_local_state): New type, output_constructor
1702 local state to support communication with helpers.
1703 (oc_outer_state): New type, output_constructor outer state of
1704 relevance in recursive calls.
1705 (output_constructor_array_range): New output_constructor helper,
1706 extracted code for an array range element.
1707 (output_constructor_regular_field): New output_constructor helper,
1708 extracted code for an element that is not a bitfield.
1709 (output_constructor_bitfield): New output_constructor helper,
1710 extracted code for a bitfield element. Accept an OUTER state
1711 argument for recursive processing. Recurse on record or array
1712 CONSTRUCTOR values, possibly past noop conversions.
62295314 1713 (initializer_constant_valid_for_bitfield_p): New predicate. Whether
324c9b02
OH
1714 VALUE is a valid constant-valued expression for use in a static
1715 bit-field initializer.
62295314
OH
1716 (output_constructor): Rework to use helpers. Accept and honor an
1717 OUTER state argument for recursive calls. Return total size. Be
324c9b02
OH
1718 prepared for nested constructors initializing bitfields.
1719 (output_constant): Feed OUTER in calls to output_constructor.
1720
0980d7fe
MK
17212009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
1722
1723 * calls.c (emit_library_call_value_1): Don't force_operand for move
1724 and push insns.
1725
29661412
NC
17262009-06-01 Nick Clifton <nickc@redhat.com>
1727
1728 * doc/invoke.texi (IA-64 Options): Fix typo.
1729
e9dbe7bb
IR
17302009-06-01 Ira Rosen <irar@il.ibm.com>
1731
1732 PR tree-optimization/39129
1733 * tree-vect-loop-manip.c (conservative_cost_threshold): Change the
1734 printed message.
1735 (vect_do_peeling_for_loop_bound): Use
1736 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
1737 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
1738 (vect_loop_versioning): Likewise.
1739 (vect_create_cond_for_alias_checks): Fix indentation.
1740 * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the
1741 macros.
1742 (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
1743 (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
1744 * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to
1745 "control flow in loop".
1746 (vect_estimate_min_profitable_iters): Use
1747 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
1748 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
1749 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
1750 (vect_create_data_ref_ptr): Don't mention array dimension in printing.
1751 * tree-vect-stmts.c (vectorizable_store): Replace the check that the
1752 statement belongs to a group of strided accesses with the exact code
1753 check.
1754 (vectorizable_load): Likewise.
1755 * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
1756 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
1757
5ac69a80
GP
17582009-06-01 Gerald Pfeifer <gerald@pfeifer.com>
1759
1760 * config/freebsd-stdint.h: New file.
1761 * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
1762 Add freebsd-stdint.h to tm_file.
1763
54b2b460
RE
17642009-06-01 Richard Earnshaw <rearnsha@arm.com>
1765
1766 * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
1767 (thumb2_extendhidi2): Likewise.
1768
a7ca77cf
ILT
17692009-05-31 Ian Lance Taylor <iant@google.com>
1770
f3afc8a7 1771 * regstat.c (regstat_n_sets_and_refs): Remove duplicate definition.
c50d84e3
ILT
1772
17732009-05-31 Ian Lance Taylor <iant@google.com>
1774
f3afc8a7 1775 * Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H).
a7ca77cf
ILT
1776 (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
1777 (ipa-reference.o): Depend upon gt-ipa-reference.h.
1778
1aec401e
JM
17792009-05-31 Jason Merrill <jason@redhat.com>
1780
1781 * tree-pretty-print.c (print_call_name): Take the callee, not the
f3afc8a7 1782 call itself. Make non-static. Use dump_function_name for functions.
1aec401e
JM
1783 (dump_generic_node): Adjust.
1784 * diagnostic.h: Declare print_call_name.
1785 * gimple-pretty-print.c (dump_gimple_call): Use it.
1786
ed7910bb
KK
17872009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
1788
1789 * config/sh/sh.md (ashldi3_std): New define_expand.
1790 (ashldi3): Use it.
1791
47ea8d4e
KK
17922009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
1793
1794 PR target/40313
1795 * config/sh/sh.c: Include debug.h.
1796 (sh_expand_epilogue): Emit a blockage insn before the frame
1797 pointer adjustment also when dwarf2out_do_frame returns true.
1798
405e8b49
RE
17992009-05-31 Richard Earnshaw <rearnsha@arm.com>
1800
1801 * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
1802 (thumb2_extendqidi2): New pattern.
1803
71ece343
IR
18042009-05-31 Ira Rosen <irar@il.ibm.com>
1805
1806 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
1807 mark phis for renaming.
1808 * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
1809 (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
1810 Call mark_sym_for_renaming.
1811 * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
f3afc8a7
UB
1812 * tree-vect-loop.c (vect_transform_loop): Remove
1813 vect_memsyms_to_rename initialization and a call to
1814 mark_set_for_renaming.
71ece343 1815
b3041944
JJ
18162009-05-31 Jakub Jelinek <jakub@redhat.com>
1817
1818 PR middle-end/40304
1819 * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
1820 frame related even if !set_cfa && style < 0.
1821
a1bda0d7
KT
18222009-05-30 Kai Tietz <kai.tietz@onevision.com>
1823
1824 * config/i386/mingw-tls.c: New file.
f3afc8a7
UB
1825 * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file.
1826 * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets
1827 defining _WIN32 but not __CYGWIN__.
a1bda0d7 1828
acd26225
KG
18292009-05-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1830
1831 * configure.ac: Add MPC support.
1832
1833 * config.in, configure: Regenerate.
1834
cd9c1ca8
RH
18352009-05-29 Richard Henderson <rth@redhat.com>
1836
1837 * cfgcleanup.c (try_crossjump_to_edge): Only skip past
1838 NOTE_INSN_BASIC_BLOCK.
1839 * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
1840 Duplicate NOTE_INSN_EPILOGUE_BEG notes.
1841 * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
1842 to be deleted.
1843 * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
1844 add in_use field.
1845 (add_cfi): Disable check redefining cfa away from drap.
1846 (lookup_cfa_1): Add remember argument; handle remember/restore.
1847 (lookup_cfa): Pass remember argument.
1848 (cfa_remember): New.
1849 (compute_barrier_args_size_1): Remove sibcall check.
1850 (dwarf2out_frame_debug_def_cfa): New.
1851 (dwarf2out_frame_debug_adjust_cfa): New.
1852 (dwarf2out_frame_debug_cfa_offset): New.
1853 (dwarf2out_frame_debug_cfa_register): New.
1854 (dwarf2out_frame_debug_cfa_restore): New.
1855 (dwarf2out_frame_debug): Handle REG_CFA_* notes.
1856 (dwarf2out_begin_epilogue): New.
1857 (dwarf2out_frame_debug_restore_state): New.
1858 (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
1859 DW_CFA_restore_state.
1860 (output_cfi_directive): Likewise.
1861 (convert_cfa_to_fb_loc_list): Likewise.
1862 (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
1863 * dwarf2out.h: Update.
1864 * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
1865 (copy_insn_1): Early out for null.
1866 * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
1867 and dwarf2out_frame_debug_restore_state.
1868 * function.c (prologue, epilogue, sibcall_epilogue): Remove.
1869 (prologue_insn_hash, epilogue_insn_hash): New.
1870 (free_after_compilation): Adjust freeing accordingly.
1871 (record_insns): Create hash table if needed; push insns into
1872 hash instead of array.
1873 (maybe_copy_epilogue_insn): New.
1874 (contains): Search hash table instead of array.
1875 (sibcall_epilogue_contains): Remove.
1876 (thread_prologue_and_epilogue_insns): Split eh_return insns
1877 and mark them as epilogues.
1878 (reposition_prologue_and_epilogue_notes): Rewrite epilogue
1879 scanning in terms of basic blocks.
1880 * insn-notes.def (CFA_RESTORE_STATE): New.
1881 * jump.c (returnjump_p_1): Accept EH_RETURN.
1882 (eh_returnjump_p_1, eh_returnjump_p): New.
1883 * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
1884 CFA_REGISTER, CFA_RESTORE): New.
1885 * rtl.def (EH_RETURN): New.
1886 * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
1887
1888 * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
1889 (eh_return_internal): Use eh_return rtx; split w/ epilogue.
1890
1891 * config/i386/i386.c (gen_push): Update cfa state.
1892 (pro_epilogue_adjust_stack): Add set_cfa argument. When true,
1893 add a CFA_ADJUST_CFA note.
1894 (ix86_dwarf_handle_frame_unspec): Remove.
1895 (ix86_expand_prologue): Update cfa state.
1896 (ix86_emit_restore_reg_using_pop): New.
1897 (ix86_emit_restore_regs_using_pop): New.
1898 (ix86_emit_leave): New.
1899 (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
1900 (ix86_expand_epilogue): Add notes for unwinding the epilogue.
1901 * config/i386/i386.h (struct machine_cfa_state): New.
1902 (ix86_cfa_state): New.
1903 * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
1904 (eh_return_internal): Merge from eh_return_<mode>,
1905 use eh_return rtx, split w/ epilogue.
1906
72b5577d
ILT
19072009-05-29 Ian Lance Taylor <iant@google.com>
1908
1909 * builtins.c (validate_gimple_arglist): Don't use va_arg with
1910 enum type.
1911 * calls.c (emit_library_call_value_1): Likewise.
1912
1913 * c-typeck.c (c_build_va_arg): New function.
1914 * c-tree.h (c_build_va_arg): Declare.
1915 * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
1916 instead of build_va_arg.
1917
7a2faca1
EB
19182009-05-29 Eric Botcazou <ebotcazou@adacore.com>
1919
1920 * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
1921 (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
1922 (ptr_difference_cost): Use affine combinations to compute it.
1923 (difference_cost): Likewise.
1924 (get_computation_cost_at): Compute more accurate cost for addresses
1925 if the ratio is a multiplier allowed in addresses.
1926 For non-addresses, consider that an additional offset or symbol is
1927 added only once.
1928
725fd454
JJ
19292009-05-29 Jakub Jelinek <jakub@redhat.com>
1930
a0987204
JJ
1931 * config/i386/i386.c (ix86_decompose_address): Avoid useless
1932 0 displacement. Add 0 displacement if base is %[er]bp or %r13.
1933
725fd454
JJ
1934 * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
1935 TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
1936 (prefix_rex): For UNIT_MMX don't imply the prefix by default
1937 if MODE_DI.
1938 (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
1939 to 1 for TYPE_SSE{IADD1,CVT1}.
1940 (prefix_vex_imm8): Removed.
1941 (length_vex): Only pass 1 as second argument to
1942 ix86_attr_length_vex_default if prefix_extra is 0.
1943 (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
1944 (length): For prefix vex computation use length_immediate
1945 attribute instead of prefix_vex_imm8.
1946 (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
1947 addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
1948 *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
1949 *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
1950 (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
1951 *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
1952 a space in between the operands.
1953 (*anddi_1_rex64, *andsi_1): Likewise. Override prefix_rex to 1
1954 if one operand is 0xff and the other one si, di, bp or sp.
1955 (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
1956 other one si, di, bp or sp.
1957 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
1958 (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
1959 type and mode attributes.
1960 (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
1961 (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
1962 prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
1963 (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
1964 prefix_data16 attribute iff MODE_DF.
1965 (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
1966 (fix_trunc<mode>di_sse): Set prefix_rex attribute.
1967 (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
1968 constm128_operand in length_immediate computation.
1969 (*addhi_4): Likewise. Fix mode attribute to MODE_HI.
1970 (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
1971 (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
1972 length_immediate attribute to 1.
1973 (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
1974 (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
1975 for certain alternatives.
1976 (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
1977 prefix_data16 attribute if MODE_V1DF.
1978 (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
1979 length_immediate to 1.
1980 (set_got_rex64, set_rip_rex64): Remove length attribute, set
1981 length_address to 4, set mode attribute to MODE_DI.
1982 (set_got_offset_rex64): Likewise. Set length_immediate to 0.
1983 (fxam<mode>2_i387): Set length attribute to 4.
1984 (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
1985 *prefetch_3dnow_rex): Override length_address attribute.
1986 (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
1987 attributes.
1988 * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
1989 (constm128_operand): Removed.
1990 * config/i386/i386.c (memory_address_length): For
1991 disp && !index && !base in 64-bit mode account for SIB byte if
1992 print_operand_address can't optimize disp32 into disp32(%rip)
1993 and UNSPEC doesn't imply (%rip) addressing. Add 1 to length
1994 for fs: or gs: segment.
1995 (ix86_attr_length_immediate_default): When checking if shortform
1996 is possible, truncate immediate to the length of the non-shortened
1997 immediate.
1998 (ix86_attr_length_address_default): Ignore MEM_P operands
1999 with X constraint.
2000 (ix86_attr_length_vex_default): Only check for DImode on
2001 GENERAL_REG_P operands.
2002 * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
2003 prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
2004 (sse_cvttps2pi): Clear prefix_rep attribute.
2005 (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
2006 attribute.
2007 (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
2008 (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
2009 *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
2010 iff operand 2 is const_int_operand.
2011 (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
2012 sse2_shufpd_<mode>): Set length_immediate attribute to 1.
2013 (sse2_pshufd_1): Likewise. Set prefix attribute to maybe_vex
2014 instead of vex.
2015 (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
2016 prefix_data16.
2017 (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
2018 prefix_data16 attribute for movlpd and movhpd instructions.
2019 (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise. Override
2020 length_immediate for shufpd instruction.
2021 (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
2022 (avx_cmpp<avxmodesuffixf2c><mode>3,
2023 avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
2024 <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
2025 avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
f3afc8a7 2026 *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1.
725fd454
JJ
2027 (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
2028 (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
2029 (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
2030 prefix_data16 attribute for the first alternative to 1.
2031 (*avx_loadlps): Override length_immediate for the first alternative.
2032 (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
2033 attributes for second alternative.
2034 (*vec_concatv2sf_sse4_1): Override length_immediate and
2035 prefix_data16 attributes for second alternative.
2036 (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
2037 vec_extract_hi_<mode>, vec_extract_lo_v16hi,
2038 vec_extract_hi_v16hi, vec_extract_lo_v32qi,
2039 vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
2040 (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
2041 prefix_data16 and length_immediate to 1.
2042 (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
2043 to 1.
2044 (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
f3afc8a7 2045 prefix_extra attribute for variants that don't have 0f prefix alone.
725fd454
JJ
2046 (*avx_pinsr<ssevecsize>): Likewise. Set length_immediate to 1.
2047 (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
2048 *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
2049 *sse4_1_pextrd): Set length_immediate to 1.
2050 (*sse4_1_pinsrd): Likewise. Set prefix_extra to 1.
2051 (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
2052 to 1.
2053 (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
2054 *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
2055 length_immediate to 1 for second alternative.
2056 (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
2057 prefix_extra and length_immediate attributes for the first
2058 alternative.
2059 (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
2060 first alternative.
2061 (*vec_concatv2di_rex64_sse4_1): Likewise. Override prefix_rex
2062 to 1 for the first and third alternative.
2063 (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
2064 alternative.
2065 (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
2066 attribute.
2067 (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
2068 attribute to 0.
2069 (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
2070 *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
2071 *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
2072 *avx_psign<mode>3): Set prefix_extra attribute to 1.
2073 (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
2074 ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
2075 ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
2076 ssse3_psign<mode>3): Override prefix_rex attribute.
f3afc8a7 2077 (*avx_palignrti): Override prefix_extra and length_immediate to 1.
725fd454
JJ
2078 (ssse3_palignrti): Override length_immediate to 1.
2079 (ssse3_palignrdi): Override length_immediate to 1, override
2080 prefix_rex attribute.
f3afc8a7 2081 (abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute.
725fd454
JJ
2082 (sse4a_extrqi): Override length_immediate to 2.
2083 (sse4a_insertqi): Likewise. Override prefix_data16 to 0.
2084 (sse4a_insertq): Override prefix_data16 to 0.
2085 (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
2086 avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
2087 avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
2088 *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
2089 avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
2090 and length_immediate to 1.
2091 (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
2092 sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
2093 sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
2094 sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
2095 and length_immediate to 1.
2096 (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
2097 (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
2098 (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
2099 avx_ptest256): Override prefix_extra to 1.
2100 (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
2101 Override prefix_data16 and length_immediate to 1.
2102 (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
2103 sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
2104 sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
2105 sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
2106 prefix_data16 to 0 and prefix_extra to 2.
2107 (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
2108 (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
2109 attribute.
2110 (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
2111 sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
2112 Override prefix_data16 and prefix_rep to 0, length_immediate to 1
2113 and prefix_extra to 2.
2114 (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
2115 prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
2116 (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
2117 avx_vpermilvar<mode>3,
2118 avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
2119 avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
2120 avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
2121 avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
2122 Override prefix_extra to 1.
2123 (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
2124 (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
2125 vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
2126 vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
2127 prefix_extra and length_immediate to 1.
2128 (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
2129 modrm to 0.
2130 (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
2131 to 1 for the first alternative.
2132 * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
2133 prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
2134 cases.
2135 (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
2136 *movv2sf_internal_avx, *movv2sf_internal): Override
2137 prefix_rep attribute for certain alternatives.
2138 (*mov<mode>_internal): Override prefix_rep or prefix_data16
2139 attributes for certain alternatives.
2140 (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
2141 attributes for certain alternatives.
2142 (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
2143 *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
2144 mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
2145 mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
2146 *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
2147 mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
2148 mmx_pswapdv2si2): Set prefix_extra attribute to 1.
2149 (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
2150 length_immediate to 1 if operand 2 is const_int_operand.
2151 (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
f3afc8a7 2152 *vec_extractv2si_1): Set length_immediate attribute to 1.
725fd454
JJ
2153 (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
2154 using old 3DNOW insn rather than SSE/3DNOW_A.
2155 (mmx_emms, mmx_femms): Clear modrm attribute.
2156
0674b9d0
MJ
21572009-05-29 Martin Jambor <mjambor@suse.cz>
2158
2159 * tree-sra.c: New implementation of SRA.
2160
2161 * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
2162 (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
2163 (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
2164 * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
2165 (SRA_MAX_STRUCTURE_COUNT): Removed.
2166 (SRA_FIELD_STRUCTURE_RATIO): Removed.
2167 * doc/invoke.texi (sra-max-structure-size): Removed.
2168 (sra-field-structure-ratio): Removed.
2169
616f21df
JJ
21702009-05-29 Jakub Jelinek <jakub@redhat.com>
2171
2172 PR middle-end/40291
2173 * builtins.c (expand_builtin_memcmp): Convert len to sizetype
2174 before expansion.
2175
da7ba240
AB
21762009-05-29 Andrey Belevantsev <abel@ispras.ru>
2177
2178 PR rtl-optimization/40101
2179 * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
2180 seqno. Adjust comment.
2181 * sel-sched.c (find_seqno_for_bookkeeping): Assert that when
2182 inserting bookkeeping before a jump, the jump is not scheduled.
2183 When no positive seqno found, provide a value. Add comment.
2184
71dcd609
RG
21852009-05-29 Richard Guenther <rguenther@suse.de>
2186
2187 * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
2188 short-cutting on the first component.
2189
a900ae6b
JJ
21902009-05-29 Jakub Jelinek <jakub@redhat.com>
2191
2192 PR middle-end/39958
2193 * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
2194 for trees other than decls/types.
2195
821bb7f8
RG
21962009-05-29 Richard Guenther <rguenther@suse.de>
2197
2198 * tree-ssa-operands.c (get_expr_operands): Do not handle
2199 INDIRECT_REFs in the handled-component case. Remove
2200 unused get_ref_base_and_extent case.
2201 * tree-dfa.c (get_ref_base_and_extent): Avoid calling
2202 tree_low_cst and host_integerp where possible.
2203 * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
2204 codes for equivalence.
2205 * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
2206
e997fb9c
DB
22072009-05-29 David Billinghurst <billingd@gcc.gnu.org>
2208
2209 * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
2210 to tmake_file for i[34567]86-*-cygwin*.
2211
58195b74
JJ
22122009-05-29 Jakub Jelinek <jakub@redhat.com>
2213
2214 PR target/40017
2215 * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
2216 (altivec_categorize_keyword, init_vector_keywords,
2217 rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
2218 similar to bool.
2219
055df276
KT
22202009-05-29 Kai Tietz <kai.tietz@onevision.com>
2221
2222 * tree.c (handle_dll_attribute): Check if node is
2223 of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
2224
f5939ef3
RE
22252009-05-29 Richard Earnshaw <rearnsha@arm.com>
2226
2227 * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
2228 component.
2229 (thumb2_zero_extendqidi2): Likewise.
2230
c185de40
KK
22312009-05-28 Kaz Kojima <kkojima@gcc.gnu.org>
2232
2233 * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
2234 instead of gen_movrt.
2235 * config/sh/sh.md (movrt): Remove.
2236
bf3c6caf
SE
22372009-05-28 Steve Ellcey <sje@cup.hp.com>
2238
f3afc8a7 2239 * doc/invoke.texi (IA-64 Options):
bf3c6caf
SE
2240 Add -msdata, -mfused-madd, -mno-inline-float-divide,
2241 -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
2242 -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
2243 -msched-prefer-non-control-spec-insns,
2244 -msched-stop-bits-after-every-cycle,
2245 -msched-count-spec-in-critical-path,
2246 -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
f3afc8a7 2247 -msched-max-memory-insns-hard-limit, -msched-max-memory-insns.
bf3c6caf
SE
2248 Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
2249 and -msched-spec-verbose.
2250
8a66e987
JM
22512009-05-28 Joseph Myers <joseph@codesourcery.com>
2252
f3afc8a7 2253 * config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache.
8a66e987
JM
2254 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
2255 error if used.
2256 * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
2257
b45d2719
RG
22582009-05-28 Richard Guenther <rguenther@suse.de>
2259
2260 * tree-ssa-alias.c (ao_ref_init): New function.
2261 (ao_ref_base): Likewise.
2262 (ao_ref_base_alias_set): Likewise.
2263 (ao_ref_alias_set): Likewise.
2264 (refs_may_alias_p_1): Change signature.
2265 (refs_may_alias_p): Adjust.
2266 (refs_anti_dependent_p): Likewise.
2267 (refs_output_dependent_p): Likewise.
2268 (call_may_clobber_ref_p_1): Change signature.
2269 (call_may_clobber_ref_p): Adjust.
2270 (stmt_may_clobber_ref_p_1): New function split out from ...
2271 (stmt_may_clobber_ref_p): ... here.
2272 (maybe_skip_until): Adjust signature.
2273 (get_continuation_for_phi): Likewise.
2274 (walk_non_aliased_vuses): Likewise.
2275 * tree-ssa-alias.h (struct ao_ref_s): New structure type.
2276 (ao_ref_init): Declare.
2277 (ao_ref_base): Likewise.
2278 (ao_ref_alias_set): Likewise.
2279 (stmt_may_clobber_ref_p_1): Likewise.
2280 (walk_non_aliased_vuses): Adjust.
2281 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
2282 (get_ref_from_reference_ops): remove.
2283 (vn_reference_lookup_2): Adjust signature.
2284 (vn_reference_lookup_3): Do not re-build trees. Handle unions.
f3afc8a7 2285 (vn_reference_lookup_pieces): Adjust signature, do not re-build trees.
b45d2719
RG
2286 (vn_reference_lookup): Adjust.
2287 (vn_reference_insert): Likewise.
2288 (vn_reference_insert_pieces): Adjust signature.
2289 (visit_reference_op_call): Adjust.
2290 * tree-ssa-pre.c (get_expr_type): Simplify.
2291 (phi_translate_1): Adjust.
2292 (compute_avail): Likewise.
2293 (translate_vuse_through_block): Do not re-build trees.
2294 (value_dies_in_block_x): Likewise.
2295 * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
2296 fields.
2297 (vn_reference_lookup_pieces): Adjust declaration.
2298 (vn_reference_insert_pieces): Likewise.
2299
554223b6
BK
23002009-05-28 Benjamin Kosnik <bkoz@redhat.com>
2301
2302 * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
2303 with checking disabled.
2304
233215fe
DK
23052009-05-28 Dave Korn <dave.korn.cygwin@gmail.com>
2306
2307 PR target/37216
2308
2309 * configure.ac (HAVE_GAS_ALIGNED_COMM): Add autoconf test and
2310 macro definition for support of three-operand format aligned
2311 .comm directive in assembler on cygwin/pe/mingw target OS.
2312 * configure: Regenerate.
2313 * config.h: Regenerate.
2314
2315 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Use
2316 aligned form of .comm directive if -mpe-aligned-commons is in effect.
2317 * config/i386/cygming.opt (-mpe-aligned-commons): Add new option.
2318
2319 * doc/invoke.texi (-mpe-aligned-commons): Document new target option.
2320 * doc/tm.texi (ASM_OUTPUT_COMMON): Document zero size commons.
2321
24adb18f
IR
23222009-05-28 Ira Rosen <irar@il.ibm.com>
2323
2324 PR tree-optimization/40254
2325 * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
2326 in analysis of basic blocks.
2327
2c5bfdf7
AN
23282009-05-28 Adam Nemet <anemet@caviumnetworks.com>
2329
2330 PR middle-end/33699
f3afc8a7 2331 * target.h (struct gcc_target): Fix indentation. Add const_anchor.
2c5bfdf7
AN
2332 * target-def.h (TARGET_CONST_ANCHOR): New macro.
2333 (TARGET_INITIALIZER): Use it.
2334 * cse.c (CHEAPER): Move it up to the other macros.
2335 (insert): Rename this ...
2336 (insert_with_costs): ... to this. Add cost parameters. Update
2337 function comment.
2338 (insert): New function. Call insert_with_costs.
2339 (compute_const_anchors, insert_const_anchor, insert_const_anchors,
2340 find_reg_offset_for_const, try_const_anchors): New functions.
2341 (cse_insn): Call try_const_anchors. Adjust cost of src_related
2342 when using a const-anchor. Call insert_const_anchors.
f3afc8a7 2343 * config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor.
2c5bfdf7
AN
2344 * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
2345
9e6aced0
AO
23462009-05-28 Alexandre Oliva <aoliva@redhat.com>
2347
2348 * tree-inline.c (remap_decls): Enable nonlocalized variables
2349 when not optimizing.
2350
89fbbe4e
AO
23512009-05-28 Alexandre Oliva <aoliva@redhat.com>
2352
2353 * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
2354 Simplify other tests involving optimize.
2355
e455776a
TT
23562009-05-27 Tom Tromey <tromey@redhat.com>
2357
2358 * unwind-dw2.c (_Unwind_DebugHook): New function.
2359 (uw_install_context): Call _Unwind_DebugHook.
2360
cea32bca
TT
23612009-05-27 Tom Tromey <tromey@redhat.com>
2362
2363 * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
2364
c607156f
ILT
23652009-05-27 Ian Lance Taylor <iant@google.com>
2366
2367 * Makefile.in (LINKER, LINKER_FLAGS): Define.
2368 (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
2369 (ALL_LINKERFLAGS): Define.
2370 (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
2371 (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
2372 (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
2373 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
2374 (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
2375 $(LINKER_FOR_BUILD).
2376 (build/gcov-iov$(build_exeext)): Likewise.
2377
ec0a1343
JB
23782009-05-27 Julian Brown <julian@codesourcery.com>
2379
2380 * gcse.c (target.h): Include.
2381 (can_assign_to_reg_without_clobbers_p): Check that the target allows
2382 copy of argument to a pseudo register.
2383
ac80ba07
DN
23842009-05-27 Diego Novillo <dnovillo@google.com>
2385
2386 * tree-ssa-live.c (dump_scope_block): Document arguments.
2387 (dump_scope_blocks): Document.
2388 (debug_scope_blocks): New.
2389 * tree-flow.h (debug_scope_blocks): Declare.
2390
d1803a17
DC
23912009-05-21 Denis Chertykov <denisc@overta.ru>
2392
f3afc8a7 2393 * doc/contrib.texi (Contributors): Add myself to the list.
d1803a17 2394
51fb7760 23952009-05-27 Olivier Hainque <hainque@adacore.com>
ceadb728
OH
2396
2397 * expr.c (target_align): New function. Alignment the TARGET of an
2398 assignment may be assume to have.
2399 (highest_pow2_factor_for_target): Use it instead of relying on
2400 immediate tree attributes of TARGET, not necessarily honored when
2401 intermediate bitfields are involved.
2402
634fa334
L
24032009-05-27 H.J. Lu <hongjiu.lu@intel.com>
2404
2405 PR target/40266
2406 * config/i386/driver-i386.c (host_detect_local_cpu): Support
2407 AVX, SSE4, AES, PCLMUL and POPCNT.
2408
65332587
DN
24092009-05-27 Diego Novillo <dnovillo@google.com>
2410
2411 * tree-pretty-print.c (dump_location): New.
2412 (dump_generic_node): Call it.
2413 Factor code to handle BLOCK nodes ...
2414 (dump_block_node): ... here.
2415
3e17e31d
RAE
24162009-05-27 Rafael Avila de Espindola <espindola@google.com>
2417
f3afc8a7
UB
2418 * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h
2419 with it.
3e17e31d
RAE
2420 * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
2421 included.
2422 * gcc-plugin.h: Include config.h and system.h.
2423 (IN_GCC): Define if not defined.
2424
5e370570
HPN
24252009-05-27 Hans-Peter Nilsson <hp@axis.com>
2426
2427 PR middle-end/40249
2428 * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
2429 with -fno-inline.
2430
d000f0d9
SZ
24312009-05-27 Shujing Zhao <pearly.zhao@oracle.com>
2432
2433 * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
2434 applicable.
2435 * config/m32r/m32r.h: Ditto.
2436 * config/m32r/m32r.md: Ditto.
2437 * config/m32r/predicates.md: Ditto.
2438
82f331ff
AO
24392009-05-27 Alexandre Oliva <aoliva@redhat.com>
2440
2441 * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
2442
ae2392a9
BS
24432009-05-26 Basile Starynkevitch <basile@starynkevitch.net>
2444
2445 * doc/plugins.texi
2446 (Loading plugins): typo.
2447 (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
2448 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
2449 (Interacting with the GCC Garbage Collector): Added new section.
2450 (Giving information about a plugin): Added new section for
2451 PLUGIN_INFO.
ae2392a9
BS
2452 * ggc.h (ggc_register_root_tab): Added declaration.
2453 * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
2454 (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
2455 (register_callback): Improved comment in declaration.
f3afc8a7
UB
2456 * ggc-common.c (const_ggc_root_tab_t) Added new typedef for vectors.
2457 (extra_root_vec) Added static variable for dynamic roots registration.
ae2392a9
BS
2458 (ggc_register_root_tab) Added new routine.
2459 (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
2460 PLUGIN_GGC_MARKING event.
2461 * ggc-zone.c: Include plugin.h.
2462 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
2463 * ggc-page.c: Include plugin.h.
2464 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
2465 * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
2466 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
2467 (register_callback): check lack of callbacks for
2468 pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
2469 PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
2470 (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
2471 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
2472 * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
2473 dependency on plugin.h.
2474 (plugin.o): Added dependency on ggc.h...
2475
f0cfd3a8
RG
24762009-05-26 Richard Guenther <rguenther@suse.de>
2477
2478 PR middle-end/40248
2479 Revert
2480 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
2481 with mismatched comparison modes.
2482
2483 * expr.c (expand_expr_real_1): Expand the operand of a
2484 VIEW_CONVERT_EXPR in its natural mode.
2485
7980bfb8
ILT
24862009-05-26 Ian Lance Taylor <iant@google.com>
2487
2488 * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
2489 (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
2490 (ALL_COMPILERFLAGS): Define.
2491 (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
2492 (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
2493 (collect2$(exeext), collect2.o): Likewise.
2494 (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
2495 (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
2496 ($(out_object_file), mips-tfile, mips-tdump): Likewise.
2497 (libbackend.o, intl.o, cppdefault.o): Likewise.
2498 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
2499 (build/%.o): Use $(COMPILER_FOR_BUILD).
2500 (build/gen%$(build_exeext)): Likewise.
2501 (build/gcov-iov$(build_exeext)): LIkewise.
2502 * config/t-darwin (darwin.o): Use $(COMPILER).
2503 (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
2504 * config/t-sol2 (sol2-c.o): Likewise.
2505 (sol2.o): Likewise.
2506 * config/t-vxworks (vxworks.o): Likewise.
2507 * config/x-darwin (host-darwin.o): Likewise.
2508 * config/x-hpux (host-hpux.o): Likewise.
2509 * config/x-linux (host-linux.o): Likewise.
2510 * config/x-solaris (host-solaris.o): Likewise.
2511 * config/alpha/x-alpha (driver-alpha.o): Likewise.
2512 * config/arm/t-arm (arm-c.o): Likewise.
2513 * config/arm/t-pe (pe.o): Likewise.
2514 * config/arm/t-wince-pe (pe.o): Likewise.
2515 * config/i386/t-cygming (winnt.o): Likewise.
2516 (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
2517 * config/i386/t-cygwin (cygwin1.o): Likewise.
2518 (cygwin2.o): Likewise.
2519 * config/i386/t-i386 (i386-c.o): Likewise.
2520 * config/i386/t-interix (winnt.o): Likewise.
2521 * config/i386/t-netware (netware.o): Likewise.
2522 * config/i386/t-nwld (nwld.o): Likewise.
2523 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
2524 * config/i386/x-i386 (driver-i386.o): Likewise.
2525 * config/i386/x-cygwin (host-cygwin.o): Likewise.
2526 * config/i386/x-mingw32 (host-mingw32.o): Likewise.
2527 * config/ia64/t-ia64 (ia64-c.o): Likewise.
2528 * config/m32c/t-m32c (m32c-pragma.o): Likewise.
2529 * config/mips/x-native (driver-native.o): Likewise.
2530 * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
2531 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
2532 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
2533 * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
2534 * config/score/t-score-elf (score7.o): Likewise.
2535 (score3.o): Likewise.
2536 * config/sh/t-sh (sh-c.o): Likewise.
2537 * config/sh/t-symbian (sh-c.o): Likewise.
2538 (symbian.o): Likewise.
2539 * config/spu/t-spu-elf (spu-c.o): Likewise.
2540 * config/v850/t-v850 (v850-c.o): Likewise.
2541 * config/v850/t-v850e (v850-c.o): Likewise.
2542
23977d3c
RG
25432009-05-26 Richard Guenther <rguenther@suse.de>
2544
2545 PR tree-optimization/40122
2546 * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
2547 VECTOR_CSTs if possible.
2548 (fold_gimple_assign): Likewise.
2549
3d62b895
RG
25502009-05-26 Richard Guenther <rguenther@suse.de>
2551
2552 PR middle-end/40252
2553 * fold-const.c (fold_binary): Use the correct types for building
2554 rotates.
2555
12346147
RG
25562009-05-26 Richard Guenther <rguenther@suse.de>
2557
2558 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
2559 redundant calls to merge_alias_info.
2560 (bump_vector_ptr): Likewise.
2561 * tree-ssa-copy.c (merge_alias_info): Remove.
2562 (replace_exp_1): Remove call to merge_alias_info.
2563 (propagate_tree_value): Likewise.
2564 (fini_copy_prop): Propagate points-to info.
2565 * tree-flow.h (merge_alias_info): Remove.
2566
807d5e6f
HS
25672009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
2568
2569 * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
2570
85057983
JH
25712009-05-25 Jan Hubicka <jh@suse.cz>
2572
2573 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
2574 * cgraph.h (struct inline_summary): New filed self_wize,
2575 size_inlining_benefit, self_time and time_inlining_benefit.
2576 (struct cgraph_global_info): Replace insns by time ans size fields.
2577 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
2578 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
2579 (ipcp_update_callgraph): Do not touch function bodies.
2580 * ipa-inline.c: Include except.h
2581 (MAX_TIME): New constant.
2582 (overall_insns): Remove.
2583 (leaf_node_p): New.
2584 (overall_size, max_benefit): New static variables.
2585 (cgraph_estimate_time_after_inlining): New function.
2586 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
2587 (cgraph_clone_inlined_nodes): Update size.
2588 (cgraph_mark_inline_edge): Update size.
2589 (cgraph_estimate_growth): Use size info.
2590 (cgraph_check_inline_limits): Check size.
2591 (cgraph_default_inline_p): Likewise.
2592 (cgraph_edge_badness): Compute badness based on benefit and size cost.
2593 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
2594 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
2595 and times.
85057983
JH
2596 (cgraph_decide_inlining): Likewise.
2597 (cgraph_decide_inlining_incrementally): Likewise; honor
2598 PARAM_EARLY_INLINING_INSNS.
2599 (likely_eliminated_by_inlining_p): New predicate.
2600 (estimate_function_body_sizes): New function.
2601 (compute_inline_parameters): Use it.
2602 * except.c (must_not_throw_labels): New function.
2603 * except.h (must_not_throw_labels): Declare.
2604 * tree-inline.c (init_inline_once): Kill inlining_weigths
2605 * tree-ssa-structalias.c: Avoid uninitialized warning.
2606 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
2607 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
2608 (PARAM_INLINE_CALL_COST): Remove.
2609 (PARAM_EARLY_INLINING_INSNS): New.
2610
01df5c8a
RG
26112009-05-25 Richard Guenther <rguenther@suse.de>
2612
2613 PR tree-optimization/36327
2614 * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
f3afc8a7 2615 callback for reference translation or lookup at the point of may-defs.
01df5c8a
RG
2616 * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
2617 * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
2618 for union COMPONENT_REFs.
2619 (vn_reference_lookup_3): New callback. Lookup from memset
2620 and CONSTRUCTOR assignment, translate through struct copies.
2621 (vn_reference_lookup_pieces): Make sure to not free the
2622 passed operands array. Adjust walk_non_aliased_vuses call.
2623 (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
2624 make sure we do not leak memory.
2625
6b8ed145
RG
26262009-05-25 Richard Guenther <rguenther@suse.de>
2627
2628 * tree-ssa-alias.h (dump_points_to_solution): Declare.
2629 * tree-inline.c (expand_call_inline): Reset the escaped and
2630 callused solutions.
2631 * tree-ssa-structalias.c (pass_build_ealias): New.
2632 * tree-pass.h (pass_build_ealias): Declare.
2633 * passes.c (init_optimization_passes): Add PTA during
2634 early optimizations.
2635 * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
2636 and CALLUSED solutions.
2637 (dump_points_to_solution): New function, split out from ...
2638 (dump_points_to_info_for): ... here.
2639 * tree-parloops.c (parallelize_loops): Reset the escaped and
2640 callused solutions.
2641
0adcf178
RO
26422009-05-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2643
2644 PR bootstrap/40027
2645 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
2646 * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
2647
12aaf609
IR
26482009-05-25 Ira Rosen <irar@il.ibm.com>
2649
2650 PR tree-optimization/40238
2651 * tree-vect-stmts.c (vect_init_vector): Insert initialization
2652 statements after basic block's labels.
2653 * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info()
2654 to free the allocated memory.
2655
7f9a14e3
KK
26562009-05-24 Kaz Kojima <kkojima@gcc.gnu.org>
2657
2658 * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
2659 return address with a USE.
2660
b842d478
RG
26612009-05-24 Richard Guenther <rguenther@suse.de>
2662
2663 PR middle-end/40233
2664 * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
2665 array type from the main variant of the inner type.
2666
8db7b33f
JBG
26672009-05-24 Jan-Benedict Glaw <jbglaw@lug-owl.de>
2668
2669 * config/vax/vax-protos.h (legitimate_constant_address_p): Change
2670 definition to bool (from int) to un-break build.
2671 (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
2672
cff4e50d
PB
26732009-05-24 Paolo Bonzini <bonzini@gnu.org>
2674
2675 * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
2676 discard_stmt_changes): Delete.
2677 * tree-ssa-operands.c (scb_stack): Delete.
2678 (init_ssa_operands): Do not initialize it.
2679 (fini_ssa_operands): Do not free it.
2680 (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
2681
2682 * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with
2683 update_stmt, remove the others. Fix comments.
2684 * tree-dfa.c (optimize_stack_restore): Likewise.
2685 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
2686 * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
2687 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
2688 * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
2689 Likewise.
2690 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
2691 * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
f3afc8a7
UB
2692 (dom_opt_finalize_block): Likewise, adjusting access to
2693 stmts_to_rescan.
cff4e50d
PB
2694 (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
2695 (stmts_to_rescan): Change item type to gimple.
2696 (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
2697
a70d6342
IR
26982009-05-24 Ira Rosen <irar@il.ibm.com>
2699
2700 * doc/passes.texi (Tree-SSA passes): Document SLP pass.
2701 * tree-pass.h (pass_slp_vectorize): New pass.
2702 * params.h (SLP_MAX_INSNS_IN_BB): Define.
2703 * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
2704 * tree-vectorizer.c (timevar.h): Include.
2705 (user_vect_verbosity_level): Declare.
2706 (vect_location): Fix comment.
2707 (vect_set_verbosity_level): Update user_vect_verbosity_level
2708 instead of vect_verbosity_level.
2709 (vect_set_dump_settings): Add an argument. Ignore user defined
2710 verbosity if dump flags require higher level of verbosity. Print to
2711 stderr only for loop vectorization.
2712 (vectorize_loops): Update call to vect_set_dump_settings.
2713 (execute_vect_slp): New function.
2714 (gate_vect_slp): Likewise.
2715 (struct gimple_opt_pass pass_slp_vectorize): New.
2716 * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
2717 access its members.
2718 (vec_info_for_bb): New function.
2719 (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
2720 (VECTORIZATION_ENABLED): New macro.
2721 (SLP_ENABLED, SLP_DISABLED): Likewise.
2722 (vect_is_simple_use): Add bb_vec_info argument.
2723 (new_stmt_vec_info, vect_analyze_data_ref_dependences,
2724 vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
2725 vect_analyze_data_ref_accesses, vect_analyze_data_refs,
2726 vect_schedule_slp, vect_analyze_slp): Likewise.
2727 (vect_analyze_stmt): Add slp_tree argument.
2728 (find_bb_location): Declare.
2729 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
2730 * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
2731 (vect_analyze_loop_operations, vect_analyze_loop,
2732 get_initial_def_for_induction, vect_create_epilog_for_reduction,
2733 vect_finalize_reduction, vectorizable_reduction,
2734 vectorizable_live_operation, vect_transform_loop): Likewise.
2735 * tree-data-ref.c (dr_analyze_innermost): Update comment,
2736 skip evolution analysis if analyzing a basic block.
2737 (dr_analyze_indices): Likewise.
2738 (initialize_data_dependence_relation): Skip the test whether the
2739 object is invariant for basic blocks.
2740 (compute_all_dependences): Skip dependence analysis for data
2741 references in basic blocks.
2742 (find_data_references_in_stmt): Don't fail in case of invariant
2743 access in basic block.
2744 (find_data_references_in_bb): New function.
2745 (find_data_references_in_loop): Move code to
782dc37a 2746 find_data_references_in_bb and add a call to it.
a70d6342
IR
2747 (compute_data_dependences_for_bb): New function.
2748 * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
2749 * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
2750 that STEP is 0.
2751 (vect_analyze_data_ref_dependence): Check for interleaving in case of
2752 unknown dependence in basic block and fail in case of dependence in
2753 basic block.
2754 (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
2755 dependence instances from either loop or basic block vectorization
2756 info.
2757 (vect_compute_data_ref_alignment): Check if it is loop vectorization
2758 before calling nested_in_vect_loop_p.
2759 (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
2760 dependence instances from either loop or basic block vectorization
2761 info.
2762 (vect_verify_datarefs_alignment): Likewise.
2763 (vect_enhance_data_refs_alignment): Adjust function calls.
2764 (vect_analyze_data_refs_alignment): Likewise.
2765 (vect_analyze_group_access): Fix printing. Skip different checks if
2766 DR_STEP is 0. Keep strided stores either in loop or basic block
2767 vectorization data structure. Fix indentation.
2768 (vect_analyze_data_ref_access): Fix comments, allow zero step in
2769 basic blocks.
2770 (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
2771 dependence instances from either loop or basic block vectorization
2772 info.
2773 (vect_analyze_data_refs): Update comment. Call
2774 compute_data_dependences_for_bb to analyze basic blocks.
2775 (vect_create_addr_base_for_vector_ref): Check for outer loop only in
2776 case of loop vectorization. In case of basic block vectorization use
782dc37a 2777 data-ref itself as a base.
a70d6342
IR
2778 (vect_create_data_ref_ptr): In case of basic block vectorization:
2779 don't advance the pointer, add new statements before the current
2780 statement. Adjust function calls.
2781 (vect_supportable_dr_alignment): Support only aligned accesses in
2782 basic block vectorization.
2783 * common.opt (ftree-slp-vectorize): New flag.
2784 * tree-vect-patterns.c (widened_name_p): Adjust function calls.
2785 (vect_pattern_recog_1): Likewise.
2786 * tree-vect-stmts.c (process_use): Likewise.
2787 (vect_init_vector): Add new statements in the beginning of the basic
2788 block in case of basic block SLP.
2789 (vect_get_vec_def_for_operand): Adjust function calls.
2790 (vect_finish_stmt_generation): Likewise.
2791 (vectorizable_call): Add assert that it is loop vectorization, adjust
2792 function calls.
2793 (vectorizable_conversion, vectorizable_assignment): Likewise.
2794 (vectorizable_operation): In case of basic block SLP, take
2795 vectorization factor from statement's type and skip the relevance
2796 check. Adjust function calls.
2797 (vectorizable_type_demotion): Add assert that it is loop
2798 vectorization, adjust function calls.
2799 (vectorizable_type_promotion): Likewise.
2800 (vectorizable_store): Check for outer loop only in case of loop
2801 vectorization. Adjust function calls. For basic blocks, skip the
2802 relevance check and don't advance pointers.
2803 (vectorizable_load): Likewise.
2804 (vectorizable_condition): Add assert that it is loop vectorization,
2805 adjust function calls.
2806 (vect_analyze_stmt): Add argument. In case of basic block SLP, check
2807 that it is not reduction, get vector type, call only supported
782dc37a 2808 functions, skip loop specific parts.
a70d6342
IR
2809 (vect_transform_stmt): Check for outer loop only in case of loop
2810 vectorization.
2811 (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
2812 (vect_is_simple_use): Fix comment, add new argument, fix conditions
2813 for external definition.
2814 * passes.c (pass_slp_vectorize): New pass.
2815 * tree-vect-slp.c (find_bb_location): New function.
2816 (vect_get_and_check_slp_defs): Add argument, adjust function calls,
2817 check for patterns only in loops.
2818 (vect_build_slp_tree): Add argument, adjust function calls, fail in
2819 case of multiple types in basic block SLP.
2820 (vect_mark_slp_stmts_relevant): New function.
2821 (vect_supported_load_permutation_p): Fix comment.
2822 (vect_analyze_slp_instance): Add argument. In case of basic block
2823 SLP, take vectorization factor from statement's type, check that
2824 unrolling factor is 1. Adjust function call. Save SLP instance in
2825 either loop or basic block vectorization structure. Return FALSE,
2826 if SLP failed.
2827 (vect_analyze_slp): Add argument. Get strided stores groups from
2828 either loop or basic block vectorization structure. Return FALSE
2829 if basic block SLP failed.
2830 (new_bb_vec_info): New function.
2831 (destroy_bb_vec_info, vect_slp_analyze_node_operations,
2832 vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
2833 (vect_schedule_slp): Add argument. Get SLP instances from either
2834 loop or basic block vectorization structure. Set vectorization factor
2835 to be 1 for basic block SLP.
2836 (vect_slp_transform_bb): New function.
2837 * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
2838
0676c393
MM
28392009-05-23 Mark Mitchell <mark@codesourcery.com>
2840
2841 * final.c (shorten_branches): Do not align labels for jump tables.
2842 (final_scan_insn): Use JUMP_TABLE_DATA_P.
2843
94324dae
EB
28442009-05-23 Eric Botcazou <ebotcazou@adacore.com>
2845
2846 * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
2847 Remove outdated reference to flow.c and fix nits.
2848 * doc/gccint.texi: Tweak RTL description.
2849 * doc/rtl.texi: Likewise.
2850
92bffc14
DC
28512009-05-23 Denis Chertykov <chertykov@gmail.com>
2852
2853 * config/avr/avr.c: Change my email address.
2854 * config/avr/avr.h: Likewise.
2855 * config/avr/avr.md: Likewise.
2856 * config/avr/avr-protos.h: Likewise.
2857 * config/avr/libgcc.S: Likewise.
2858
eec9405e
TS
28592009-05-22 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
2860
2861 * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
2862 (spu_split_load, spu_split_store): Change return type to int.
2863 (spu_split_convert): Declare.
2864 * config/spu/predicates.md (spu_mem_operand): Remove.
2865 (spu_mov_operand): Update.
2866 (spu_dest_operand, shiftrt_operator, extend_operator): Define.
2867 * config/spu/spu.c (regno_aligned_for_load): Remove.
2868 (reg_aligned_for_addr, spu_expand_load): Define.
2869 (spu_expand_extv): Reimplement and handle MEM.
2870 (spu_expand_insv): Handle MEM.
2871 (spu_sched_reorder): Handle insn's with length 0.
2872 (spu_legitimate_address_p): Reimplement.
2873 (store_with_one_insn_p): Return TRUE for any mode with size
2874 larger than 16 bytes.
2875 (address_needs_split): Define.
2876 (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
2877 operands.
2878 (spu_convert_move): Define.
782dc37a 2879 (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
eec9405e
TS
2880 (spu_split_store): Change all MEM's to TImode.
2881 (spu_init_expanders): Preallocate registers that correspond to
2882 LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
2883 mark_reg_pointer.
2884 (spu_split_convert): Define.
2885 * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
2886 (_move<mode>, _movdi, _movti): Update predicate and condition.
2887 (load, store): Change to define_split.
2888 (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
2889 extend<mode>ti2.
2890 (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
2891 (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
2892 define_insn_and_split of lshr<mode>3.
2893 (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
2894 (<v>ashr<mode>3_imm): Define.
2895 (extv, extzv, insv): Allow MEM operands.
2896 (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
2897 shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
2898 sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
2899 (_spu_convert2): Change to define_insn_and_split and remove the
2900 corresponding define_peephole2.
2901 (stack_protect_set, stack_protect_test, stack_protect_test_si):
2902 Change predicates to memory_operand.
2903
7d31a807
MM
29042009-05-22 Mark Mitchell <mark@codesourcery.com>
2905
2906 * config/arm/thumb2.md: Add 16-bit multiply instructions.
7d31a807 2907
d021d274
MM
29082009-05-21 Michael Meissner <meissner@linux.vnet.ibm.com>
2909
2910 PR tree-optimization/40219
2911 * tree.c (iterative_hash_expr): Make sure the builtin function is
2912 a normal builtin function and not a front end or back end builtin
2913 before indexing into the built_in_decls array.
2914
4d7a65ea
RG
29152009-05-22 Richard Guenther <rguenther@suse.de>
2916
2917 PR middle-end/38964
2918 * alias.c (write_dependence_p): Do not use TBAA for answering
2919 anti-dependence or output-dependence.
782dc37a 2920 * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
4d7a65ea
RG
2921 (emit_pointer_definition): Remove.
2922 (emit_alias_warning): Likewise.
2923 (find_what_var_points_to): Remove TBAA pruning code.
2924 (find_what_p_points_to): Likewise. Do not warn about strict-aliasing
2925 violations.
2926 (compute_points_to_sets): Remove code computing the set of
2927 dereferenced pointers.
2928 * tree-data-ref.c (dr_may_alias_p): Properly use the split
2929 oracle for querying anti and output dependencies.
2930 * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
2931 if TBAA may be applied.
2932 (refs_anti_dependent_p): New function.
2933 (refs_output_dependent_p): Likewise.
2934 * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
2935 (refs_output_dependent_p): Likewise.
2936 * doc/tree-ssa.texi (Memory model): New section.
2937 * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
2938 * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
2939 * cfgexpand.c (expand_gimple_basic_block): Do not handle
2940 GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
2941 * expr.c (expand_expr_real_1): Likewise.
2942 * gimple-low.c (lower_stmt): Likewise.
2943 * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
2944 (dump_gimple_cdt): Remove.
2945 * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
2946 (gimple_size): Likewise.
2947 (walk_gimple_op): Likewise.
2948 (is_gimple_stmt): Likewise.
2949 (walk_stmt_load_store_addr_ops): Likewise.
2950 (gimple_build_cdt): Remove.
2951 * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
2952 * gimple.h (gimple_cdt_new_type): Remove.
2953 (gimple_cdt_new_type_ptr): Likewise.
2954 (gimple_cdt_set_new_type): Likewise.
2955 (gimple_cdt_location): Likewise.
2956 (gimple_cdt_location_ptr): Likewise.
2957 (gimple_cdt_set_location): Likewise.
2958 * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
2959 * tree-cfg.c (remove_useless_stmts_1): Do not handle
2960 GIMPLE_CHANGE_DYNAMIC_TYPE.
2961 (verify_types_in_gimple_stmt): Likewise.
2962 * tree-inline.c (estimate_num_insns): Likewise.
2963 (expand_call_inline): Do not copy DECL_NO_TBAA_P.
2964 (copy_decl_to_var): Likewise.
2965 (copy_result_decl_to_var): Likewise.
2966 * tree-pretty-print.c (dump_generic_node): Do not handle
2967 CHANGE_DYNAMIC_TYPE_EXPR.
2968 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
2969 * tree-ssa-operands.c (get_expr_operands): Likewise.
2970 * tree-ssa-structalias.c (struct variable_info): Remove
2971 no_tbaa_pruning member.
2972 (new_var_info): Do not set it based on DECL_NO_TBAA_P.
2973 (unify_nodes): Do not copy it.
2974 (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
2975 (dump_solution_for_var): Do not dump no_tbaa_pruning state.
2976 (set_uids_in_ptset): Do not check it.
2977 (find_what_var_points_to): Likewise.
2978 (compute_tbaa_pruning): Remove.
2979 (compute_points_to_sets): Do not call it.
2980 * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
2981 * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
2982 * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
2983 (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
2984 (DECL_NO_TBAA_P): Likewise.
2985 (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
2986 * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
2987 (expand_omp_atomic_pipeline): Do not set it.
2988 * print-tree.c (print_node): Do not dump it.
2989 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
2990 redundant check.
2991
83a6ac60
VM
29922009-05-22 Vladimir Makarov <vmakarov@redhat.com>
2993
2994 PR target/39856
2995 * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
2996 for clobber.
2997
fe2978fb
MM
29982009-05-22 Mark Mitchell <mark@codesourcery.com>
2999
3000 * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
3001 non-external.
3002
134ef638
BE
30032009-05-22 Ben Elliston <bje@au.ibm.com>
3004
3005 * Makefile.in (bversion.h, s-bversion): New targets.
3006 (TOPLEV_H): Add bversion.h.
3007 * toplev.h: Include "bversion.h".
3008 (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
3009 the __format__ attribute only if compiling with the same version
3010 of GCC as the sources (the "build version").
3011
52fc669d
BE
30122009-05-22 Ben Elliston <bje@au.ibm.com>
3013
3014 * c-format.c (handle_format_attribute): Fix comment typo.
3015
583ca921
SE
30162009-05-21 Steve Ellcey <sje@cup.hp.com>
3017
3018 PR target/37846
3019 * config/ia64/ia64.opt (mfused-madd): New.
3020 * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
3021 * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
3022 * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
3023 madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
3024 nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
3025 msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
3026 nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
3027 * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms
3028 instruction if !TARGET_FUSED_MADD.
3029 (fpma, fpms): Remove colon from name.
3030
150e3929
RG
30312009-05-22 Richard Guenther <rguenther@suse.de>
3032
3033 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
3034 TMR_ORIGINAL. Always either record TMR_SYMBOL or TMR_BASE.
3035 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
3036 TARGET_MEM_REF.
3037 (create_expression_by_pieces): Only convert if necessary.
3038 * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
3039 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
3040
9a2b090c
AN
30412009-05-21 Adam Nemet <anemet@caviumnetworks.com>
3042
3043 * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
3044 regular pattern from a template and rename it ...
3045 (*extzv_truncsi_exts): ... to this.
3046
33b92c9d
RG
30472009-05-21 Richard Guenther <rguenther@suse.de>
3048
3049 * cgraph.h (struct cgraph_node): Remove inline_decl member.
3050 * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
3051 (cgraph_default_inline_p): Likewise.
3052 (cgraph_decide_inlining_incrementally): Likewise.
3053
cabf85c3
L
30542009-05-21 H.J. Lu <hongjiu.lu@intel.com>
3055 Uros Bizjak <ubizjak@gmail.com>
3056
3057 * config/i386/cpuid.h (bit_MOVBE): New.
3058
3059 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
3060
3061 * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
3062 (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
3063 (ix86_handle_option): Handle OPT_mmovbe.
3064 (ix86_target_string): Add -mmovbe.
3065 (pta_flags): Add PTA_MOVBE.
3066 (processor_alias_table): Add PTA_MOVBE to "atom".
3067 (override_options): Handle PTA_MOVBE.
3068
3069 * config/i386/i386.h (TARGET_MOVBE): New.
3070
3071 * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
3072 (*bswapsi_movbe): New.
3073 (*bswapdi_movbe): Likewise.
3074 (bswapdi2): Renamed to ...
3075 (*bswapdi_1): This.
3076 (bswapdi2): New expander.
3077
3078 * config/i386/i386.opt (mmovbe): New.
3079
3080 * doc/invoke.texi: Document -mmovbe.
3081
9fefa0aa
TG
30822009-05-21 Taras Glek <tglek@mozilla.com>
3083
3084 * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
3085 * gcc-plugin.h (plugin_init): Updated signature.
3086 * gcc-plugin.h (plugin_name_args): Moved to this header.
cabf85c3
L
3087 * doc/plugins.texi (plugin_init): Updated documention to reflect
3088 API change.
9fefa0aa
TG
3089 * doc/plugins.texi (plugin_name_args): Added to documention.
3090
1ea9fe56
MM
30912009-05-21 Mark Mitchell <mark@codesourcery.com>
3092
3093 * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
3094 (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
3095
52f84254
SZ
30962009-05-21 Shujing Zhao <pearly.zhao@oracle.com>
3097
3098 * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
3099 JUMP_TABLE_DATA_P predicates where applicable.
3100 * config/i386/predicates.md: Ditto.
3101 * config/i386/sse.md: Ditto.
3102
a952487c
JJ
31032009-05-21 Jakub Jelinek <jakub@redhat.com>
3104
93cac287
JJ
3105 * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
3106 operand2 -128 override length_immediate attribute to 1.
3107 * config/i386/predicates.md (constm128_operand): New predicate.
3108
a952487c
JJ
3109 * config/i386/i386.c (memory_address_length): Handle %r12
3110 the same as %rsp and %r13 the same as %rbp. For %rsp and %rbp
3111 also check REGNO.
3112 (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
3113 mode look through optional ZERO_EXTEND and SUBREG.
3114 * config/i386/i386.md (R12_REG): New define_constant.
3115 (prefix_data16): For sse unit set also for MODE_TI insns.
3116 (prefix_rex): For -m32 always return 0. For TYPE_IMOVX
3117 insns set if operand 1 is ext_QIreg_operand.
3118 (modrm): For TYPE_IMOV clear only if not MODE_DI. For
3119 TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
3120 immediate.
3121 (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
3122 mode from MODE_DI to MODE_SI.
3123 (movdi_1_rex64): Override modrm and length_immediate attributes
3124 only for movabs (TYPE_IMOV, alternative 2).
3125 (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
3126 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
3127 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
3128 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
3129 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
3130 prefix_rex attribute if DImode.
3131 (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
3132 *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
3133 *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
3134 *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
3135 attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
3136 (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
3137 Likewise. For TYPE_IMOV clear length_immediate attribute.
3138 (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
3139 *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
3140 *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
3141 *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
3142 *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
3143 or one operand TYPE_ISHIFT.
3144 (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
3145 *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
3146 *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
3147 *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
3148 *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
3149 *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
3150 *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
3151 *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
3152 *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
3153 *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
3154 *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
3155 *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
3156 *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
3157 *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
3158 *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
3159 *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
3160 *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
3161 set mode attribute, don't override length attribute.
3162 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
3163 to 1.
3164 (return_internal_long): Set length attribute to 2 instead of 1.
3165 (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
3166 *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
3167 prefix_rex attribute.
782dc37a
UB
3168 * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
3169 New predicates.
3170 (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
a952487c 3171
64af62c2
RR
31722009-05-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3173
3174 * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
3175
c166b898
ILT
31762009-05-20 Ian Lance Taylor <iant@google.com>
3177
3178 * tree.c (build_tree_list_vec_stat): New function.
3179 (ctor_to_vec): New function.
3180 (build_nt_call_vec): New function.
3181 (build_call_array): Change args to be a const pointer.
3182 (build_call_vec): New function.
3183 * tree.h (build_nt_call_vec): Declare.
3184 (build_tree_list_vec_stat): Declare.
3185 (build_tree_list_vec): Define.
3186 (build_call_array): Update declaration.
3187 (build_call_vec): Declare.
3188 (ctor_to_vec): Declare.
3189 * c-common.c (tree_vector_cache): New static variable.
3190 (make_tree_vector): New function.
3191 (release_tree_vector): New function.
3192 (make_tree_vector_single): New function.
3193 (make_tree_vector_copy): New function.
3194 * c-common.h (tree_vector_cache, make_tree_vector): Declare.
3195 (make_tree_vector_single, make_tree_vector_copy): Declare.
3196 * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
3197 (c_parser_expr_list): Don't manage cache here, instead call
3198 make_tree_vector.
3199 (c_parser_release_expr_list): Remove static function.
3200 (c_parser_vec_to_tree_list): Remove static function.
3201 (c_parser_attributes): Call build_tree_list_vec instead of
3202 c_parser_vec_to_tree_list. Call release_tree_vector instead of
3203 c_parser_release_expr_list.
3204 (c_parser_postfix_expression_after_primary): Likewise.
3205 (c_parser_objc_keywordexpr): Likewise.
3206
40449a90
SL
32072009-05-20 Sandra Loosemore <sandra@codesourcery.com>
3208
3209 * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
3210 TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
3211 TARGET_CONVERT_TO_TYPE.
3212 * hooks.c (hook_tree_const_tree_null): Define.
3213 * hooks.h (hook_tree_const_tree_null): Declare.
3214 * target.h (struct gcc_target): Add invalid_parameter_type,
3215 invalid_return_type, promoted_type, and convert_to_type fields.
3216 * target-def.h: (TARGET_INVALID_PARAMETER_TYPE): Define.
3217 (TARGET_INVALID_RETURN_TYPE): Define.
3218 (TARGET_PROMOTED_TYPE): Define.
3219 (TARGET_CONVERT_TO_TYPE): Define.
3220 (TARGET_INITIALIZER): Update for new fields.
3221 * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
3222 (grokparms): Check targetm.invalid_parameter_type.
3223 * c-typeck.c (default_conversion): Check targetm.promoted_type.
3224 * c-convert.c (convert): Check targetm.convert_to_type.
3225
642d97ff
AN
32262009-05-20 Adam Nemet <anemet@caviumnetworks.com>
3227
3228 * config/mips/mips.md (*extenddi_truncate<mode>,
3229 *extendsi_truncate<mode>): Emit exts if supported. Add attribute
3230 defintions.
3231 (*extendhi_truncateqi): New define_insn_and_sptit.
3232
776248b8
JJ
32332009-05-20 Jakub Jelinek <jakub@redhat.com>
3234
3235 PR middle-end/40204
3236 * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
782dc37a 3237 recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
776248b8 3238
d98e8686
EB
32392009-05-20 Eric Botcazou <ebotcazou@adacore.com>
3240
3241 * fold-const.c (build_fold_addr_expr_with_type): Take the address of
3242 the operand of VIEW_CONVERT_EXPR.
3243
37c50435
L
32442009-05-20 H.J. Lu <hongjiu.lu@intel.com>
3245
3246 * config/i386/driver-i386.c (host_detect_local_cpu): Check
f3afc8a7 3247 extended family and model for Intel processors. Support Intel Atom.
37c50435 3248
dbb6088f
OH
32492009-05-20 Olivier Hainque <hainque@adacore.com>
3250
3251 * gstab.h (stab_code_type): Define, to be used instead of the
3252 __stab_debug_code enum, made anonymous. Add 2009 to the copyright
3253 notice.
3254 * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
3255 occurrences by stab_code_type.
3256 * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
3257
7ec49257
MJ
32582009-05-20 Martin Jambor <mjambor@suse.cz>
3259
3260 * tree-flow.h (insert_edge_copies_seq): Undeclare.
3261 (sra_insert_before): Likewise.
3262 (sra_insert_after): Likewise.
3263 (sra_init_cache): Likewise.
3264 (sra_type_can_be_decomposed_p): Likewise.
3265 * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
3266 * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
3267 (sra_insert_before): Likewise.
3268 (sra_insert_after): Likewise.
3269 (sra_init_cache): Likewise.
3270 (insert_edge_copies_seq): Made static and moved upwards.
3271
3272 * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
3273 case.
3274
3275 * tree-flow-inline.h (contains_view_convert_expr_p): New function.
3276
3277 * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
3278 (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
3279 simple copies.
3280
0328ae4d
RG
32812009-05-20 Richard Guenther <rguenther@suse.de>
3282
3283 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
3284 with mismatched comparison modes.
3285
a7994a57 32862009-05-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
782dc37a 3287
a7994a57 3288 * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
782dc37a
UB
3289 (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
3290 * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
3291 with shifts for Thumb2.
3292 (orsi_notsi): New for orn.
3293 (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
3294 (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
3295 * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
3296 (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
3297 Don't invert remainder for IOR.
a7994a57 3298
e36dc339
ZD
32992009-05-19 Zdenek Dvorak <ook@ucw.cz>
3300
3301 PR tree-optimization/40087
3302 * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
3303 number_of_iterations_ne): Rename never_infinite argument.
3304 (number_of_iterations_lt_to_ne, number_of_iterations_lt,
3305 number_of_iterations_le): Handle pointer-type ivs when
3306 exit_must_be_taken is false.
3307 (number_of_iterations_cond): Do not always assume that
3308 exit_must_be_taken if the control variable is a pointer.
3309
5cfd5d9b
AP
33102009-05-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
3311
3312 * c-typeck.c (build_binary_op): Allow % on integal vectors.
3313 * doc/extend.texi (Vector Extension): Document that % is allowed too.
3314
2f1c7156
L
33152009-05-19 H.J. Lu <hongjiu.lu@intel.com>
3316
3317 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
3318 ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
3319
7bb27074
MLI
33202009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
3321
3322 PR c/40172
3323 * c.opt (Wlogical-op): Disabled by default.
3324 * c-opt (c_common_post_options): Do not enable Wlogical-op with
3325 Wextra.
3326 * doc/invoke.texi (Wlogical-op): Likewise.
3327
5aefc6a0
EB
33282009-05-19 Eric Botcazou <ebotcazou@adacore.com>
3329
3330 * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
3331 into CASE_CONVERT.
3332 <PLUS_EXPR>: Strip useless type conversions instead of type nops.
3333 Propagate the type of the first operand.
3334 <ASSERT_EXPR>: Simplify.
3335 (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
3336 Rewrite using the RHS code as discriminant.
3337 <NOP_EXPR>: Turn into CASE_CONVERT.
3338 <PLUS_EXPR>: Propagate the type of the first operand.
3339
f3a83111
SE
33402009-05-19 Steve Ellcey <sje@cup.hp.com>
3341
3342 * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
3343 (ia64_dconst_0_375): New.
3344 * config/ia64/ia64.c (ia64_override_options): Remove
3345 -minline-sqrt-min-latency warning.
3346 (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
3347 (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
3348 * config/ia64/ia64.md (*sqrt_approx): Remove.
3349 (sqrtsf2): Remove #if 0.
3350 (sqrtsf2_internal_thr): Rewrite and move to div.md.
3351 (sqrtdf): Remove assert.
3352 (sqrtdf2_internal_thr): Rewrite and move to div.md.
3353 (sqrtxf2): Remove #if 0.
3354 (sqrtxf2_internal_thr): Rewrite and move to div.md.
3355 * div.md (sqrt_approx_rf): New.
3356 (sqrtsf2_internal_thr): New implementation.
3357 (sqrtsf2_internal_lat): New.
3358 (sqrtdf2_internal_thr: New implementation.
3359 (sqrtxf2_internal): New implementation.
3360
1ffc7157
FXC
33612009-05-19 Francois-Xavier Coudert <fxcoudert@gmail.com>
3362 Hans-Peter Nilsson <hp@axis.com>
3363
3364 * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
3365 (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
3366 (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
3367 (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
3368 (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
3369 (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
3370 (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
3371 (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
3372 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
3373 (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
3374 * c-common.c: ...from here.
3375
db91d9ef
MLI
33762009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
3377
f3afc8a7 3378 * c-common.c (warn_logical_operator): Remove unnecessary conditionals.
db91d9ef 3379
bbb9d91f
KG
33802009-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3381
3382 * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
3383
ce883f54
BE
33842009-05-19 Ben Elliston <bje@au.ibm.com>
3385
3386 * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
3387 assignments with memcpy calls.
3388 (add_fdes): Likewise.
3389 (binary_search_unencoded_fdes): Likewise.
3390 (linear_search_fdes): Eliminate type puns.
3391
377f099a
RG
33922009-05-19 Richard Guenther <rguenther@suse.de>
3393
3394 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
3395 not falsely claim to have propagated into all uses.
3396
848bc769
BE
33972009-05-19 Ben Elliston <bje@au.ibm.com>
3398
3399 * doc/invoke.texi (C Dialect Options): Update OpenMP specification
3400 version to v3.0.
3401
1bb99877
KK
34022009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
3403
3404 * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
3405 * config/sh/sh.c (sh_legitimate_address_p): Make static.
3406 (TARGET_LEGITIMATE_ADDRESS_P): New.
3407 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3408 * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
3409
82725547
DS
34102009-05-18 Dodji Seketeli <dodji@redhat.com>
3411
3412 PR debug/40109
3413 * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
3414 child of the containing namespace's DIE.
3415
f6a1e430
AN
34162009-05-18 Adam Nemet <anemet@caviumnetworks.com>
3417
3418 * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
3419 *zero_extendhi_truncqi): Move after the zero_extend patterns.
3420 (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
3421 extend patterns.
3422
6a90d232
L
34232009-05-18 H.J. Lu <hongjiu.lu@intel.com>
3424
3425 PR target/39942
3426 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
3427 gen_align with gen_pad.
3428 (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
3429 #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
3430
3431 * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
3432 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
3433
3434 * config/i386/i386.md (align): Renamed to ...
3435 (pad): This. Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
3436 ASM_OUTPUT_MAX_SKIP_PAD.
3437
c4406f74
AS
34382009-05-18 Andreas Schwab <schwab@linux-m68k.org>
3439
06555043
AS
3440 * config.gcc: Fix variable syntax.
3441
c4406f74
AS
3442 PR target/39531
3443 * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
3444 before calling exact_log2.
3445 (output_iorsi3): Likewise.
3446 (output_xorsi3): Likewise.
3447
99052692
KK
34482009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
3449
3450 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
3451 for the none zero constant operand except for EQ and NE
3452 comprisons even when the first operand is R0.
3453
f4aa3848
AK
34542009-05-18 Andreas Krebbel <krebbel1@de.ibm.com>
3455
3456 * config/s390/2064.md: Remove trailing whitespaces.
3457 * config/s390/2084.md: Likewise.
3458 * config/s390/constraints.md: Likewise.
3459 * config/s390/fixdfdi.h: Likewise.
3460 * config/s390/libgcc-glibc.ver: Likewise.
3461 * config/s390/s390-modes.def: Likewise.
3462 * config/s390/s390-protos.h: Likewise.
3463 * config/s390/s390.c: Likewise.
3464 * config/s390/s390.h: Likewise.
3465 * config/s390/s390.md: Likewise.
3466 * config/s390/tpf-unwind.h: Likewise.
3467
ab7256e4
MK
34682009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
3469
3470 * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
3471
75df395f
MK
34722009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
3473
3474 M68K TLS support.
3475 * configure.ac (m68k-*-*): Check if binutils support TLS.
3476 * configure: Regenerate.
3477 * config/m68k/predicates.md (symbolic_operand): Extend comment.
3478 * config/m68k/constraints.md (Cu): New constraint.
3479 * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
3480 (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
3481 (movsi): Handle TLS symbols.
3482 (addsi3_5200): Handle XTLS symbols, indent.
3483 * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
3484 (m68k_tls_reference_p): Declare.
3485 (m68k_legitimize_address): Declare.
3486 (m68k_unwrap_symbol): Declare.
3487 * config/m68k/m68k.opt (mxtls): New option.
3488 * config/m68k/m68k.c (ggc.h): Include.
3489 (m68k_output_dwarf_dtprel): Implement hook.
3490 (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
3491 (m68k_expand_prologue): Load GOT pointer when function needs it.
3492 (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
3493 (m68k_legitimate_constant_address_p): Same.
3494 (m68k_decompose_address): Handle TLS references.
3495 (m68k_get_gp): New static function.
3496 (enum m68k_reloc): New contants.
3497 (TLS_RELOC_P): New macro.
3498 (m68k_wrap_symbol): New static function.
3499 (m68k_unwrap_symbol): New function.
3500 (m68k_final_prescan_insn_1): New static function.
3501 (m68k_final_prescan_insn): New function.
3502 (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
3503 functions.
3504 (legitimize_pic_address): Handle TLS references..
3505 (m68k_tls_get_addr, m68k_get_tls_get_addr)
3506 (m68k_libcall_value_in_a0_p)
3507 (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
3508 (m68k_call_m68k_read_tp): Helper variables and functions for ...
3509 (m68k_legitimize_tls_address): Handle TLS references.
3510 (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
3511 New functions.
3512 (m68k_legitimize_address): Handle TLS symbols.
3513 (m68k_get_reloc_decoration): New static function.
3514 (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
3515 UNSPEC_RELOC32.
3516 (m68k_output_dwarf_dtprel): Implement hook.
3517 (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
3518 (m68k_libcall_value): Return result in A0 instead of D0 when asked by
3519 m68k_call_* routines.
3520 (sched_attr_op_type): Handle TLS symbols.
3521 (gt-m68k.h): Include.
3522 * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
3523 (LEGITIMATE_PIC_OPERAND_P): Support TLS.
3524
8b75fc9b
MJ
35252009-05-18 Martin Jambor <mjambor@suse.cz>
3526
3527 * ipa-prop.c (ipa_check_stmt_modifications): Removed.
3528 (visit_store_addr_for_mod_analysis): New function.
3529 (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
3530 (determine_cst_member_ptr): Use gimple_assign_single_p.
3531 (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
3532 (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
3533 operands. Don't check number of operands of a NOP_EXPR.
3534
f133d4a2
EF
35352009-05-18 Eric Fisher <joefoxreal@gmail.com>
3536
3537 * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
3538
ae8af500
L
35392009-05-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
3540
3541 PR c/40172
3542 * c-common.c (warn_logical_operator): Don't warn if one of
3543 expression isn't always true or false.
3544
25e8fde8
KT
35452009-05-17 Kai Tietz <kai.tietz@onevision.com>
3546
ae8af500
L
3547 * config/i386/biarch32.h: New file.
3548 * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
25e8fde8 3549
ef67af22
AN
35502009-05-17 Adam Nemet <anemet@caviumnetworks.com>
3551
3552 * config/mips/mips.md (*zero_extend<mode>_trunchi,
3553 *zero_extend<mode>_truncqi): Merge these into ...
3554 (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
3555 Name the pattern following this as *zero_extendhi_truncqi.
3556
e2d87023
BL
35572009-05-16 Brad Lucier <lucier@math.purdue.edu>
3558
3559 PR middle-end/39301
3560 * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
3561 * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
3562 (output_info): Make field HOST_WIDEST_INT.
3563 (print_statistics): Use HOST_WIDEST_INT_PRINT.
3564 (dump_bitmat_statistics): Same.
3565
428ddbf0
FXC
35662009-05-16 Francois-Xavier Coudert <fxcoudert@gmail.com>
3567
3568 * config.gcc (use_gcc_stdint): Set to wrap.
3569 * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
3570 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
3571 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
3572 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
3573 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
3574 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
3575 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
3576 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
3577
1ab8a8c2
JM
35782009-05-16 Joseph Myers <joseph@codesourcery.com>
3579
3580 * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
3581 tune_64.
3582 * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
3583 Move definitions earlier.
3584 (OPT_ARCH64, OPT_ARCH32): Define.
3585 (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
3586 and tune_64.
3587
70544f44
RE
35882009-05-16 Richard Earnshaw <rearnsha@arm.com>
3589
3590 PR target/40153
3591 * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
3592 implies.
3593
6241ded1
RE
35942009-05-16 Richard Earnshaw <rearnsha@arm.com>
3595
3596 * arm.md (movdi2): Copy non-reg values to DImode registers.
3597
a99c6711
JJ
35982009-05-16 Jakub Jelinek <jakub@redhat.com>
3599
40a8f07a
JJ
3600 PR target/39942
3601 * final.c (label_to_max_skip): New function.
3602 (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
3603 CODE_LABEL_NUMBER <= max_labelno.
3604 * output.h (label_to_max_skip): New prototype.
3605 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
3606 (ix86_avoid_jump_mispredicts): ... this. Don't define if
3607 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined. Update comment.
3608 Handle CODE_LABELs with >= 16 byte alignment or with
3609 max_skip == (1 << align) - 1.
3610 (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
3611 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
3612
a99c6711
JJ
3613 PR target/39942
3614 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
3615 .p2align 3 if MAX_SKIP is smaller than 7.
3616 * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
3617
7e5487a2
ILT
36182009-05-15 Ian Lance Taylor <iant@google.com>
3619
3620 * alias.c (struct alias_set_entry_d): Rename from struct
3621 alias_set_entry. Change all uses.
3622 * except.c (struct call_site_record_d): Rename from struct
3623 call_site_record. Change all uses.
3624 * except.h (struct eh_region_d): Rename from struct eh_region.
3625 Change all uses.
3626 * gcse.c (struct hash_table_d): Rename from struct hash_table.
3627 Change all uses.
3628 * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
3629 ivtype_map_elt. Change all uses.
3630 (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
3631 Change all uses.
3632 (struct ifsese_d): Rename fromstruct ifsese. Change all uses.
3633 * graphite.h (struct name_tree_d): Rename from struct name_tree.
3634 Change all uses.
3635 (struct sese_d): Rename from struct sese. Change all uses.
782dc37a
UB
3636 * omega.h (struct eqn_d): Rename from struct eqn. Change all uses.
3637 (struct omega_pb_d): Rename from struct omega_pb. Change all uses.
7e5487a2
ILT
3638 * optabs.h (struct optab_d): Rename from struct optab. Change all
3639 uses.
3640 (struct convert_optab_d): Rename from struct convert_optab.
3641 Change all uses.
3642 * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
3643 ipa_opt_pass. Change all uses.
3644 * tree-predcom.c (struct dref_d): Rename from struct dref. Change
3645 all uses.
3646
3647 * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
3648 defined as a typedef.
3649 (grokdeclarator): If -Wc++-compat, warn if a typedef is already
3650 defined as a tag.
3651
a243fb4a
MLI
36522009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
3653
3654 PR 16302
3655 * fold-const.c (make_range,build_range_check,merge_ranges): Move
3656 declaration to...
3657 (merge_ranges): Returns bool.
3658 * tree.h (make_range): .. to here.
3659 (build_range_check): Likewise.
3660 (merge_ranges): Likewise. Renamed from merge_ranges.
3661 * c-typeck.c (parser_build_binary_op): Update calls to
3662 warn_logical_operator.
3663 * c-common.c (warn_logical_operator): Add new warning.
3664 * c-common.h (warn_logical_operator): Update declaration.
3665
1b53c5f3
MLI
36662009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
3667
782dc37a 3668 * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
1b53c5f3 3669
c128599a
KG
36702009-05-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3671
f9bab007
KG
3672 * doc/install.texi: Document MPC requirements, flags etc.
3673
c128599a
KG
3674 * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
3675 (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
3676 Evaluate constant arguments.
3677 (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
3678 (fold_builtin_1): Likewise, also evaluate constant arguments.
3679 Remove superfluous break.
3680 (do_mpc_ckconv): New.
3681 * real.h: Include mpc.h.
3682 * toplev.c (print_version): Output MPC version info if available.
3683
d33e4b70
SL
36842009-05-15 Sandra Loosemore <sandra@codesourcery.com>
3685
782dc37a 3686 * fold-const.c (fold_convert_const_real_from_real): Check for overflow.
d33e4b70 3687
a02ab464
L
36882009-05-15 H.J. Lu <hongjiu.lu@intel.com>
3689
3690 * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
3691 only once.
3692
796bda22
JH
36932009-05-15 Jan Hubicka <jh@suse.cz>
3694
3695 * doc/invoke.texi (max-early-inliner-iterations): New flag.
3696 * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
3697 (try_inline): Fix return value.
3698 (cgraph_decide_inlining_incrementally): Honor new value.
3699 (cgraph_early_inlining): Handle indirect inlining.
3700 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
3701
d88e5c37
JH
37022009-05-15 Jan Hubicka <jh@suse.cz>
3703
3704 * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
3705 * cgraphunit.c (cgraph_finalize_function): Set it.
3706 (cgraph_expand_function): Use it.
3707
ae63687c
SL
37082009-05-15 Sandra Loosemore <sandra@codesourcery.com>
3709
3710 * real.c (encode_ieee_half): Define.
3711 (decode_ieee_half): Define.
3712 (ieee_half_format): Define.
3713 (arm_half_format): Define.
3714 * real.h (ieee_half_format): Declare.
3715 (arm_half_format): Declare.
3716
1bd74ad9
SL
37172009-05-15 Sandra Loosemore <sandra@codesourcery.com>
3718
3719 * optabs.c (prepare_float_lib_cmp): Test that the comparison,
3720 swapped, and reversed optabs exist before trying to use them.
3721
dc34db56
PB
37222009-05-15 Paul Brook <paul@codesourcery.com>
3723 Sandra Loosemore <sandra@codesourcery.com>
3724
dc34db56
PB
3725 * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
3726 loads. Allow PRE_DEC.
3727 (output_move_neon): Handle PRE_DEC.
3728 (arm_print_operand): Add 'A' for neon structure loads.
3729 * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
3730 * config/arm/neon.md (neon_mov): Update comment.
3731 * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
3732 calls.
3733 (Um): New constraint.
3734
1d405d7b
JH
37352009-05-15 Jan Hubicka <jh@suse.cz>
3736
3737 Revert the following patch until testsuite fallout is fixed:
3738 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
3739 * cgraph.h (struct inline_summary): New filed self_wize,
3740 size_inlining_benefit, self_time and time_inlining_benefit.
3741 (struct cgraph_global_info): Replace insns by time ans size fields.
3742 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
3743 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
3744 (ipcp_update_callgraph): Do not touch function bodies.
3745 * ipa-inline.c: Include except.h
782dc37a 3746 (MAX_TIME): New constant.
1d405d7b
JH
3747 (overall_insns): Remove
3748 (overall_size, max_benefit): New static variables.
3749 (cgraph_estimate_time_after_inlining): New function.
3750 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
3751 (cgraph_clone_inlined_nodes): Update size.
3752 (cgraph_mark_inline_edge): Update size.
3753 (cgraph_estimate_growth): Use size info.
3754 (cgraph_check_inline_limits): Check size.
3755 (cgraph_default_inline_p): Likewise.
3756 (cgraph_edge_badness): Compute badness based on benefit and size cost.
3757 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
3758 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
3759 and times.
1d405d7b 3760 (cgraph_decide_inlining): Likewise.
00c5fa1b
EB
3761 (cgraph_decide_inlining_incrementally): Likewise; honor
3762 PARAM_EARLY_INLINING_INSNS.
1d405d7b
JH
3763 (likely_eliminated_by_inlining_p): New predicate.
3764 (estimate_function_body_sizes): New function.
3765 (compute_inline_parameters): Use it.
3766 * except.c (must_not_throw_labels): New function.
3767 * except.h (must_not_throw_labels): Declare.
3768 * tree-inline.c (init_inline_once): Kill inlining_weigths
3769 * tree-ssa-structalias.c: Avoid uninitialized warning.
3770 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
3771 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
3772 (PARAM_INLINE_CALL_COST): Remove.
3773 (PARAM_EARLY_INLINING_INSNS): New.
3774
7ffa47ca
RG
37752009-05-15 Richard Guenther <rguenther@suse.de>
3776
3777 * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
3778 not TODO_update_ssa.
3779
828552ed
RG
37802009-05-15 Richard Guenther <rguenther@suse.de>
3781
3782 PR tree-optimization/39999
3783 * gimple.h (gimple_expr_type): Use the expression type looking
3784 through useless conversions.
3785 * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
3786 (vn_nary_op_insert_stmt): Likewise.
3787 (simplify_binary_expression): Likewise.
3788
248fc9f3
RG
37892009-05-15 Richard Guenther <rguenther@suse.de>
3790
3791 * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
3792 New options, enabled by default.
3793 * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
3794 Document.
3795 * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
3796 * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
3797 * tree-ssa-structalias.c (gate_tree_pta): New function.
3798 (pass_build_alias): Use it.
3799
16b29cc4
JM
38002009-05-15 Joseph Myers <joseph@codesourcery.com>
3801
3802 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
3803 recurse on an invariant address if a conversion from a pointer
3804 type to a wider integer type is involved.
3805
125cae84
JH
38062009-05-15 Jan Hubicka <jh@suse.cz>
3807
3808 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
3809 * cgraph.h (struct inline_summary): New filed self_wize,
3810 size_inlining_benefit, self_time and time_inlining_benefit.
3811 (struct cgraph_global_info): Replace insns by time ans size fields.
3812 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
3813 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
3814 (ipcp_update_callgraph): Do not touch function bodies.
3815 * ipa-inline.c: Include except.h
782dc37a 3816 (MAX_TIME): New constant.
125cae84
JH
3817 (overall_insns): Remove
3818 (overall_size, max_benefit): New static variables.
3819 (cgraph_estimate_time_after_inlining): New function.
3820 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
3821 (cgraph_clone_inlined_nodes): Update size.
3822 (cgraph_mark_inline_edge): Update size.
3823 (cgraph_estimate_growth): Use size info.
3824 (cgraph_check_inline_limits): Check size.
3825 (cgraph_default_inline_p): Likewise.
3826 (cgraph_edge_badness): Compute badness based on benefit and size cost.
3827 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
3828 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
3829 and times.
125cae84 3830 (cgraph_decide_inlining): Likewise.
00c5fa1b
EB
3831 (cgraph_decide_inlining_incrementally): Likewise; honor
3832 PARAM_EARLY_INLINING_INSNS.
125cae84
JH
3833 (likely_eliminated_by_inlining_p): New predicate.
3834 (estimate_function_body_sizes): New function.
3835 (compute_inline_parameters): Use it.
3836 * except.c (must_not_throw_labels): New function.
3837 * except.h (must_not_throw_labels): Declare.
3838 * tree-inline.c (init_inline_once): Kill inlining_weigths
3839 * tree-ssa-structalias.c: Avoid uninitialized warning.
3840 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
3841 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
3842 (PARAM_INLINE_CALL_COST): Remove.
3843 (PARAM_EARLY_INLINING_INSNS): New.
3844 doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
3845 (inline-call-cost): Remove.
3846 (early-inlining-insns): New.
3847
84fb43a1
EB
38482009-05-15 Eric Botcazou <ebotcazou@adacore.com>
3849
3850 * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters. Use them
3851 for bounds.
3852 (print_int_cst_bounds_in_octal_p): Likewise.
3853 (dbxout_type): Adjust calls to above functions. Be prepared to deal
3854 with subtypes.
3855 * dwarf2out.c (base_type_die): Likewise.
3856 (is_subrange_type): Delete.
3857 (subrange_type_die): Add LOW and HIGH parameters. Use them for bounds.
3858 (modified_type_die): Call subrange_type_for_debug_p on subtypes.
f3afc8a7
UB
3859 * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it
3860 if the destination type is boolean.
84fb43a1
EB
3861 (build_range_check): Do not special-case subtypes.
3862 (fold_sign_changed_comparison): Likewise.
3863 (fold_unary): Likewise.
3864 * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
3865 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
3866 * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
f3afc8a7
UB
3867 * tree.c (subrange_type_for_debug_p): New predicate based on the
3868 former is_subrange_type.
84fb43a1
EB
3869 * tree.h (subrange_type_for_debug_p): Declare.
3870 * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
3871 (convert_affine_scev): Remove call to above function.
3872 (chrec_convert_aggressive): Likewise.
3873 * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
3874 false for conversions involving subtypes.
3875 * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
3876 (vrp_val_min): Likewise.
3877 (needs_overflow_infinity): Likewise.
3878 (extract_range_from_unary_expr): Likewise.
3879
331d9186
PB
38802009-05-15 Paolo Bonzini <bonzini@gnu.org>
3881
e9351712
L
3882 * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
3883 * config/frv/frv.c: Likewise.
3884 * config/s390/s390.c: Likewise.
3885 * config/sparc/sparc.h: Likewise.
3886 * config/i386/i386.h: Likewise.
3887 * config/i386/i386.c: Likewise.
3888 * config/crx/crx.c: Likewise.
3889 * config/m68hc11/m68hc11.h: Likewise.
3890 * config/iq2000/iq2000.c: Likewise.
3891 * config/mn10300/mn10300.h: Likewise.
3892 * config/mn10300/mn10300.c: Likewise.
3893 * config/m68k/m68k.c: Likewise.
3894 * config/rs6000/rs6000.c: Likewise.
3895 * config/rs6000/xcoff.h: Likewise.
3896 * config/rs6000/linux64.h: Likewise.
3897 * config/rs6000/sysv4.h: Likewise.
3898 * config/score/score3.c: Likewise.
3899 * config/score/score7.c: Likewise.
3900 * config/score/score.c: Likewise.
3901 * config/arm/arm.md: Likewise.
3902 * config/mips/mips.c: Likewise.
3903 * config/mips/mips.md: Likewise.
3904 * config/bfin/bfin.h: Likewise.
3905 * config/pa/pa.c: Likewise.
3906 * config/pa/constraints.md: Likewise.
3907
3908 * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
3909 * config/pdp11/pdp11.c (legitimate_address_p): Delete.
3910 * config/pdp11/pdp11.h: Use memory_address_p instead.
331d9186 3911
09639a83
ILT
39122009-05-14 Ian Lance Taylor <iant@google.com>
3913
3914 * passes.c (finish_optimization_passes): Change i to int.
3915 * plugin.c (plugins_active_p): Change event to int.
3916 (dump_active_plugins): Likewise.
3917 * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
3918 Add cast.
3919 * tree.c (tree_range_check_failed): Change c to unsigned int.
3920 (omp_clause_range_check_failed): Likewise.
3921 (build_common_builtin_nodes): Change mode to int. Add cast.
3922 * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
3923 (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
3924
3925 * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
3926 ++ or -- with a variable of enum type.
3927
c04a56bf
SB
39282009-05-14 Steven Bosscher <steven@gcc.gnu.org>
3929
3930 PR driver/40144
3931 * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
3932
237ee620
SB
39332009-05-14 Steven Bosscher <steven@gcc.gnu.org>
3934
3935 * store-motion.c: Do not include params.h
3936 * Makefile.in: Fix dependencies for various files.
3937
1154c4fa
SB
39382009-05-14 Steven Bosscher <steven@gcc.gnu.org>
3939
3940 * auto-inc-dec.c: Fix pass description, remove apparent
3941 accidental duplication.
3942
61c27353
L
39432009-05-14 H.J. Lu <hongjiu.lu@intel.com>
3944
3945 PR middle-end/40147
3946 * ipa-utils.h (memory_identifier_string): Moved to ...
3947 * tree.h (memory_identifier_string): Here. Add GTY(()).
3948
c6c3dba9
PB
39492009-05-14 Paolo Bonzini <bonzini@gnu.org>
3950
3951 * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
3952 in the former documentation of...
3953 (GO_IF_LEGITIMATE_ADDRESS): ... this.
3954 * ira-conflicts.c (get_dup_num): Use address_operand.
3955 * targhooks.c (default_legitimate_address_p): New.
3956 * targhooks.h (default_legitimate_address_p): New.
3957 * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
3958 Call hook.
3959 * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
3960 * target.h (struct target): Add legitimate_address_p.
3961 * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
3962 (TARGET_INITIALIZER): Include it.
3963
3964 * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3965 * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
3966 * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
3967 (TARGET_LEGITIMATE_ADDRESS_P): New.
3968
3969 * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3970 (REG_OK_STRICT_P): Delete.
3971 * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
3972 (frv_legitimate_address_p_1): ... this.
3973 * config/frv/frv.c (frv_legitimate_address_p): Forward to...
3974 (frv_legitimate_address_p_1): ... the renamed old
3975 frv_legitimate_address_p.
3976 * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
3977 (TARGET_LEGITIMATE_ADDRESS_P): New.
3978
3979 * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3980 * config/s390/s390-protos.h (legitimate_address_p): Remove.
3981 * config/s390/s390.c (legitimate_address_p): Rename to...
3982 (s390_legitimate_address_p): ... this, make static.
3983 (legitimize_address): Adjust call.
3984 (TARGET_LEGITIMATE_ADDRESS_P): New.
3985 * config/s390/constraints.md ("e"): Call strict_memory_address_p.
3986
3987 * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3988 * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
3989 * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
3990 (TARGET_LEGITIMATE_ADDRESS_P): New.
3991
3992 * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3993 * config/spu/spu-protos.h (spu_legitimate_address): Remove.
3994 * config/spu/spu.c (spu_legitimate_address): Rename to...
3995 (spu_legitimate_address_p): ... this, make static.
3996 (TARGET_LEGITIMATE_ADDRESS_P): New.
3997
3998 * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3999 * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
4000 * config/sparc/sparc.c (legitimate_address_p): Rename to...
4001 (sparc_legitimate_address_p): ... this, make static and return bool.
4002 (legitimize_address): Adjust call.
4003 (TARGET_LEGITIMATE_ADDRESS_P): New.
4004
4005 * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4006 * config/i386/i386-protos.h (legitimate_address_p): Remove.
4007 * config/i386/i386.c (legitimate_address_p): Rename to...
4008 (ix86_legitimate_address_p): ... this, make static.
4009 (constant_address_p): Move after it, adjust call.
4010 (TARGET_LEGITIMATE_ADDRESS_P): New.
4011
4012 * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4013 * config/avr/avr-protos.h (legitimate_address_p): Remove.
4014 * config/avr/avr.c (legitimate_address_p): Rename to...
4015 (avr_legitimate_address_p): ... this, make static.
4016 (legitimize_address): Adjust call.
4017 (TARGET_LEGITIMATE_ADDRESS_P): New.
4018
4019 * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4020 * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
4021 * config/crx/crx.c (crx_legitimate_address_p): Make static.
4022 (TARGET_LEGITIMATE_ADDRESS_P): New.
4023
4024 * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4025 * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
4026 * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
4027 (TARGET_LEGITIMATE_ADDRESS_P): New.
4028
4029 * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4030 * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
4031 Remove.
4032 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
4033 Make static.
4034 (TARGET_LEGITIMATE_ADDRESS_P): New.
4035
4036 * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4037 * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
4038 Remove.
4039 * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
4040 Rename to...
4041 (m68hc11_legitimate_address_p): ... this, make static.
4042 (go_if_legitimate_address_internal): Rename to...
4043 (m68hc11_legitimate_address_p_1): ... this.
4044 (legitimize_address): Adjust call.
4045 (TARGET_LEGITIMATE_ADDRESS_P): New.
4046
4047 * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
782dc37a
UB
4048 * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
4049 * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
c6c3dba9
PB
4050 (TARGET_LEGITIMATE_ADDRESS_P): New.
4051
4052 * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4053 * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
4054 * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
4055 (mn10300_legitimate_address_p): ... this, make static.
4056 (TARGET_LEGITIMATE_ADDRESS_P): New.
4057
4058 * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4059 * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
4060 * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
4061 (TARGET_LEGITIMATE_ADDRESS_P): New.
4062
4063 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4064 (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
4065 (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
4066 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4067 * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
4068 * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
4069 (rs6000_legitimate_address_p): ... this, make static.
4070 (TARGET_LEGITIMATE_ADDRESS_P): New.
4071 (REG_MODE_OK_FOR_BASE_P): Delete.
4072 (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
4073
4074 * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4075 * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
4076 Delete.
4077 * config/picochip/picochip.c (picochip_legitimate_address_p): Make
4078 static, adjust types.
4079 (TARGET_LEGITIMATE_ADDRESS_P): New.
4080
4081 * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4082 * config/score/score.c (score_address_p): Rename to...
4083 (score_legitimate_address_p): ... this.
4084 (TARGET_LEGITIMATE_ADDRESS_P): New.
4085 * config/score/score3.c (score3_address_p): Rename to...
4086 (score3_legitimate_address_p): ... this.
4087 * config/score/score7.c (score7_address_p): Rename to...
4088 (score7_legitimate_address_p): ... this.
4089
4090 * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
4091 THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
4092 GO_IF_LEGITIMATE_ADDRESS): Delete.
4093 * config/arm/arm-protos.h (thumb1_legitimate_address_p,
4094 thumb2_legitimate_address_p): Delete.
4095 (arm_legitimate_address_p): Rename to...
4096 (arm_legitimate_address_outer_p): ... this.
4097 * config/arm/constraints.md ("Uq"): Adjust call.
4098 * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
f3afc8a7
UB
4099 * config/arm/arm.c (arm_legitimate_address_p): New, rename old one
4100 to...
c6c3dba9 4101 (arm_legitimate_address_outer_p): ... this.
f3afc8a7
UB
4102 (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make
4103 static.
c6c3dba9
PB
4104 (TARGET_LEGITIMATE_ADDRESS_P): New.
4105
4106 * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4107 * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
4108 * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
4109 (TARGET_LEGITIMATE_ADDRESS_P): New.
4110
4111 * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4112 * config/vax/vax-protos.h (legitimate_address_p): Remove.
4113 * config/vax/vax.c (legitimate_address_p): Rename to...
4114 (vax_legitimate_address_p): ... this, make static.
4115 (TARGET_LEGITIMATE_ADDRESS_P): New.
4116
4117 * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4118 * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
4119 * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
4120 (TARGET_LEGITIMATE_ADDRESS_P): New.
4121
4122 * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4123 * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
4124 * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
4125 (mmix_legitimate_address_p): ... this, make static.
4126 (TARGET_LEGITIMATE_ADDRESS_P): New.
4127
4128 * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4129 * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
4130 * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
4131 (TARGET_LEGITIMATE_ADDRESS_P): New.
4132
3bd0d9c8
PB
41332009-05-14 Paolo Bonzini <bonzini@gnu.org>
4134
4135 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
4136 of MODE_COMPLEX_INT.
4137
fe049033
RO
41382009-05-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4139
4140 * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
4141 LCT_NORMAL in function call.
4142 * mips-tdump.c (print_file_desc): Add cast to enum type.
4143 * mips-tfile.c (add_ext_symbol): Add casts to enum types.
4144 (mark_stabs): Add casts to enum types.
4145 (parse_stabs_common): Add casts to enum types.
16f7ad42 4146
b0907a6c
AN
41472009-05-13 Adam Nemet <anemet@caviumnetworks.com>
4148
4149 * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
4150 Check for invalid values of LETTER.
4151
d1c8e08a
TG
41522009-05-13 Taras Glek <tglek@mozilla.com>
4153
f3afc8a7
UB
4154 * attribs.c (register_attribute): moved out attribute registration
4155 into register_attribute.
4156 * doc/plugins.texi: Documented register_attribute and
4157 PLUGIN_ATTRIBUTES.
16f7ad42
TG
4158 * gcc-plugin.h: Added forward decl for register_attribute.
4159 * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
4160 * plugin.c (register_callback, invoke_plugin_callbacks): Added
4161 PLUGIN_ATTRIBUTES boilerplate.
d1c8e08a 4162
4ed7f970
DK
41632009-05-14 Dave Korn <dave.korn.cygwin@gmail.com>
4164
4165 * config/i386/msformat-c.c (ms_printf_length_specs): Use enumeration
4166 values even in sentinel and empty entries.
4167 (ms_printf_flag_specs): Likewise.
4168 (ms_scanf_flag_specs): Likewise.
4169 (ms_strftime_flag_specs): Likewise.
4170 (ms_print_char_table): Likewise.
4171 (ms_scan_char_table): Likewise.
4172 (ms_time_char_table): Likewise.
4173
3d8fa148
DK
41742009-05-13 Doug Kwan <dougkwan@google.com>
4175
4176 * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
4177
f06257d3
AN
41782009-05-13 Adam Nemet <anemet@caviumnetworks.com>
4179
4180 * config/mips/mips.md (store): Add attributes for QI and HI.
4181 Update comment.
4182 (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
4183 (truncdi<mode>2): ... this new pattern.
4184
fb201767
BH
41852009-05-13 Brad Hards <bradh@kde.org>
4186
4187 * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
4188
c7bda60e 41892009-05-14 Jakub Jelinek <jakub@redhat.com>
efc3527a
BE
4190 Ben Elliston <bje@au.ibm.com>
4191
4192 PR middle-end/40035
4193 * dse.c (check_mem_read_rtx): Guard against width == -1.
4194
ce985b43
MM
41952009-05-13 Michael Matz <matz@suse.de>
4196
4197 PR middle-end/39976
4198 * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
4199 (trivially_conflicts_p): New function.
4200 (insert_backedge_copies): Use it.
4201
7de1d221
JJ
42022009-05-13 Janis Johnson <janis187@us.ibm.com>
4203
4204 * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
4205 (handle_stdc_pragma): Use new enum constant names.
4206 (handle_pragma_float_const_decimal64): Ditto.
4207
bfefafc6
ILT
42082009-05-13 Ian Lance Taylor <iant@google.com>
4209
4210 * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
4211 tree.def.
4212
286c4fcb
NS
42132009-05-13 Nathan Sidwell <nathan@codesourcery.com>
4214
4215 * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
4216 * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
4217 multilibs.
4218 * config/m68k/m68k.h (FL_UCLINUX): Define.
4219
ebaa6ea7
JH
42202009-05-13 Jan Hubicka <jh@suse.cz>
4221
4222 * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
4223
2b703e1a
KK
42242009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
4225
4226 * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
4227 unless -fschedule-insns is specified.
4228
c3537723
KK
42292009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
4230
4231 PR target/39561
4232 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
4233 TARGET_EXPAND_CBRANCHDI4.
4234 * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
4235 * config/sh/sh.opt (mexpand-cbranchdi): Remove.
4236 (cmpeqdi): Fix comment.
4237
cdeed45a
KK
42382009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
4239
4240 * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
4241 (sh_legitimate_address_p): Likewise.
4242 * config/sh/sh.c (sh_legitimate_index_p): New.
4243 (sh_legitimate_address_p): Likewise.
4244 * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
4245 (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
4246 (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
4247 (MAYBE_BASE_REGISTER_RTX_P): New macro.
4248 (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
4249 (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
4250 (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
4251 (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
4252 (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
4253
02f0b13a
JH
42542009-05-12 Jan Hubicka <jh@suse.cz>
4255
4256 * tree-inline.c (estimate_operator_cost): Add operands;
4257 when division happens by constant, it is cheap.
4258 (estimate_num_insns): Loads and stores are not having cost of 0;
4259 EH magic stuff is cheap; when computing runtime cost of switch,
4260 use log2 base of amount of its cases; builtin_expect has cost of 0;
4261 compute cost for moving return value of call.
4262 (init_inline_once): Initialize time_based flags.
4263 * tree-inline.h (eni_weights_d): Add time_based flag.
4264
ecb7f6de
PB
42652009-05-12 Paolo Bonzini <bonzini@gnu.org>
4266
4267 * df-core.c: Update head documentation.
4268
c24151ce
MM
42692009-05-12 Michael Meissner <meissner@linux.vnet.ibm.com>
4270
4271 PR bootstrap/40118
4272 * rs6000.c (rs6000_generate_compare): Use op1b instead of
4273 shadowing exisiting variable op1.
4274
fbdf817d
UB
42752009-05-12 Uros Bizjak <ubizjak@gmail.com>
4276
704bf7c8 4277 PR target/37179
fbdf817d
UB
4278 * config/i386/driver-i386.c (processor_signatures): New enum.
4279 (SIG_GEODE): Move from vendor_signatures to processor_signatures.
4280 (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
4281 processor signature to detect geode processor.
4282
5e8d1826
PB
42832009-05-12 Paolo Bonzini <bonzini@gnu.org>
4284
4285 Revert:
4286
4287 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
4288
4289 * optabs.c (prepare_cmp_insn): Temporarily disable test that
4290 causes spurious differences between trunk and cond-optab branch.
4291
f90b7a5a
PB
42922009-05-12 Paolo Bonzini <bonzini@gnu.org>
4293
fbdf817d
UB
4294 * dojump.c (compare_from_rtx): Delete.
4295 * expmed.c (emit_store_flag): Only try cstore_optab. Canonicalize
4296 any MODE_CC mode to the cstorecc4 pattern. Use prepare_operand, fail
f90b7a5a
PB
4297 if the comparison does not satisfy the predicate; test predicates for
4298 operands 2 and 3 of a cstore pattern. Don't try cstore optab
4299 further if one existing pattern fails.
fbdf817d 4300 * expr.h (compare_from_rtx): Delete.
f90b7a5a 4301 (prepare_operand): Declare it.
fbdf817d 4302 * optabs.c: Change "lib call" to "libcall" throughout.
f90b7a5a 4303 (bcc_gen_fctn, setcc_gen_code, trap_rtx,
fbdf817d
UB
4304 HAVE_conditional_trap, emit_cmp_insn): Delete.
4305 (can_compare_p): Delete cmp_optab case.
f90b7a5a 4306 (prepare_float_lib_cmp): Return an rtx and a machine mode.
fbdf817d
UB
4307 Accept other parameters by value.
4308 (prepare_operand): Make non-static.
4309 (prepare_cmp_insn): Return an rtx and a machine mode. Accept
4310 other parameters by value. Try to widen operands here based on
4311 an optab_methods argument and looking at cbranch_optab.
4312 (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
4313 loop. Use cbranch_optab directly.
4314 (emit_cmp_and_jump_insns): Fix comment. Adjust call to
4315 prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
4316 assertion.
4317 (emit_conditional_move, emit_conditional_add): Inline what's needed
4318 of compare_from_rtx, using new prepare_cmp_insn for the rest.
4319 (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
4320 with COMPARE. Move cmov_optab and cstore_optab above
4321 with cbranch_optab, move cmp_optab down with ucmp_optab,
4322 remove tst_otpab. Do not initialize trap_rtx.
4323 (gen_cond_trap): Do it here. Use ctrap_optab. Test predicate
f90b7a5a
PB
4324 for trap code. Do not check HAVE_conditional_trap. Use
4325 prepare_cmp_insn. Accept no predicate for operand 3.
fbdf817d
UB
4326 * optabs.h (OTI_cmp): Mark as used only for libcalls.
4327 (OTI_ctrap, ctrap_optab): New.
4328 (tst_optab): Delete.
4329 (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
4330 * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
4331 with lookup of ctrap_optab.
f3afc8a7
UB
4332 * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn, setcc_gen_code):
4333 Delete.
fbdf817d
UB
4334 (ctrap_optab): New.
4335
4336 * combine.c (combine_simplify_rtx, simplify_set): Do not
4337 special case comparing against zero for cc0 machines.
f90b7a5a
PB
4338 * simplify-rtx.c (simplify_binary_operation_1): Never remove
4339 COMPARE on cc0 machines.
4340 (simplify_relational_operation): Return a new expression when
4341 a COMPARE could be removed.
fbdf817d
UB
4342 * final.c (final_scan_insn): Compare cc_status values
4343 against LHS of a (compare FOO (const_int 0)) cc0 source.
4344 Also check if cc_status.value is the full compare.
f90b7a5a 4345
fbdf817d
UB
4346 * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
4347 (cstoreMM4): Document.
f90b7a5a 4348 (conditional_trap): Document ctrapMM4 instead.
fbdf817d 4349 (sync_compare_and_swapMM): Refer to cbranchcc4.
f90b7a5a
PB
4350 (Dependent Patterns): Eliminate obsolete information referring to
4351 the old jump optimization phase.
fbdf817d 4352 (Canonicalization): Include cbranchcc4 case, omit canonicalization
f90b7a5a
PB
4353 of compares with 0 on cc0 machines.
4354 (Jump Patterns): Refer to MODE_CC jump patterns preferably,
4355 avoiding references to cc0. Remove text about storing operands
4356 in cmpMM.
4357 * doc/tm.texi (Condition Codes): Include blurb on different
4358 condition code representations, separate into subsections for
4359 CC0, MODE_CC and conditional execution.
4360
fbdf817d
UB
4361 * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
4362 alpha_emit_setcc): Accept operands and a machine mode.
4363 * config/alpha/alpha.c (alpha_emit_conditional_branch):
4364 Get code/op0/op1 from operands, use machine mode argument
4365 instead of alpha_compare.fp_p. Emit the branch here.
4366 (alpha_emit_setcc): Likewise, and return boolean.
4367 (alpha_emit_conditional_move): Likewise. Assert that
4368 cmp_op_mode == cmp_mode, and simplify accordingly.
4369 * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
4370 * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
4371 (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
4372 Delete.
4373 (stack probe test): Use cbranchdi4.
4374 * config/alpha/predicates.md (alpha_cbranch_operator): New.
4375
4376 * config/arc/arc.c (gen_compare_reg): Do not emit cmp.
4377 * config/arc/arc.h (movsicc, movsfcc): Use it.
4378 (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
4379 (cbranchsi4, cstoresi4): New.
4380 (cmpsi, bCC and sCC expanders): Remove.
4381
4382 * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
4383 * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
4384 * config/arm/predicates.md (arm_comparison_operator): Only include
4385 floating-point operators if there is a hardware floating-point unit.
4386 * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
4387 deferring to cbranch_cc and cstore_cc respectively.
4388 (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
4389 cbranch_cc, cstore_cc): New.
4390 (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
f90b7a5a 4391 arm_compare_op1.
fbdf817d
UB
4392 (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
4393
4394 * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
4395 * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
4396 as an argument.
4397 (adjust_insn_length): Adjust calls.
4398 (avr_reorg): Handle (compare (foo) (const_int 0)).
4399 * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
4400 (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
4401 (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
4402 (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
4403 (bCC): Remove.
4404 (cbranchqi4, cbranchhi4, cbranchsi4): New.
f90b7a5a
PB
4405 (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
4406
fbdf817d
UB
4407 * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
4408 (cbranchsi4, cstorebi4, cstoresi4): New.
f90b7a5a 4409 (movbisi): This insn is duplicate, split it to zero_extend.
fbdf817d
UB
4410 * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
4411 (bfin_gen_compare): Do not use them. Emit VOIDmode SET, not BImode.
4412 (bfin_optimize_loop): Use cbranch expander.
4413 * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
4414 * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
4415 (bfin_bimode_comparison_operator): ... this.
4416 (bfin_direct_comparison_operator): New.
f90b7a5a 4417
fbdf817d
UB
4418 * config/cris/cris.c (cris_normal_notice_update_cc): Look
4419 inside (compare FOO (const_int 0)).
4420 (cris_rtx_costs): Handle ZERO_EXTRACT.
4421 * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
4422 (*tstdi_non_v32): Fold in *cmpdi_non_v32.
4423 (*tstdi_v32): Delete.
4424 (*cmpdi_non_v32): Add M alternative for operand 1.
4425 (cmpsi, cmp<mode>): Make private.
4426 (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
4427 with COMPARE.
4428 (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
4429
4430 * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
4431 (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
4432 (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
f90b7a5a
PB
4433 (cc_reg_operand): New.
4434 (any_cond): Delete.
fbdf817d
UB
4435 * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
4436 crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
4437 * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
4438 * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
4439 crx_expand_scond): Delete.
4440
4441 * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
4442 (cbranchsi4): New.
4443 * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
4444 * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
4445
4446 * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
4447 cstoresi4, cstoresf4, cstoredf4): New.
4448 (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
4449 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
4450 Receive the entire operands array.
4451 * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
4452 * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
4453 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
4454 Get test/op0/op1 from the operands array.
4455 (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
4456
4457 * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
4458 (h8300_expand_store): New.
4459 * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
4460 (const_int 0)).
4461 (h8300_expand_branch): Emit compare here. Adjust for new arguments.
4462 (h8300_expand_store): New.
4463 * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
4464 or do not try to produce (set (cc0) REG).
4465 (peepholes): Wrap arguments with COMPARE. Add a peephole to
4466 change a compare into a move to a scratch register. Disable some
4467 peepholes when comparing with zero.
4468 (tstsi, tsthi, tstsi, cmpqi): Make private.
4469 (cmphi): Delete.
4470 (bCC, sCC): Delete.
4471 (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
4472 cstoresi4): New.
f90b7a5a
PB
4473
4474 * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
4475 ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
4476 (ix86_emit_i387_log1p): Use gen_cbranchxf4.
4477 (ix86_emit_i387_log1p): Use cbranchxf2.
4478 (ix86_expand_setcc): Return void.
4479 * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
4480 * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
4481 cmp<MODEF>, cmpcc): Remove.
fbdf817d
UB
4482 (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
4483 cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
4484 cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
f90b7a5a
PB
4485 (sCC and bCC expanders): Remove.
4486 (stack_protect_test): Use cbranchcc4.
4487
fbdf817d
UB
4488 * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
4489 Delete.
4490 (ia64_expand_compare): Accept three rtx by reference and return void.
4491 * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
4492 (ia64_expand_compare): Replace op0/op1 with *op0/*op1. Get code
4493 from *expr. Update *expr with the BImode comparison to do.
4494 * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
4495 cmptf, bCC, sCC, conditional_trap): Delete.
4496 (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4,
4497 cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
4498 cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
4499 ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
4500 * config/ia64/predicates.md (ia64_cbranch_operator): New.
4501
4502 * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
4503 type of last argument.
4504 * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
4505 (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
4506 use machine mode argument instead of branch_type. Remove dead
4507 code for floating-point comparisons.
4508 * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
4509 * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
4510 Remove.
4511 (cbranchsi4, cstoresi4): New.
4512 * config/iq2000/predicates.md (reg_or_const_operand): New.
4513
4514 * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
4515 * config/m32c/m32c.md (any_cond, gl_cond): Delete.
4516 (b<code>_op): Rewrite to...
4517 (bcc_op): ... this, using match_operator.
4518 (s<code>_op): Rewrite to...
4519 (scc_op): ... this, using match_operator.
4520 (s<code>_24_op): Rewrite to...
4521 (scc_op_24): ... this, using match_operator.
4522 (s<code>_<mode>): Rewrite to...
4523 (cstore<mode>4): ... this, using match_operator.
4524 (s<code>_<mode>_24): Rewrite to...
4525 (cstore<mode>4_24): ... this, using match_operator.
4526 * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
4527 m32c_unpend_compare, m32c_expand_scc): Delete.
4528 * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
4529 m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
4530 (m32c_expand_movcc): Change NE to EQ if necessary.
4531 (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
4532
4533 * config/m32r/m32r-protos.h (gen_cond_store): New.
4534 * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
4535 (gen_cond_store): New, from sCC patterns.
4536 (m32r_expand_block_move): Use cbranchsi4.
4537 * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
4538 * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
4539 (cbranchsi4, cstoresi4): New.
4540
4541 * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
4542 Delete.
4543 (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
f90b7a5a 4544 (m68hc11_notice_update_cc): Look into a compare with 0.
fbdf817d
UB
4545 * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
4546 Delete.
4547 * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
4548 cmphi, cmpqi, bCC): Delete.
4549 (cbranchsi4, cbranchhi4, cbranchqi4): New.
4550 (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
4551 bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
4552 sets with COMPARE.
4553
4554 * config/m68k/predicates.md (m68k_cstore_comparison_operator,
4555 const0_operand, const1_operand, m68k_subword_comparison_operand): New.
4556 * config/m68k/constraints.md (H): New.
4557 * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
4558 the define_insn below.
4559 (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
4560 (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
4561 *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
4562 patterns): Wrap RHS with COMPARE.
4563 (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
4564 (*cmpdi_internal): Name this pattern.
4565 (cmpdi): Change to define_insn.
4566 (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
4567 cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
4568 (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
4569 predicate.
4570 (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
4571 sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
4572 (conditional_trap): Change to...
4573 (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
4574 (*conditional_trap): Use the ordered_comparison_operator and
4575 const1_operand predicates.
4576 * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
4577 (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
4578 (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
4579 * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
4580
4581 * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
4582 mcore_modify_comparison, mcore_gen_compare_reg): Remove.
4583 (mcore_gen_compare): New.
4584 * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
4585 (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
4586 (mcore_gen_compare): ... this.
4587 * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
4588 (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
4589 (stack probe pattern): Use cbranchsi4.
4590
4591 * config/mips/predicates.md (mips_cstore_operator): New.
4592 * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
4593 * config/mips/mips.md (any_cond): Delete.
4594 (conditional_trap): Rename to ctrap<GPR:mode>4. Adjust predicates,
4595 always succeed.
4596 (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
4597 fixuns_truncsfdi2): Use cbranch patterns.
4598 (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete.
4599 (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
4600 Adjust call to mips_expand_conditional_branch.
4601 (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
4602 cstore<GPR:mode>4.
4603 * config/mips/mips-protos.h (mips_expand_conditional_branch,
4604 mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
4605 * config/mips/mips.c (cmp_operands): Delete.
4606 (mips_emit_compare): Get comparison operands from *op0/*op1.
4607 (mips_expand_scc): Get code/op0/op1/target from operands. Assert
4608 that it succeeds. Use op0/op1 instead of cmp_operands.
4609 (mips_expand_conditional_branch, mips_expand_conditional_move,
4610 mips_expand_conditional_trap): Likewise.
4611 (mips_block_move_loop): Use cbranch patterns.
4612 * config/mips/mips.h (cmp_operands): Delete.
4613
4614 * config/mmix/mmix.c (mmix_valid_comparison): Delete.
4615 (mmix_gen_compare_reg): Just return a register in the right CC mode.
4616 * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
4617 * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
4618 (*cmpcc_folded): Rename to...
4619 (*cmpdi_folded): this.
4620 (*cmpcc): Rename to...
4621 (*cmps): ... this.
4622 (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
4623 (bCC): Remove.
4624 (cbranchdi4): New.
4625 (cbranchdf4): New. Handle invalid comparisons here.
4626 * config/mmix/predicates.md (float_comparison_operator): New.
4627
4628 * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
4629 zero_extract to be cheap in (compare (zero_extract) (const_int 0).
4630 * config/mn10300/mn10300.md (tst): Delete.
4631 (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
4632 Name these patterns and wrap RHS in a compare.
4633 (*cmpsi): Make this pattern private. Include tst.
4634 (*cmpsf): Make this pattern private.
4635 (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
4636 (compare with zero peepholes): Likewise.
4637 (bCC): Remove.
4638 (cbranchsi4, cbranchsf4): New.
4639 (casesi): Use cbranchsi4.
4640
4641 * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
4642 hppa_branch_type): Delete.
4643 (return_addr_rtx): Use cbranchsi4.
4644 (emit_bcond_fp): Accept all operands. Replace CODE with NE.
4645 Emit CCFPmode comparison here.
4646 (gen_cmp_fp): Delete, now part of emit_bcond_fp.
4647 * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
4648 hppa_branch_type): Delete.
4649 * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
4650 (movsicc, movdicc): Remove references to hppa_compare_op0,
4651 hppa_compare_op1 and compare_from_rtx.
4652 (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
4653 (casesi): Use cbranchsi4.
4654
4655 * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
4656 * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
4657 * config/pdp11/pdp11.md (register_or_const0_operand): New.
4658 (cmpdf, cmphi, cmpqi): Make private. Add tst alternatives.
4659 (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
4660 (bCC): Delete.
4661 (cbranchdf4, cbranchhi4, cbranchqi4): New.
4662 (*branch, *branch_inverted): New.
4663
4664 * config/picochip/picochip.md (cbranchhi4): Use
4665 ordered_comparison_operator.
4666 (cmphi, bCC): Remove.
4667
4668 * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
4669 (trap_comparison_operator): Delete.
4670 * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
4671 rs6000_emit_cbranch): Accept mode and operands.
4672 * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
4673 rs6000_compare_fp_p): Delete.
4674 (rs6000_generate_compare): Accept mode and comparison. Extract code
4675 and op0/op1 from there. Replace references to rs6000_compare_op0
4676 and rs6000_compare_op1.
4677 (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
4678 extract result from passed operands.
4679 (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
4680 extract loc from passed operands.
4681 (rs6000_emit_cmove): Likewise.
4682 * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
4683 rs6000_compare_fp_p): Delete.
4684 * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
4685 (cbranch<GPR>4, cbranch<FP>4): New.
4686 (cstore<mode>4): New. Consolidate here all choices about when to use
4687 portable or specialized sCC sequences.
4688 (stack_protect_test): Use cbranchsi4.
4689 (conditional_trap): Replace with ctrap<GPR>4.
4690 (conditional trap insn): Replace trap_comparison_operator with
4691 ordered_comparison_operator.
4692
4693 * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
4694 (s390_emit_prologue): Use ctrap.
4695 * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
4696 * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
4697 New predicates replacing...
4698 * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
4699 (cmp<GPR>, cmp<FP>, cmpcc): Delete.
4700 (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
4701 (add<mode>cc): Do not use s390_compare_op0/op1.
4702 (s<code>): Change to...
4703 (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
4704 (seq): Change to...
4705 (cstorecc4): ... this. Handle EQ or NE equally.
4706 (*sne): Un-privatize for use in cstorecc4.
4707 (b<code>): Change to...
4708 (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
4709 (conditional_trap): Replace with...
4710 (ctrap<GPR>4, ctrap<FP>4): ... these.
4711 (stack_protect): Use cbranchcc4.
4712
4713 * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
4714 * config/score/score-protos.h (score_gen_cmp): Delete.
4715 * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
4716 (score_block_move-loop): Use cbranchsi4.
4717 * config/score/score.md (cbranchsi4): New.
4718 (cmpsi, bCC): Delete.
4719 * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
4720 (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
4721 * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
4722 (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
4723 * config/score/score3.h (score3_gen_cmp): Delete.
4724 * config/score/score7.h (score7_gen_cmp): Delete.
4725
4726 * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
4727 (sh_emit_scc_to_t): ... this. Return void.
4728 (from_compare): Rename to...
4729 (sh_emit_compare_and_branch): ... this.
4730 (sh_emit_compare_and_set): New.
4731 (sh_expand_t_scc): Accept operands.
4732 * config/sh/predicates.md (sh_float_comparison_operator): New.
4733 * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
4734 (prepare_scc_operands): Rename to...
4735 (sh_emit_scc_to_t): ... this. Return void. Get op0/op1 from
4736 arguments.
4737 (sh_emit_cheap_store_flag): New.
f90b7a5a 4738 (sh_emit_set_t_insn): New.
fbdf817d
UB
4739 (from_compare): Rename to...
4740 (sh_emit_compare_and_branch): ... this. Accept mode. Rewrite
4741 handling of TARGET_SH2E floating point to avoid recursive call.
4742 Generate branch here.
4743 (sh_emit_compare_and_set): New.
4744 (sh_expand_t_scc): Get op0/op1 from arguments.
4745 (sh_emit_cheap_store_flag): New.
4746 * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
4747 cases.
f90b7a5a 4748 (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
fbdf817d
UB
4749 (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
4750 (movsicc, movdicc): Do nothing when it recreated operands from
4751 sh_compare_*. Use sh_emit_cheap_store_flag. Adjust call to
4752 prepare_scc_operands (now sh_emit_scc_to_t).
4753 (udivdi3): Use cstoresi4.
4754 (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
4755 bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
4756 (cbranchint4_media, cbranchfp4_media): New.
4757 (casesi): Use cbranchdi4.
4758 (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
4759 Delete.
4760 (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
4761 (movnegt): Remove second operand.
4762 (cbranchsf4, cbranchdf4): New.
4763 (stack_protect): Use cbranchdi4/cbranchsi4.
4764
4765 * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
4766 (gen_compare_reg): Accept comparison, extract part of it to...
4767 (gen_compare_reg_1): ... this.
4768 (gen_compare_operator): Delete.
4769 (gen_v9_scc): Accept separate destination, comparison code and arms.
4770 Do not use sparc_compare_op0/sparc_compare_op1.
4771 (emit_scc_insn, emit_conditional_branch_insn): New.
4772 (emit_v9_brxx): Make static. Remove useless assertion.
4773 (sparc_emit_float_lib_cmp): Return RTL instead of calling
4774 emit_cmp_insn.
4775 (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
4776 * config/sparc/sparc-protos.h (gen_compare_reg,
f90b7a5a
PB
4777 sparc_emit_float_lib_cmp): Adjust prototype.
4778 (emit_scc_insn, emit_conditional_branch_insn): New.
4779 (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
fbdf817d
UB
4780 * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
4781 * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
4782 iterators to the top.
4783 (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
4784 snesi_special_extend, sCC, bCC, seqdi_special_trunc,
f90b7a5a 4785 snedi_special_trunc): Delete.
fbdf817d 4786 (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
f90b7a5a 4787 and snedi_special_trunc.
fbdf817d
UB
4788 (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
4789 cbranchdi4, cbranch<F:mode>4): New.
4790 (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
4791 here. Use gen_compare_reg instead of gen_compare_operator.
4792 (conditional_trap): Replace with...
4793 (ctrapsi4, ctrapdi4): ... this.
4794 (stack_protect_test): Use cbranchcc4.
4795
4796 * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
4797 argument to rtx.
4798 * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove.
4799 (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
4800 Change spu_compare_op0/op1 to op0/op1 throughout. Get target
4801 from operands[0] or operands[3] depending on is_set.
4802 * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
4803 * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
4804 cmpdf, bCC), sCC: Remove.
4805 (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4,
4806 cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
4807 cstoredf4): New.
4808 (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
4809 spu_emit_branch_or_set.
4810
4811 * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
4812 Add two arguments.
4813 * config/stormy16/stormy16.h (xstormy16_compare_op0,
4814 xstormy16_compare_op1): Delete.
4815 * config/stormy16/stormy16.c (xstormy16_compare_op0,
4816 xstormy16_compare_op1): Delete.
4817 (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
4818 Adjust calls.
4819 * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
4820 (cmphi, cmpsi, bCC): Remove.
4821
4822 * config/v850/v850.md (tstsi, cmpsi): Fold into...
4823 (*cmpsi): ... this one.
4824 (cbranchsi4, cstoresi4): New.
4825 (bCC expanders): Delete.
4826 (sCC insns): Fold into...
4827 (*setcc): ... this one.
4828 (casesi): Do not use gen_cmpsi and gen_bgtu.
f90b7a5a
PB
4829 (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
4830 (movsicc): Simplify.
4831 * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
4832
fbdf817d
UB
4833 * config/vax/vax-protos.h (cond_name): New.
4834 (vax_output_conditional_branch): Remove.
4835 * config/vax/vax.c (cond_name): New.
4836 (vax_output_conditional_branch): Remove.
4837 * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
4838 * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
4839 (cmp<VAXint>, cmp<VAXfp>): Privatize. Add constraints for tst.
4840 (bit<VAXint>): Wrap source with (compare).
4841 (b<code> and following unnamed pattern): Rename to *branch and
4842 *branch_reversed. Change macroization to match_operator.
4843 (cbranch<VAXint>4, cbranch<VAXfp>4): New.
4844
4845 * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
4846 * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
4847 Change last argument to machine_mode.
4848 (xtensa_expand_scc): Add machine_mode argument.
4849 * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
4850 (gen_conditional_move, xtensa_expand_conditional_branch,
4851 xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
4852 instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
4853 Adjust operand numbers.
4854 * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
4855 Delete.
4856 * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
4857 (cmpsi, cmpsf, b<code>, s<code>): Delete.
4858 (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
f90b7a5a 4859
16670495
PB
48602009-05-12 Paolo Bonzini <bonzini@gnu.org>
4861
4862 * optabs.c (prepare_cmp_insn): Temporarily disable test that
4863 causes spurious differences between trunk and cond-optab branch.
4864
4a4a4e99
AO
48652009-05-12 Alexandre Oliva <aoliva@redhat.com>
4866
4867 PR target/37137
4868 * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
4869
72b9acff
AO
48702009-05-12 Alexandre Oliva <aoliva@redhat.com>
4871
4872 * tree.c (iterative_hash_pointer): Delete.
4873 (iterative_hash_expr): Short-circuit handling of NULL pointer.
4874 Hash UIDs and versions of SSA names. Don't special-case built-in
4875 function declarations.
4876
b7dd69ac
ILT
48772009-05-11 Ian Lance Taylor <iant@google.com>
4878
4879 PR bootstrap/40103
4880 * graphite.c: Force -Wc++-compat to only be a warning before
4881 #including "cloog/cloog.h".
4882
ed102b70
MJ
48832009-05-11 Martin Jambor <mjambor@suse.cz>
4884
4885 * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
4886
08f1af2e
JH
48872009-05-11 Jan Hubicka <jh@suse.cz>
4888
4889 * tree-ssa-loop-ivcanon.c: Include target.h
4890 (struct loop_size): new structure.
4891 (constant_after_peeling): New predicate.
4892 (tree_estimate_loop_size): New function.
4893 (estimated_unrolled_size): Rewrite for new estimates.
4894 (try_unroll_loop_completely): Use new estimates.
4895 * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
4896
a7d39bd3
AP
48972009-05-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
4898
4899 * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
4900 libcpp interface change.
4901 (spu_macro_to_expand): Likewise.
4902
f5a1f0d0
PB
49032009-05-11 Paolo Bonzini <bonzini@gnu.org>
4904
4905 PR tree-optimization/40026
4906 * gimplify.c (gimplify_init_constructor): Change initial conditional
4907 to assertion. Rewrite TREE_OPERAND (*expr_p, 1) after
4908 optimize_compound_literals_in_ctor.
4909
c260f01f
NS
49102009-05-11 Nathan Sidwell <nathan@codesourcery.com>
4911
4912 * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
4913 New devices.
4914 * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
4915
df398a37
L
49162009-05-11 H.J. Lu <hongjiu.lu@intel.com>
4917
4918 * tree-vect-data-refs.c (vect_analyze_group_access): Use
4919 HOST_WIDE_INT for gap.
4920
4da39468
IR
49212009-05-11 Ira Rosen <irar@il.ibm.com>
4922
4923 PR tree-optimization/40074
4924 * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
4925 account in group size and step comparison.
4926
4effdf02
RG
49272009-05-11 Richard Guenther <rguenther@suse.de>
4928
4929 * passes.c (init_optimization_passes): Strip now incorrect comment.
4930 (execute_function_todo): Do not set PROP_alias.
4931 * tree-pass.h (PROP_alias): Remove.
4932 * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
4933 * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
4934 * tree-nrv.c (pass_return_slot): Likewise.
4935 * tree-object-size.c (pass_object_sizes): Likewise.
4936 * tree-ssa-dom.c (pass_dominator): Likewise.
4937 (pass_phi_only_cprop): Likewise.
4938 * tree-ssa-dse.c (pass_dse): Likewise.
4939 * tree-ssa-phiopt.c (pass_phiopt): Likewise.
4940 (pass_cselim): Likewise.
4941 * tree-ssa-pre.c (pass_pre): Likewise.
4942 (pass_fre): Likewise.
4943 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
4944 * tree-ssa-sink.c (pass_sink_code): Likewise.
4945 * tree-stdarg.c (pass_stdarg): Likewise.
4946 * tree-tailcall.c (pass_tail_calls): Likewise.
4947 * tree-vrp.c (pass_vrp): Likewise.
4948
24b97832
ILT
49492009-05-10 Ian Lance Taylor <iant@google.com>
4950
4951 * basic-block.h (enum profile_status): Break out of struct
4952 control_flow_graph.
4953 * cgraph.h (struct inline_summary): Break out of struct
4954 cgraph_local_info.
4955 * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
4956 of struct cgraph_order_sort.
fbdf817d 4957 * combine.c (enum undo_kind): New enum, broken out of struct undo.
24b97832
ILT
4958 * cse.c (struct branch_path): Break out of struct
4959 cse_basic_block_data.
4960 * except.h (enum eh_region_type): Break out of struct eh_region.
4961 * gcc.c (enum add_del): Break out of struct modify_target.
fbdf817d 4962 * genrecog.c (enum decision_type): Break out of struct decision_test.
24b97832
ILT
4963 * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
4964 ggc_pch_data.
fbdf817d
UB
4965 * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
4966 * regmove.c (enum match_use): New enum, broken out of struct match.
24b97832
ILT
4967 * sched-int.h (enum post_call_group): New enum, broken out of
4968 struct deps.
4969 (struct deps_reg): Break out of struct deps.
4970 * target.h (struct asm_int_op): Break out of struct gcc_target.
4971 * tree-eh.c (struct goto_queue_node): Break out of struct
4972 leh_tf_state.
4973 * tree-inline.h (enum copy_body_cge_which): Break out of
4974 copy_body_data.
4975 * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
4976
4977 * c-decl.c (in_struct, struct_types): New static variables.
4978 (pushtag): Add loc parameter. Change all callers.
4979 (lookup_tag): Add ploc parameter. Change all callers.
4980 (check_compound_literal_type): New function.
4981 (parser_xref_tag): Add loc parameter. Change all callers. If
4982 -Wc++-compat, warn about struct/union/enum types defined within a
4983 struct or union.
4984 (start_struct): Add enclosing_in_struct, enclosing_struct_types,
4985 and loc parameters. Change all callers. Change error calls to
4986 error_at, using loc. For a redefinition, if the location of the
4987 original definition is known, report it. Set in_struct and
fbdf817d 4988 struct_types. If -Wc++-compat warn if in sizeof, typeof, or alignof.
24b97832
ILT
4989 (finish_struct): Add new parameters enclosing_in_struct and
4990 enclosing_struct_types. Change all callers. Set
4991 C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
4992 in the struct. If in a struct, add this struct to struct_types.
4993 (start_enum): Add loc parameter. Change all callers. Use
4994 error_at for errors, using loc. For a redefinition, if the
4995 location of the original definition is known, report it. If in a
4996 struct, add this enum type to struct_types. If -Wc++-compat warn
4997 if in sizeof, typeof, or alignof.
fbdf817d
UB
4998 * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
4999 (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
24b97832
ILT
5000 (c_parser_enum_specifier): Get enum location for start_enum.
5001 (c_parser_struct_or_union_specifier): Get struct location for
5002 start_struct. Save in_struct and struct_types status between
5003 start_struct and finish_struct.
5004 (c_parser_cast_expression): Get location of cast.
5005 (c_parser_alignof_expression): Get location of type.
5006 (c_parser_postfix_expression): Likewise.
5007 (c_parser_postfix_expression_after_paren_type): Add type_loc
fbdf817d
UB
5008 parameter. Change all callers. Call check_compound_literal_type.
5009 Use type_loc for error about variable size type.
5010 * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
5011 of an enum constant from an enum type defined in a struct or union.
24b97832
ILT
5012 (c_cast_expr): Add loc parameter. Change all callers. If
5013 -Wc++-compat, warn about defining a type in a cast.
5014 * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
5015 (start_enum, start_struct, finish_struct): Update declarations.
5016 (parser_xref_tag, c_cast_expr): Update declarations.
5017 (check_compound_literal_type): Declare.
5018
7a2738fa
BE
50192009-05-11 Ben Elliston <bje@au.ibm.com>
5020
5021 * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
5022 for recent libcpp interface change.
5023 (rs6000_macro_to_expand): Likewise.
5024
af618949
MM
50252009-05-10 Michael Matz <matz@suse.de>
5026
5027 PR target/40031
5028 * config/arm/arm.c (require_pic_register): Emit on entry edge,
5029 not at entry of function.
5030
b7d7a473
RG
50312009-05-10 Richard Guenther <rguenther@suse.de>
5032
5033 PR tree-optimization/40081
5034 Revert
5035 * tree-sra.c (instantiate_element): Instantiate scalar replacements
5036 using the main variant of the element type. Do not fiddle with
5037 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
5038
5039 * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
5040 structs with volatile fields.
5041
078c3644
JH
50422009-05-10 Jan Hubicka <jh@suse.cz>
5043
5044 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
fbdf817d
UB
5045 (estimate_move_cost): Assert that it does not get called for
5046 VOID_TYPE_P.
078c3644
JH
5047 (estimate_num_insns): Skip VOID types in argument handling.
5048 (optimize_inline_calls): Delete unreachable blocks and verify that
5049 callgraph is valid.
5050
39ff5a96
JH
50512009-05-10 Jan Hubicka <jh@suse.cz>
5052
5053 * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
5054 * cgraph.c (cgraph_mark_address_taken_node): New function.
5055 (dump_cgraph_node): Dump new flag.
5056 * cgraph.h (struct cgraph_node): Add address_taken.
5057 (cgraph_mark_address_taken_node): New function.
39ff5a96
JH
5058 * ipa.c (cgraph_postorder): Prioritize functions with address taken
5059 since new direct calls can be born.
5060
9a0c6187
JM
50612009-05-10 Joseph Myers <joseph@codesourcery.com>
5062
5063 * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
5064 tok->val.node.node.
5065
4b685e14
JH
50662009-05-10 Jan Hubicka <jh@suse.cz>
5067
5068 PR middle-end/40084
fb0be169
EB
5069 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
5070 argument; rewrite.
4b685e14
JH
5071 (cgraph_update_edges_for_call_stmt): Take old_decl argument.
5072 * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
5073 * tree-inline.c (copy_bb): Set frequency correctly.
fb0be169
EB
5074 (fold_marked_statements): Update call to
5075 cgraph_update_edges_for_call_stmt.
4b685e14 5076
29d08eba
JM
50772009-05-10 Joseph Myers <joseph@codesourcery.com>
5078
5079 * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
5080 identifiers in diagnostics.
5081 * config/arm/arm.c (arm_handle_fndecl_attribute,
5082 arm_handle_isr_attribute): Likewise.
5083 * config/avr/avr.c (avr_handle_progmem_attribute,
782dc37a 5084 avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
29d08eba
JM
5085 * config/bfin/bfin.c (handle_int_attribute,
5086 bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
5087 bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
5088 bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
5089 Likewise.
5090 * config/darwin.c (darwin_handle_kext_attribute,
5091 darwin_handle_weak_import_attribute): Likewise.
5092 * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
5093 h8300_handle_eightbit_data_attribute,
5094 h8300_handle_tiny_data_attribute): Likewise.
5095 * config/i386/i386.c (ix86_handle_cconv_attribute,
782dc37a 5096 ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
29d08eba
JM
5097 * config/i386/winnt.c (ix86_handle_shared_attribute,
5098 ix86_handle_selectany_attribute): Likewise.
5099 * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
5100 * config/m32c/m32c.c (function_vector_handler): Likewise.
5101 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
5102 m68hc11_handle_fntype_attribute): Likewise.
5103 * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
5104 * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
5105 * config/mips/mips.c (mips_insert_attributes,
5106 mips_merge_decl_attributes, mips_expand_builtin): Likewise.
5107 * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
5108 rs6000_handle_struct_attribute): Likewise.
5109 * config/sh/sh.c (sh_insert_attributes,
5110 sh_handle_resbank_handler_attribute,
5111 sh_handle_interrupt_handler_attribute,
5112 sh2a_handle_function_vector_handler_attribute,
5113 sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
5114 Likewise.
5115 * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
5116 * config/spu/spu.c (spu_handle_fndecl_attribute,
5117 spu_handle_vector_attribute): Likewise.
5118 * config/stormy16/stormy16.c
5119 (xstormy16_handle_interrupt_attribute): Likewise.
5120 * config/v850/v850-c.c (ghs_pragma_section): Likewise.
5121 * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
5122
f41c4af3
JM
51232009-05-10 Joseph Myers <joseph@codesourcery.com>
5124
782dc37a 5125 * pretty-print.h (struct pretty_print_info): Add translate_identifiers.
f41c4af3
JM
5126 (pp_translate_identifiers): New.
5127 (pp_identifier): Only conditionally translate identifier to locale
5128 character set.
5129 * pretty-print.c (pp_construct): Set pp_translate_identifiers.
5130 (pp_base_tree_identifier): Only conditionally translate identifier
5131 to locale character set.
5132 * c-pretty-print.c (M_): Define.
5133 (pp_c_type_specifier, pp_c_primary_expression): Mark English
5134 fragments for conditional translation with M_.
5135 * tree-pretty-print.c (maybe_init_pretty_print): Disable
5136 identifier translation.
5137
896d7dbd
RG
51382009-05-10 Richard Guenther <rguenther@suse.de>
5139
5140 PR tree-optimization/40081
5141 * tree-sra.c (instantiate_element): Instantiate scalar replacements
5142 using the main variant of the element type. Do not fiddle with
5143 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
5144
9a23acef
JH
51452009-05-09 Jan Hubicka <jh@suse.cz>
5146
5147 PR middle-end/40080
5148 * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
5149 indirect calls; verify cgraph afterwards.
5150
d563610d
JH
51512009-05-09 Jan Hubicka <jh@suse.cz>
5152
5153 PR bootstrap/40082
5154 * ipa.c (update_inlined_to_pointer): New function.
5155 (cgraph_remove_unreachable_nodes): Use it.
5156
f08a18d0
JH
51572009-05-09 Jan Hubicka <jh@suse.cz>
5158
5159 * tree-eh.c (struct leh_state): Remove prev_try.
5160 (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
5161 not track prev_try.
5162 * except.c (gen_eh_region_cleanup, duplicate_eh_regions,
5163 copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
5164 remove_eh_handler_and_replace, foreach_reachable_handler,
5165 verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
5166 * except.h (struct eh_region): Remove eh_region_u_cleanup.
5167 (gen_eh_region_cleanup): Update prototype.
5168
0afd7219
JH
51692009-05-09 Jan Hubicka <jh@suse.cz>
5170
5171 PR middle-end/40043
5172 * except.c (copy_eh_region): Always set prev_try.
5173 (redirect_eh_edge_to_label): Find outer try.
5174 (foreach_reachable_handler): When looking for prev try
5175 handle case where previous try is not going to be taken.
5176
ad6c0864
MM
51772009-05-07 Michael Meissner <meissner@linux.vnet.ibm.com>
5178
5179 PR tree-optimization/40049
5180 * tree-vect-stmts.c (vectorizable_operation): If the machine has
5181 only vector/vector shifts, convert the type of the constant to the
5182 appropriate type to avoid building incorrect trees, which
5183 eventually have problems with garbage collection.
5184
c94f9067
JM
51852009-05-08 Joseph Myers <joseph@codesourcery.com>
5186
5187 * fold-const.c (fold_binary): Do not fold multiplication by 1 or
5188 -1 for complex floating-point types if honoring signed zeros.
5189
9187e02d
JH
51902009-05-08 Jan Hubicka <jh@suse.cz>
5191
20acb8a2
EB
5192 * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
5193 argument; handle correctly when profile is absent.
9187e02d
JH
5194 (build_cgraph_edges): Update.
5195 (rebuild_cgraph_edges): Update.
20acb8a2
EB
5196 * cgraph.c: Do not include varray.h.
5197 (cgraph_set_call_stmt_including_clones): New function.
5198 (cgraph_create_edge_including_clones): Likewise
5199 (cgraph_update_edges_for_call_stmt_node): New static cfunction.
9187e02d
JH
5200 (cgraph_update_edges_for_call_stmt): Handle clones.
5201 (cgraph_remove_node): Handle clone tree.
5202 (cgraph_remove_node_and_inline_clones): New function.
5203 (dump_cgraph_node): Dump clone tree.
5204 (cgraph_clone_node): Handle clone tree.
20acb8a2 5205 (clone_function_name): Bring here from tree-inline.c.
9187e02d 5206 (cgraph_create_virtual_clone): New function.
20acb8a2
EB
5207 * cgraph.h (ipa_replace_map): Move here from ipa.h.
5208 (cgraph_clone_info): New function.
9187e02d 5209 (strut cgraph_node): Add clone_info and new clone tree pointers.
20acb8a2
EB
5210 (cgraph_remove_node_and_inline_clones,
5211 cgraph_set_call_stmt_including_clones,
5212 cgraph_create_edge_including_clones,
5213 cgraph_create_virtual_clone): Declare.
9187e02d
JH
5214 (cgraph_function_versioning): Use VEC argument.
5215 (compute_call_stmt_bb_frequency): Update prototype.
5216 (cgraph_materialize_all_clones): New function.
5217 * ipa-cp.c (ipcp_update_cloned_node): Remove.
5218 (ipcp_create_replace_map): Update to VECtors.
5219 (ipcp_update_callgraph): Use virtual clones.
5220 (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
5221 (ipcp_update_profiling): Do not update local profiling.
5222 (ipcp_insert_stage): Use VECtors and virtual clones.
5223 * cgraphunit.c (verify_cgraph_node): Verify clone tree.
5224 (clone_of_p): New function.
5225 (cgraph_preserve_function_body_p): Use clone tree.
5226 (cgraph_optimize): Materialize clones.
5227 (cgraph_function_versioning): Update for VECtors.
5228 (save_inline_function_body): Use clone tree.
20acb8a2
EB
5229 (cgraph_materialize_clone): New function.
5230 (cgraph_materialize_all_clones): Likewise.
9187e02d
JH
5231 * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
5232 * ipa.c: Include gimple.h.
5233 (cgraph_remove_unreachable_nodes): Use clone tree.
20acb8a2
EB
5234 * ipa-prop.c (ipa_note_param_call): Update call to
5235 compute_call_stmt_bb_frequencycall.
9187e02d 5236 * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
20acb8a2 5237 * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
9187e02d
JH
5238 (copy_bb): Handle updating of clone tree; add new edge when new call
5239 appears.
5240 (expand_call_inline): Be strict about every call having edge.
5241 (clone_fn_id_num, clone_function_name): Move to cgraph.c.
5242 (delete_unreachable_blocks_update_callgraph): New function.
20acb8a2
EB
5243 (tree_function_versioning): Use VECtors; always remove unreachable
5244 blocks and fold conditionals.
5245 * tree-inline.h: Do not include varray.h.
9187e02d
JH
5246 (tree_function_versioning): Remove.
5247 * Makefile.in (GTFILES): Remove tree-inline.c
5248 * passes.c (do_per_function): Do only functions having body.
20acb8a2
EB
5249 * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
5250 tree.
9187e02d 5251
9b86d6bb
L
52522009-05-08 H.J. Lu <hongjiu.lu@intel.com>
5253 Andrew Morrow <acm@google.com>
5254
5255 PR c/36892
5256 * c-common.c (c_common_attribute_table): Permit deprecated
5257 attribute to take an optional argument.
5258 (handle_deprecated_attribute): If the optional argument to
5259 __attribute__((deprecated)) is not a string ignore the attribute
5260 and emit a warning.
5261
5262 * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
5263 * c-typeck.c (build_component_ref): Likewise.
5264 (build_external_ref): Likewise.
5265
5266 * toplev.c (warn_deprecated_use): Add an attribute argument.
5267 Emit the message associated with __attribute__((deprecated)).
5268
5269 * toplev.h (warn_deprecated_use): Updated.
5270
5271 * doc/extend.texi: Document new optional parameter to
5272 __attribute__((deprecated))
5273
82ad047f
ME
52742009-05-08 Michael Eager <eager@eagercon.com>
5275
5276 * config/rs6000/rs6000.md (*movdf_softfloat32): replace
5277 !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
5278
788d3075
RG
52792009-05-08 Richard Guenther <rguenther@suse.de>
5280
5281 PR tree-optimization/40062
5282 * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
5283 Avoid exponential behavior.
5284
00952e97
PB
52852009-05-08 Paolo Bonzini <bonzini@gnu.org>
5286
5287 PR rtl-optimization/33928
5288 PR 26854
5289 * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
5290 process_uses, build_single_def_use_links): New.
5291 (update_df): Update use_def_ref.
5292 (forward_propagate_into): Use get_def_for_use instead of use-def
5293 chains.
5294 (fwprop_init): Call build_single_def_use_links and let it initialize
5295 dataflow.
5296 (fwprop_done): Free use_def_ref.
5297 (fwprop_addr): Eliminate duplicate call to df_set_flags.
5298 * df-problems.c (df_rd_simulate_artificial_defs_at_top,
5299 df_rd_simulate_one_insn): New.
5300 (df_rd_bb_local_compute_process_def): Update head comment.
5301 (df_chain_create_bb): Use the new RD simulation functions.
5302 * df.h (df_rd_simulate_artificial_defs_at_top,
5303 df_rd_simulate_one_insn): New.
5304 * opts.c (decode_options): Enable fwprop at -O1.
5305 * doc/invoke.texi (-fforward-propagate): Document this.
5306
2ca862e9
JM
53072009-05-08 Joseph Myers <joseph@codesourcery.com>
5308
5309 PR c/24581
5310 * c-typeck.c (build_binary_op): Handle arithmetic between one real
5311 and one complex operand specially.
5312 * tree-complex.c (some_nonzerop): Do not identify a real value as
5313 zero if flag_signed_zeros.
5314
3e807ffc
PB
53152009-05-08 Paolo Bonzini <bonzini@gnu.org>
5316
5317 PR rtl-optimization/33928
7925c06c 5318 * loop-invariant.c (record_use): Fix && vs. || mishap.
3e807ffc 5319
1bfdbb29
PB
53202009-05-08 Paolo Bonzini <bonzini@gnu.org>
5321
5322 PR rtl-optimization/33928
e913423f
EB
5323 * loop-invariant.c (struct use): Add addr_use_p.
5324 (struct def): Add n_addr_uses.
5325 (struct invariant): Add cheap_address.
5326 (create_new_invariant): Set cheap_address.
5327 (record_use): Accept df_ref. Set addr_use_p and update n_addr_uses.
5328 (record_uses): Pass df_ref to record_use.
5329 (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
5330 used only as such.
1bfdbb29 5331
702cb2a0
KK
53322009-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
5333
5334 * config/sh/sh.c: Do not include c-pragma.h.
5335
5e8df753
AP
53362009-05-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
5337
5338 * config/spu/spu.c: Remove include of c-common.h.
5339
6ec637a4
JJ
53402009-05-07 Janis Johnson <janis187@us.ibm.com>
5341
5342 PR c/39037
5343 * c-common.h (mark_valid_location_for_stdc_pragma,
5344 valid_location_for_stdc_pragma_p, set_float_const_decimal64,
5345 clear_float_const_decimal64, float_const_decimal64_p): New.
5346 * c.opt (Wunsuffixed-float-constants): New.
5347 * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
5348 unsuffixed float constant, handle new warning.
5349 * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
5350 * c-decl.c (c_scope): New flag float_const_decimal64.
5351 (set_float_const_decimal64, clear_float_const_decimal64,
5352 float_const_decimal64_p): New.
5353 (push_scope): Set new flag.
5354 * c-parser.c (c_parser_translation_unit): Mark when it's valid
5355 to use STDC pragmas.
5356 (c_parser_external_declaration): Ditto.
5357 (c_parser_compound_statement_nostart): Ditto.
5358 * c-pragma.c (valid_location_for_stdc_pragma,
5359 mark_valid_location_for_stdc_pragma,
5360 valid_location_for_stdc_pragma_p, handle_stdc_pragma,
5361 handle_pragma_float_const_decimal64): New.
5362 (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
5363 * cp/semantics.c (valid_location_for_stdc_pragma_p,
5364 set_float_const_decimal64, clear_float_const_decimal64,
5365 float_const_decimal64_p): New dummy functions.
5366 * doc/extend.texi (Decimal Float): Remove statement that the
5367 pragma, and suffix for double constants, are not supported.
5368 * doc/invoke.texi (Warning Options): List new option.
5369 (-Wunsuffixed-float-constants): New.
5370
45b9b2e9
SB
53712009-05-08 Steven Bosscher <steven@gcc.gnu.org>
5372
5373 * config/i386/i386.c: Do not include c-common.h.
5374
e71da632
MH
53752009-05-07 Mark Heffernan <meheff@google.com>
5376
5377 * doc/invoke.texi (Debugging Options): Document change of debugging
5378 dump location.
e913423f 5379 * opts.c (decode_options): Make dump_base_name relative to
e71da632
MH
5380 aux_base_name directory.
5381
fe4c7bc6
HS
53822009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
5383
5384 * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
5385 * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
5386
3b3e44eb
RAE
53872009-05-07 Rafael Avila de Espindola <espindola@google.com>
5388
5389 * Makefile.in (install-plugin): Simplify a bit.
5390
fac41238
PB
53912009-05-07 Paolo Bonzini <bonzini@gnu.org>
5392
5393 * Makefile.in (OBJS-common): Add regcprop.o.
5394 (regcprop.o): New.
5395 * timevar.def (TV_CPROP_REGISTERS): New.
5396 * regrename.c (regrename_optimize): Return 0.
5397 (rest_of_handle_regrename): Delete.
5398 (pass_rename_registers): Point to regrename_optimize.
5399 (struct value_data_entry, struct value_data,
5400 kill_value_one_regno, kill_value_regno, kill_value,
5401 set_value_regno, init_value_data, kill_clobbered_value,
5402 kill_set_value, kill_autoinc_value, copy_value,
5403 mode_change_ok, maybe_mode_change, find_oldest_value_reg,
5404 replace_oldest_value_reg, replace_oldest_value_addr,
5405 replace_oldest_value_mem, copyprop_hardreg_forward_1,
5406 debug_value_data, validate_value_data): Move...
5407 * regcprop.c: ... here.
5408 (rest_of_handle_cprop): Delete.
5409 (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
5410
472e0df9
JJ
54112009-05-07 Jakub Jelinek <jakub@redhat.com>
5412
5413 PR middle-end/40057
5414 * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
5415 GEN_INT for 1 << bitnum.
5416 (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
5417 build_int_cst_type.
5418
0d50d55a
UB
54192009-05-07 Uros Bizjak <ubizjak@gmail.com>
5420
5421 * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
7925c06c 5422 Remove wrong description of "nand" operation.
0d50d55a 5423
22f597f1
RG
54242009-05-06 Richard Guenther <rguenther@suse.de>
5425 Adam Nemet <anemet@caviumnetworks.com>
5426
5427 * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
5428 comment. Add that if LHS is not a gimple register, then RHS1 has
5429 to be a single object (GIMPLE_SINGLE_RHS).
5430
641cac0b
AN
54312009-05-06 Adam Nemet <anemet@caviumnetworks.com>
5432
5433 * expr.c (get_def_for_expr): Move it up in the file.
5434 (store_field): When expanding a bit-field store, look at the
5435 defining gimple stmt for the masking conversion.
5436
5a5c6435
JJ
54372009-05-06 Janis Johnson <janis187@us.ibm.com>
5438
5439 PR middle-end/39986
5440 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
5441 decode_decimal64, encode_decimal128, decode_decimal128): Avoid
5442 32-bit memcpy into long.
5443
96474f36
JJ
54442009-05-06 Jakub Jelinek <jakub@redhat.com>
5445
5446 * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
5447 (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
5448 new_reg_loc_descr.
5449 (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
5450 instead of appending DW_OP_deref*.
5451
529ff441
MM
54522009-05-06 Michael Matz <matz@suse.de>
5453
5454 PR middle-end/40021
5455 * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
5456 (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
5457
9419a9fd
RAE
54582009-05-06 Rafael Avila de Espindola <espindola@google.com>
5459
5460 * Makefile.in (install-plugin): Fix srcdir handling.
5461
fff1894c
AB
54622009-05-06 Andrey Belevantsev <abel@ispras.ru>
5463
5464 * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
5465 when processing for not_regs_needed bitmap.
5466 * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
5467 handle TARGET_MEM_REF in lhs. Check TMR_BASE for NULL while
5468 handling it for rhs.
5469
700ae70c
L
54702009-05-06 H.J. Lu <hongjiu.lu@intel.com>
5471
ab3426a7 5472 * config/i386/i386.md (unnamed inc/dec peephole): Use
aa016ff7 5473 optimize_insn_for_size_p instead of optimize_size.
700ae70c
L
5474 * config/i386/predicates.md (incdec_operand): Likewise.
5475 (aligned_operand): Likewise.
5476 * config/i386/sse.md (divv8sf3): Likewise.
5477 (sqrtv8sf2): Likewise.
5478
67341fb5
L
54792009-05-06 H.J. Lu <hongjiu.lu@intel.com>
5480
5481 * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
5482
5483 * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
5484
87946f42
L
54852009-05-06 H.J. Lu <hongjiu.lu@intel.com>
5486
5487 * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
5488 ssemodesuffixf2c with avxmodesuffixf2c.
5489
1202aec1
JM
54902009-05-06 Joseph Myers <joseph@codesourcery.com>
5491
5492 PR c/40032
aa016ff7 5493 * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
1202aec1 5494
6e57a01d
JJ
54952009-05-05 Jakub Jelinek <jakub@redhat.com>
5496
5497 * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
5498 (struct tree_base): Adjust spacing for 8 bit boundaries.
5499 (struct tree_decl_common): Add decl_by_reference_flag bit.
5500 (DECL_BY_REFERENCE): Adjust.
5501 * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
5502 print DECL_BY_REFERENCE bit.
5503 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
5504 * dwarf2out.c (loc_by_reference, gen_decl_die): Check
5505 DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
5506 (gen_variable_die): Likewise. Check TREE_PRIVATE/TREE_PROTECTED
5507 unconditionally.
5508
32f579f6
JJ
5509 PR middle-end/39666
5510 * gimplify.c (gimplify_switch_expr): If case labels cover the whole
5511 range of the type, but default label is missing, add it with one
5512 of the existing labels instead of adding a new label for it.
5513
617ab743
JM
55142009-05-05 Joseph Myers <joseph@codesourcery.com>
5515
5516 * dwarf.h: Remove.
5517
bf016de8
RAE
55182009-05-05 Rafael Avila de Espindola <espindola@google.com>
5519
5520 * Makefile.in (enable_plugin, plugin_includedir): New.
5521 (install): Depend on install-plugin.
5522 (PLUGIN_HEADERS): New.
5523 (install-plugin): New.
5524 * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
5525
7f8fdb9f
RG
55262009-05-05 Richard Guenther <rguenther@suse.de>
5527
5528 PR tree-optimization/40022
5529 * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
5530 the only vuse.
5531 (phivn_valid_p): Fix tuplification error, simplify.
5532 (phiprop_insert_phi): Add dumps.
5533 (propagate_with_phi): Simplify.
5534
8d972839
RG
55352009-05-05 Richard Guenther <rguenther@suse.de>
5536
5537 PR middle-end/40023
aa016ff7 5538 * builtins.c (gimplify_va_arg_expr): Properly build the address.
8d972839 5539
66ba9b0b
SZ
55402009-05-05 Shujing Zhao <pearly.zhao@oracle.com>
5541
5542 * tree.h (strip_float_extensions): Remove duplicate declaration.
aa016ff7
UB
5543 (build_low_bits_mask, debug_fold_checksum, expand_function_end,
5544 expand_function_start, stack_protect_prologue, stack_protect_epilogue,
5545 block_ultimate_origin): Rearrange the declarations line to match the
5546 comment that indicates the .c file which the functions are defined.
5547 (dwarf2out_*, set_decl_rtl): Add comment.
5548 (get_base_address): Adjust comment.
5549 (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
5550 declarations line and add comment.
5551 (is_builtin_name): Add blank after function name, for clarity.
66ba9b0b 5552
4f1e4960
JM
55532009-05-04 Joseph Myers <joseph@codesourcery.com>
5554
5555 * attribs.c (decl_attributes): Use %qE for identifiers in
5556 diagnostics.
5557 * cgraphunit.c (verify_cgraph_node): Translate function names to
5558 locale character set in diagnostics.
5559 * coverage.c (get_coverage_counts): Use %qE for identifiers in
5560 diagnostics.
5561 * doc/invoke.texi (-finstrument-functions-exclude-function-list):
5562 Document that functions are named in UTF-8.
5563 * expr.c (expand_expr_real_1): Translate function names to locale
5564 character set in diagnostics.
5565 * gimplify.c (omp_notice_variable, omp_is_private,
5566 gimplify_scan_omp_clauses): Use %qE for identifiers in
5567 diagnostics.
5568 * langhooks.c (lhd_print_error_function): Translate function names
5569 to locale character set.
5570 * langhooks.h (decl_printable_name): Document that return value is
5571 in internal character set.
5572 * stmt.c: Include pretty-print.h
5573 (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
5574 diagnostics.
5575 (resolve_operand_name_1): Translate named operand name to locale
5576 character set.
5577 * stor-layout.c (finalize_record_size): Use %qE for identifiers in
5578 diagnostics.
5579 * toplev.c (announce_function): Translate function names to locale
5580 character set.
5581 (warn_deprecated_use): Use %qE for identifiers in diagnostics.
5582 (default_tree_printer): Use pp_identifier or translate identifiers
5583 to locale character set. Mark "<anonymous>" for translation.
5584 * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
5585 for identifiers in diagnostics.
5586 * tree.c (handle_dll_attribute): Use %qE for identifiers in
5587 diagnostics.
5588 * varasm.c (output_constructor): Use %qE for identifiers in
5589 diagnostics.
5590
40540e68
RAE
55912009-05-04 Rafael Avila de Espindola <espindola@google.com>
5592
5593 * configure.ac: use ` ` instead of $()
5594 * configure: Regenerate.
5595
33fc884c
BE
55962009-05-05 Ben Elliston <bje@au.ibm.com>
5597
5598 * config/pa/linux-atomic.c: Eliminate conditional include of
5599 errno.h on non-LP64 systems to simplify build requirements.
5600
88388a52
JM
56012009-05-04 Joseph Myers <joseph@codesourcery.com>
5602
5603 * c-common.c (handle_mode_attribute): Use %qE for identifiers in
5604 diagnostics.
5605 * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
5606 and pass value to identifier_to_locale.
5607 (warn_variable_length_array): Make name a tree.
5608 (grokdeclarator): Separate diagnostic texts for named and unnamed
5609 declarators. Use %qE for named declarators.
5610 * c-parser.c (c_lex_one_token): Use %qE for identifiers in
5611 diagnostics.
5612 * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
5613 identifiers in diagnostics.
5614 * c-typeck.c (push_member_name, start_init): Pass identifiers to
5615 identifier_to_locale. Mark "anonymous" strings for translation.
5616
960c5c79
ME
56172009-05-04 Michael Eager <eager@eagercon.com>
5618
5619 * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
aa016ff7 5620 address for DImode/DFmode only if double-precision FP regs.
960c5c79 5621
d083fbba
ME
56222009-05-04 Michael Eager <eager@eagercon.com>
5623
5624 * config/rs6000/rs6000.c (rs6000_libcall_value): Add
5625 TARGET_SINGLE_FLOAT check.
5626
c3ba8d32
ME
56272009-05-04 Michael Eager <eager@eagercon.com>
5628
5629 * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
5630
edce9f18
ME
56312009-05-04 Michael Eager <eager@eagercon.com>
5632
5633 * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
5634 * config/rs6000/t-xilinx: New
5635
506d7b68
PB
56362009-05-04 Paolo Bonzini <bonzini@gnu.org>
5637
e913423f 5638 * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
506d7b68
PB
5639 * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
5640 * gcc/explow.c (memory_address): Use target hook.
5641 * gcc/targhooks.c (default_legitimize_address): New.
5642 * gcc/targhooks.h (default_legitimize_address): New.
5643 * gcc/target.h (legitimize_address): New.
5644 * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
5645 (TARGET_INITIALIZER): Include it.
5646 * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
5647
5648 * config/bfin/bfin-protos.h (legitimize_address): Remove.
5649 * config/bfin/bfin.c (legitimize_address): Remove.
5650 * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
aa016ff7
UB
5651 * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
5652 Remove.
506d7b68
PB
5653 * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
5654 * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
5655
5656 * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
5657 THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
5658 * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
5659 * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
5660 * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
5661 * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
5662 * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
5663 * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
5664 * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
5665 * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
5666 * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
5667 * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
5668 * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
5669 * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
5670 * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
5671 * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
5672 * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
5673 * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
5674 * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
5675 * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
5676 * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
5677 * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
5678 * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
5679
5680 * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
5681 * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
5682 * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
5683 * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
5684 * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
5685 * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
5686 * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
5687 * gcc/config/arm/arm-protos.h (arm_legitimize_address,
5688 (thumb_legitimize_address): Delete.
5689 * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
5690 * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
5691 * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
5692 * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
5693 * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
aa016ff7
UB
5694 * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
5695 Delete.
5696 * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
5697 Delete.
506d7b68
PB
5698
5699 * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
5700 * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
5701 * config/m32r/m32r.c (m32r_legitimize_address): New.
5702 * config/m68k/m68k.c (m68k_legitimize_address): New.
5703 * config/score/score.c (score_legitimize_address): Standardize.
5704 * config/score/score3.c (score3_legitimize_address): Standardize.
5705 * config/score/score3.h (score3_legitimize_address): Adjust.
5706 * config/score/score7.c (score7_legitimize_address): Standardize.
5707 * config/score/score7.h (score7_legitimize_address): Adjust.
5708 * config/sh/sh.c (sh_legitimize_address): New.
5709 * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
5710
5711 * gcc/config/s390/s390.c (legitimize_address): Rename to...
5712 (s390_legitimize_address): ... this.
5713 * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
5714 (sparc_legitimize_address): ... this.
5715 * gcc/config/i386/i386.c (legitimize_address): Rename to...
5716 (ix86_legitimize_address): ... this.
5717 * gcc/config/avr/avr.c (legitimize_address): Rename to...
5718 (avr_legitimize_address): ... this.
5719 * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
5720 (mn10300_legitimize_address): ... this.
5721 * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
5722 (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
5723 (alpha_expand_mov): Adjust call.
5724
5725 * config/frv/frv.c (frv_legitimize_address): Return x on failure.
5726 * config/spu/spu.c (spu_legitimize_address): Likewise.
5727 * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
5728 * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
5729
a3af5087
JM
57302009-05-04 Joseph Myers <joseph@codesourcery.com>
5731
5732 * intl.c (locale_encoding, locale_utf8): New.
5733 (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
5734 * intl.h (locale_encoding, locale_utf8): Declare.
5735 * pretty-print.c: Include ggc.h. Include iconv.h if HAVE_ICONV.
5736 (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
5737 New.
5738 * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
5739 argument.
5740 (pp_tree_identifier): Define to call pp_base_tree_identifier.
5741 (pp_base_tree_identifier): Declare as function.
5742 (identifier_to_locale): Declare.
5743 * Makefile.in (pretty-print.o): Update dependencies.
aa016ff7 5744 * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
a3af5087 5745
ea5cd5f1
RG
57462009-05-04 Richard Guenther <rguenther@suse.de>
5747
5748 PR middle-end/40015
5749 * builtins.c (fold_builtin_memory_op): Do not decay to element
5750 type if the size matches the whole array.
5751
ddc2690a
KH
57522009-05-04 Kazu Hirata <kazu@codesourcery.com>
5753
5754 * expmed.c (synth_mult): When trying out a shift, pass the result
5755 of a signed shift.
5756
ef268d34
KH
57572009-05-04 Kazu Hirata <kazu@codesourcery.com>
5758
5759 * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
5760 (shiftsub1_cost): New.
5761 (init_expmed): Compute shiftsub1_cost.
5762 (synth_mult): Optimize multiplications by constants of the form
5763 -(2^^m-1) for some constant positive integer m.
5764
255d3827
RG
57652009-05-03 Richard Guenther <rguenther@suse.de>
5766
5767 PR c/39983
5768 * c-typeck.c (array_to_pointer_conversion): Do not built
5769 ADDR_EXPRs of arrays of pointer-to-element type.
5770 * c-gimplify.c (c_gimplify_expr): Revert change fixing
5771 up wrong ADDR_EXPRs after-the-fact.
5772 * c-common.c (strict_aliasing_warning): Strip pointer
5773 conversions for obtaining the original type.
5774 * builtins.c (fold_builtin_memset): Handle array types.
5775 (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
5776 and array types
5777
16c33770
RG
57782009-05-03 Richard Guenther <rguenther@suse.de>
5779
5780 PR middle-end/23329
5781 * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
5782 Do not lose casts from array types with unknown extent to array
5783 types with known extent.
5784 * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
5785 alias set compatibility.
5786
62a67c94
MLI
57872009-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
5788
5789 * flags.h (extra_warnings): Delete.
5790 * toplev.c (process_options): Handle Wuninitialized here.
5791 * opts.c (extra_warnings): Delete.
5792 (set_Wextra): Delete.
5793 (common_handle_option): -Wextra can be handled automatically.
5794 * c-opts.c (c_common_handle_option): Delete obsolete code.
5795 (c_common_post_options): Simplify comment.
5796 * common.opt (W): Add Var.
5797 (Wextra): Add Var.
5798 (Wuninitialized): Initialize to -1.
5799
8c7926c4
AN
58002009-05-03 Adam Nemet <anemet@caviumnetworks.com>
5801 Richard Guenther <rguenther@suse.de>
5802
5803 * expr.c (get_def_for_expr): New function.
5804 (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
5805 SSA rather than trees.
5806 <MULT_EXPR>: Likewise. Use subexp0 and subexp1 instead of
5807 TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
5808
fa5da7de
JM
58092009-05-03 Joseph Myers <joseph@codesourcery.com>
5810
5811 * c-common.c (reswords): Add _Imaginary.
5812 * c-common.c (enum rid): Add RID_IMAGINARY.
5813
2ddd5020
PB
58142009-05-03 Paolo Bonzini <bonzini@gnu.org>
5815
5816 * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
5817 Patch by Richard Guenther.
5818
aea88c05
AS
58192009-05-03 Anatoly Sokolov <aesok@post.ru>
5820
5821 * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
5822 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
5823 * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
5824 * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
5825 * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
5826 * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
5827 * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
5828 * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
5829 * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
5830 * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
5831 * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
5832 * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
5833 * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
5834 * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
5835 * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
5836 * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
5837 * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
5838 * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
5839
85e59f3a
RG
58402009-05-02 Richard Guenther <rguenther@suse.de>
5841
5842 PR tree-optimization/39940
5843 * tree-ssa-pre.c (eliminate): Make sure we may propagate before
5844 doing so.
5845
4636b850
RG
58462009-05-02 Richard Guenther <rguenther@suse.de>
5847
5848 PR middle-end/40001
5849 * tree-ssa.c (execute_update_addresses_taken): Properly check
5850 if we can mark a variable DECL_GIMPLE_REG_P.
5851 * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
5852 back to the end of the function.
5853 (is_gimple_reg_type): Remove complex type special casing.
5854 * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
5855 if not optimizing.
5856
5e10cb5a
BE
58572009-05-02 Ben Elliston <bje@au.ibm.com>
5858
5859 * doc/collect2.texi (Collect2): Document search path behaviour
5860 when configured with --with-ld.
5861
048bf48b
JH
58622009-05-02 Jan Hubicka <jh@suse.cz>
5863
5864 * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
5865 parameter; update callers.
aa016ff7
UB
5866 (coalesce_cost_edge): EH edges are costier because they needs
5867 splitting even if not critical and even more costier when there are
5868 multiple EH predecestors.
048bf48b 5869
d5c5f9ab
JH
58702009-05-02 Jan Hubicka <jh@suse.cz>
5871
5872 * except.c (remove_eh_handler_and_replace): Handle updating after
5873 removing TRY blocks.
5874
2ed1959a
EB
58752009-05-02 Eric Botcazou <ebotcazou@adacore.com>
5876
5877 * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
5878
d363a7e7
SB
58792009-05-02 Steven Bosscher <steven@gcc.gnu.org>
5880
5881 * varasm.c: Do not include c-pragma.h.
5882 * attribs.c: Do not incude c-common.h.
5883
9c3d55b4
MM
58842009-05-01 Michael Matz <matz@suse.de>
5885
5886 * calls.c (initialize_argument_information): Handle SSA names like
5887 decls with a non MEM_P DECL_RTL.
5888
ea264ca5
SB
58892009-05-01 Steven Bosscher <steven@gcc.gnu.org>
5890
5891 * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
5892 * ipa-utils.c: Likewise.
5893 * ipa-type-escape.c: Likewise.
5894 * cgraphunit.c Do not include c-common.h.
5895 * ipa-pure-const.c: Likewise.
5896 * tree-if-conv.c: Likewise.
5897 * matrix-reorg.c: Do not include c-common.h and c-tree.h.
5898 * ipa-struct-reorg.c: Likewise.
5899 * tree-nomudflap.c: Likewise.
5900 * tree-ssa-structalias.c: Likewise.
5901
6c5d4d1a
SB
59022009-05-01 Steven Bosscher <steven@gcc.gnu.org>
5903
5904 * store-motion.c: Many cleanups to make this pass a first-class
5905 citizen instead of an appendix to gcse load motion. Add TODO list
5906 to make this pass faster/cleaner/better.
5907
5908 (struct ls_expr): Post gcse.c-split cleanups.
5909 Rename to st_expr. Rename "loads" field to "antic_stores". Rename
5910 "stores" field to "avail_stores".
5911 (pre_ldst_mems): Rename to store_motion_mems.
5912 (pre_ldst_table): Rename to store_motion_mems_table.
5913 (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
5914 (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
5915 (ldst_entry): Rename to st_expr_entry, update users.
5916 (free_ldst_entry): Rename to free_st_expr_entry, update users.
5917 (free_ldst_mems): Rename to free_store_motion_mems, update users.
aa016ff7
UB
5918 (enumerate_ldsts): Rename to enumerate_store_motion_mems,
5919 update caller.
6c5d4d1a
SB
5920 (first_ls_expr): Rename to first_st_expr, update users.
5921 (next_ls_expr): Rename to next_st_expr, update users.
5922 (print_ldst_list): Rename to print_store_motion_mems. Print names of
5923 fields properly for store motion instead of names inherited from load
5924 motion in gcse.c.
5925 (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
5926 (LAST_AVAIL_CHECK_FAILURE): Explain what this is. Undefine when we
5927 are done with it.
5928
5929 (ae_kill): Rename to st_kill, update users.
5930 (ae_gen): Rename to st_avloc, update users.
5931 (transp): Rename to st_transp, update users.
5932 (pre_insert_map): Rename to st_insert_map, update users.
5933 (pre_delete_map): Rename to st_delete_map, update users.
5934 (insert_store, build_store_vectors, free_store_memory,
5935 one_store_motion_pass): Update for abovementioned changes.
5936
5937 (gcse_subst_count, gcse_create_count): Remove.
5938 (one_store_motion_pass): New statistics counters "n_stores_deleted"
5939 and "n_stores_created", local variables.
5940
5941 (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
5942 use for_each_rtx.
5943
5944 (regvec, compute_store_table_current_insn): Remove.
5945 (reg_set_info, reg_clear_last_set): Remove.
5946 (compute_store_table): Use DF caches instead of local dataflow
5947 solvers.
5948
b02cec6e
JM
59492009-05-01 Joseph Myers <joseph@codesourcery.com>
5950
5951 * c-objc-common.c (c_tree_printer): Print identifiers with
5952 pp_identifier, not pp_string. Mark "({anonymous})" for
5953 translation.
5954 * c-pretty-print.c (pp_c_ws_string): New.
5955 (pp_c_cv_qualifier, pp_c_type_specifier,
5956 pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
5957 pp_c_storage_class_specifier, pp_c_function_specifier,
5958 pp_c_attributes, pp_c_bool_constant, pp_c_constant,
5959 pp_c_primary_expression, pp_c_postfix_expression,
5960 pp_c_unary_expression, pp_c_shift_expression,
5961 pp_c_relational_expression, pp_c_equality_expression,
5962 pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
5963 use pp_string and pp_c_ws_string in place of pp_identifier and
5964 pp_c_identifier for non-identifiers. Mark English strings for
5965 translation.
5966 * c-pretty-print.h (pp_c_ws_string): Declare.
5967
cd533689
PP
59682009-04-30 Paul Pluzhnikov <ppluzhnikov@google.com>
5969 Roland McGrath <roland@redhat.com>
5970
aa016ff7 5971 * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
cd533689
PP
5972 (ENABLE_LD_BUILDID): New configuration option.
5973 * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
5974 (LINK_BUILDID_SPEC): New macro.
5975 (init_spec): If defined, prepend it between LINK_EH_SPEC and
5976 link_spec.
5977 * doc/install.texi: Document --enable-linker-build-id option.
5978 * configure: Rebuild.
5979 * config.in: Rebuild.
5980
ba6adec4
AN
59812009-04-30 Adam Nemet <anemet@caviumnetworks.com>
5982
5983 * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
5984 MIPS_GP_SAVE_AREA_SIZE): Define new macros.
5985 (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD. Use
5986 MIPS_GP_SAVE_AREA_SIZE.
5987 * config/mips/mips.c (struct mips_frame_info): Update comment
5988 before arg_pointer_offset and hard_frame_pointer_offset.
5989 (mips_compute_frame_info): Update diagram before function: to
5990 correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
5991 indicate the position of frame_pointer_rtx with -fstack-protector and
5992 to show args_size. Don't allocate cprestore area for leaf functions
5993 if FRAME_GROWS_DOWNWARD. Use MIPS_GP_SAVE_AREA_SIZE to set
5994 cprestore_size.
5995 (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
5996
48f5b722
MM
59972009-04-30 Michael Matz <matz@suse.de>
5998
ba6adec4
AN
5999 PR tree-optimization/39955
6000 * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
48f5b722 6001
b65d6744
DK
60022009-04-30 Dave Korn <dave.korn.cygwin@gmail.com>
6003
6004 * ira.c (setup_cover_and_important_classes): Use safe macro
6005 REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
6006 directly.
6007 * genpreds.c (write_tm_preds_h): Output suitable definition of
6008 REG_CLASS_FOR_CONSTRAINT.
6009
f136c8ae
RAE
60102009-04-30 Rafael Avila de Espindola <espindola@google.com>
6011
6012 * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
6013 instead of an int.
6014 * bitmap.c (bitmap_descriptor): Likewise.
6015 * ggc-common.c (loc_descriptor): Likewise.
6016 * varray.c (varray_descriptor): Likewise.
6017 * vec.c (vec_descriptor): Likewise.
6018
43fcece8 60192009-04-30 Eric Botcazou <ebotcazou@adacore.com>
35debead
EB
6020
6021 * Makefile.in (dce.o): Add $(EXCEPT_H).
6022 * dce.c: Include except.h and delete redundant vector definitions.
6023 (deletable_insn_p): Return false for non-call insns that can throw
6024 if DF is running.
6025
df35c271
SB
60262009-04-30 Steven Bosscher <steven@gcc.gnu.org>
6027
6028 * gcse.c (ae_gen): Remove.
6029 (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
6030 and make non-static function to make it available in store-motion.c.
6031 Update call sites with search-and-replace.
6032 (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
6033 extract_mentioned_regs, extract_mentioned_regs_helper,
6034 find_moveable_store, compute_store_table, load_kills_store, find_loads,
6035 store_killed_in_insn, store_killed_after, store_killed_before,
6036 build_store_vectors, insert_insn_start_basic_block, insert-store,
6037 remove_reachable_equiv_notes, replace_store_insn, delete_store,
6038 free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
6039 execute_rtl_store_motion, pass_rtl_store_motion): Move to...
6040 * store-motion.c: ...new file. Also copy data structures from gcse.c
6041 and clean up to remove parts not used by store motion.
6042 * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
6043 * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
6044
f711a87a
RR
60452009-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6046
6047 PR target/38571
6048 * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
6049 when optimizing for size.
6050
fa5ed76e
HPN
60512009-04-30 Hans-Peter Nilsson <hp@axis.com>
6052
6053 * gcse.c (gcse_constant_p): Fix typo in last change.
6054
0acbbdb0
RAE
60552009-04-30 Rafael Avila de Espindola <espindola@google.com>
6056
6057 * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
6058
82f5c05d
AK
60592009-04-30 Andreas Krebbel <krebbel1@de.ibm.com>
6060
6061 * gcse.c (gcse_constant_p): Make sure the constant is sharable.
6062
6d8f135b
JW
60632009-04-29 James E. Wilson <wilson@codesourcery.com>
6064
6065 * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
6066 CONST_HIGH_PART result.
6067
c21ca196
AS
60682009-04-29 Anatoly Sokolov <aesok@post.ru>
6069
6070 * config/avr/avr.c (initial_elimination_offset): Rename to
6071 avr_initial_elimination_offset.
6072 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
6073 change return type to bool.
6074 (avr_can_eliminate): New function.
6075 * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
6076 (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
6077 (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
0d50d55a 6078 * config/avr/avr-protos.h (initial_elimination_offset): Rename to
c21ca196
AS
6079 avr_initial_elimination_offset.
6080 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
6081 (avr_initial_elimination_offset): Define.
6082
2a34bece 60832009-04-29 Eric Botcazou <ebotcazou@adacore.com>
aa016ff7 6084 Steven Bosscher <steven@gcc.gnu.org>
2a34bece
EB
6085
6086 PR rtl-optimization/39938
6087 * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
6088 * cfgrtl.c: Include insn-attr.h.
6089 (rest_of_pass_free_cfg): New function.
6090 (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
6091 * resource.c (init_resource_info): Remove call to df_analyze.
6092
5dc7911e
RG
60932009-04-29 Richard Guenther <rguenther@suse.de>
6094
6095 PR target/39943
6096 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
6097 allow conversion to signed integers.
6098
1fe479fd
RG
60992009-04-29 Richard Guenther <rguenther@suse.de>
6100
6101 * tree-cfg.c (verify_gimple_assign_binary): Allow vector
6102 shifts of floating point vectors if the shift amount is
6103 a constant multiple of the element size.
6104
8e001680
AK
61052009-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
6106 Michael Matz <matz@suse.de>
6107
6108 PR middle-end/39927
6109 PR bootstrap/39929
6110 * tree-outof-ssa.c (emit_partition_copy): New function.
6111 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
6112 insert_part_to_rtx_on_edge): Perform the partition base var
6113 copy using emit_partition_copy.
6114 (insert_value_copy_on_edge): Convert constants to the right mode.
6115 (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
6116 (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
6117
e50e3081
BS
61182009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
6119
6120 * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
6121 scan backwards to try to find a constant to initialize it.
6122
4e5d521b
BS
6123 * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
6124 insn before the loop_end instruction, don't look past labels.
6125
7c90021d
RG
61262009-04-29 Richard Guenther <rguenther@suse.de>
6127
6128 PR middle-end/39937
6129 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
6130 loose type conversions.
6131 (forward_propagate_addr_expr): Fix tuplification bug. Remove
6132 stmts only if there are no uses of its definition.
6133
97a988bc
BS
61342009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
6135
6136 * config/bfin/bfin.h (splitting_loops): Declare.
6137 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
6138 Reorder bit definitions to be ascending.
6139 (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
6140 * config/bfin/bfin.c (splitting_loops): New variable.
6141 (bfin_cpus): Add WA_LOAD_LCREGS as needed.
6142 (struct loop_info): Remove members INIT and LOOP_INIT.
6143 (bfin_optimize_loop): Don't set them. Reorder the code that generates
aa016ff7
UB
6144 the LSETUP sequence. Allow LC to be loaded from any register, but
6145 also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
97a988bc
BS
6146 (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
6147 set to 1.
6148 * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
6149 of reload_completed.
aa016ff7 6150
97a988bc
BS
6151 From Jie Zhang:
6152 * config/bfin/bfin.md (movsi_insn): Refine constraints.
6153
0c463e16
RAE
61542009-04-29 Rafael Avila de Espindola <espindola@google.com>
6155
6156 * Makefile.in (PLUGIN_VERSION_H): New.
6157 (OBJS-common): Remove plugin-version.o.
6158 (plugin.o): Depend on (PLUGIN_VERSION_H).
6159 (plugin-version.o): Remove.
6160 * configure: Regenerate
6161 * configure.ac: Create plugin-version.h.
6162 * gcc-plugin.h (plugin_gcc_version): Remove.
6163 (plugin_default_version_check): Change signature.
6164 * plugin-version.c: Remove.
6165 * plugin.c: Include plugin-version.h.
6166 (str_plugin_gcc_version_name): Remove.
6167 (try_init_one_plugin): Pass gcc version to plugin_init.
6168 (plugin_default_version_check): Both gcc and plugin versions are now
6169 arguments.
6170
307e7eab
BS
61712009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
6172
6173 * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
6174 problematic last insns. Test for TYPE_CALL rather than CALL_P.
aa016ff7
UB
6175 Remove special case testing for last insn of inner loops. Don't fail
6176 if the loop ends with a jump, emit an extra nop instead.
307e7eab 6177
c5d96723
BS
6178 * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
6179 DREGS rather than comparing directly. Remove code that tries to
6180 account for latencies.
6181
de0b4ad5
RG
61822009-04-29 Richard Guenther <rguenther@suse.de>
6183
6184 PR tree-optimization/39941
6185 * tree-ssa-pre.c (eliminate): Schedule update-ssa after
6186 eliminating an indirect call.
6187
3a19701a
RG
61882009-04-29 Richard Guenther <rguenther@suse.de>
6189
6190 * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
6191 parameter. Allow invariants as base if !require_lvalue.
6192 (verify_gimple_assign_single): Adjust.
6193
a0a31d1e
BS
61942009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
6195
6196 * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
6197 (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
aa016ff7
UB
6198 ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
6199 ssubhi3, ssaddhi3_parts and sssubhi3_parts.
a0a31d1e
BS
6200 (flag_mulhi3_parts): Produce a HImode output rather than trying to set
6201 a VEC_SELECT.
aa016ff7
UB
6202 * config/bfin/bfin.c (bfin_expand_builtin,
6203 case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
a0a31d1e 6204
795bd26a
RG
62052009-04-28 Richard Guenther <rguenther@suse.de>
6206
6207 * tree-vect-loop.c (get_initial_def_for_induction): Use
6208 correct types for pointer increment.
6209
04be270f
KG
62102009-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6211
6212 * toplev.c (print_version): Update GMP version string calculation.
6213
e1a3b85c
EB
62142009-04-28 Eric Botcazou <ebotcazou@adacore.com>
6215
6216 PR rtl-optimization/39938
6217 * resource.c (init_resource_info): Add call to df_analyze.
6218
8224166e
UB
62192009-04-28 Uros Bizjak <ubizjak@gmail.com>
6220
6221 * config/alpha/alpha.md (usegp): Cast the result of
6222 alpha_find_lo_sum_using_gp to enum attr_usegp.
6223 * config/alpha/alpha.c (override_options): Remove end-of-structure
6224 marker element from cpu_table. Use array size of cpu_table to handle
6225 -mcpu and -mtune options.
6226 (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
6227
c5f0fe67
JM
62282009-04-28 Joseph Myers <joseph@codesourcery.com>
6229
6230 * config.gcc (powerpc*-*-* | rs6000-*-*): Add
6231 rs6000/option-defaults.h to tm_file. Support cpu_32, cpu_64,
6232 tune_32 and tune_64.
6233 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
6234 support on PowerPC.
6235 * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
6236 * config/rs6000/option-defaults.h: ... here. New file.
6237 (OPT_64, OPT_32): Define.
6238 (MASK_64BIT): Define to 0 if not already defined.
6239 (OPT_ARCH64, OPT_ARCH32): Define.
6240 (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
6241 and tune_64.
6242
0c48a567
RR
62432009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6244
6245 * config/arm/arm.c (arm_override_options): Emit error on using
6246 fpa with AAPCS.
6247
f1028b9d
UB
62482009-04-28 Uros Bizjak <ubizjak@gmail.com>
6249
6250 PR rtl-optimization/39914
6251 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
6252 registers for allocnos created from user-defined variables only
6253 when not optimizing.
6254
e0dd989a
RG
62552009-04-28 Richard Guenther <rguenther@suse.de>
6256
6257 PR middle-end/39937
6258 * fold-const.c (fold_binary): Use distribute_real_division only
6259 on float types.
6260
9a17c91d
SE
62612009-04-28 Steve Ellcey <sje@cup.hp.com>
6262
6263 * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
6264 add hpux-stdint.h to tm_file.
6265 (hppa[12]*-*-hpux11*): Ditto.
6266 (ia64*-*-hpux*): Ditto.
6267 * config/hpux-stdint.h: New.
60839f5d 6268 * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
9a17c91d 6269 __STDC_EXT__ for all compiles.
60839f5d
EB
6270 * config/pa/pa-hpux.h: Ditto.
6271 * config/pa/pa-hpux10.h: Ditto.
6272 * config/pa/pa-hpux11.h: Ditto.
9a17c91d 6273
af04e659
CM
62742009-04-28 Catherine Moore <clm@codesourcery.com>
6275
6276 * debug.h (set_name): Add comment.
6277
04ef80ce
AP
62782009-04-28 Andrew Pinski <pinskia@gmail.com>
6279
6280 PR target/39929
6281 * config/darwin.c (machopic_gen_offset): Check
6282 currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
6283 * config/arm/arm.c (require_pic_register): Likewise.
6284
65ad77af
PB
62852009-04-28 Paolo Bonzini <bonzini@gnu.org>
6286
8224166e
UB
6287 * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
6288 m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
6289 m32c_promote_prototypes): Delete.
65ad77af 6290
1b15a008
MM
62912009-04-28 Michael Matz <matz@suse.de>
6292
6293 PR middle-end/39922
6294 * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
6295 constants.
6296
7569a6cc
RG
62972009-04-28 Richard Guenther <rguenther@suse.de>
6298
f1028b9d 6299 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
7569a6cc 6300
ead204d9
RR
63012009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6302
6303 * config/arm/arm-cores.def: Add support for arm1156t2f-s.
6304 * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
6305 * config/arm/arm-tune.md: Regenerate.
6306
f2c45f08 63072009-04-28 Alexander Monakov <amonakov@ispras.ru>
60839f5d 6308
f2c45f08
AM
6309 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
6310 block if there are complex incoming edges.
6311 (sel_merge_blocks): Remove useless assert.
6312 (sel_redirect_edge_and_branch): Check that edge was redirected.
6313 * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
6314 (sel_find_rgns): Delete declaration.
6315 * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
6316 the region when it is not a preheader.
6317
7a00d767
UB
63182009-04-28 Uros Bizjak <ubizjak@gmail.com>
6319
6320 PR c/39323
6321 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
6322
448ee662
RG
63232009-04-28 Richard Guenther <rguenther@suse.de>
6324
6325 * tree.h (SSA_NAME_VALUE): Remove.
6326 (struct tree_ssa_name): Remove value_handle member.
6327 * tree-vrp.c (execute_vrp): Initialize/free the value-handle
6328 array for jump threading.
6329 * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
6330 SSA_NAME_VALUEs.
6331 * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
6332 * tree-flow.h (threadedge_initialize_values): Declare.
6333 (threadedge_finalize_values): Likewise.
6334 * tree-ssa-threadedge.c (ssa_name_values): New global variable.
6335 (SSA_NAME_VALUE): Define.
6336 (threadedge_initialize_values): New function.
6337 (threadedge_finalize_values): Likewise.
6338 * tree-ssa-dom.c (ssa_name_values): New global variable.
6339 (SSA_NAME_VALUE): Define.
f1028b9d 6340 (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
448ee662 6341
8644a673
IR
63422009-04-28 Ira Rosen <irar@il.ibm.com>
6343
6344 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
6345 Use REPORT_VECTORIZED_LOCATIONS instead
6346 REPORT_VECTORIZED_LOOPS.
6347 * tree-vectorizer.c (vect_verbosity_level): Make static.
6348 (vect_loop_location): Rename to vect_location.
6349 (vect_set_verbosity_level): Update comment.
6350 (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
6351 and vect_location.
6352 (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
6353 and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
6354 instead REPORT_UNVECTORIZED_LOOPS.
fbdf817d
UB
6355 * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
6356 and vect_loop_def to vect_external_def and vect_internal_def.
8644a673 6357 (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
7a00d767 6358 and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and
8644a673
IR
6359 REPORT_UNVECTORIZED_LOCATIONS.
6360 (enum vect_relevant): Update comment. Rename vect_unused_in_loop
6361 and vect_used_in_loop and to vect_unused_in_scope and
6362 vect_used_in_scope.
6363 (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
6364 (vect_verbosity_level): Remove declaration.
6365 (vect_analyze_operations): Likewise.
6366 (vect_analyze_stmt): Declare.
6367 * tree-vect-loop.c (vect_determine_vectorization_factor): Use
6368 REPORT_UNVECTORIZED_LOCATIONS.
6369 (vect_get_loop_niters): Fix indentation.
6370 (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
6371 (vect_analyze_loop_operations): New function.
6372 (vect_analyze_loop): Call vect_analyze_loop_operations instead of
6373 vect_analyze_operations.
6374 (vect_is_simple_reduction): Use new names.
6375 (vectorizable_live_operation, vect_transform_loop): Likewise.
fbdf817d
UB
6376 * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
6377 to specify whether the data references can be a part of interleaving
6378 chain.
8644a673
IR
6379 (vect_analyze_data_ref_dependence): Use new names.
6380 (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
6381 (vect_create_addr_base_for_vector_ref): Remove redundant code.
6382 * tree-vect-patterns.c (widened_name_p): Use new names.
6383 (vect_recog_dot_prod_pattern): Likewise.
6384 * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
6385 (process_use, vect_mark_stmts_to_be_vectorized,
6386 vect_model_simple_cost, vect_model_store_cost,
6387 vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
6388 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
6389 vectorizable_operation, vectorizable_type_demotion,
6390 vectorizable_type_promotion, vectorizable_store, vectorizable_load,
6391 vectorizable_condition): Likewise.
6392 (vect_analyze_operations): Split into vect_analyze_loop_operations
6393 and ...
6394 (vect_analyze_stmt): ... new function.
6395 (new_stmt_vec_info): Use new names.
6396 (vect_is_simple_use): Use new names and fix comment.
6397 * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
6398 (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
6399
b91322f2
UB
64002009-04-28 Uros Bizjak <ubizjak@gmail.com>
6401
6402 PR target/39911
6403 * config/i386/i386.c (print_operand) ['Z']: Handle floating point
6404 and integer modes for x87 operands. Do not ICE for unsupported size,
6405 generate error instead. Generate error for unsupported operand types.
6406 ['z']: Do not handle HImode memory operands specially. Warning
6407 for floating-point operands. Fallthru to 'Z' for unsupported operand
6408 types. Do not ICE for unsupported size, generate error instead.
6409 (output_387_binary_op): Use %Z to output operands.
6410 (output_fp_compare): Ditto.
6411 (output_387_reg_move): Ditto.
6412
b2ed71b6
BE
64132009-04-28 Ben Elliston <bje@au.ibm.com>
6414
6415 PR c++/35652
6416 Revert:
6417
6418 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6419
6420 * builtins.c (c_strlen): Do not warn here.
6421 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
6422 * c-common.c (pointer_int_sum): Take an explicit location.
6423 Warn about offsets out of bounds.
6424 * c-common.h (pointer_int_sum): Adjust declaration.
6425
81f40b79
ILT
64262009-04-27 Ian Lance Taylor <iant@google.com>
6427
6428 * collect2.c (is_ctor_dtor): Change type of ret field in struct
6429 names to symkind.
6430 * dce.c (run_fast_df_dce): Change type of old_flags to int.
6431 * df-core.c (df_set_flags): Change return type to int. Change
6432 type of old_flags to int.
6433 (df_clear_flags): Likewise.
6434 * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
6435 (df_get_conditional_uses): Likewise.
6436 * df.h (df_set_flags, df_clear_flags): Update declarations.
6437 * dwarf2out.c (struct indirect_string_node): Change type of form
6438 field to enum dwarf_form.
6439 (AT_string_form): Change return type to enum dwarf_form.
6440 * fixed-value.c (fixed_compare): Add cast to enum type.
6441 * fwprop.c (update_df): Change 0 to VOIDmode.
6442 * gensupport.c: Change 0 to UNKNOWN.
6443 * gimple.h (gimple_cond_code): Add cast to enum type.
6444 * haifa-sched.c (reemit_notes): Add cast to enum type.
6445 * hooks.c (hook_int_void_no_regs): Remove function.
6446 * hooks.h (hook_int_void_no_regs): Remove declaration.
6447 * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
7a00d767 6448 * predict.c (combine_predictions_for_insn): Add casts to enum type.
81f40b79
ILT
6449 * real.c (real_arithmetic): Add cast to enum type.
6450 (real_compare): Likewise.
6451 * target.h (struct gcc_target): Change return type of
6452 branch_target_register_class to enum reg_class.
6453 * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
6454 default_branch_target_register_class.
7a00d767 6455 * targhooks.c (default_branch_target_register_class): New function.
81f40b79 6456 * targhooks.h (default_branch_target_register_class): Declare.
7a00d767 6457 * tree-data-ref.c (print_direction_vector): Add cast to enum type.
81f40b79
ILT
6458 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
6459 cast to int.
6460 * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
6461 ERROR_MARK.
6462 * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
6463 vect_uninitialized_def. Change 0 to ERROR_MARK.
6464 * tree-vect-stmts.c (supportable_widening_operation): Don't
6465 initialize icode1 and icode2.
7a00d767 6466 * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
81f40b79
ILT
6467 * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
6468 and to STD_C89.
6469 (cmn_err_flag_specs): Change 0 to STD_C89.
6470 (cmn_err_char_table): Likewise.
6471 * config/arm/arm.c (get_arm_condition_code): Change type of code
6472 to enum arm_cond_code.
6473 (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
6474 (IWMMXT_BUILTIN2): Likewise.
6475 (neon_builtin_type_bits): Don't define typedef.
6476 (neon_builtin_datum): Change type of bits field to int.
6477 (arm_expand_neon_args): Add cast to enum type.
6478 * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
6479 TLS_MODEL_NONE.
6480 * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN. Add
6481 casts to enum type.
6482 * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
6483 MIPS_FP_COND_f.
6484 * config/mips/mips.md (jal_macro): Return enum constant.
6485 (single_insn): Likewise.
6486 * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
6487 CODE_FOR_nothing.
6488 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
6489 casts to enum type.
6490 * config/s390/s390.c (s390_tune_flags): Change type to int.
6491 (s390_arch_flags): Likewise.
7a00d767 6492 (s390_handle_arch_option): Change flags field of struct pta to int.
81f40b79
ILT
6493 * config/s390/s390.h (s390_tune_flags): Update declaration.
6494 (s390_arch_flags): Likewise.
6495 * config/sh/sh.c (prepare_move_operands): Compare
6496 tls_symbolic_operand result with enum constant.
6497 (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
6498 (sh_expand_prologue): Add cast to enum type.
6499 (sh_expand_epilogue): Likewise.
6500 (tls_symbolic_operand): Change return type to enum tls_model.
6501 (fpscr_set_from_mem): Add cast to enum type.
6502 (legitimize_pic_address): Compare tls_symbolic_operand result with
6503 enum constant.
6504 (sh_target_reg_class): Change return type to enum reg_class.
6505 * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
6506 PROCESSOR_xxx.
7a00d767
UB
6507 * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
6508 * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
81f40b79
ILT
6509 * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
6510 (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
6511 (delayed_branch, tls_call_delay): Likewise.
6512 (eligible_for_sibcall_delay): Likewise.
6513 (eligible_for_return_delay): Likewise.
6514 * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
6515 (spu_expand_builtin_1): Likewise.
6516
6517 * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
6518 for all types of conversions.
6519 (output_init_element): Issue -Wc++-compat warning if needed when
6520 initializing a bitfield with enum type.
6521 * c-parser.c (c_parser_expression): Set original_type to
6522 original_type of right hand operand of comman operator.
6523
e4ae5e77
RW
65242009-04-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6525
6526 * doc/c-tree.texi (Types, Functions, Expression trees): Fix
6527 grammar nits.
7a00d767 6528 * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
e4ae5e77
RW
6529 * doc/cpp.texi (Standard Predefined Macros)
6530 (Implementation-defined behavior): Likewise.
7a00d767 6531 * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
e4ae5e77
RW
6532 * doc/gimple.texi (GIMPLE Exception Handling)
6533 (@code{GIMPLE_ASSIGN}): Likewise.
7a00d767 6534 * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
e4ae5e77
RW
6535 * doc/invoke.texi (Warning Options, Optimize Options)
6536 (AVR Options, Darwin Options): Likewise.
6537 (Optimize Options): Reformulate -fwhole-program description.
6538 * doc/loop.texi (Lambda): Likewise.
6539 * doc/md.texi (Output Template, Define Constraints)
6540 (Standard Names, Insn Splitting): Likewise.
6541 * doc/options.texi (Option properties): Likewise.
6542 * doc/passes.texi (Tree-SSA passes): Likewise.
6543 * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
6544 * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
6545 (File Names and DBX): Likewise.
6546 * doc/trouble.texi (Incompatibilities): Likewise.
6547
1883802f 65482009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
6e37f6d4
TS
6549
6550 * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
6551 instruction is correct.
6552
1883802f 65532009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
5345cf68
TS
6554
6555 Allow non-constant arguments to conversion intrinsics.
6556 * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
6557 * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
6558 * spu.c (print_operand): Handle 'v' and 'w'.
6559 (exp2_immediate_p, spu_gen_exp2): Define.
6560 * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
6561 spu_convtf_1): Update parameter descriptions.
7a00d767 6562 * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
5345cf68
TS
6563 * constraints.md ('v', 'w'): New.
6564 * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
6565 Remove.
6566 (i2f, I2F): New define_mode_attr.
6567 (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
6568 floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
6569 fixuns_truncv4sfv4si2): Update to use mode attribute.
6570 (float<mode><i2f>2_mul, float<mode><i2f>2_div,
6571 fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
6572 floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
6573 patterns for combine.
6574
5f39ad47
SB
65752009-04-27 Steven Bosscher <steven@gcc.gnu.org>
6576
6577 * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
6578 (cprop, hoist, pre, store_motion): New debug counters.
6579 * tree-pass.h (pass_tracer): Move to list of gimple passes, it
6580 is not an RTL pass anymore.
6581 (pass_profiling): Remove extern decl for pass removed in 2005.
6582 (pass_gcse, pass_jump_bypass): Remove.
6583 * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
6584 to 0 for clean state.
6585 * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
6586 * cse.c (gate_handle_cse_after_global_opts,
6587 rest_of_handle_cse_after_global_opts): New functions.
6588 (pass_cse_after_global_opts): New pass, does local CSE.
6589 * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
6590 (TV_CPROP): New timevar.
6591 * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
6592 (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
6593 (gcse_main, recompute_all_luids): Remove.
6594 (compute_hash_table_work): Call max_reg_num instead of reading
6595 max_gcse_regno.
6596 (cprop_jump): Don't set run_jump_opt_after_gcse.
6597 (constprop_register): Always allow to alter jumps.
6598 (cprop_insn): Likewise.
6599 (do_local_cprop): Likewise.
6600 (local_cprop_pass): Likewise. Return non-zero if something changed.
6601 (cprop): Remove function, fold interesting bits into one_cprop_pass.
6602 (find_implicit_sets): Add note about missed optimization opportunity.
6603 (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
6604 pass_rtl_cprop execute function.
6605 Don't bother tracking the pass number, each pass gets its own dumpfile
6606 now anyway.
6607 Always allow to alter jumpsand bypass jumps.
6608 (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
6609 will just find no suitable set.
6610 (pre_edge_insert): Fix dumping, this function is for PRE only.
6611 (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
6612 pass_rtl_pre execute function.
6613 (hoist_code): Return non-zero if something changed. Keep track of
6614 substitutions and insertions for statistics gathering similar to PRE.
6615 (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
6616 called from the pass_rtl_hoist execute function. Show pass statistics.
6617 (compute_store_table): Use max_reg_num directly instead of using the
6618 formerly global max_gcse_regno.
6619 (build_store_vectors): Likewise.
6620 (replace_store_insn): Fix dumping.
6621 (store_motion): Rename to ...
6622 (one_store_motion_pass): ... this. Rewrite to be "the" STORE_MOTION
6623 pass, called from the pass_rtl_store_motion execute function. Keep
6624 track of substitutions and insertions for statistics gathering similar
6625 to PRE.
6626 (bypass_jumps): Remove, fold interesting bits into ...
6627 (one_cprop_pass): ... this. Rewrite to be "the" CPROP pass, called
6628 from the pass_rtl_cprop execute function.
6629 (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
6630 pass_jump_bypass): Remove.
6631 (gate_handle_gcse, rest_of_handle_gcse): Remove.
6632 (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
6633 (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
6634 (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
6635 (gate_rtl_store_motion, execute_rtl_store_motion,
6636 pass_rtl_store_motion): New.
6637 * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
6638 make it clear that -fcse-skip-blocks is a no-op for backward compat.
6639 * passes.c (init_optimization_passes): Remove pass_gcse and
6640 pass_jump_bypass. Schedule cprop, pre, hoist, cprop, store_motion,
6641 and cse_after_global_opts in place of pass_gcse. Schedule cprop
6642 instead of pass_jump_bypass.
6643
c685de4a
RG
66442009-04-27 Richard Guenther <rguenther@suse.de>
6645
6646 PR middle-end/39928
6647 * gimplify.c (gimplify_expr): If we are required to create
6648 a temporary make sure it ends up as register.
6649
72d41f29
L
66502009-04-27 H.J. Lu <hongjiu.lu@intel.com>
6651
6652 PR target/39903
6653 * config/i386/i386.c (construct_container): Don't call
6654 gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
6655 X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
6656
e97809c6
MM
66572009-04-27 Michael Matz <matz@suse.de>
6658
6659 * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
6660 (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
6661 * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
6662 (dump_replaceable_exprs): Take a bitmap.
6663 * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
6664 array.
6665 (expand_gimple_basic_block): Likewise.
6666 * tree-ssa-ter.c (struct temp_expr_table_d): Make
6667 replaceable_expressions member a bitmap.
6668 (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
6669 (mark_replaceable): Likewise.
6670 (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
6671 * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
6672
211ca15c
RG
66732009-04-27 Richard Guenther <rguenther@suse.de>
6674
6675 * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
6676 (verify_stmts): Dispatch to gimple/type verification code.
6677 * tree-inline.c (remap_gimple_op_r): Work around C++ FE
6678 issue with call argument types.
6679
fca5f3d1
MM
66802009-04-27 Michael Matz <matz@suse.de>
6681
6682 * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
6683 (init_update_ssa, delete_update_ssa, update_ssa): Remove references
6684 to above.
6685
a1fa3e79 66862009-04-27 Richard Sandiford <rdsandiford@googlemail.com>
8224166e 6687 Eric Botcazou <ebotcazou@adacore.com>
a1fa3e79
EB
6688
6689 * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
6690 a label's basic block.
6691 (mark_target_live_regs): Tidy and rework obsolete comments.
6692 Change back DF problem to LIVE. If a label starts a basic block,
6693 assume that all registers that used to be live then still are.
6694 (init_resource_info): If a label starts a basic block, set its
6695 BLOCK_FOR_INSN accordingly.
6696 (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
6697
33b223c0
RG
66982009-04-27 Richard Guenther <rguenther@suse.de>
6699
6700 * tree-flow-inline.h (function_ann): Remove.
6701 (get_function_ann): Likewise.
6702 * tree-dfa.c (create_function_ann): Remove.
6703 * tree-flow.h (struct static_var_ann_d): Remove.
6704 (struct function_ann_d): Likewise.
6705 (union tree_ann_d): Remove fdecl member.
6706 (function_ann_t): Remove.
6707 (function_ann, get_function_ann, create_function_ann): Remove
6708 declarations.
6709
e3136fa2
UB
67102009-04-27 Uros Bizjak <ubizjak@gmail.com>
6711
6712 * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
6713
f87c9042
JH
67142009-04-27 Jan Hubicka <jh@suse.cz>
6715
6716 * ipa-pure-const.c (struct funct_state_d): New fields
6717 state_previously_known, looping_previously_known; remove
6718 state_set_in_source.
6719 (analyze_function): Use new fields.
6720 (propagate): Avoid assumption that state_set_in_source imply
6721 nonlooping.
6722
6723 * tree-ssa-loop-niter.c (finite_loop_p): New function.
6724 * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
6725 * cfgloop.h (finite_loop_p): Declare.
6726
33abd718
MM
67272009-04-26 Michael Matz <matz@suse.de>
6728
e3136fa2 6729 * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
33abd718 6730
ddc34084
MM
67312009-04-26 Michael Matz <matz@suse.de>
6732
6733 * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
6734 pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
6735 * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
6736 pass_mark_used_blocks): Remove.
6737 * tree-optimize.c (pass_free_datastructures,
6738 execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
6739 * passes.c (init_optimization_passes): Don't call
6740 pass_mark_used_blocks, remove dead code.
6741
1fec7ed4
L
67422009-04-26 H.J. Lu <hongjiu.lu@intel.com>
6743
6744 * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
6745 * tree-ssa-live.h (register_ssa_partition): Likewise.
6746
4e3825db
MM
67472009-04-26 Michael Matz <matz@suse.de>
6748
6749 Expand from SSA.
6750 * builtins.c (fold_builtin_next_arg): Handle SSA names.
6751 * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
6752 * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
6753 SSA names.
6754 (compare_pairs): Swap cost comparison.
6755 (coalesce_ssa_name): Don't use change_partition_var.
6756 * tree-nrv.c (struct nrv_data): Add modified member.
6757 (finalize_nrv_r): Set it.
6758 (tree_nrv): Use it to update statements.
6759 (pass_nrv): Require PROP_ssa.
6760 * tree-mudflap.c (mf_decl_cache_locals,
6761 mf_build_check_statement_for): Use make_rename_temp.
6762 (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
6763 * alias.c (find_base_decl): Handle SSA names.
6764 * emit-rtl (set_reg_attrs_for_parm): Make non-static.
6765 (component_ref_for_mem_expr): Don't leak SSA names into RTL.
6766 * rtl.h (set_reg_attrs_for_parm): Declare.
6767 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
6768 to "optimized", remove unused locals at finish.
6769 (execute_free_datastructures): Make global, call
6770 delete_tree_cfg_annotations.
6771 (execute_free_cfg_annotations): Don't call
6772 delete_tree_cfg_annotations.
6773
6774 * ssaexpand.h: New file.
6775 * expr.c (toplevel): Include ssaexpand.h.
e3136fa2 6776 (expand_assignment): Handle SSA names the same as register variables.
4e3825db
MM
6777 (expand_expr_real_1): Expand SSA names.
6778 * cfgexpand.c (toplevel): Include ssaexpand.h.
6779 (SA): New global variable.
6780 (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
6781 (SSAVAR): New macro.
6782 (set_rtl): New helper function.
6783 (add_stack_var): Deal with SSA names, use set_rtl.
6784 (expand_one_stack_var_at): Likewise.
6785 (expand_one_stack_var): Deal with SSA names.
6786 (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
6787 before unique numbers.
6788 (expand_stack_vars): Use set_rtl.
6789 (expand_one_var): Accept SSA names, add asserts for them, feed them
6790 to above subroutines.
6791 (expand_used_vars): Expand all partitions (without default defs),
6792 then only the local decls (ignoring those expanded already).
6793 (expand_gimple_cond): Remove edges when jumpif() expands an
6794 unconditional jump.
6795 (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
6796 or remove abnormal edges. Ignore insns setting the LHS of a TERed
6797 SSA name.
6798 (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
6799 members of SA; deal with PARM_DECL partitions here; expand
6800 all PHI nodes, free tree datastructures and SA. Commit instructions
6801 on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
6802 (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
6803 info and statements at start, collect garbage at finish.
6804 * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
6805 (VAR_ANN_PARTITION) Remove.
6806 (change_partition_var): Don't declare.
6807 (partition_to_var): Always return SSA names.
6808 (var_to_partition): Only accept SSA names.
6809 (register_ssa_partition): Only check argument.
6810 * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
6811 member.
6812 (delete_var_map): Don't free it.
6813 (var_union): Only accept SSA names, simplify.
6814 (partition_view_init): Mark only useful SSA names as used.
6815 (partition_view_fini): Only deal with SSA names.
6816 (change_partition_var): Remove.
6817 (dump_var_map): Use ssa_name instead of partition_to_var member.
6818 * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
6819 basic blocks.
6820 * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
6821 (struct _elim_graph): New member const_dests; nodes member vector of
6822 ints.
6823 (set_location_for_edge): New static helper.
6824 (create_temp): Remove.
6825 (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
e3136fa2 6826 insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
4e3825db
MM
6827 (new_elim_graph): Allocate const_dests member.
6828 (clean_elim_graph): Truncate const_dests member.
6829 (delete_elim_graph): Free const_dests member.
6830 (elim_graph_size): Adapt to new type of nodes member.
6831 (elim_graph_add_node): Likewise.
6832 (eliminate_name): Likewise.
6833 (eliminate_build): Don't take basic block argument, deal only with
6834 partition numbers, not variables.
6835 (get_temp_reg): New static helper.
6836 (elim_create): Use it, deal with RTL temporaries instead of trees.
6837 (eliminate_phi): Adjust all calls to new signature.
6838 (assign_vars, replace_use_variable, replace_def_variable): Remove.
6839 (rewrite_trees): Only do checking.
6840 (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
6841 (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
6842 init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
6843 contains_tree_r, MAX_STMTS_IN_LATCH,
6844 process_single_block_loop_latch, analyze_edges_for_bb,
6845 perform_edge_inserts): Remove.
6846 (expand_phi_nodes): New global function.
6847 (remove_ssa_form): Take ssaexpand parameter. Don't call removed
6848 functions, initialize new parameter, remember partitions having a
6849 default def.
6850 (finish_out_of_ssa): New global function.
6851 (rewrite_out_of_ssa): Make global. Adjust call to remove_ssa_form,
6852 don't reset in_ssa_p here, don't disable TER when mudflap.
6853 (pass_del_ssa): Remove.
6854 * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
6855 partition members.
6856 (execute_free_datastructures): Declare.
6857 * Makefile.in (SSAEXPAND_H): New variable.
6858 (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
6859 * basic-block.h (commit_one_edge_insertion): Declare.
6860 * passes.c (init_optimization_passes): Move pass_nrv and
6861 pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
6862 pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
6863 * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
6864 (redirect_branch_edge): Deal with super block when expanding, split
6865 out jump patching itself into ...
6866 (patch_jump_insn): ... here, new static helper.
6867
17c665a9
MM
68682009-04-26 Michael Matz <matz@suse.de>
6869
6870 * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
6871 beyond num_ssa_names.
6872 * tree-ssa-ter.c (free_temp_expr_table): Likewise.
6873 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
6874
92061771
JJ
68752009-04-26 Jakub Jelinek <jakub@redhat.com>
6876
ce372372
JJ
6877 PR inline-asm/39543
6878 * fwprop.c (forward_propagate_asm): New function.
6879 (forward_propagate_and_simplify): Propagate also into __asm, if it
6880 doesn't increase the number of referenced registers.
6881
92061771
JJ
6882 PR c/39889
6883 * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
6884
68852009-04-26 Jakub Jelinek <jakub@redhat.com>
77f2a970
JJ
6886
6887 * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
6888 note_nonlocal_vla_type for nonlocal VLAs.
6889 (note_nonlocal_vla_type, note_nonlocal_block_vlas,
6890 contains_remapped_vars, remap_vla_decls): New functions.
6891 (convert_nonlocal_reference_stmt): If not optimizing, call
6892 note_nonlocal_block_vlas on GIMPLE_BIND block vars.
6893 (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
6894 if it wasn't found in var_map.
6895 (finalize_nesting_tree_1): Call remap_vla_decls. If outermost
6896 GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
6897 to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
6898 declare_vars.
6899 * gimplify.c (nonlocal_vlas): New variable.
6900 (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
6901 referenced VLAs.
6902 (gimplify_body): Create and destroy nonlocal_vlas.
a9548ddf 6903
4561e242
JJ
6904 * dwarf2out.c (loc_descr_plus_const): New function.
6905 (build_cfa_aligned_loc, tls_mem_loc_descriptor,
6906 mem_loc_descriptor, loc_descriptor_from_tree_1,
6907 descr_info_loc, gen_variable_die): Use it.
6908
a9548ddf
JJ
6909 * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
6910 !TREE_STATIC VAR_DECLs.
6911 * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
6912 DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
6913 (gen_variable_die): Likewise. Don't look at TREE_PRIVATE if
6914 DECL_BY_REFERENCE is valid.
6915 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
6916 for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
6917 * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
6918 Copy DECL_BY_REFERENCE.
6919 (struct nesting_copy_body_data): New type.
6920 (nesting_copy_decl): New function.
6921 (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
6922 if they have variable length.
6923
10555d08
MM
69242009-04-26 Michael Matz <matz@suse.de>
6925
6926 * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
6927 mark new temporaries for renaming.
6928
e11187cc
JM
69292009-04-26 Joseph Myers <joseph@codesourcery.com>
6930
6931 PR c/39581
6932 * c-decl.c (global_bindings_p): Return negative value.
6933 (c_variable_size): New. Based on variable_size from
6934 stor-layout.c.
6935 (grokdeclarator): Call c_variable_size not variable_size.
6936
f6a51d31
UB
69372009-04-26 Uros Bizjak <ubizjak@gmail.com>
6938
6939 * config/i386/i386.c (print_operand) ['z']: Fix typo.
6940
4b97723d
KT
69412009-04-26 Kai Tietz <kai.tietz@onevision.com>
6942
6943 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
6944 Redefine it to just use mingw/include.
6945 (ASM_SPEC): Rules for -m32 and -m64.
6946 (LINK_SPEC): Use Likewise.
6947 (SPEC_32): New define.
6948 (SPEC_64): Likewise.
6949 (SUB_LINK_SPEC): Likewise.
6950 (MULTILIB_DEFAULTS): New define.
6951 * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
6952 Add multilib options.
6953 (MULTILIB_DIRNAMES): Likewise.
6954 (MULTILIB_OSDIRNAMES): Likewise.
6955 (LIBGCC): Likewise.
6956 (INSTALL_LIBGCC): Likewise.
6957
991d6621
JM
69582009-04-26 Joseph Myers <joseph@codesourcery.com>
6959
6960 PR c/39556
6961 * c-tree.h (enum c_inline_static_type): New.
6962 (record_inline_static): Declare.
6963 * c-decl.c (struct c_inline_static, c_inline_statics,
6964 record_inline_static, check_inline_statics): New.
6965 (pop_file_scope): Call check_inline_statics.
6966 (start_decl): Call record_inline_static instead of pedwarning
6967 directly for static in inline function.
6968 * c-typeck.c (build_external_ref): Call record_inline_static
6969 instead of pedwarning directly for static referenced in inline
6970 function.
6971
4a81774c
SB
69722009-04-26 Steven Bosscher <steven@gcc.gnu.org>
6973
6974 * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
6975 not new but only being rescanned.
6976 * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
6977 reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
6978 alloc_reg_set_mem, free_reg_set_mem, record_one_set,
6979 record_set_info, compute_set, grealloc): Remove.
6980 (recompute_all_luids): New function.
6981 (gcse_main): Don't compute sets, and don't do related memory
6982 allocations/free-ing. If something changed before the end of the
6983 pass, update LUIDs using recompute_all_luids.
6984 (alloc_gcse_mem): Don't compute LUIDs. Don't allocate reg_set memory.
6985 (free_gcse_mem): Don't free it either.
6986 (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
6987 Use the df insn LUIDs.
6988 (load_killed_in_block): Likewise.
6989 (compute_hash_table_work): Don't compute reg_set_in_block.
6990 (compute_transp): Use DF_REG_DEF_CHAINs.
6991 (local_cprop_pass): Don't use compute_sets and related functions.
6992 (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
6993 Use get_max_uid() instead of max_cuid.
6994 (insert_insn_end_basic_block, pre_insert_copy_insn,
6995 update_ld_motion_stores): Don't try to
6996 keep reg_set tables up to date.
6997 (pre_insert_copies): Use df insn LUIDs.
6998 (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
6999 (reg_set_info): Don't use extra bitmap argument.
7000 (compute_store_table): Don't compute reg_set_in_block. Use DF scan
7001 information to compute regs_set_in_block.
7002 (free_store_memory, store_motion): Don't nullify reg_set_in_block.
7003 (bypass_jumps): Don't use compute_sets and friends.
7004
e8f99a9d
RW
70052009-04-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7006
7007 PR testsuite/39710
7008 * opts.c (undocumented_msg): Do not leave blank even with
7009 ENABLE_CHECKING.
7010
6895bac8
JM
70112009-04-25 Joseph Myers <joseph@codesourcery.com>
7012
7013 * c-decl.c (build_enumerator): Allow values folding to integer
7014 constants but not integer constant expressions with a pedwarn if
7015 pedantic.
7016
24070fcb
JM
70172009-04-25 Joseph Myers <joseph@codesourcery.com>
7018
7019 PR c/39582
7020 * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
7021 with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
7022 type is an integer constant.
7023
d6d89aa1
UB
70242009-04-25 Uros Bizjak <ubizjak@gmail.com>
7025
7026 PR target/39897
7027 * config/i386/i386.c (print_operand) ['z']: Revert handling of
7028 HImode operands.
7029
92f6fd0b
JM
70302009-04-25 Joseph Myers <joseph@codesourcery.com>
7031
7032 PR c/39564
7033 * c-decl.c (grokdeclarator): Diagnose declarations of functions
7034 with variably modified return type and no storage class
7035 specifiers, except for the case of nested functions. Distinguish
7036 extern declarations of functions with variably modified return
7037 types from those of objects with variably modified types.
7038
a3710436
JH
70392009-04-25 Jan Hubicka <jh@suse.cz>
7040
7041 * tree.c (list_equal_p): New function.
7042 * tree.h (list_equal_p): Declare.
7043 * coretypes.h (edge_def, edge, const_edge, basic_block_def
7044 basic_block_def, basic_block, const_basic_block): New.
7045 * tree-eh.c (make_eh_edge): EH edges are not abnormal.
7046 (redirect_eh_edge): New function.
7047 (make_eh_edge_update_phi): EH edges are not abnormal.
7048 * except.c: Include tree-flow.h.
7049 (list_match): New function.
7050 (eh_region_replaceable_by_p): New function.
7051 (replace_region): New function.
7052 (hash_type_list): New function.
7053 (hash_eh_region): New function.
7054 (eh_regions_equal_p): New function.
7055 (merge_peers): New function.
7056 (remove_unreachable_regions): Verify EH tree when checking;
7057 merge peers.
7058 (copy_eh_region_1): New function.
7059 (copy_eh_region): New function.
7060 (push_reachable_handler): New function.
7061 (build_post_landing_pads, dw2_build_landing_pads): Be ready for
7062 regions without label but with live RESX.
7063 * except.h (redirect_eh_edge_to_label): New.
7064 * tree-flow.h (redirect_eh_edge): New.
7065 * coretypes.h (edge_def, edge, const_edge, basic_block_def
7066 basic_block_def, basic_block, const_basic_block): Remove.
7067 * Makefile.in (except.o): Add dependency on tree-flow.h
7068 * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
7069 * basic-block.h (edge, const_edge, basic_block, const_basic_block):
7070 Remove.
7071
3764d512
EB
70722009-04-25 Eric Botcazou <ebotcazou@adacore.com>
7073
7074 PR bootstrap/39645
7075 * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
7076 on the destination of memcpy.
7077
1c62e8f2
PB
70782009-04-25 Paolo Bonzini <bonzini@gnu.org>
7079
7080 * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
7081 REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
7082 REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
7083
496a4ef5
JH
70842009-04-25 Jan Hubicka <jh@suse.cz>
7085
7086 * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
7087 (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
7088 to be reached by different label than left.
7089 (update_eh_edges): Update comment; remove edge_to_remove if possible
7090 and return true if suceeded.
7091 (cleanup_empty_eh): Accept sharing map; handle shared regions.
7092 (cleanup_eh): Compute sharing map.
7093 * except.c (remove_eh_handler_and_replace): Add argument if we should
7094 update regions.
7095 (remove_unreachable_regions): Update for label sharing.
7096 (label_to_region_map): Likewise.
7097 (get_next_region_sharing_label): New function.
7098 (remove_eh_handler_and_replace): Add update_catch_try parameter; update
7099 prev_try pointers.
7100 (remove_eh_handler): Update.
7101 (remove_eh_region_and_replace_by_outer_of): New function.
7102 * except.h (struct eh_region): Add next_region_sharing_label.
7103 (remove_eh_region_and_replace_by_outer_of,
7104 get_next_region_sharing_label): Declare.
7105 * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
7106
71072009-04-25 Jan Hubicka <jh@suse.cz>
7108
7109 * tree-cfg.c (split_critical_edges): Split also edges where we can't
7110 insert code even if they are not critical.
7111
71122009-04-25 Jan Hubicka <jh@suse.cz>
7113
7114 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
7115 (gimple_can_remove_branch_p): EH edges won't remove branch by
7116 redirection.
7117 * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
7118 updating of non-abnormal EH edges.
7119 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
7120 (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
7121 (split_critical_edges): Split also edges where emitting code on them
7122 will lead to splitting later.
7123
a3a5e3d1
UB
71242009-04-25 Uros Bizjak <ubizjak@gmail.com>
7125 H.J. Lu <hongjiu.lu@intel.com>
7126
7127 PR target/39590
7128 * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
7129 the configured assembler supports fildq and fistpq mnemonics.
7130 (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
7131 * configure: Regenerated.
7132 * config.in: Ditto.
7133
7134 * config/i386/i386.c (print_operand): Handle 'Z'.
7135 ['z']: Remove handling of special fild/fist suffixes.
7136 (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
7137 * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
7138 suffix of fild insn.
7139 (*floatsi<mode>2_vector_mixed): Ditto.
7140 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
7141 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
7142 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
7143 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
7144 * config/i386/gas.h (GAS_MNEMONICS): Remove.
7145
23750d7f
BE
71462009-04-25 Ben Elliston <bje@au.ibm.com>
7147
7148 * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
7149 the source of a set operation.
7150
e6ff3083
AS
71512009-04-25 Anatoly Sokolov <aesok@post.ru>
7152
7153 * target.h (struct gcc_target): Add case_values_threshold field.
7154 * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
7155 (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
7156 * targhooks.c (default_case_values_threshold): New function.
7157 * targhooks.h (default_case_values_threshold): Declare function.
7158 * stmt.c (expand_case): Use case_values_threshold target hook.
7159 * expr.h (case_values_threshold): Remove declartation.
7160 * expr.c (case_values_threshold): Remove function.
7161 * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
7162
7163 * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
7164 * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
7165 (avr_case_values_threshold): Declare as static.
7166 * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
7167
7168 * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
7169 * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
7170 (mn10300_case_values_threshold): New function.
7171
569c72fc
L
71722009-04-24 H.J. Lu <hongjiu.lu@intel.com>
7173
7174 * ira.c (setup_cover_and_important_classes): Add enum cast.
7175
ff3cb468
VM
71762009-04-24 Vladimir Makarov <vmakarov@redhat.com>
7177
7178 * genpreds.c (write_enum_constraint_num): Output definition of
7179 CONSTRAINT_NUM_DEFINED_P macro.
7180 * ira.c (setup_cover_and_important_classes): Use
7181 CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
7182
4f7be849
DD
71832009-04-24 DJ Delorie <dj@redhat.com>
7184
7185 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
7186 __SH2A_SINGLE_ONLY__ also.
7187
735b94a7
SE
71882009-04-24 Steve Ellcey <sje@cup.hp.com>
7189
7190 * config/ia64/ia64.md (movfs_internal): Allow flt constants.
7191 (movdf_internal): Ditto.
7192 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
7193 SFmode and DFmode constants.
7194 (ia64_print_operand): Add 'G' format for printing
7195 floating point constants.
7196
77a30264
RG
71972009-04-24 Richard Guenther <rguenther@suse.de>
7198
7199 * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
7200 from unsigned additions.
7201
2b6da65c
JM
72022009-04-24 Joseph Myers <joseph@codesourcery.com>
7203
7204 * c-typeck.c (set_init_index): Allow array designators that are
7205 not integer constant expressions with a pedwarn if pedantic.
7206
f5a17c43
BS
72072009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
7208
7209 * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
7210 zero if no overlap in nonzero bits between the operands.
7211
32e8bb8e
ILT
72122009-04-24 Ian Lance Taylor <iant@google.com>
7213
7214 * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
7215 (record_dead_and_set_regs): Likewise.
7216 * df.h (struct df_mw_hardreg): Change flags field to int.
7217 (struct df_base_ref): Likewise.
7218 (struct df): Change changeable_flags field to int.
7219 * df-scan.c (df_defs_record): Change clobber_flags to int.
7220 * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
7221 constants rather than #define macros.
7222 (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
7223 (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
7224 (enum dwarf_calling_convention): Likewise.
7225 (enum dwarf_line_number_x_ops): Likewise.
7226 (enum dwarf_call_frame_info): Likewise.
7227 (enum dwarf_source_language): Likewise.
7228 * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
7229 (add_calling_convention_attribute): Likewise.
a3a5e3d1
UB
7230 * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
7231 (combine_comparisons): Change compcode to int. Add cast to enum type.
32e8bb8e
ILT
7232 * genrecog.c (maybe_both_true_2): Change c to int.
7233 (write_switch): Likewise. Add cast to enum type.
7234 * gimplify.c (gimplify_omp_for): Handle return values from
7235 gimplify_expr using MIN rather than bitwise or.
7236 (gimplify_expr): Add cast to enum type.
7237 * ipa-prop.c (update_jump_functions_after_inlining): Change
7238 IPA_BOTTOM to IPA_JF_UNKNOWN.
a3a5e3d1
UB
7239 * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
7240 Add casts to enum type.
32e8bb8e
ILT
7241 (setup_cover_and_important_classes): Change cl to int. Add casts
7242 to enum type.
7243 (setup_class_translate): Change cl and mode to int.
7244 (ira_init_once): Change mode to int.
7245 (free_register_move_costs): Likewise.
7246 (setup_prohibited_mode_move_regs): Add casts to enum type.
7247 * langhooks.c (add_builtin_function_common): Rework assertion that
7248 value fits bitfield.
7249 * mcf.c (add_fixup_edge): Change type parameter to edge_type.
7250 * omega.c (omega_do_elimination): Avoid math on enum types.
7251 * optabs.c (expand_vec_shift_expr): Remove casts to int.
7252 * opts.c (set_debug_level): Change 2 to enum constant. Use new
7253 int local to handle integral_argment value.
7254 * regmove.c (try_auto_increment): Change PUT_MODE to
7255 PUT_REG_NOTE_KIND.
7256 * reload.c (push_secondary_reload): Add casts to enum type.
7257 (secondary_reload_class, find_valid_class): Likewise.
7258 * reload1.c (emit_input_reload_insns): Likewise.
7259 * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
7260 * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
7261 * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
7262 constant.
7263 * tree.c (build_common_builtin_nodes): Add casts to enum type.
7264 * tree-complex.c (complex_lattice_t): Typedef to int rather than
7265 enum type.
7266 (expand_complex_libcall): Add casts to enum type.
7267 * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
7268 * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
7269 with ERROR_MARK, not NUM_TREE_CODES.
7270 (vect_create_epilog_for_reduction): Likewise.
7271 (vectorizable_reduction): Don't initialize epiloc_reduc_code.
a3a5e3d1 7272 When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
32e8bb8e
ILT
7273 * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
7274 enum machine_mode.
7275 * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
7276 vect_unused_in_loop. Change 0 to loop_vect.
a3a5e3d1 7277 * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
32e8bb8e
ILT
7278 * var-tracking.c (get_init_value): Change return type to enum
7279 var_init_status.
7280 * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
7281 * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
7282 arm_fp_model.
7283 (arm_override_options): Add casts to enum type.
7284 (arm_emit_tls_decoration): Likewise.
7285 * config/i386/i386.c (ix86_function_specific_restore): Add casts
7286 to enum type.
7287 * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
7288 * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
7289 * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
7290 enum type.
7291 * config/s390/s390.c (code_for_builtin_64): Change to array of
7292 enum insn_code.
7293 (code_for_builtin_31): Likewise.
7294 (s390_expand_builtin): Change code_for_builtin to enum insn_code
7295 const *.
7296 * config/sparc/sparc.c (sparc_override_options): Change value
7297 field in struct code_model to enum cmodel. In initializer change
7298 0 to NULL and add cast to enum type.
7299
7300 * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
7301 Change all callers. Issue a -Wc++-compat warning using
7302 lhs_origtype if necessary.
7303 (convert_for_assignment): Issue -Wc++-compat warnings about
7304 invalid conversions to enum type on assignment.
7305 * c-common.h (build_modify_expr): Update declaration.
7306
ac4fc08a
NC
73072009-04-24 Nick Clifton <nickc@redhat.com>
7308
7309 * config/iq2000/iq2000.c (function_arg): Handle TImode values.
7310 (function_arg_advance): Likewise.
7311 * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
7312 5th alternative.
7313
f22e891a
AK
73142009-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
7315
7316 * config/s390/constraints.md ('I', 'J'): Fix condition.
7317
ad58aabe
DN
73182009-04-24 Diego Novillo <dnovillo@google.com>
7319
7320 * gengtype-parse.c (parse_error): Add newline after message.
7321
879a4a01
L
73222009-04-24 H.J. Lu <hongjiu.lu@intel.com>
7323
7324 * config/i386/sse.md (avxmodesuffixs): Removed.
7325 (*avx_pinsr<avxmodesuffixs>): Renamed to ...
7326 (*avx_pinsr<ssevecsize>): This.
7327
f63426af
BS
73282009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
7329
7330 * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
7331 follow chains of regs with a single definition, and allow expressions
7332 that are function_invariant_p.
ce72fe6c 7333 (simple_rhs_p): Allow expressions that are function_invariant_p.
f63426af 7334
30349c74
PB
73352009-04-24 Paolo Bonzini <bonzini@gnu.org>
7336
7337 PR middle-end/39867
7338 * fold-const.c (fold_cond_expr_with_comparison): When folding
7339 > and >= to MAX, make sure the MAX uses the same type as the
7340 comparison's operands.
7341
8d8256c1
NC
73422009-04-24 Nick Clifton <nickc@redhat.com>
7343
7344 * config/frv/frv.c (frv_frame_access): Do not use reg+reg
7345 addressing for DImode accesses.
7346 (frv_print_operand_address): Handle PLUS case.
a3a5e3d1 7347 * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
8d8256c1 7348
6216f94e
JJ
73492009-04-24 Jakub Jelinek <jakub@redhat.com>
7350
7351 PR rtl-optimization/39794
7352 * alias.c (canon_true_dependence): Add x_addr argument.
7353 * rtl.h (canon_true_dependence): Adjust prototype.
7354 * cse.c (check_dependence): Adjust canon_true_dependence callers.
7355 * cselib.c (cselib_invalidate_mem): Likewise.
7356 * gcse.c (compute_transp): Likewise.
7357 * dse.c (scan_reads_nospill): Likewise.
7358 (record_store, check_mem_read_rtx): Likewise. For non-const-or-frame
7359 addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
7360 canon_base_addr of the group, plus optional offset.
7361 (struct group_info): Rename canon_base_mem to
7362 canon_base_addr.
7363 (get_group_info): Set canon_base_addr to canon_rtx of base, not
7364 canon_rtx of base_mem.
7365
6de7a512
PB
73662009-04-23 Paolo Bonzini <bonzini@gnu.org>
7367
7368 * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
7369 Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
7370
4a3a2376
UW
73712009-04-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7372
7373 * config/spu/spu-builtins.h: Delete file.
7374
7375 * config/spu/spu.h (enum spu_builtin_type): Move here from
7376 spu-builtins.h.
7377 (struct spu_builtin_description): Likewise. Add GTY marker.
7378 Do not use enum spu_function_code or enum insn_code.
7379 (spu_builtins): Add extern declaration.
7380
7381 * config/spu/spu.c: Do not include "spu-builtins.h".
7382 (enum spu_function_code, enum spu_builtin_type_index,
7383 V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
7384 V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
7385 unsigned_V8HI_type_node, unsigned_V4SI_type_node,
7386 unsigned_V2DI_type_node): Move here from spu-builtins.h.
7387 (spu_builtin_types): Make static. Add GTY marker.
7388 (spu_builtins): Add extern declaration with GTY marker.
7389 Include "gt-spu.h".
7390
7391 * config/spu/spu-c.c: Do not include "spu-builtins.h".
7392 (spu_resolve_overloaded_builtin): Do not use spu_function_code.
7393 Check programmatically whether all parameters are scalar.
7394
7395 * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
7396
bbaba73f
EB
73972009-04-23 Eric Botcazou <ebotcazou@adacore.com>
7398
7399 * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
7400 assignment from the constructor either if the target is volatile.
7401
ee93c1c6
DJ
74022009-04-23 Daniel Jacobowitz <dan@codesourcery.com>
7403
7404 * config/arm/arm.md (insv): Do not share operands[0].
7405
b2f21330
NS
74062009-04-23 Nathan Sidwell <nathan@codesourcery.com>
7407
7408 * config/vxlib-tls.c (active_tls_threads): Delete.
7409 (delete_hook_installed): New.
7410 (tls_delete_hook): Don't delete the delete hook.
7411 (tls_destructor): Delete it here.
7412 (__gthread_set_specific): Adjust installing the delete hook.
7413 (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
7414 __gthread_leave_tsd_dtor_context.
7415
4782dfa7
RAE
74162009-04-23 Rafael Avila de Espindola <espindola@google.com>
7417
7418 * c-format.c (gcc_tdiag_char_table): Add support for %E.
7419
bf758008
UB
74202009-04-23 Uros Bizjak <ubizjak@gmail.com>
7421
7422 * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
7423 enum type.
7424 (alpha_rtx_costs): Ditto.
7425 (emit_unlikely_jump): Use add_reg_note.
7426 (emit_frame_store_1): Ditto.
7427 (alpha_expand_prologue): Ditto.
7428 (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
7429 * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
7430
7323a100
NC
74312009-04-23 Nick Clifton <nickc@redhat.com>
7432
7433 * config/v850/v850.md (epilogue): Remove suppressed code.
7434 (return): Rename to return_simple and remove test of frame size.
7435 * config/v850/v850.c (expand_epilogue): Rename call to gen_return
7436 to gen_return_simple.
7437
360032ba
JY
74382009-04-22 Jing Yu <jingyu@google.com>
7439
7440 PR testsuite/39781
7441 * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
7442
53650abe
AP
74432009-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
7444
7445 PR C/31499
7446 * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
7447 and RECORD_TYPE/UNION_TYPE. When outputing the actual element and the
7448 value is a VECTOR_CST, the element type is the element type of the
7449 vector.
7450
89043e8a
DD
74512009-04-22 DJ Delorie <dj@redhat.com>
7452
7453 * config/m32c/m32c.h: Update GTY annotations to new syntax.
7454
023f059b
JJ
74552009-04-22 Jakub Jelinek <jakub@redhat.com>
7456
7457 * alias.c (find_base_term): Move around LO_SUM case, so that
7458 CONST falls through into PLUS/MINUS handling.
7459
2c0eba5a
JJ
7460 PR c/39855
7461 * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
7462 into 0, use omit_one_operand.
7463
9a461028
BE
74642009-04-23 Ben Elliston <bje@au.ibm.com>
7465
7466 * config/rs6000/linux-unwind.h (get_regs): Remove type
7467 puns. Change the type of `pc' to an array of unsigned ints and
7468 update all users. Constify frame24.
7469
653e2568
DD
74702009-04-22 DJ Delorie <dj@redhat.com>
7471
7472 * config/m32c/m32c.c (m32c_special_page_vector_p): Move
7473 declarations before code.
7474 (current_function_special_page_vector): Likewise.
7475 (m32c_expand_insv): Silence a warning.
7476
60839f5d 74772009-04-21 Taras Glek <tglek@mozilla.com>
d1b38208
TG
7478
7479 * alias.c: Update GTY annotations to new syntax.
7480 * basic-block.h: Likewise.
7481 * bitmap.h: Likewise.
7482 * c-common.h: Likewise.
7483 * c-decl.c: Likewise.
7484 * c-parser.c: Likewise.
7485 * c-pragma.c: Likewise.
7486 * c-tree.h: Likewise.
7487 * cfgloop.h: Likewise.
7488 * cgraph.h: Likewise.
7489 * config/alpha/alpha.c: Likewise.
7490 * config/arm/arm.h: Likewise.
7491 * config/avr/avr.h: Likewise.
7492 * config/bfin/bfin.c: Likewise.
7493 * config/cris/cris.c: Likewise.
7494 * config/darwin.c: Likewise.
7495 * config/frv/frv.c: Likewise.
7496 * config/i386/i386.c: Likewise.
7497 * config/i386/i386.h: Likewise.
7498 * config/i386/winnt.c: Likewise.
7499 * config/ia64/ia64.h: Likewise.
7500 * config/iq2000/iq2000.c: Likewise.
7501 * config/mips/mips.c: Likewise.
7502 * config/mmix/mmix.h: Likewise.
7503 * config/pa/pa.c: Likewise.
7504 * config/pa/pa.h: Likewise.
7505 * config/rs6000/rs6000.c: Likewise.
7506 * config/s390/s390.c: Likewise.
7507 * config/sparc/sparc.c: Likewise.
7508 * config/xtensa/xtensa.c: Likewise.
7509 * cselib.h: Likewise.
7510 * dbxout.c: Likewise.
7511 * dwarf2out.c: Likewise.
7512 * except.c: Likewise.
7513 * except.h: Likewise.
7514 * fixed-value.h: Likewise.
7515 * function.c: Likewise.
7516 * function.h: Likewise.
7517 * gimple.h: Likewise.
7518 * integrate.c: Likewise.
7519 * optabs.c: Likewise.
7520 * output.h: Likewise.
7521 * real.h: Likewise.
7522 * rtl.h: Likewise.
7523 * stringpool.c: Likewise.
7524 * tree-data-ref.c: Likewise.
7525 * tree-flow.h: Likewise.
7526 * tree-scalar-evolution.c: Likewise.
7527 * tree-ssa-address.c: Likewise.
7528 * tree-ssa-alias.h: Likewise.
7529 * tree-ssa-operands.h: Likewise.
7530 * tree.c: Likewise.
7531 * tree.h: Likewise.
7532 * varasm.c: Likewise.
7533 * varray.h: Likewise.
7534 * vec.h: Likewise.
bf758008 7535 * coretypes.h: Do not define GTY macro if it is already defined.
d1b38208
TG
7536 * doc/gty.texi: Update GTY documentation to new syntax.
7537 * gengtype-lex.l: Enforce attribute-like syntax for GTY
7538 annotations on structs.
7539 * gengtype-parse.c: Likewise.
7540
a123d175
MH
75412009-04-22 Mark Heffernan <meheff@google.com>
7542
bf758008 7543 * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
a123d175 7544
4c7c486a
KH
75452009-04-22 Kazu Hirata <kazu@codesourcery.com>
7546
7547 * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
7548 where appropriate.
7549
6e782a29
KH
75502009-04-22 Kazu Hirata <kazu@codesourcery.com>
7551
7552 * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
7553 the same as a PLUS without a shift. Increase the cost of a
7554 CONST_INT in MULT.
7555
38d2336a
MLI
75562009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7557
7558 * Makefile.in: Update dependencies.
bf758008 7559 * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
38d2336a
MLI
7560 * errors.h: Remove bogus comment about compatibility.
7561 (warning): Update declaration.
7562 * genautomata.c: Update all calls to warning.
7563 * gimple.c: Do not include errors.h. Include toplev.h.
7564 * tree-ssa-structalias.c: Do not include errors.h.
7565 * omega.c: Likewise.
7566 * tree-ssa-reassoc.c: Likewise.
7567 * config/spu/spu-c.c: Likewise.
7568 * config/spu/t-spu-elf: Update dependencies.
7569
aea4deba
RG
75702009-04-22 Richard Guenther <rguenther@suse.de>
7571
7572 PR tree-optimization/39824
7573 * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
7574 make sure the types are compatible.
7575
cfc93532
MLI
75762009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7577
7578 PR c++/14875
7579 * c-common.c (c_parse_error): Take a token_flags parameter.
7580 Use token_type for the token type instead.
7581 Pass token_flags to cpp_type2name.
7582 * c-common.h (c_parse_error): Update declaration.
7583 * c-parser.c (c_parser_error): Pass 0 as token flags.
7584
8632d02a
AB
75852009-04-22 Andrey Belevantsev <abel@ispras.ru>
7586
7587 PR rtl-optimization/39580
7588 * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert.
7589
4c33221c
UW
75902009-04-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7591
7592 * function.c (expand_function_end): Do not emit a jump to the "naked"
7593 return label for fall-through returns.
7594 * except.c (sjlj_emit_function_exit): Always place the call to the
7595 unregister function at the location installed by expand_function_end.
7596
9925bce0
RG
75972009-04-22 Richard Guenther <rguenther@suse.de>
7598
7599 PR tree-optimization/39845
7600 * tree-switch-conversion.c (build_arrays): Add new referenced vars.
7601 (gen_inbound_check): Likewise.
7602
24a40b35
NS
76032009-04-22 Nathan Sidwell <nathan@codesourcery.com>
7604
7605 * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
7606 padding for PPC.
7607 (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
7608 * config/vxlib.c (__gthread_once): Add race guard for PPC.
7609
6c34a092
PB
76102009-04-22 Paolo Bonzini <bonzini@gnu.org>
7611
7612 * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
7613 sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
7614 shift counts to avoid out-of-bounds array accesses.
7615
baa48dfa
PB
76162009-04-22 Paolo Bonzini <bonzini@gnu.org>
7617
7618 * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
7619 (Pmode): Move above.
7620
7d83f4f5
UB
76212009-04-22 Uros Bizjak <ubizjak@gmail.com>
7622
7623 * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
7624 NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
7625 GET_CODE macro. Use IN_RANGE macro where appropriate.
7626 * config/alpha/alpha.h: Ditto.
7627 * config/alpha/alpha.md: Ditto.
7628 * config/alpha/constraints.md: Ditto.
7629 * config/alpha/predicates.md: Ditto.
7630
3ad606bc
PB
76312009-04-22 Paolo Bonzini <bonzini@gnu.org>
7632
7633 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
7634 * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7635 * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7636 * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7637 * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7638 * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7639 * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7640 * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7641 * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7642 * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7643 * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7644 * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7645 * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7646 * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7647 * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7648 * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7649 * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7650 * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7651 * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7652 * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7653 * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7654 * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7655 * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7656 * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7657 * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7658 * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7659 * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7660
3cabd6d1
LB
76612009-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
7662
7663 * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
7664 references from comments.
7665 * cfgbuild.c: (count_basic_blocks): Delete.
7666 (find_basic_blocks_1): Delete.
7667 (find_basic_blocks): Delete.
7668 * except.c (finish_eh_generation): Make static. Move comment from
7d83f4f5 7669 except.h here. Remove find_basic_blocks references from comments.
3cabd6d1
LB
7670 * except.h (finish_eh_generation): Delete.
7671 * basic-block.h (find_basic_blocks): Delete.
7672 * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
7673
270d1bcd
DK
76742009-04-22 Dave Korn <dave.korn.cygwin@gmail.com>
7675
7676 * sdbout.c (sdbout_symbol): Pass VOIDmode to eliminate_regs.
7677 (sdbout_parms): Likewise.
7678
b757d36f
KK
76792009-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
7680
7681 * config/sh/sh.c (prepare_cbranch_operands): Use
7682 LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
7683 (expand_cbranchdi4): Likewise.
7684 (from_compare): Add cast to enum type.
7685 (expand_cbranchsi4): Use add_reg_note.
7686 (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
7687 (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
7688 (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
7689 (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
7690 * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
7691 instead of CODE_FOR_nothing.
7692 (cbranchdi4): Likewise. Fix the order of arguments for
7693 gen_rtx_fmt_ee.
7694 (push_fpscr): Use add_reg_note.
7695 (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
7696 reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
7697
ad41bd84
JM
76982009-04-21 Joseph Myers <joseph@codesourcery.com>
7699
7700 * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
7701 ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
7702 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
7703 ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
7704 ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
7705 FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
7706 config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
7707 config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
7708 config/alpha/x-vms, config/arc/t-arc,
7709 config/arm/README-interworking, config/arm/arm-c.c,
7710 config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
7711 config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
7712 config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
7713 config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
7714 config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
7715 config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
7716 config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
7717 config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
7718 config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
7719 config/cris/t-elfmulti, config/crx/t-crx,
7720 config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
7721 config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
7722 config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
7723 config/h8300/t-h8300, config/i386/athlon.md,
7724 config/i386/darwin-libgcc.10.4.ver,
7725 config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
7726 config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
7727 config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
7728 config/i386/t-linux64, config/i386/t-nwld,
7729 config/i386/t-rtems-i386, config/i386/t-sol2-10,
7730 config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
7731 config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
7732 config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
7733 config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
7734 config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
7735 config/iq2000/t-iq2000, config/libgcc-glibc.ver,
7736 config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
7737 config/m32r/t-m32r, config/m68hc11/t-m68hc11,
7738 config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
7739 config/m68k/t-uclinux, config/mcore/t-mcore,
7740 config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
7741 config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
7742 config/mips/crtn.asm, config/mips/irix-crti.asm,
7743 config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
7744 config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
7745 config/mips/mips-fixed.md, config/mips/sb1.md,
7746 config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
7747 config/mips/t-iris6, config/mips/t-isa3264,
7748 config/mips/t-libgcc-mips16, config/mips/t-linux64,
7749 config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
7750 config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
7751 config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
7752 config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
7753 config/mn10300/t-linux, config/mn10300/t-mn10300,
7754 config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
7755 config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
7756 config/picochip/libgccExtras/clzsi2.asm,
7757 config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
7758 config/rs6000/darwin-libgcc.10.4.ver,
7759 config/rs6000/darwin-libgcc.10.5.ver,
7760 config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
7761 config/rs6000/t-aix43, config/rs6000/t-aix52,
7762 config/rs6000/t-darwin, config/rs6000/t-fprules,
7763 config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
7764 config/rs6000/t-lynx, config/rs6000/t-netbsd,
7765 config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
7766 config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
7767 config/rs6000/t-rtems, config/rs6000/t-spe,
7768 config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
7769 config/score/t-score-elf, config/sh/divcost-analysis,
7770 config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
7771 config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
7772 config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
7773 config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
7774 config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
7775 config/stormy16/stormy-abi, config/stormy16/t-stormy16,
7776 config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
7777 config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
7778 config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
7779 config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
7780 config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
7781 gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
7782 java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
7783 limitx.h, version.c, xcoff.h: Add copyright and license notices.
7784 * config/h8300/genmova.sh: Include copyright and license notices
7785 in generated output.
7786 * config/h8300/mova.md: Regenerate.
7787 * doc/install.texi2html: Include word "Copyright" in copyright
7788 notice and use name "Free Software Foundation, Inc.".
7789 * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
7790 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
7791 ChangeLog-2007, ChangeLog-2008: Correct dates.
7792
ca80e52b
EB
77932009-04-21 Eric Botcazou <ebotcazou@adacore.com>
7794
7795 * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
7796 NE_EXPR operations as well.
7797 * c-parser.c (c_parser_condition): Do not set location information on
7798 the condition.
7799 (c_parser_conditional_expression): Likewise.
7800 (c_parser_binary_expression): Set location information on operators.
7801 * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
7802 TRUTH_NOT_EXPR has been folded.
7803 * fold-const.c (fold_truth_not_expr): Copy location information from
7804 the incoming expression to the outgoing one.
7805 * gimplify.c (shortcut_cond_r): Add locus parameter. Pass it to
7806 recursive calls on the LHS of the operator but pass that of the
7807 operator to recursive calls on the RHS of the operator. Set it
7808 on the COND_EXPR.
7809 (shortcut_cond_expr): Set the locus of the operator on the second
7810 COND_EXPR and that of the expression on the first in degenerate cases.
7811 Pass the locus of the expression to calls to shortcut_cond_r.
7812 Set the locus of the 'then' block on the associated jump, if any.
7813 (gimplify_boolean_expr): Add locus parameter. Set it on the COND_EXPR.
7814 (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
7815 expression to call to gimplify_boolean_expr.
7816
35091630
KT
78172009-04-21 Kai Tietz <kai.tietz@onevision.com>
7818
7819 * config.gcc: Add additional configuration for
7820 i686-w64-mingw* and x86_64-w64-mingw* triplet.
7821 * config/i386/mingw-w64.h: New mingw-w64 specific header.
7822 (CPP_SPEC): Redefine for allowing -municode option.
7823 (STARTFILE_SPEC): Likewise.
7824 * config/i386/t-mingw-w64: New.
7825 * config/i386/mingw-w64.opt: New.
7826 (municode): Add new target option.
7827 * doc/invoke.texi (municode): Add documentation for new option.
7828
0267afc4
ILT
78292009-04-21 Ian Lance Taylor <iant@google.com>
7830
7831 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
7832 Correct test for number of arguments.
7833 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
7834
2ba9daa7
AS
78352009-04-21 Andreas Schwab <schwab@linux-m68k.org>
7836
7837 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
7838 argument of emit_library_call.
7839
ad8a1ac0
RG
78402009-04-21 Richard Guenther <rguenther@suse.de>
7841
7842 PR middle-end/39829
7843 * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
7844 inside VIEW_CONVERT_EXPRs.
7845
7156c8ab
MJ
78462009-04-21 Martin Jambor <mjambor@suse.cz>
7847
7848 * tree-switch-conversion.c (build_constructors): Split a long line.
7849 (constructor_contains_same_values_p): New function.
7d83f4f5
UB
7850 (build_one_array): Create assigns of constants if possible, do not
7851 call mark_sym_for_renaming, call update_stmt.
7156c8ab
MJ
7852 (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
7853 make_rename_temp. Do not call mark_symbols_for_renaming, call
7854 update_stmt.
7855 (gen_def_assigns): Do not call mark_symbols_for_renaming or
7856 find_new_referenced_vars, call update_stmt.
7857 (gen_inbound_check): Use create_tmp_var and create ssa names manually
7858 instead of calling make_rename_temp. Do not call
7859 find_new_referenced_vars or mark_symbols_for_renaming, call
7860 update_stmt.
7861
2970ccb3
RG
78622009-04-21 Richard Guenther <rguenther@suse.de>
7863
7864 PR tree-optimization/39827
7d83f4f5 7865 * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
2970ccb3
RG
7866 (tree_ssa_phiprop): Pass the correct array size.
7867
47f402d1
UB
78682009-04-21 Uros Bizjak <ubizjak@gmail.com>
7869
7870 * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
7871
1e4ae551
MLI
78722009-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
7873
7874 PR 16202
7875 * c-typeck.c (lvalue_p): Move declaration ...
7876 * c-common.h (lvalue_p): ... to here.
7877 * c-common.c (candidate_equal_p): New.
7878 (add_tlist): Use it.
7879 (merge_tlist): Use it.
7880 (warn_for_collisions_1): Likewise.
7881 (warning_candidate_p): Accept more candidates.
7882 (verify_tree): A warning candidate can be an expression. Use
7883 candidate_equal_p.
7884
244609a6
BE
78852009-04-21 Ben Elliston <bje@au.ibm.com>
7886
7887 PR target/5267
7888 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
7889 for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
7890 options. Remove -mcall-solaris documentation.
7891
9c650d90
MLI
78922009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7893
7894 PR c++/13358
7895 * doc/invoke.texi (-Wlong-long): Update description.
7896 * c-lex (interpret_integer): Only warn if there was no previous
7897 overflow and -Wlong-long is enabled.
7898 * c-decl.c (declspecs_add_type): Drop redundant flags.
7899 * c.opt (Wlong-long): Init to -1.
7900 * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
7901 and front-end warn_long_long. Wlong-long only depends on other
7902 flags if it is uninitialized.
7903 * c-parser.c (disable_extension_diagnostics): warn_long_long is
7904 the same for CPP and FE.
7905 (restore_extension_diagnostics): Likewise.
7906
bbbbb16a
ILT
79072009-04-20 Ian Lance Taylor <iant@google.com>
7908
7909 Fix enum conversions which are invalid in C++:
47f402d1
UB
7910 * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
7911 * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
7912 * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
7913 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
47f402d1 7914 * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
bbbbb16a 7915 (dbxout_parms): Likewise.
47f402d1 7916 * df-core.c (df_set_flags): Change changeable_flags parameter to int.
bbbbb16a
ILT
7917 (df_clear_flags): Likewise.
7918 * df-problems.c (df_rd_bb_local_compute_process_def): Change
7919 top_flag parameter to int.
7920 (df_chain_create_bb_process_use): Likewise.
47f402d1
UB
7921 (df_chain_add_problem): Change chain_flags parameter to unsigned int.
7922 Remove cast.
bbbbb16a
ILT
7923 * df-scan.c (df_ref_create): Change ref_flags parameter to int.
7924 (df_ref_create_structure, df_def_record_1): Likewise.
7925 (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
7926 (df_notes_rescan): Change 0 to VOIDmode in function call.
7927 (df_get_call_refs, df_insn_refs_collect): Likewise.
7928 (df_bb_regs_collect): Likewise.
7929 (df_entry_block_defs_collect): Likewise.
7930 (df_exit_block_uses_collect): Likewise.
7931 * df.h: Update declarations.
7932 * double-int.c (double_int_divmod): Add cast to enum type.
7933 * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
7934 * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
7935 (based_loc_descr): Likewise.
7936 (loc_descriptor_from_tree_1): Change first_op and second_op to
7937 enum dwarf_location_atom. Add cast to enum type.
7938 * expmed.c (init_expmed): Change 0 to SET in function call.
47f402d1 7939 * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
7940 (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
7941 (do_store_flag): Likewise.
7942 * fixed-value.h (struct fixed_value): Change mode to enum
7943 machine_mode.
47f402d1 7944 * function.c (assign_parms): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
7945 * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
7946 function call.
7947 (insert_insn_decl, insert_decl, insert_state): Likewise.
7948 (automata_list_finish): Likewise.
7949 * genrecog.c (process_define_predicate): Add cast to enum type.
7950 * gensupport.c (init_predicate_table): Add cast to enum type.
7951 * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
7952 function call.
7953 (gimple_build_call_1, gimple_build_label): Likewise.
7954 (gimple_build_goto, gimple_build_asm_1): Likewise.
7955 (gimple_build_switch_1, gimple_build_cdt): Likewise.
47f402d1 7956 * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
bbbbb16a
ILT
7957 (enum fallback): Rename from enum fallback_t.
7958 (fallback_t): Typedef as int.
7959 * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
7960 GSI_SAME_STMT in function call.
7961 * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
7962 enum type.
7963 (setup_reg_class_relations): Likewise.
47f402d1 7964 (setup_reg_class_nregs): Change cl to int. Add casts to enum type.
bbbbb16a
ILT
7965 (setup_prohibited_class_mode_regs): Add cast to enum type.
7966 (setup_prohibited_mode_move_regs): Likewise.
47f402d1 7967 * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
bbbbb16a
ILT
7968 (record_address_regs): Change i to enum reg_class.
7969 * lists.c (alloc_EXPR_LIST): Add cast to enum type.
7970 * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
7971 (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
7972 (GET_MODE_2XWIDER_MODE): Likewise.
7973 (GET_CLASS_NARROWEST_MODE): Likewise.
7974 * omp-low.c (expand_omp_for): Add cast to enum type.
7975 * optabs.c (debug_optab_libfuncs): Add casts to enum type.
7976 * opts.c (enable_warning_as_error): Change kind to diagostic_t.
7977 * postreload.c (reload_cse_simplify_operands): Change rclass local
7978 to enum reg_class.
7979 * predict.c (combine_predictions_for_insn): Change best_predictor
7980 and predictor to enum br_predictor.
7981 (combine_predictions_for_bb): Likewise.
7982 (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
7983 use SET_PREDICT_EXPR_OUTCOME.
47f402d1 7984 * real.c (real_arithmetic): Change icode to code in function call.
bbbbb16a
ILT
7985 * reginfo.c (init_move_cost): Add casts to enum type.
7986 (init_reg_sets_1, init_fake_stack_mems): Likewise.
7987 * regmove.c (regclass_compatible_p): Change class0 and class1 to
7988 enum reg_class.
7989 * reload.c (find_valid_class): Add casts to enum type.
7990 (push_reload): Change 0 to NO_REGS in function call.
7991 (find_reloads): Change this_alternative to array of enum
7992 reg_class. Remove some now-unnecessary casts.
7993 (make_memloc): Change 0 to VOIDmode in function call.
7994 * reload1.c (reload): Change 0 to VOIDmode in function call.
7995 (eliminate_regs_1, elimination_effects): Likewise.
7996 (eliminate_regs_in_insn): Likewise.
7997 (emit_input_reload_insns): Add cast to enum type.
7998 (delete_output_reload): Change 0 to VOIDmode in function call.
7999 * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
8000 to enum type in function call.
8001 * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
8002 (SET_PREDICT_EXPR_OUTCOME): Define.
47f402d1 8003 * tree-dump.c (get_dump_file_info): Change phase parameter to int.
bbbbb16a
ILT
8004 (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
8005 (dump_initialized_p, dump_flag_name, dump_end): Likewise.
8006 (dump_function): Likewise.
8007 * tree-dump.h: Update declarations.
8008 * tree-pass.h: Update declarations.
8009 * varasm.c (assemble_integer): Change mclass to enum mode_class.
8010 * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
8011 enum type.
8012 (arm_rtx_costs_1): Correct parenthesization.
8013 (arm_rtx_costs): Add casts to enum type.
8014 (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
8015 (vfp_emit_fstmd): Use add_rg_note.
8016 (emit_multi_reg_push, emit_sfm): Likewise.
8017 (thumb_set_frame_pointer): Likewise.
8018 (arm_expand_prologue): Likewise.
8019 (arm_regno_class): Change return type to enum reg_class.
8020 (thumb1_expand_prologue): Use add_reg_note.
8021 * config/arm/arm-protos.h (arm_regno_class): Update declaration.
8022 * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
8023 in function call.
8024 * config/arm/gentune.sh: Add cast to enum type.
8025 * config/arm/arm-tune.md: Rebuild.
8026 * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
8027 (ix86_split_fp_branch, predict_jump): Likewise.
8028 (ix86_expand_multi_arg_builtin): Change sub_code from enum
8029 insn_code to enum rtx_code.
8030 (ix86_builtin_vectorized_function): Add cast to enum type.
8031 * config/i386/i386.md (truncdfsf2): Change slot to enum
8032 ix86_stack_slot.
8033 (truncxf<mode>2, isinf<mode>2): Likewise.
8034 * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
8035 enum type.
8036 * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
8037 (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
8038 (insert_bundle_state): Change 1 to INSERT in function call.
8039 (ia64_add_bundle_selector_before): Likewise.
8040 * config/ia64/ia64.md (cpu attr): Add cast to enum type.
8041 (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
8042 (restore_stack_nonlocal): Likewise.
8043 * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
8044 function call.
8045 * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
8046 function call.
8047 (mips_rtx_costs): Likewise.
8048 (mips_override_options): Add casts to enum type.
8049 * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
8050 in function call.
8051 * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
8052 (store_reg, set_reg_plus_d): Likewise.
8053 (hppa_expand_prologue, hppa_profile_hook): Likewise.
8054 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
8055 cast to enum type.
8056 (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
8057 function call.
8058 (emit_unlikely_jump): Use add_reg_note.
8059 (rs6000_emit_allocate_stack): Likewise.
8060 (rs6000_frame_related, rs6000_emit_prologue): Likewise.
8061 (output_toc): Change 1 to INSERT in function call.
8062 (output_profile_hook): Change 0 to LCT_NORMAL in function call.
8063 (rs6000_initialize_trampoline): Likewise.
8064 (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
8065 function call.
8066 * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
8067 (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
8068 (s390_expand_setmem, s390_expand_cmpmem): Likewise.
8069 (save_gprs): Use add_reg_note.
8070 (s390_emit_prologue): Likewise.
47f402d1 8071 (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
8072 * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
8073 (sparc_fold_builtin): Add cast to enum type.
8074 * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
8075 enum insn_code.
8076 (spu_expand_prologue): Use add_reg_note.
47f402d1 8077 (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
8078
80792009-04-20 Ian Lance Taylor <iant@google.com>
8080
8081 * c-parser.c (c_parser_attributes): Change VEC back to tree list.
8082 (c_parser_postfix_expression_after_primary): Get VEC for list of
8083 arguments. Get original types of arguments. Call
8084 build_function_call_vec.
8085 (cached_expr_list_1, cached_expr_list_2): New static variables.
8086 (c_parser_expr_list): Change return type to VEC *. Add
8087 p_orig_types parameter. Change all callers.
8088 (c_parser_release_expr): New static function.
8089 (c_parser_vec_to_tree_list): New static function.
8090 * c-typeck.c (build_function_call): Rewrite to build a VEC and
8091 call build_function_call_vec.
8092 (build_function_call_vec): New function, based on old
8093 build_function_call.
8094 (convert_arguments): Remove nargs and argarray parameters. Change
8095 values to a VEC. Add origtypes parameter.
47f402d1 8096 (build_modify_expr): Add rhs_origtype parameter. Change all callers.
bbbbb16a
ILT
8097 (convert_for_assignment): Add origtype parameter. Change all
8098 callers. If warn_cxx_compat, check for conversion to an enum
8099 type when calling a function.
8100 (store_init_value): Add origtype parameter. Change all callers.
8101 (digest_init): Likewise.
8102 (struct init_node): Add origtype field.
8103 (add_pending_init): Add origtype parameter. Change all callers.
8104 (output_init_element): Likewise.
8105 (output_pending_init_elements): Pass origtype from init_node to
8106 output_init_element.
f28a61ab 8107 (process_init_element): Pass origtype from c_expr to
bbbbb16a
ILT
8108 output_init_element.
8109 (c_finish_return): Add origtype parameter. Change all callers.
8110 * c-common.c (sync_resolve_size): Change params to VEC *. Change
8111 caller.
8112 (sync_resolve_params): Likewise.
47f402d1 8113 (sync_resolve_return): Change params to first_param. Change caller.
bbbbb16a 8114 (resolve_overloaded_builtins): Change params to VEC *. Change
47f402d1 8115 callers. Save first parameter around call to build_function_call_vec.
bbbbb16a
ILT
8116 * c-decl.c (finish_decl): Add origtype parameter. Change all
8117 callers. Call build_function_call_vec rather than
8118 build_function_call for cleanup.
8119 * c-tree.h: Update declarations.
8120 * c-common.h: Update declarations.
8121 * stub-objc.c (objc_rewrite_function_call): Change parameter from
8122 params to first_param.
8123 * target.h (struct gcc_target): Change resolve_overloaded_builtin
8124 params parameter from tree to void *.
8125 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
8126 Change arglist parameter to have type void *, and to be a pointer
8127 to a VEC.
8128 * config/rs6000/rs6000-protos.h
8129 (altivec_resolve_overloaded_builtin): Update declaration.
8130 * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
8131 fnargs parameter to have type void *, and to be a pointer to a
8132 VEC. Call build_function_call_vec instead of
8133 build_function_call.
47f402d1 8134 * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
bbbbb16a 8135
6ff078d4 81362009-04-20 Joey Ye <joey.ye@intel.com>
60839f5d 8137 Xuepeng Guo <xuepeng.guo@intel.com>
6ff078d4
JY
8138 H.J. Lu <hongjiu.lu@intel.com>
8139
8140 * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
8141
8142 * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
8143 (IX86_LEA_PRIORITY): Likewise.
8144 (distance_non_agu_define): New function.
8145 (distance_agu_use): Likewise.
8146 (ix86_lea_for_add_ok): Likewise.
8147 (ix86_dep_by_shift_count): Likewise.
8148
8149 * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
8150 should split for LEA.
8151
8152 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
8153 function.
8154 (ix86_dep_by_shift_count): Likewise.
8155
87a5b4cc
RG
81562009-04-20 Richard Guenther <rguenther@suse.de>
8157
8158 * expr.c (handled_component_p): Move ...
8159 * tree.h (handled_component_p): ... here.
8160 * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
8161 ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
8162 and REALPART_EXPR to be in one group.
8163
438c239d
RG
81642009-04-20 Richard Guenther <rguenther@suse.de>
8165
8166 * basic-block.h (get_all_dominated_blocks): Declare.
8167 * dominance.c (get_all_dominated_blocks): New function.
8168 * tree-cfg.c (get_all_dominated_blocks): Remove.
8169 (remove_edge_and_dominated_blocks): Adjust.
8170 * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
8171 (tree_ssa_phiprop): ... here. Use get_all_dominated_blocks
8172 instead of recursing.
8173
fed5ae11
DK
81742009-04-20 Doug Kwan <dougkwan@google.com>
8175
8176 * cgraph.h (cgraph_node_ptr): New type for vector functions.
8177 (struct cgraph_node_set_def): New type.
8178 (cgraph_node_set) New type. Also declare vector functions.
8179 (struct cgraph_node_set_element_def): New type.
8180 (cgraph_node_set_element): Ditto.
8181 (cgraph_node_set_iterator): New iterator type.
8182 (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
8183 cgraph_node_set_remove, dump_cgraph_node_set,
8184 debug_cgraph_node_set): New prototypes.
8185 (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
8186 cgraph_node_set_size): New inlines.
8187 * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
8188 including cgraph.h.
8189 (struct ipa_opt_pass): Add struct cgraph_node_set_def
8190 argument to function 'write_summary'.
8191 * ipa.c: Include ggc.h.
8192 (hash_cgraph_node_set_element,
8193 eq_cgraph_node_set_element, cgraph_node_set_new,
8194 cgraph_node_set_add, cgraph_node_set_remove,
8195 cgraph_node_set_find, dump_cgraph_node_set,
8196 debug_cgraph_node_set): New functions.
8197 * Makefile.in (ipa.o): Add dependency on GGC_H.
8198
c4551b28
IR
81992009-04-20 Ira Rosen <irar@il.ibm.com>
8200
8201 PR tree-optimization/39675
2ba9daa7 8202 * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
47f402d1
UB
8203 check of the return code of vect_schedule_slp. Check that
8204 stmt_vec_info still exists for the statement, before checking its
8205 vectorization type.
c4551b28 8206
21a495fb
MM
82072009-04-20 Michael Matz <matz@suse.de>
8208
8209 * Makefile.in (generated_files): Take out $(simple_generated_c).
8210
8e208874
DK
82112009-04-19 Dave Korn <dave.korn.cygwin@gmail.com>
8212
8213 * config/i386/cygwin-stdint.h (INTPTR_TYPE): Remove "long".
8214 (UINTPTR_TYPE): Likewise.
8215
a45e580b
JM
82162009-04-19 Joseph Myers <joseph@codesourcery.com>
8217
8218 PR c/37481
8219 * c-typeck.c (digest_init): Check for initializing an array with a
8220 string literal.
8221
20845d35
JM
82222009-04-19 Joseph Myers <joseph@codesourcery.com>
8223
8224 PR c/19771
8225 * c-semantics.c (pop_stmt_list): Propagate
8226 STATEMENT_LIST_HAS_LABEL to parent statement list.
8227
28143fdd
AN
82282009-04-19 Adam Nemet <anemet@caviumnetworks.com>
8229
8230 * config/mips/mips.h (mips_tune_attr): New macro.
8231 * config/mips/mips.md (cpu): Use it.
8232
da377db9
JM
82332009-04-19 Joseph Myers <joseph@codesourcery.com>
8234
8235 PR c/38243
8236 * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
8237 declaring a tag.
8238
3baf459d
DN
82392009-04-19 Diego Novillo <dnovillo@google.com>
8240
8241 * toplev.c (compile_file): Move call to coverage_finish ...
8242 * cgraphunit.c (ipa_passes): ... here.
8243 Call cgraph_process_new_functions.
8244 * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
8245 * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
8246
b6fa5b01
JH
82472009-04-19 Jan Hubicka <jh@suse.cz>
8248
47f402d1
UB
8249 * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
8250 cfun.
b6fa5b01
JH
8251 (dump_cgraph_node): Dump can throw external flag.
8252 * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
8253
ca409efd
MLI
82542009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
8255
8256 PR c/32061
8257 PR c++/36954
8258 * doc/invoke.texi: Add -Wlogical-op to -Wextra.
8259 * common.opt (Wlogical-op): Move from here...
8260 * c.opt (Wlogical-op): ... to here.
8261 * c-typeck.c (parser_build_binary_op): Update call to
8262 warn_logical_operator.
8263 * c-opts.c (c_common_post_options): Enable warn_logical_op with
8264 extra_warnings.
8265 * c-common.c (warn_logical_op): Update.
8266 * c-common.h (warn_logical_op): Update declaration.
8267
9db4cdd3
EB
82682009-04-19 Eric Botcazou <ebotcazou@adacore.com>
8269
8270 * tree.c (protected_set_expr_location): Fix formatting.
8271
f37acdf9
JM
82722009-04-18 Joseph Myers <joseph@codesourcery.com>
8273
8274 PR c/27676
8275 * c-typeck.c (readonly_warning): new.
8276 (build_unary_op, build_modify_expr): Use readonly_warning for
8277 storing into something readonly but not const-qualified.
8278
2b4b7036
JM
82792009-04-18 Joseph Myers <joseph@codesourcery.com>
8280
8281 PR c/22367
8282 * c-typeck.c (build_unary_op): Check for taking address of
8283 expression of type void.
8284
3ce62965
JM
82852009-04-18 Joseph Myers <joseph@codesourcery.com>
8286
8287 PR c/35210
8288 * c-typeck.c (build_function_call): Check for calling a function
8289 with qualified void return types. Call require_complete_type when
8290 generating a trap.
8291
2505c5ed
JH
82922009-04-18 Jan Hubicka <jh@suse.cz>
8293
8294 * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
8295 Set nothrow flag.
8296 * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
8297 can_throw_external flag.
8298 * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
8299 * ipa-pure-const.c (ignore_edge): New function.
8300 (propagate): Compute order for NOTHROW computation; set NOTHROWs
8301 only over can_throw_external edges.
8302 (local_pure_const): Add nothrow flag.
8303 * ipa-utils.c (searchc): Add ignore_edge callback.
8304 (ipa_utils_reduced_inorder): Add ignore_edge callback.
8305 * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
8306 (set_nothrow_function_flags): Update cgraph.
8307 * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
8308
2586ba4b
RG
83092009-04-18 Richard Guenther <rguenther@suse.de>
8310
8311 PR middle-end/39804
8312 * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
8313 (fold_stmt): ... this and ...
8314 (fold_stmt_inplace): ... this.
8315 (fold_stmt_1): Fold references in calls and asms.
8316 * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
8317
1eefab17
KH
83182009-04-18 Kazu Hirata <kazu@codesourcery.com>
8319
8320 * tree-vrp.c (ssa_name_nonzero_p): Remove.
8321 * tree.h: Remove the prototype for ssa_name_nonzero_p.
8322
aa424b01
KH
83232009-04-18 Kazu Hirata <kazu@codesourcery.com>
8324
8325 * tree.c (function_args_count): Remove.
8326 * tree.h: Remove the prototype for function_args_count.
8327
613a896b
KH
83282009-04-18 Kazu Hirata <kazu@codesourcery.com>
8329
8330 * tree-iterator.c (expr_only): Remove.
8331 * tree.h: Remove the prototype for expr_only.
8332
579e694c
KH
83332009-04-18 Kazu Hirata <kazu@codesourcery.com>
8334
8335 * reginfo.c (cannot_change_mode_set_regs): Remove.
8336 * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
8337
ee7e3ad3
AS
83382009-04-08 Anatoly Sokolov <aesok@post.ru>
8339
8340 * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
8341 whether operands 0 and 1 overlaps.
8342
92ef7fb1
MLI
83432009-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
8344
8345 PR middle-end/36902
8346 * tree-vrp.c (check_array_ref): Pass a location_t instead of a
8347 pointer. Use warning_at instead of warning.
8348 (search_for_addr_array): Likewise.
8349 (check_array_bounds): Likewise.
8350 (check_all_array_refs): Check that the incoming edge is not in the
8351 list of edges to be removed.
8352 (check_all_array_refs): Avoid the temporal pointer.
8353 (vrp_visit_cond_stmt): Fix typo.
8354 (simplify_switch_using_ranges): Handle the case where the switch
8355 index is an integer constant.
8356
0e097268
AN
83572009-04-18 Adam Nemet <anemet@caviumnetworks.com>
8358
8359 * config/mips/mips.c (mips_final_postscan_insn): Make it static.
8360
c782f1dd
KH
83612009-04-18 Kazu Hirata <kazu@codesourcery.com>
8362
8363 * doc/extend.texi, doc/invoke.texi: Fix typos.
8364
668fb0e8
CC
83652009-04-17 Cary Coutant <ccoutant@google.com>
8366
8367 * tree-flow-inline.h (get_lineno): Fix inverted test.
8368
4d4014c1
DN
83692009-04-17 Diego Novillo <dnovillo@google.com>
8370
8371 * tree-ssa-pre.c (create_expression_by_pieces): Remove
8372 assertion for AVAIL_OUT.
8373
2984e1b6
MF
83742009-04-17 Mike Frysinger <vapier@gentoo.org>
8375
8376 PR target/38627
8377 * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
8378 * config/sh/linux-atomic.asm: Likewise.
8379
9994a182
DN
83802009-04-17 Diego Novillo <dnovillo@google.com>
8381
8382 * except.c (debug_eh_tree): New.
8383 (struct eh_region, struct eh_status): Move ...
8384 * except.h: ... here.
8385 (add_type_for_runtime): Declare extern.
8386 (lookup_type_for_runtime): Likewise.
8387 (debug_eh_tree): Declare.
8388 * Makefile.in (GTFILES): List except.h before except.c
8389
07485407
DN
83902009-04-17 Diego Novillo <dnovillo@google.com>
8391
47f402d1 8392 * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
07485407
DN
8393 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
8394 * tree-dfa.c (find_referenced_vars_in): Factor out of ...
8395 (find_vars_r): ... here.
8396 * tree-flow.h (find_referenced_vars_in): Declare.
8397 * tree-ssa-pre.c (create_expression_by_pieces): Assert
8398 that AVAIL_OUT exists for BLOCK.
8399 * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
8400 (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
8401 (tree-parloops.o): Likewise.
8402
4e53d196
SB
84032009-04-17 Simon Baldwin <simonb@google.com>
8404
8405 * toplev.c (default_tree_printer): Add handling for %E format.
8406
413d3aa8
DN
84072009-04-17 Diego Novillo <dnovillo@google.com>
8408
47f402d1
UB
8409 * tree-pretty-print.c (dump_generic_node): Add break after
8410 TREE_BINFO handler. Handle COMPLEX_TYPE, REAL_TYPE and
8411 FIXED_POINT_TYPE. Handle NULL TREE_TYPEs. Handle METHOD_TYPE and
8412 FUNCTION_TYPE together. Call print_struct_decl when printing
8413 structures and TDF_SLIM is not given.
413d3aa8
DN
8414 (print_struct_decl): Fix logic for detecting recursion.
8415
5a691e98
RAE
84162009-04-17 Rafael Avila de Espindola <espindola@google.com>
8417
8418 PR 31567
8419 * gcc.c (create_at_file): New.
8420 (compile_input_file_p): New.
8421 (do_spec_1): Use @args files for %i. Use create_at_file for %o.
8422 * main.c (main): Update call to toplev_main.
8423 * toplev.c (toplev_main): Change signature. Call expandargv.
8424 * toplev.h (toplev_main): Change signature.
8425
9eacf7a6
EB
84262009-04-17 Eric Botcazou <ebotcazou@adacore.com>
8427
8428 * dwarf2out.c (field_byte_offset): Use the type size as the field size
8429 if the latter is not constant.
8430
58298177
DE
84312009-04-17 David Edelsohn <edelsohn@gnu.org>
8432
8433 * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
8434
5b4c43d7
EB
84352009-04-17 Eric Botcazou <ebotcazou@adacore.com>
8436
8437 * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
8438 * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
8439
b51605c4
RG
84402009-04-17 Richard Guenther <rguenther@suse.de>
8441
8442 * tree-ssa-structalias.c (get_constraint_for_component_ref):
8443 Handle component references view-converting an invariant address.
8444
9e3be889
AN
84452009-04-17 Adam Nemet <anemet@caviumnetworks.com>
8446
8447 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
8448 TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
8449 TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
8450 TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
8451 Use @deftypevr rather than @deftypevar.
8452
7c3e9dc3
RG
84532009-04-17 Richard Guenther <rguenther@suse.de>
8454
47f402d1 8455 * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
7c3e9dc3
RG
8456 (get_prop_source_stmt): Likewise.
8457 (can_propagate_from): Likewise.
8458
aca600aa
AS
84592009-04-17 Andrew Stubbs <ams@codesourcery.com>
8460
8461 * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
8462 TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
8463 (--with-multilib-list): Add default value.
8464 * configure: Regenerate.
8465 * Makefile.in (TM_ENDIAN_CONFIG): Define.
8466 (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
8467 * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
8468 TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
8469 Don't add default cpu to multilib list unnecessarily, but do enable
8470 the relevant compiler option..
8471 Add support for --with-multilib-list=<blank> and
8472 --with-multilib-list=!<somelib> to supress unwanted multilibs.
8473 * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
8474 (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
8475 (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
8476 TM_MULTILIB_CONFIG.
8477 (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
8478 (MULTILIB_OSDIRNAMES): New variable.
8479 * config/sh/t-1e: Delete file.
8480 * config/sh/t-mlib-sh1: Delete file.
8481 * config/sh/t-mlib-sh2: Delete file.
8482 * config/sh/t-mlib-sh2a: Delete file.
8483 * config/sh/t-mlib-sh2a-nofpu: Delete file.
8484 * config/sh/t-mlib-sh2a-single: Delete file.
8485 * config/sh/t-mlib-sh2a-single-only: Delete file.
8486 * config/sh/t-mlib-sh2e: Delete file.
8487 * config/sh/t-mlib-sh3e: Delete file.
8488 * config/sh/t-mlib-sh4: Delete file.
8489 * config/sh/t-mlib-sh4-nofpu: Delete file.
8490 * config/sh/t-mlib-sh4-single: Delete file.
8491 * config/sh/t-mlib-sh4-single-only: Delete file.
8492 * config/sh/t-mlib-sh4a: Delete file.
8493 * config/sh/t-mlib-sh4a-nofpu: Delete file.
8494 * config/sh/t-mlib-sh4a-single: Delete file.
8495 * config/sh/t-mlib-sh4a-single-only: Delete file.
8496 * config/sh/t-mlib-sh4al: Delete file.
8497 * config/sh/t-mlib-sh5-32media: Delete file.
8498 * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
8499 * config/sh/t-mlib-sh5-64media: Delete file.
8500 * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
8501 * config/sh/t-mlib-sh5-compact: Delete file.
8502 * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
8503 * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
8504 * doc/install.texi (Options specification): Add
8505 --with-multilib-list and --with-endian.
8506
cf8aba7f
RAE
85072009-04-17 Rafael Avila de Espindola <espindola@google.com>
8508
8509 * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
8510 REVISION_c.
8511 (OBJS-common): Add plugin-version.o.
8512 (plugin-version.o): New.
8513 * gcc-plugin.h (plugin_gcc_version): New.
8514 (plugin_default_version_check): New.
8515 (plugin_init_func, plugin_init): Add version argument.
8516 * plugin-version.c: New.
8517 * plugin.c (str_plugin_gcc_version_name): New.
8518 (try_init_one_plugin): Read plugin_gcc_version from the plugin and
8519 pass it to the init function.
8520 (plugin_default_version_check): New.
8521
61e20b90
RG
85222009-04-17 Richard Guenther <rguenther@suse.de>
8523
8524 * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
8525 for decl-vs-decl disambiguation.
8526
90c6fd8a
AK
85272009-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
8528
8529 * config/s390/s390.h (s390_tune_attr): New macro definition.
8530 * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
8531
9fe9fe04
RG
85322009-04-17 Richard Guenther <rguenther@suse.de>
8533
8534 * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
8535 (fold_stmt_r): Likewise.
8536 (maybe_fold_reference): New function.
8537 (fold_gimple_assign): Handle cases fold_stmt_r did.
8538 (fold_stmt): Do not use fold_stmt_r.
8539 (fold_stmt_inplace): Likewise.
8540
7e673273
RG
85412009-04-17 Richard Guenther <rguenther@suse.de>
8542
8543 * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
8544 (record_equivalences_from_stmt): Remove useless checks and
8545 simplifications.
8546 * tree-ssa-pre.c (eliminate): Avoid converting a constant if
8547 the type is already suitable.
8548
fabf2749
PB
85492009-04-17 Paolo Bonzini <bonzini@gnu.org>
8550
8551 * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
8552
68f7b061
UB
85532009-04-17 Uros Bizjak <ubizjak@gmail.com>
8554
8555 * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
8556 (CMPtype): Define as __gcc_CMPtype.
8557
532bfb0a
AJ
85582009-04-17 Aurelien Jarno <aurelien@aurel32.net>
8559
8560 * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
8561 for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
8562
e3ac77ff
RG
85632009-04-17 Richard Guenther <rguenther@suse.de>
8564
8565 PR tree-optimization/39746
8566 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
8567 special-casing for builtins and static variable use/def.
8568 (call_may_clobber_ref_p_1): Likewise.
8569
7072a650
ILT
85702009-04-16 Ian Lance Taylor <iant@google.com>
8571
8572 * df.h: Include "timevar.h".
8573 (struct df_problem): Change tv_id field to timevar_id_t.
8574 * tree-pass.h: Include "timevar.h".
8575 (struct opt_pass): Change tv_id field to timevar_id_t.
8576 * timevar.h (timevar_id_t): Define TV_NONE.
8577 * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
8578 TV_NONE rather than tv_id != 0.
8579 (execute_one_pass): Likewise.
8580 * Makefile.in (DF_H): Add $(TIMEVAR_H).
8581 (TREE_PASS_H): Define. Change all instances of tree-pass.h in
8582 dependencies to $(TREE_PASS_H).
8583 * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
8584 to TV_NONE.
8585 (pass_branch_target_load_optimize2): Likewise.
8586 * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
8587 (pass_outof_cfg_layout_mode): Likewise.
8588 * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
8589 (pass_rebuild_cgraph_edges): Likewise.
8590 (pass_remove_cgraph_callee_edges): Likewise.
8591 * df-core.c (pass_df_initialize_opt): Likewise.
8592 (pass_df_initialize_no_opt): Likewise.
8593 (pass_df_finish): Likewise.
8594 * emit-rtl.c (pass_unshare_all_rtl): Likewise.
8595 * except.c (pass_set_nothrow_function_flags): Likewise.
8596 (pass_convert_to_eh_region_ranges): Likewise.
8597 * final.c (pass_compute_alignments): Likewise.
8598 * function.c (pass_instantiate_virtual_regs): Likewise.
8599 (pass_init_function): Likewise.
8600 (pass_leaf_regs): Likewise.
8601 (pass_match_asm_constraints): Likewise.
8602 * gimple-low.c (pass_lower_cf): Likewise.
8603 (pass_mark_used_blocks): Likewise.
8604 * init-regs.c (pass_initialize_regs): Likewise.
8605 * integrate.c (pass_initial_value_sets): Likewise.
8606 * ira.c (pass_ira): Likewise.
8607 * jump.c (pass_cleanup_barriers): Likewise.
8608 * omp-low.c (pass_expand_omp): Likewise.
8609 (pass_lower_omp): Likewise.
8610 * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
8611 * recog.c (pass_split_all_insns): Likewise.
8612 (pass_split_after_reload): Likewise.
8613 (pass_split_before_regstack): Likewise.
8614 (pass_split_before_sched2): Likewise.
8615 (pass_split_for_shorten_branches): Likewise.
8616 * reginfo.c (pass_reginfo_init): Likewise.
8617 (pass_subregs_of_mode_init): Likewise.
8618 (pass_subregs_of_mode_finish): Likewise.
8619 * passes.c (pass_postreload): Likewise.
8620 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
8621 * tree-cfg.c (pass_remove_useless_stmts): Likewise.
8622 (pass_warn_function_return): Likewise.
8623 (pass_warn_function_noreturn): Likewise.
8624 * tree-complex.c (pass_lower_complex): Likewise.
8625 (pass_lower_complex_O0): Likewise.
8626 * tree-if-conv.c (pass_if_conversion): Likewise.
8627 * tree-into-ssa.c (pass_build_ssa): Likewise.
8628 * tree-mudflap.c (pass_mudflap_1): Likewise.
8629 (pass_mudflap_2): Likewise.
8630 * tree-nomudflap.c (pass_mudflap_1): Likewise.
8631 (pass_mudflap_2): Likewise.
8632 * tree-nrv.c (pass_return_slot): Likewise.
8633 * tree-object-size.c (pass_object_sizes): Likewise.
8634 * tree-optimize.c (pass_all_optimizations): Likewise.
8635 (pass_early_local_passes): Likewise.
8636 (pass_all_early_optimizations): Likewise.
8637 (pass_cleanup_cfg): Likewise.
8638 (pass_cleanup_cfg_post_optimizing): Likewise.
8639 (pass_free_datastructures): Likewise.
8640 (pass_free_cfg_annotations): Likewise.
8641 (pass_fixup_cfg): Likewise.
8642 (pass_init_datastructures): Likewise.
8643 * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
8644 (pass_late_warn_uninitialized): Likewise.
8645 (pass_update_address_taken): Likewise.
8646 * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
8647 * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
8648 (pass_cse_sincos): Likewise.
8649 (pass_convert_to_rsqrt): Likewise.
8650 * tree-ssa-structalias.c (pass_build_alias): Likewise.
8651 * tree-stdarg.c (pass_stdarg): Likewise.
8652 * tree-tailcall.c (pass_tail_recursion): Likewise.
8653 (pass_tail_calls): Likewise.
8654 * tree-vect-generic.c (pass_lower_vector): Likewise.
8655 (pass_lower_vector_ssa): Likewise.
8656 * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
8657
0051ef59
JM
86582009-04-16 Joseph Myers <joseph@codesourcery.com>
8659
8660 * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
8661 XLR entry.
8662 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
8663 Handle -march=xlr.
8664 * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
8665 logical and signext.
8666
b3f8558a
KK
86672009-04-16 Kaz Kojima <kkojima@gcc.gnu.org>
8668
8669 PR target/39767
8670 * config/sh/predicates.md (arith_operand): Check if the operand
8671 of TRUNCATE is a REG.
8672
f57597d9
KH
86732009-04-16 Kazu Hirata <kazu@codesourcery.com>
8674
8675 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
8676 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
8677
b172d063
KH
86782009-04-16 Kazu Hirata <kazu@codesourcery.com>
8679
8680 * tree-iterator.c (tsi_split_statement_list_after,
8681 tsi_split_statement_list_before): Remove.
8682 * tree-iterator.h: Remove the prototypes for
532bfb0a 8683 tsi_split_statement_list_after and tsi_split_statement_list_before.
b172d063 8684
78fe4f1f
KH
86852009-04-16 Kazu Hirata <kazu@codesourcery.com>
8686
8687 * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
8688 * tree-ssa-propagate.h: Remove the prototype for
8689 stmt_makes_single_load.
8690
43dd3201
KH
86912009-04-16 Kazu Hirata <kazu@codesourcery.com>
8692
8693 * emit-rtl.c (set_mem_attrs_from_reg): Remove.
8694 * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
8695
4252a4aa
KH
86962009-04-16 Kazu Hirata <kazu@codesourcery.com>
8697
8698 * tree-iterator.c (EXPR_LAST_BODY): Remove.
8699
bfb69968
KH
87002009-04-16 Kazu Hirata <kazu@codesourcery.com>
8701
8702 * except.c (eh_region_outer_p): Remove.
8703 * except.h: Remove the prototype for eh_region_outer_p.
8704
c7db7fa5
KH
87052009-04-16 Kazu Hirata <kazu@codesourcery.com>
8706
8707 * function.c (current_function_assembler_name): Remove.
8708 * function.h: Remove the prototype for
8709 current_function_assembler_name.
8710
efc0b2bd
ILT
87112009-04-16 Ian Lance Taylor <iant@google.com>
8712
532bfb0a 8713 * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
efc0b2bd
ILT
8714 (add_reg_note): Call alloc_reg_note.
8715 * rtl.h (alloc_reg_note): Declare.
8716 * combine.c (try_combine): Use alloc_reg_note.
8717 (recog_for_combine, move_deaths): Likewise.
8718 (distribute_notes): Use alloc_reg_note and add_reg_note.
8719 * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
8720 * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
8721 * reload1.c (eliminate_regs_1): Use alloc_reg_note.
8722
6080348f
VM
87232009-04-16 Vladimir Makarov <vmakarov@redhat.com>
8724
8725 PR rtl-optimization/39762
8726 * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
8727 ira_may_move_out_cost): Add comments about way of their usage.
532bfb0a 8728 (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
2ba9daa7 8729
6080348f
VM
8730 * ira-conflicts.c (process_regs_for_copy): Use function
8731 ira_get_register_move_cost instead of global
8732 ira_register_move_cost.
8733
8734 * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
8735 color_pass, move_spill_restore, update_curr_costs): Ditto.
8736
8737 * ira-lives.c (process_single_reg_class_operands): Ditto.
8738
8739 * ira-emit.c (emit_move_list): Ditto.
8740
8741 * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
8742 (record_reg_classes): Ditto. Use functions
8743 ira_get_register_move_cost and ira_get_may_move_cost instead of
8744 global vars ira_register_move_cost, ira_may_move_out_cost and
8745 ira_may_move_in_cost.
8746 (record_address_regs): Don't call ira_init_register_move_cost.
8747 Use function ira_get_may_move_cost instead of global
8748 ira_may_move_in_cost.
8749 (process_bb_node_for_hard_reg_moves): Use function
532bfb0a 8750 ira_get_register_move_cost instead of global ira_register_move_cost.
6080348f 8751 (ira_costs): Don't call ira_init_register_move_cost.
2ba9daa7 8752
646bea10
RG
87532009-04-16 Richard Guenther <rguenther@suse.de>
8754
8755 * tree-cfg.c (verify_gimple_assign_binary):
8756 Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
8757 * ipa-struct-reorg.c (gen_size): Fold the built expressions.
8758 (create_general_new_stmt): Note that this function is broken.
8759
02e819ff
RAE
87602009-04-16 Rafael Avila de Espindola <espindola@google.com>
8761
8762 * common.opt (fhelp): Add Var(help_flag).
8763 * gcc-plugin.h (plugin_info): Add help.
8764 * plugin.c (plugin_name_args): Add help.
8765 (register_plugin_info): Set plugin->help.
8766 (print_help_one_plugin): New.
8767 (print_plugins_help): New.
8768 * plugin.h (print_plugins_help): New.
8769 * toplev.c (toplev_main): Call print_plugins_help if needed.
8770
ccacdf06
RG
87712009-04-16 Richard Guenther <rguenther@suse.de>
8772
8773 * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
8774 (gimple_ior_addresses_taken_1): New function.
8775 (gimple_ior_addresses_taken): Likewise.
8776 * gimple.h (struct gimple_statement_with_ops_base): Remove
8777 addresses_taken member.
8778 (gimple_ior_addresses_taken): Declare.
8779 (gimple_addresses_taken, gimple_addresses_taken_ptr,
8780 gimple_set_addresses_taken): Remove.
8781 * ipa-reference.c (mark_address): New function.
8782 (scan_stmt_for_static_refs): Use it for marking addresses taken.
8783 * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
8784 (mark_address_taken): ... this. Just set TREE_ADDRESSABLE.
8785 (gimple_add_to_addresses_taken): Remove.
8786 (get_tmr_operands): Call mark_address_taken.
8787 (get_asm_expr_operands): Likewise.
8788 (get_expr_operands): Likewise.
8789 (build_ssa_operands): Do not clear the addresses_taken bitmap.
8790 (free_stmt_operands): Do not free it.
8791 * tree-ssa.c (delete_tree_ssa): Likewise.
8792 (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
8793
346ef3fa
RG
87942009-04-16 Richard Guenther <rguenther@suse.de>
8795
8796 * gimple.h (walk_stmt_load_store_addr_ops): Declare.
8797 (walk_stmt_load_store_ops): Likewise.
8798 * gimple.c (get_base_loadstore): New function.
8799 (walk_stmt_load_store_addr_ops): Likewise.
8800 (walk_stmt_load_store_ops): Likewise.
8801 * ipa-pure-const.c (check_op): Simplify.
8802 (check_load, check_store): New functions.
8803 (check_stmt): Use walk_stmt_load_store_ops.
8804 * ipa-reference.c (mark_load): Adjust signature.
8805 (mark_store): Likewise.
8806 (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
8807
44e9f006
RAE
88082009-04-16 Rafael Avila de Espindola <espindola@google.com>
8809
8810 * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
8811 (plugin_info): New.
8812 * opts.c (common_handle_option): Don't call print_version.
8813 * plugin.c (plugin_name_args): Add version.
8814 (register_plugin_info): New.
8815 (register_callback): Handle PLUGIN_INFO.
8816 (try_init_one_plugin): New.
8817 (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
8818 if failed to init.
8819 (finalize_one_plugin): New.
8820 (finalize_plugins): New.
8821 (print_one_plugin): New.
8822 (print_plugins_versions): New.
8823 * plugin.h (print_plugins_versions): New.
8824 (finalize_plugins): New.
8825 * toplev.c (compile_file): Don't call initialize_plugins.
8826 (print_version): Call print_plugins_versions.
8827 (toplev_main): Call initialize_plugins. Print version if needed.
8828 Call finalize_plugins.
8829
41fd0f9b
RAE
88302009-04-16 Rafael Avila de Espindola <espindola@google.com>
8831
8832 * common.opt (fversion): New.
8833 * gcc.c (print_version): New.
8834 (process_command): Don't print the version. Just set print_version.
8835 (main): Print version. Call subprocesses if print_version and
8836 verbose_flag are set.
8837 * opts.c (common_handle_option): Handle OPT_fversion.
8838
550918ca 88392009-04-16 Richard Guenther <rguenther@suse.de>
532bfb0a 8840 Ira Rosen <irar@il.ibm.com>
550918ca
RG
8841
8842 PR tree-optimization/39698
8843 * tree-vect-loop.c (get_initial_def_for_reduction): Use the
8844 type of the reduction variable. Only generate the def if
8845 it is needed.
8846
8847 * omp-low.c (expand_omp_for_generic): When converting to a pointer
8848 make sure to first convert to an integer of the same precision.
8849 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
8850 the type of the evolution correctly in computing the new
8851 induction variable base.
8852
54634841
RG
88532009-04-16 Richard Guenther <rguenther@suse.de>
8854
8855 PR middle-end/39625
8856 * tree-cfg.c (make_blocks): Split statements with to-be
8857 abnormal SSA names on the lhs.
8858
b6fc2cdb
PB
88592009-04-16 Paolo Bonzini <bonzini@gnu.org>
8860
8861 * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
8862 Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
8863 * c-typeck.c (really_start_incremental_init): Likewise.
8864 * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
8865 (TARGET_INITIALIZER): Remove it.
8866 * target.h (struct target): Remove vector_opaque_p.
8867 * tree.c (build_opaque_vector_type): New.
8868 * tree.h (TYPE_VECTOR_OPAQUE): New.
8869 (build_opaque_vector_type): Declare.
8870 * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
8871 * config/rs6000/rs6000.c (build_opaque_vector_type,
8872 rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
8873 (rs6000_init_builtins): Use build_opaque_vector_type for
8874 opaque_V4SI_type_node.
8875
a417cdd9
CM
88762009-04-15 Catherine Moore <clm@codesourcery.com>
8877
532bfb0a
AJ
8878 * debug.h (set_name): Declare.
8879 * dwarf2out.c (dwarf2out_set_name): Declare.
8880 (dwarf2_debug_hooks): Add set_name.
8881 (find_AT_string): New.
8882 (add_AT_string): Call find_AT_string.
8883 (dwarf2out_set_name): New.
8884 * cp/decl.c (grokdeclarator): Call set_name.
8885 * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
8886 * debug.c (do_nothing_debug_hooks): Likewise.
8887 * dbxout.c (dbx_debug_hooks): Likewise.
8888 * sdbout.c (sdb_debug_hooks): Likewise.
a417cdd9 8889
60839f5d 88902009-04-15 Michael Eager <eager@eagercon.com>
2c5cac98 8891
532bfb0a
AJ
8892 * config/rs6000/rs6000.c (rs6000_function_value): Set function return
8893 reg for single-precision FPU.
8894 * config/rs6000/rs6000.md (movsi_internal1): Only for
8895 !TARGET_SINGLE_FPU.
8896 (movsi_internal1_single): New. Add pattern to move SI values to/from
2c5cac98
ME
8897 single-precision FP regs.
8898
ada39f0b
RG
88992009-04-15 Richard Guenther <rguenther@suse.de>
8900
8901 * omp-low.c (lower_rec_input_clauses): Build correct address
8902 expressions.
8903 (expand_omp_for_generic): Fix multiplication type.
532bfb0a 8904 * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
ada39f0b
RG
8905 (generate_memset_zero): Fix types.
8906 * tree-profile.c (prepare_instrumented_value): Correctly
8907 widen a pointer.
8908
6866c6e8
ILT
89092009-04-15 Ian Lance Taylor <iant@google.com>
8910
8911 * c.opt (Wenum-compare): Enable for C and Objc. Initialize to -1.
8912 * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
8913 for -Wall and for -Wc++-compat.
8914 (c_common_post_options): For C++, set warn_enum_compare if not
8915 already set.
8916 * c-tree.h (struct c_expr): Add field original_type.
8917 (build_external_ref): Update declaration.
8918 * c-parser.c (c_parser_braced_init): Set original_type.
8919 (c_parser_initelt): Likewise.
8920 (c_parser_expr_no_commas): Likewise.
8921 (c_parser_conditional_expression): Likewise.
8922 (c_parser_cast_expression): Likewise.
8923 (c_parser_unary_expression): Likewise. Pull setting of
8924 original_code to top of function.
8925 (c_parser_sizeof_expression): Set original_type.
8926 (c_parser_alignof_expression): Likewise.
8927 (c_parser_postfix_expression): Likewise. Pull setting of
8928 original_code to top of function.
532bfb0a 8929 (c_parser_postfix_expression_after_paren_type): Set original_type.
6866c6e8
ILT
8930 (c_parser_postfix_expression_after_primary): Likewise.
8931 (c_parser_expression): Likewise.
8932 * c-typeck.c (build_external_ref): Add type parameter. Change all
8933 callers.
8934 (c_expr_sizeof_expr): Set original_type field.
8935 (parser_build_unary_op): Likewise.
8936 (parser_build_binary_op): Likewise. Optionally warn about
8937 comparisons of enums of different types.
8938 (digest_init): Set original_type field.
8939 (really_start_incremental_init): Likewise.
8940 (push_init_level, pop_init_level): Likewise.
8941 * doc/invoke.texi (Warning Options): -Wenum-compare now
8942 supported in C.
8943
f116fecf
RG
89442009-04-15 Richard Guenther <rguenther@suse.de>
8945
8946 * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
8947 out a necessary conversion.
8948 * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
8949 names we didn't value number.
8950 * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
8951
25e20805
RG
89522009-04-15 Richard Guenther <rguenther@suse.de>
8953
8954 PR tree-optimization/39764
8955 * tree-ssa-ccp.c (get_value): Canonicalize value with
8956 canonicalize_float_value.
8957
90cc3676
JH
89582009-04-15 Jan Hubicka <jh@suse.cz>
8959
8960 * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
8961 Wrong version of patch.
8962
6d14c006
JH
89632009-04-15 Jan Hubicka <jh@suse.cz>
8964
8965 * builtins.def (va_start, va_end, va_copy): Mark nothrow.
8966
5afaa917
NS
89672009-04-15 Nathan Sidwell <nathan@codesourcery.com>
8968
8969 * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
8970 our distinct integral and vector types.
8971
3b482fca
RAE
89722009-04-15 Rafael Avila de Espindola <espindola@google.com>
8973
8974 * class.c (build_vtbl_ref_1): Remove call to assemble_external.
8975 * init.c (build_vtbl_address): Remove call to assemble_external.
8976
6cd1d2e2
DJ
89772009-04-14 Daniel Jacobowitz <dan@codesourcery.com>
8978
8979 * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
8980 output for other floating point modes.
8981
dab71827
DN
89822009-04-14 Diego Novillo <dnovillo@google.com>
8983
8984 * diagnostic.c (diagnostic_report_diagnostic): Do not
8985 warn about loaded plugins for DK_ERROR and DK_WARNING.
8986 * c-decl.c (declspecs_add_type): Move call to
8987 invoke_plugin_callbacks ...
8988 * c-parser.c (c_parser_declspecs): ... here.
8989 * plugin.c (dump_active_plugins): Tidy output.
8990
68a607d8
DN
89912009-04-14 Diego Novillo <dnovillo@google.com>
8992 Le-Chun Wu <lcwu@google.com>
8993
8994 * configure.ac: Add --enable-plugin support.
8995 Define ENABLE_PLUGIN and PLUGINLIBS when specified.
8996 * Makefile.in (PLUGIN_H): Define.
8997 Export ENABLE_PLUGIN and GMPINC to site.exp.
8998 Add PLUGINLIBS to link command.
8999 Add/modify dependencies for plugin.o and files including plugin.h.
9000 (plugin.o): New.
9001 * config.in: Regenerate.
2ba9daa7 9002
68a607d8
DN
9003 * opts.c (common_handle_option): Handle OPT_fplugin_ and
9004 OPT_fplugin_arg_.
9005
90062009-04-14 Le-Chun Wu <lcwu@google.com>
9007
9008 * tree-pass.h (register_one_dump_file): Add a prototype for
9009 register_one_dump_file.
9010 * toplev.c (compile_file): Call initialize_plugins.
9011 (do_compile): Call invoke_plugin_callbacks.
9012 (toplev_main): Call invoke_plugin_callbacks.
9013 * common.opt: Add -fplugin= and -fplugin-arg-.
9014 * gcc-plugin.h: New public header file for plugins to include.
9015 * plugin.c: New source file.
9016 * plugin.h: New internal header file.
9017 * passes.c (register_one_dump_file): Make it external.
2ba9daa7 9018
68a607d8
DN
9019 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
9020
90212009-04-14 Diego Novillo <dnovillo@google.com>
9022
9023 * doc/plugins.texi: New.
9024 * doc/gccint.texi: Add reference to Plugins chapter.
9025 * doc/invoke.texi: Document -fplugin and -fplugin-arg
9026 * diagnostic.c (diagnostic_report_diagnostic): Warn about
9027 loaded plugins, if any.
9028 * timevar.def (TV_PLUGIN_INIT): Define.
9029 (TV_PLUGIN_RUN): Define.
9030 * plugin.c: Include timevar.h
9031 (plugins_active_p): New.
9032 (dump_active_plugins): New.
9033 (debug_active_plugins): New.
9034
50617257
JM
90352009-04-14 Joseph Myers <joseph@codesourcery.com>
9036
9037 * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
9038 library paths.
9039 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
9040
b32f6fff
KH
90412009-04-14 Kazu Hirata <kazu@codesourcery.com>
9042
9043 * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
9044 the same as a minus without a shift.
9045
85d04fa2
NC
90462009-04-14 Nick Clifton <nickc@redhat.com>
9047
9048 * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
9049 comparisons with small integers will always produce a short
9050 branch.
9051
e495a0c8
RAE
90522009-04-14 Rafael Avila de Espindola <espindola@google.com>
9053
9054 Merge:
e495a0c8
RAE
9055 2008-12-19 Diego Novillo <dnovillo@google.com>
9056
532bfb0a 9057 * cgraph.c (dump_cgraph_node): Show memory address of NODE.
e495a0c8 9058
ad41bd84 90592009-04-14 Richard Guenther <rguenther@suse.de>
587aa063
RG
9060
9061 * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
9062 verification.
9063 (verify_gimple_assign_binary): Likewise. Handle shifts and
9064 rotates correctly.
9065 (verify_gimple_phi): Print the mismatched argument position.
9066 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
9067 Fix types.
9068 (vect_update_init_of_dr): Likewise.
9069 * matrix-reorg.c (transform_access_sites): Do what the
9070 comment suggests.
9071 * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
9072
60839f5d 90732009-04-13 Michael Eager <eager@eagercon.com>
9eca1774
ME
9074
9075 * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
9076 _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
9077 * config/rs6000/xilinx.h: New. Spec for powerpc-xilinx-eabi
2ba9daa7 9078 * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
9eca1774
ME
9079 remove duplicate config
9080
b0e2d008
DR
90812009-04-13 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
9082
9083 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
9084 file_name:line_number type locator of the call site.
2ba9daa7 9085
1244a8b7
VM
90862009-04-13 Vladimir Makarov <vmakarov@redhat.com>
9087
9088 * genautomata.c: Put blank after comma.
9089 (automaton_decls): New.
9090 (struct unit_usage): Add comments to member next.
9091 (store_alt_unit_usage): Keep the list ordered.
9092 (unit_present_on_list_p, equal_alternatives_p): New.
9093 (check_regexp_units_distribution): Check units distribution
9094 correctness correctly.
9095 (main): Don't write automata if error is found. Return correct
9096 exit code.
2ba9daa7 9097
1244a8b7
VM
9098 * config/m68k/cf.md (cfv4_ds): Remove.
9099 (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
9100 cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
9101
9102 * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
9103 power4-load-ext, power4-store, power4-store-update,
9104 power4-fpstore, power4-fpstore-update, power4-two, power4-three,
9105 power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
9106 power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
9107 power4-sqrt, power4-isync): Modify reservation to make correct
9108 unit distribution to automata.
9109
9110 * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
9111 power5-store-update, power5-two, power5-three, power5-lmul,
9112 power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
2ba9daa7 9113
f7dd1864
AN
91142009-04-13 Adam Nemet <anemet@caviumnetworks.com>
9115
9116 * except.c (pass_set_nothrow_function_flags): Set name and add
9117 TODO_dump_func.
9118 (set_nothrow_function_flags): Mention in the dump file when
9119 changing a function to nothrow.
9120
59a1171f
OS
91212009-04-13 Ozkan Sezer <sezeroz@gmail.com>
9122
9123 PR/39066
9124 * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
9125 instead of unsigned long.
9126
934c2060
RR
91272009-04-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9128
f7dd1864
AN
9129 * config/arm/arm.c (return_used_this_function): Remove.
9130 (arm_output_function_prologue): Remove use of
934c2060 9131 return_used_this_function.
f7dd1864 9132 (output_return_instruction): Replace use of
934c2060
RR
9133 return_used_this_function
9134 by cfun->machine->return_used_this_function.
f7dd1864
AN
9135 (arm_output_epilogue): Likewise.
9136 (arm_output_function_epilogue): Likewise.
9137 (thumb_unexpanded_epilogue): Likewise.
9138 * config/arm/arm.h (struct machine_function):
934c2060 9139 New member return_used_this_function.
f7dd1864 9140
ae5cc016
MM
91412009-04-12 Mark Mitchell <mark@codesourcery.com>
9142
9143 * doc/install.texi: Correct description of default directory for
9144 --with-gxx-include-dir.
9145
a0ce68df 91462009-04-12 Eric Botcazou <ebotcazou@adacore.com>
849d624b
EB
9147
9148 * fold-const.c (build_range_check): Properly deal with enumeral and
9149 boolean base types.
9150
3906a4a1
SB
91512009-04-12 Steven Bosscher <steven@gcc.gnu.org>
9152
9153 * doc/invoke.texi (max_gcse_passes): Remove documentation.
9154 * params.def (PARAM_MAX_GCSE_PASSES): Remove.
9155 * params.h (MAX_GCSE_PASSES): Remove.
9156 * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
9157 in sequence. Remove ability to run multiple passes.
9158 (bypass_jumps): Report run as third CPROP pass.
9159
efaadb93
AN
91602009-04-12 Adam Nemet <anemet@caviumnetworks.com>
9161
9162 PR middle-end/39651
9163 * except.c (can_throw_external): Look at each insn in a SEQUENCE
9164 when deciding whether the whole SEQUENCE can throw.
9165
4c48007b
UB
91662009-04-12 Uros Bizjak <ubizjak@gmail.com>
9167
9168 PR target/39740
9169 * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
9170 offseted label references.
9171
b4104018
JH
91722009-04-11 Jan Hubicka <jh@suse.cz>
9173
9174 * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
9175
32848948
RG
91762009-04-11 Richard Guenther <rguenther@suse.de>
9177
9178 PR middle-end/39732
9179 * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
9180 return variables as TREE_ADDRESSABLE.
9181
8810712e
RG
91822009-04-11 Richard Guenther <rguenther@suse.de>
9183
9184 PR tree-optimization/39713
9185 * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
9186 reference trees have SSA_NAME operands.
9187
fa78c0c1
RG
91882009-04-11 Richard Guenther <rguenther@suse.de>
9189
9190 PR c/39712
9191 * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
9192 address expressions.
9193
4d722130
DK
91942009-04-11 Dave Korn <dave.korn.cygwin@gmail.com>
9195
9196 * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE): Update to
9197 match changes in Cygwin 1.7
9198 (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
9199 UINT_FAST16_TYPE, UINT_FAST32_TYPE): Likewise.
9200
567a90f5
PB
92012009-04-10 Paolo Bonzini <bonzini@gnu.org>
9202
9203 PR tree-optimization/39701
9204 * doc/invoke.texi (Optimization Options): Document change in
9205 meaning and initialization of -fdelete-null-pointer-checks.
9206
1ad2f450
L
92072009-04-10 H.J. Lu <hongjiu.lu@intel.com>
9208
9209 PR middle-end/39701
9210 * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
9211
9212 * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
9213 here.
9214
9215 * doc/invoke.texi: Update -fdelete-null-pointer-checks.
9216
1afc5373
CF
92172009-04-10 Chao-ying Fu <fu@mips.com>
9218
9219 * doc/tm.texi (Instruction Output): Document
9220 TARGET_ASM_FINAL_POSTSCAN_INSN.
9221 * target.h (final_postscan_insn): New field in asm_out.
9222 * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
9223 (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
9224 * final.c (final_scan_insn): Call
9225 targetm.asm_out.final_postscan_insn after outputting
9226 an asm macro and a normal instruction.
9227
9228 * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
9229 * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
9230 * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
9231 (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
9232 (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
9233
4d35e75c
PB
92342009-04-10 Paolo Bonzini <bonzini@gnu.org>
9235
9236 PR middle-end/39701
1ad2f450
L
9237 * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
9238 variables as non-NULL even with -fdelete-null-pointer-checks.
4d35e75c 9239
62c49b83
L
92402009-04-10 H.J. Lu <hongjiu.lu@intel.com>
9241
9242 * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
9243
80558628
L
92442009-04-09 H.J. Lu <hongjiu.lu@intel.com>
9245
9246 PR target/39678
9247 * config/i386/i386.c (classify_argument): Handle SCmode with
9248 (bit_offset % 64) != 0.
9249
8c70d28b
SL
92502009-04-09 Sandra Loosemore <sandra@codesourcery.com>
9251
9252 * doc/invoke.texi (Optimize Options): Add cross-reference to
9253 -Q --help=optimizers examples.
9254
e1ff19bf
BE
92552009-04-10 Ben Elliston <bje@au.ibm.com>
9256
9257 PR target/36800
9258 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
9259 regalign for the reg == fpr and TDmode case.
9260
52daca75
DA
92612009-04-09 David Ayers <ayers@fsfe.org>
9262
9263 PR objc/29200
9264 * objc/objc-act.c (warn_with_method): Remove helper function.
9265 (check_duplicates): Call warning and inform directly.
9266 (really_start_method): Likewise.
9267
b45f0e58
PB
92682009-04-09 Paolo Bonzini <bonzini@gnu.org>
9269
9270 * expmed.c (expand_divmod): Always use a comparison for a division
9271 by a large unsigned integer.
9272
1ad2f450
L
9273 * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
9274 for things others than variables or functions as nonzero.
b45f0e58 9275
748086b7
JJ
92762009-04-09 Nick Clifton <nickc@redhat.com>
9277
9278 * unwind-compat.c: Change copyright header to refer to version
9279 3 of the GNU General Public License with version 3.1 of the
9280 GCC Runtime Library Exception and to point readers at the
7a715bba 9281 COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
748086b7
JJ
9282 * config/alpha/crtfastmath.c: Likewise.
9283 * config/alpha/linux-unwind.h: Likewise.
9284 * config/alpha/qrnnd.asm: Likewise.
9285 * config/alpha/vms-crt0-64.c: Likewise.
9286 * config/alpha/vms-crt0.c: Likewise.
9287 * config/alpha/vms-dwarf2.asm: Likewise.
9288 * config/alpha/vms-dwarf2eh.asm: Likewise.
9289 * config/alpha/vms-psxcrt0-64.c: Likewise.
9290 * config/alpha/vms-psxcrt0.c: Likewise.
9291 * config/alpha/vms_tramp.asm: Likewise.
9292 * config/arc/initfini.c: Likewise.
9293 * config/arc/lib1funcs.asm: Likewise.
9294 * config/arm/bpabi-v6m.S: Likewise.
9295 * config/arm/bpabi.S: Likewise.
9296 * config/arm/bpabi.c: Likewise.
9297 * config/arm/crti.asm: Likewise.
9298 * config/arm/crtn.asm: Likewise.
9299 * config/arm/ieee754-df.S: Likewise.
9300 * config/arm/ieee754-sf.S: Likewise.
9301 * config/arm/lib1funcs.asm: Likewise.
9302 * config/arm/libunwind.S: Likewise.
9303 * config/arm/linux-atomic.c: Likewise.
9304 * config/arm/mmintrin.h: Likewise.
9305 * config/arm/pr-support.c: Likewise.
9306 * config/arm/unaligned-funcs.c: Likewise.
9307 * config/arm/unwind-arm.c: Likewise.
9308 * config/arm/unwind-arm.h: Likewise.
9309 * config/avr/libgcc.S: Likewise.
9310 * config/bfin/crti.s: Likewise.
9311 * config/bfin/crtlibid.s: Likewise.
9312 * config/bfin/crtn.s: Likewise.
9313 * config/bfin/lib1funcs.asm: Likewise.
9314 * config/bfin/linux-unwind.h: Likewise.
9315 * config/cris/arit.c: Likewise.
9316 * config/cris/cris_abi_symbol.c: Likewise.
9317 * config/darwin-64.c: Likewise.
9318 * config/darwin-crt2.c: Likewise.
9319 * config/darwin-crt3.c: Likewise.
9320 * config/darwin.h: Likewise.
9321 * config/dbxelf.h: Likewise.
9322 * config/dfp-bit.c: Likewise.
9323 * config/dfp-bit.h: Likewise.
9324 * config/elfos.h: Likewise.
9325 * config/fixed-bit.c: Likewise.
9326 * config/fixed-bit.h: Likewise.
9327 * config/fp-bit.c: Likewise.
9328 * config/fp-bit.h: Likewise.
9329 * config/fr30/crti.asm: Likewise.
9330 * config/fr30/crtn.asm: Likewise.
9331 * config/fr30/lib1funcs.asm: Likewise.
9332 * config/freebsd-spec.h: Likewise.
9333 * config/frv/cmovd.c: Likewise.
9334 * config/frv/cmovh.c: Likewise.
9335 * config/frv/cmovw.c: Likewise.
9336 * config/frv/frvbegin.c: Likewise.
9337 * config/frv/frvend.c: Likewise.
9338 * config/frv/lib1funcs.asm: Likewise.
9339 * config/glibc-stdint.h: Likewise.
9340 * config/h8300/clzhi2.c: Likewise.
9341 * config/h8300/crti.asm: Likewise.
9342 * config/h8300/crtn.asm: Likewise.
9343 * config/h8300/ctzhi2.c: Likewise.
9344 * config/h8300/fixunssfsi.c: Likewise.
9345 * config/h8300/lib1funcs.asm: Likewise.
9346 * config/h8300/parityhi2.c: Likewise.
9347 * config/h8300/popcounthi2.c: Likewise.
9348 * config/i386/ammintrin.h: Likewise.
9349 * config/i386/att.h: Likewise.
9350 * config/i386/avxintrin.h: Likewise.
9351 * config/i386/biarch64.h: Likewise.
9352 * config/i386/bmmintrin.h: Likewise.
9353 * config/i386/cpuid.h: Likewise.
9354 * config/i386/cross-stdarg.h: Likewise.
9355 * config/i386/crtfastmath.c: Likewise.
9356 * config/i386/crtprec.c: Likewise.
9357 * config/i386/cygming-crtbegin.c: Likewise.
9358 * config/i386/cygming-crtend.c: Likewise.
9359 * config/i386/cygwin.asm: Likewise.
9360 * config/i386/emmintrin.h: Likewise.
9361 * config/i386/gmm_malloc.h: Likewise.
9362 * config/i386/gthr-win32.c: Likewise.
9363 * config/i386/i386.h: Likewise.
9364 * config/i386/immintrin.h: Likewise.
9365 * config/i386/linux-unwind.h: Likewise.
9366 * config/i386/linux64.h: Likewise.
9367 * config/i386/mm3dnow.h: Likewise.
9368 * config/i386/mmintrin-common.h: Likewise.
9369 * config/i386/mmintrin.h: Likewise.
9370 * config/i386/nmmintrin.h: Likewise.
9371 * config/i386/pmm_malloc.h: Likewise.
9372 * config/i386/pmmintrin.h: Likewise.
9373 * config/i386/smmintrin.h: Likewise.
9374 * config/i386/sol2-c1.asm: Likewise.
9375 * config/i386/sol2-ci.asm: Likewise.
9376 * config/i386/sol2-cn.asm: Likewise.
9377 * config/i386/sol2-gc1.asm: Likewise.
9378 * config/i386/tmmintrin.h: Likewise.
9379 * config/i386/unix.h: Likewise.
9380 * config/i386/w32-unwind.h: Likewise.
9381 * config/i386/wmmintrin.h: Likewise.
9382 * config/i386/x86-64.h: Likewise.
9383 * config/i386/x86intrin.h: Likewise.
9384 * config/i386/xmmintrin.h: Likewise.
9385 * config/ia64/crtbegin.asm: Likewise.
9386 * config/ia64/crtend.asm: Likewise.
9387 * config/ia64/crtfastmath.c: Likewise.
9388 * config/ia64/crti.asm: Likewise.
9389 * config/ia64/crtn.asm: Likewise.
9390 * config/ia64/fde-glibc.c: Likewise.
9391 * config/ia64/lib1funcs.asm: Likewise.
9392 * config/ia64/linux-unwind.h: Likewise.
9393 * config/ia64/quadlib.c: Likewise.
9394 * config/ia64/unwind-ia64.c: Likewise.
9395 * config/linux.h: Likewise.
9396 * config/m32c/m32c-lib1.S: Likewise.
9397 * config/m32c/m32c-lib2-trapv.c: Likewise.
9398 * config/m32c/m32c-lib2.c: Likewise.
9399 * config/m32r/initfini.c: Likewise.
9400 * config/m68hc11/larith.asm: Likewise.
9401 * config/m68hc11/m68hc11-crt0.S: Likewise.
9402 * config/m68k/cf.md: Likewise.
9403 * config/m68k/crti.s: Likewise.
9404 * config/m68k/crtn.s: Likewise.
9405 * config/m68k/lb1sf68.asm: Likewise.
9406 * config/m68k/linux-unwind.h: Likewise.
9407 * config/mcore/crti.asm: Likewise.
9408 * config/mcore/crtn.asm: Likewise.
9409 * config/mcore/lib1.asm: Likewise.
9410 * config/mips/linux-unwind.h: Likewise.
9411 * config/mips/loongson.h: Likewise.
9412 * config/mips/mips16.S: Likewise.
9413 * config/mmix/crti.asm: Likewise.
9414 * config/mmix/crtn.asm: Likewise.
9415 * config/pa/fptr.c: Likewise.
9416 * config/pa/hpux-unwind.h: Likewise.
9417 * config/pa/lib2funcs.asm: Likewise.
9418 * config/pa/linux-atomic.c: Likewise.
9419 * config/pa/linux-unwind.h: Likewise.
9420 * config/pa/milli64.S: Likewise.
9421 * config/pa/quadlib.c: Likewise.
9422 * config/pa/stublib.c: Likewise.
9423 * config/picochip/libgccExtras/adddi3.asm: Likewise.
9424 * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
9425 * config/picochip/libgccExtras/ashlsi3.c: Likewise.
9426 * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
9427 * config/picochip/libgccExtras/ashrsi3.c: Likewise.
9428 * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
9429 * config/picochip/libgccExtras/divmod15.asm: Likewise.
9430 * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
9431 * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
9432 * config/picochip/libgccExtras/longjmp.asm: Likewise.
9433 * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
9434 * config/picochip/libgccExtras/lshrsi3.c: Likewise.
9435 * config/picochip/libgccExtras/parityhi2.asm: Likewise.
9436 * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
9437 * config/picochip/libgccExtras/setjmp.asm: Likewise.
9438 * config/picochip/libgccExtras/subdi3.asm: Likewise.
9439 * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
9440 * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
9441 * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
9442 * config/rs6000/750cl.h: Likewise.
9443 * config/rs6000/altivec.h: Likewise.
9444 * config/rs6000/biarch64.h: Likewise.
9445 * config/rs6000/crtresfpr.asm: Likewise.
9446 * config/rs6000/crtresgpr.asm: Likewise.
9447 * config/rs6000/crtresxfpr.asm: Likewise.
9448 * config/rs6000/crtresxgpr.asm: Likewise.
9449 * config/rs6000/crtsavfpr.asm: Likewise.
9450 * config/rs6000/crtsavgpr.asm: Likewise.
9451 * config/rs6000/darwin-asm.h: Likewise.
9452 * config/rs6000/darwin-fallback.c: Likewise.
9453 * config/rs6000/darwin-fpsave.asm: Likewise.
9454 * config/rs6000/darwin-ldouble.c: Likewise.
9455 * config/rs6000/darwin-tramp.asm: Likewise.
9456 * config/rs6000/darwin-unwind.h: Likewise.
9457 * config/rs6000/darwin-vecsave.asm: Likewise.
9458 * config/rs6000/darwin-world.asm: Likewise.
9459 * config/rs6000/e500crtres32gpr.asm: Likewise.
9460 * config/rs6000/e500crtres64gpr.asm: Likewise.
9461 * config/rs6000/e500crtres64gprctr.asm: Likewise.
9462 * config/rs6000/e500crtrest32gpr.asm: Likewise.
9463 * config/rs6000/e500crtrest64gpr.asm: Likewise.
9464 * config/rs6000/e500crtresx32gpr.asm: Likewise.
9465 * config/rs6000/e500crtresx64gpr.asm: Likewise.
9466 * config/rs6000/e500crtsav32gpr.asm: Likewise.
9467 * config/rs6000/e500crtsav64gpr.asm: Likewise.
9468 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
9469 * config/rs6000/e500crtsavg32gpr.asm: Likewise.
9470 * config/rs6000/e500crtsavg64gpr.asm: Likewise.
9471 * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
9472 * config/rs6000/eabi-ci.asm: Likewise.
9473 * config/rs6000/eabi-cn.asm: Likewise.
9474 * config/rs6000/eabi.asm: Likewise.
9475 * config/rs6000/linux-unwind.h: Likewise.
9476 * config/rs6000/linux64.h: Likewise.
9477 * config/rs6000/paired.h: Likewise.
9478 * config/rs6000/paired.md: Likewise.
9479 * config/rs6000/ppc64-fp.c: Likewise.
9480 * config/rs6000/ppu_intrinsics.h: Likewise.
9481 * config/rs6000/rs6000.h: Likewise.
9482 * config/rs6000/si2vmx.h: Likewise.
9483 * config/rs6000/sol-ci.asm: Likewise.
9484 * config/rs6000/sol-cn.asm: Likewise.
9485 * config/rs6000/spe.h: Likewise.
9486 * config/rs6000/spu2vmx.h: Likewise.
9487 * config/rs6000/sysv4.h: Likewise.
9488 * config/rs6000/tramp.asm: Likewise.
9489 * config/rs6000/vec_types.h: Likewise.
9490 * config/s390/linux-unwind.h: Likewise.
9491 * config/s390/tpf-unwind.h: Likewise.
9492 * config/score/crti.asm: Likewise.
9493 * config/score/crtn.asm: Likewise.
9494 * config/sh/crt1.asm: Likewise.
9495 * config/sh/crti.asm: Likewise.
9496 * config/sh/crtn.asm: Likewise.
9497 * config/sh/divtab-sh4-300.c: Likewise.
9498 * config/sh/divtab-sh4.c: Likewise.
9499 * config/sh/divtab.c: Likewise.
9500 * config/sh/lib1funcs-4-300.asm: Likewise.
9501 * config/sh/lib1funcs-Os-4-200.asm: Likewise.
9502 * config/sh/lib1funcs.asm: Likewise.
9503 * config/sh/lib1funcs.h: Likewise.
9504 * config/sh/linux-atomic.asm: Likewise.
9505 * config/sh/linux-unwind.h: Likewise.
9506 * config/sh/shmedia.h: Likewise.
9507 * config/sh/sshmedia.h: Likewise.
9508 * config/sh/ushmedia.h: Likewise.
9509 * config/sparc/crtfastmath.c: Likewise.
9510 * config/sparc/linux-unwind.h: Likewise.
9511 * config/sparc/sol2-c1.asm: Likewise.
9512 * config/sparc/sol2-ci.asm: Likewise.
9513 * config/sparc/sol2-cn.asm: Likewise.
9514 * config/spu/divmodti4.c: Likewise.
9515 * config/spu/divv2df3.c: Likewise.
9516 * config/spu/float_disf.c: Likewise.
9517 * config/spu/float_unsdidf.c: Likewise.
9518 * config/spu/float_unsdisf.c: Likewise.
9519 * config/spu/float_unssidf.c: Likewise.
9520 * config/spu/mfc_multi_tag_release.c: Likewise.
9521 * config/spu/mfc_multi_tag_reserve.c: Likewise.
9522 * config/spu/mfc_tag_release.c: Likewise.
9523 * config/spu/mfc_tag_reserve.c: Likewise.
9524 * config/spu/mfc_tag_table.c: Likewise.
9525 * config/spu/multi3.c: Likewise.
9526 * config/spu/spu_internals.h: Likewise.
9527 * config/spu/spu_intrinsics.h: Likewise.
9528 * config/spu/spu_mfcio.h: Likewise.
9529 * config/spu/vec_types.h: Likewise.
9530 * config/spu/vmx2spu.h: Likewise.
9531 * config/stormy16/stormy16-lib2.c: Likewise.
9532 * config/svr4.h: Likewise.
9533 * config/sync.c: Likewise.
9534 * config/v850/lib1funcs.asm: Likewise.
9535 * config/vxlib-tls.c: Likewise.
9536 * config/vxlib.c: Likewise.
9537 * config/vxworks-dummy.h: Likewise.
9538 * config/xtensa/crti.asm: Likewise.
9539 * config/xtensa/crtn.asm: Likewise.
9540 * config/xtensa/ieee754-df.S: Likewise.
9541 * config/xtensa/ieee754-sf.S: Likewise.
9542 * config/xtensa/lib1funcs.asm: Likewise.
9543 * config/xtensa/lib2funcs.S: Likewise.
9544 * config/xtensa/linux-unwind.h: Likewise.
9545 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
9546 * config/xtensa/unwind-dw2-xtensa.h: Likewise.
9547 * coretypes.h: Likewise.
9548 * crtstuff.c: Likewise.
9549 * defaults.h: Likewise.
9550 * dwarf2.h: Likewise.
9551 * emutls.c: Likewise.
9552 * gbl-ctors.h: Likewise.
9553 * gcov-io.h: Likewise.
9554 * ginclude/float.h: Likewise.
9555 * ginclude/iso646.h: Likewise.
9556 * ginclude/stdarg.h: Likewise.
9557 * ginclude/stdbool.h: Likewise.
9558 * ginclude/stddef.h: Likewise.
9559 * ginclude/stdfix.h: Likewise.
9560 * ginclude/stdint-gcc.h: Likewise.
9561 * ginclude/tgmath.h: Likewise.
9562 * gthr-aix.h: Likewise.
9563 * gthr-dce.h: Likewise.
9564 * gthr-gnat.c: Likewise.
9565 * gthr-gnat.h: Likewise.
9566 * gthr-lynx.h: Likewise.
9567 * gthr-mipssde.h: Likewise.
9568 * gthr-nks.h: Likewise.
9569 * gthr-posix.c: Likewise.
9570 * gthr-posix.h: Likewise.
9571 * gthr-posix95.h: Likewise.
9572 * gthr-rtems.h: Likewise.
9573 * gthr-single.h: Likewise.
9574 * gthr-solaris.h: Likewise.
9575 * gthr-tpf.h: Likewise.
9576 * gthr-vxworks.h: Likewise.
9577 * gthr-win32.h: Likewise.
9578 * gthr.h: Likewise.
9579 * libgcc2.c: Likewise.
9580 * libgcc2.h: Likewise.
9581 * libgcov.c: Likewise.
9582 * tsystem.h: Likewise.
9583 * typeclass.h: Likewise.
9584 * unwind-c.c: Likewise.
9585 * unwind-compat.h: Likewise.
9586 * unwind-dw2-fde-compat.c: Likewise.
9587 * unwind-dw2-fde-darwin.c: Likewise.
9588 * unwind-dw2-fde-glibc.c: Likewise.
9589 * unwind-dw2-fde.c: Likewise.
9590 * unwind-dw2-fde.h: Likewise.
9591 * unwind-dw2.c: Likewise.
9592 * unwind-dw2.h: Likewise.
9593 * unwind-generic.h: Likewise.
9594 * unwind-pe.h: Likewise.
9595 * unwind-sjlj.c: Likewise.
9596 * unwind.inc: Likewise.
9597 * config/arm/neon-gen.ml: Change generated copyright header to
9598 refer to version 3 of the GNU General Public License with
9599 version 3.1 of the GCC Runtime Library Exception and to point
9600 readers at the COPYING3 and COPYING3.RUNTIME files and the
9601 FSF's license web page.
9602 * config/arm/arm_neon.h: Regenerate.
9603
96042009-04-09 Jakub Jelinek <jakub@redhat.com>
9605
9606 * config/cris/cris.md: Change copyright header to refer to version
9607 3 of the GNU General Public License.
9608 * doc/install.texi2html: Change copyright header to refer to version
9609 3 of the GNU General Public License and to point readers at the
9610 COPYING3 file and the FSF's license web page.
9611 * config/vax/linux.h: Likewise.
9612
4a77c72b
PB
96132009-04-09 Paolo Bonzini <bonzini@gnu.org>
9614
1ad2f450
L
9615 * config/i386/i386.md (cmpcc): New.
9616 * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
9617 (sync_compare_and_swap_cc*): Delete.
9618
9619 * config/s390/s390.c (s390_compare_emitted): Remove.
9620 (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
9621 s390_compare_emitted used to be handled. Assert that modes match.
9622 (s390_emit_compare_and_swap): Use s390_emit_compare, do not
9623 refer to sync_compare_and_swap_ccsi.
9624 * config/s390/s390.h (s390_compare_emitted): Remove.
9625 * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
9626 instead of s390_compare_emitted.
9627 (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
9628 instead of s390_compare_emitted.
9629 * config/s390/s390.md (cmpcc): New.
9630 (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
9631 CC_REGNUM, do not pretend it's set.
9632 (sync_compare_and_swap_cc*): Delete.
9633 * config/s390/predicates.md (cc_reg_operand): New.
9634
9635 * expr.c (sync_compare_and_swap_cc): Delete.
9636 * optabs.h (sync_compare_and_swap_cc): Delete.
9637 * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
9638 is being used with can_compare_p.
9639 (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
9640 (find_cc_set): New.
9641 (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
9642 look for a MODE_CC set instead. Use emit_store_flag.
9643 (expand_compare_and_swap_loop): Likewise, with some additional
9644 complication to avoid a force_reg when useless. Use
9645 emit_cmp_and_jump_insns.
9646 * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
9647 * doc/md.texi (sync_compare_and_swap_cc): Merge with
9648 sync_compare_and_swap documentation.
4a77c72b 9649
0c0efb33
JH
96502009-04-09 Jan Hubicka <jh@suse.cz>
9651
9652 * except.c (find_prev_try): Break out from ....
9653 (duplicate_eh_regions): ... here; properly update prev_try pointers
9654 when duplication part of tree.
9655 (dump_eh_tree): Improve dumping.
9656 (verify_eh_region): New.
9657 (verify_eh_tree): Use it.
9658
22a65a54
RG
96592009-04-06 Richard Guenther <rguenther@suse.de>
9660
9661 * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
9662 &ARRAY addresses by adjusting their types and prepending
9663 a conversion.
9664 * tree-cfg.c (verify_gimple_assign_single): Verify that
9665 addresses are correct.
9666
f76968e6
RG
96672009-04-09 Richard Guenther <rguenther@suse.de>
9668
9669 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
9670 indices into an array reference if possible.
9671 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
9672 Fold POINTER_PLUS_EXPR statements with invariant address.
9673
c90c5fb5
AM
96742009-04-09 Alan Modra <amodra@bigpond.net.au>
9675
9676 PR target/39634
9677 * config.gcc (powerpc64-*-linux*): Always build biarch.
9678
17cede2e
JM
96792009-04-09 Joseph Myers <joseph@codesourcery.com>
9680
9681 PR c/39613
9682 * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
9683 it and pedwarn if this results in an INTEGER_CST.
9684
a3337ea2
KG
96852009-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9686
9687 * doc/install.texi: Update minimum GMP version. Remove obsolete
9688 text in MPFR section.
9689
ce9ba79b
JJ
96902009-04-08 Jakub Jelinek <jakub@redhat.com>
9691
9692 * dwarf2out.c (class_scope_p): New static inline.
9693 (class_or_namespace_scope_p): Use it.
9694 (gen_variable_die): Use DW_TAG_member tag for static data member
9695 declarations instead of DW_TAG_variable.
9696
4f0ae266
JJ
9697 PR middle-end/39573
9698 * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
9699 variables.
9700
d27f0ddc
RG
97012009-04-08 Richard Guenther <rguenther@suse.de>
9702
9703 * tree-ssa-sccvn.c (valueize_refs): Do not continue to
9704 valueize random data.
9705
557cc596
DE
97062009-04-08 David Edelsohn <edelsohn@gnu.org>
9707
9708 * config.gcc (aix tm_file): Add aix-stdint.h.
9709 (aix tm clause use_gcc_stdint): Set to wrap.
9710 * config/rs6000/aix-stdint.h: New file.
2ba9daa7 9711
75ccc1e7
RG
97122009-04-08 Richard Guenther <rguenther@suse.de>
9713
9714 PR middle-end/36291
9715 * tree-dfa.c (add_referenced_var): Do not recurse into
9716 global initializers.
9717 * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
9718 exposed variables.
9719 (fold_const_aggregate_ref): Likewise.
9720
c6963675
PB
97212009-04-08 Paolo Bonzini <bonzini@gnu.org>
9722
6c44cf79
L
9723 * recog.c (ordered_comparison_operator): New.
9724 * gensupport.c (std_preds): Add it.
c6963675
PB
9725 * doc/md.texi (Machine-Independent Predicates): Document it.
9726
6d07ad98
JH
97272009-04-08 Jan Hubicka <jh@suse.cz>
9728
9729 * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
9730 * function.h (rtl_eh): Remove exception_handler_label_map.
9731 * except.c (ehl_hash, ehl_eq, add_ehl_entry,
9732 remove_exception_handler_label, for_each_eh_label_1): Remove.
9733 (rtl_remove_unreachable_regions): Remove.
9734 (convert_from_eh_region_ranges): Do not remove unreachable regions.
9735 (find_exception_handler_labels): Don't build the hashtable.
9736 (maybe_remove_eh_handler): Remove.
9737 (for_each_eh_label): Rewrite to walk the tree.
9738 (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
9739 * except.h (maybe_remove_eh_handler): Remove.
9740 * passes.c (init_optimization_passes): Schedule second EH cleanup
9741 before out-of-ssa.
9742 * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
9743 cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
9744
7ddf71e3
PB
97452009-04-08 Paolo Bonzini <bonzini@gnu.org>
9746
9747 * genoutput.c (validate_optab_operands): New.
9748 (gen_insn, gen_expand): Call it.
9749
9750 * genflags.c (gen_insn): Detect misused iterators.
9751 (main): Pass line_no to gen_insn, exit with status 1 on error.
9752
9753 * genextract.c (line_no): Make global.
9754 (VEC_safe_set_locstr): Change assertion to error message.
9755 (main): Exit with status 1 on error.
9756
4d84fe7c
JM
97572009-04-08 Joseph Myers <joseph@codesourcery.com>
9758
9759 PR c/39614
9760 PR c/39673
9761 * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
9762 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
9763 EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
9764 * c-convert.c (convert): Do not call fold on results of conversion
9765 functions when the result is a C_MAYBE_CONST_EXPR.
9766 * c-parser.c (c_parser_postfix_expression): Do not fold condition
9767 of __builtin_choose_expr.
9768 * c-typeck.c (remove_c_maybe_const_expr): New.
9769 (build_unary_op, build_conditional_expr, build_compound_expr,
9770 build_binary_op, c_objc_common_truthvalue_conversion): Call
9771 remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
9772 integer operands.
9773
60839f5d 97742009-04-08 Bingfeng Mei <bmei@broadcom.com>
d1d1c602 9775
2ba9daa7 9776 * fold-const.c (const_binop): Combine two VECTOR_CST under operation
6c44cf79 9777 CODE to produce a new one. Add a prototype to use fold_convert_const
d1d1c602 9778
8e481a2c
DS
97792009-04-08 Danny Smith <dannysmith@users.sourceforge.net>
9780
9781 PR bootstrap/39660
9782 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
9783 mix declarations and code.
9784
ee618c17
BE
97852009-04-08 Ben Elliston <bje@au.ibm.com>
9786
9787 * gcc.c: Replace `CC' with `GCC' throughout.
9788
f2a758a2
L
97892009-04-07 H.J. Lu <hongjiu.lu@intel.com>
9790
9791 * doc/invoke.texi: Document Atom support.
9792
6ea2bd47
JM
97932009-04-07 Jason Merrill <jason@redhat.com>
9794
9795 PR c++/25185
9796 * c-common.h, c-common.c: Add flag_pretty_templates.
9797 * c-opts.c (c_common_handle_option): Set it.
9798 * c.opt: Add -fno-pretty-templates.
9799 * doc/invoke.texi (C++ Dialect Options): Likewise.
9800
fcb82ab0
UB
98012009-04-07 Uros Bizjak <ubizjak@gmail.com>
9802
9803 * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
9804 (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
9805 (ia64_expand_builtin): Likewise.
9806
dc5e7298
MJ
98072009-04-07 Martin Jambor <mjambor@suse.cz>
9808
9809 * tree-ssa-alias.c (refs_may_alias_p_1): Check for
9810 is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
9811 ADDR_EXPRS are include too.
9812
0609b355
RG
98132009-04-07 Richard Guenther <rguenther@suse.de>
9814
9815 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
9816 decls are only used if passes as parameters or if they are
9817 local statics and the call is not to a builtin.
9818 (call_may_clobber_ref_p_1): Likewise.
9819
d8e535fa
PB
98202009-04-07 Paolo Bonzini <bonzini@gnu.org>
9821
9822 * expr.c (do_store_flag): Remove last argument. Simplify code
9823 to avoid duplication of tests already done by can_compare_p.
9824 (expand_expr_real_1): Adjust caller.
9825
c3c64f50
PB
98262009-04-07 Paolo Bonzini <bonzini@gnu.org>
9827
fcb82ab0
UB
9828 * optabs.c (can_compare_p): Test the predicate of a
9829 cbranch and cstore pattern.
c3c64f50 9830
9a53bc17
PB
98312009-04-07 Paolo Bonzini <bonzini@gnu.org>
9832
fcb82ab0
UB
9833 * expr.c (convert_move): Use emit_store_flag instead of
9834 "emulating" it.
9a53bc17 9835
67b8f1c1
PB
98362009-04-07 Paolo Bonzini <bonzini@gnu.org>
9837
fcb82ab0
UB
9838 * config/i386/i386.c (ix86_compare_emitted): Remove.
9839 (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
9840 ix86_compare_op0 like ix86_compare_emitted used to be handled.
9841 * config/i386/i386.h (ix86_compare_emitted): Remove.
9842 * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
9843 instead of ix86_compare_emitted.
9844 * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
67b8f1c1 9845
44509946
AS
98462009-04-07 Andrew Stubbs <ams@codesourcery.com>
9847
9848 * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
9849 Add t-sysroot-suffix to tmake_file.
9850 * config/print-sysroot-suffix.sh: New file.
9851 * config/t-sysroot-suffix: New file.
9852
ca22d882
BE
98532009-04-07 Ben Elliston <bje@au.ibm.com>
9854
9855 * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
9856 as the latter produces a warning when the target does not support
9857 infinity.
9858
95aac11b
BE
98592009-04-07 Ben Elliston <bje@au.ibm.com>
9860
9861 * dfp.c: Replace type punning assignments with memcpy throughout.
9862 * Makefile.in (dfp.o-warn): Remove.
2ba9daa7 9863
633dd061
AM
98642009-04-07 Alan Modra <amodra@bigpond.net.au>
9865
9866 PR target/39634
9867 * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
9868 Include soft-fp/t-softfp after rs6000/t-linux64.
9869
fe0a25ec
EB
98702009-04-06 Eric Botcazou <ebotcazou@adacore.com>
9871
9872 * stor-layout.c (set_sizetype): Use the full precision of their
9873 machine mode for bitsize types.
9874
0c011bc3
L
98752009-04-06 H.J. Lu <hongjiu.lu@intel.com>
9876
9877 * config/i386/i386.md: Revert 2 accidental checkins.
9878
b6837b94 98792009-04-06 Joey Ye <joey.ye@intel.com>
60839f5d 9880 Xuepeng Guo <xuepeng.guo@intel.com>
b6837b94
JY
9881 H.J. Lu <hongjiu.lu@intel.com>
9882
9883 Atom pipeline model, tuning and insn selection.
9884 * config.gcc (atom): Add atom config options and target.
9885
9886 * config/i386/atom.md: New.
9887
9888 * config/i386/i386.c (atom_cost): New cost.
9889 (m_ATOM): New macro flag.
9890 (initial_ix86_tune_features): Set m_ATOM.
9891 (x86_accumulate_outgoing_args): Likewise.
9892 (x86_arch_always_fancy_math_387): Likewise.
9893 (processor_target): Add Atom cost.
9894 (cpu_names): Add Atom cpu name.
9895 (override_options): Set Atom ISA.
9896 (ix86_issue_rate): New case PROCESSOR_ATOM.
9897 (ix86_adjust_cost): Likewise.
9898
9899 * config/i386/i386.h (TARGET_ATOM): New target macro.
9900 (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
9901 (TARGET_OPT_AGU): New target option.
9902 (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
9903 (processor_type): Add PROCESSOR_ATOM.
9904
9905 * config/i386/i386.md (cpu): Add new value "atom".
9906 (use_carry, movu): New attr.
9907 (atom.md): Include atom.md.
9908 (adddi3_carry_rex64): Set attr "use_carry".
9909 (addqi3_carry): Likewise.
9910 (addhi3_carry): Likewise.
9911 (addsi3_carry): Likewise.
9912 (*addsi3_carry_zext): Likewise.
9913 (subdi3_carry_rex64): Likewise.
9914 (subqi3_carry): Likewise.
9915 (subhi3_carry): Likewise.
9916 (subsi3_carry): Likewise.
9917 (x86_movdicc_0_m1_rex64): Likewise.
9918 (*x86_movdicc_0_m1_se): Likewise.
9919 (x86_movsicc_0_m1): Likewise.
9920 (*x86_movsicc_0_m1_se): Likewise.
9921 (*adddi_1_rex64): Emit add insn as much as possible.
9922 (*addsi_1): Likewise.
9923 (return_internal): Set atom_unit.
9924 (return_internal_long): Likewise.
9925 (return_pop_internal): Likewise.
9926 (*rcpsf2_sse): Set atom_sse_attr attr.
9927 (*qrt<mode>2_sse): Likewise.
9928 (*prefetch_sse): Likewise.
9929
9930 * config/i386/i386-c.c (ix86_target_macros_internal): New case
9931 PROCESSOR_ATOM.
9932 (ix86_target_macros_internal): Likewise.
9933
9934 * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
9935 (*prefetch_sse_rex): Likewise.
9936 (sse_rcpv4sf2): Likewise.
9937 (sse_vmrcpv4sf2): Likewise.
9938 (sse_sqrtv4sf2): Likewise.
9939 (<sse>_vmsqrt<mode>2): Likewise.
9940 (sse_ldmxcsr): Likewise.
9941 (sse_stmxcsr): Likewise.
9942 (*sse_sfence): Likewise.
9943 (sse2_clflush): Likewise.
9944 (*sse2_mfence): Likewise.
9945 (*sse2_lfence): Likewise.
9946 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
9947 (<sse>_movup<ssemodesuffixf2c>): Likewise.
9948 (avx_movdqu<avxmodesuffix>): Likewise.
9949 (avx_lddqu<avxmodesuffix>): Likewise.
9950 (sse2_movntv2di): Change attr "type" to "ssemov".
9951 (sse2_movntsi): Likewise.
9952 (rsqrtv8sf2): Change attr "type" to "sseadd".
9953 (sse3_addsubv2df3): Set attr "atom_unit".
9954 (sse3_h<plusminus_insn>v4sf3): Likewise.
9955 (*sse2_pmaddwd): Likewise.
9956 (*vec_extractv2di_1_rex64): Likewise.
9957 (*vec_extractv2di_1_avx): Likewise.
9958 (sse2_psadbw): Likewise.
9959 (ssse3_phaddwv8hi3): Likewise.
9960 (ssse3_phaddwv4hi3): Likewise.
9961 (ssse3_phadddv4si3): Likewise.
9962 (ssse3_phadddv2si3): Likewise.
9963 (ssse3_phaddswv8hi3): Likewise.
9964 (ssse3_phaddswv4hi3): Likewise.
9965 (ssse3_phsubwv8hi3): Likewise.
9966 (ssse3_phsubwv4hi3): Likewise.
9967 (ssse3_phsubdv4si3): Likewise.
9968 (ssse3_phsubdv2si3): Likewise.
9969 (ssse3_phsubswv8hi3): Likewise.
9970 (ssse3_phsubswv4hi3): Likewise.
9971 (ssse3_pmaddubsw128): Likewise.
9972 (sse3_pmaddubsw: Likewise.
9973 (ssse3_palignrti): Likewise.
9974 (ssse3_palignrdi): Likewise.
9975
53e350d3
GP
99762009-04-06 Gerald Pfeifer <gerald@pfeifer.com>
9977
9978 * doc/install.texi (Specific): Fix two cross-references to MinGW.
9979
439ef907
RG
99802009-04-06 Richard Guenther <rguenther@suse.de>
9981
9982 PR tree-optimization/28868
9983 * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
9984 of which PHI results we inserted.
9985 (insert_into_preds_of_block): Record inserted PHIs.
9986 (eliminate): Eliminate redundant PHI nodes.
9987 (init_pre): Init inserted_phi_names.
9988
4bad83f5
RG
99892009-04-06 Richard Guenther <rguenther@suse.de>
9990
9991 PR tree-optimization/39643
9992 * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
9993 IMAGPART_EXPRs of complex constants.
9994 (execute_fold_all_builtins): If we folded a call queue
9995 TODO_update_address_taken.
9996
570c4247
JH
99972009-04-06 Jan Hubicka <jh@suse.cz>
9998
9999 PR middle-end/39659
10000 * except.c (remove_unreachable_regions): Propagate may_contain_throw
10001 flag.
10002
a460d7a1
AS
100032009-04-06 Andrew Stubbs <ams@codesourcery.com>
10004
10005 * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
10006 delay slot.
10007 (ic_invalidate_array): Likewise.
10008
60839f5d 100092009-04-06 Hariharan Sandanagobalane <hariharan@picochip.com>
6bdf8c2e
HS
10010
10011 * calls.c (emit_library_call_value_1): Fix a problem with parameter
10012 alignment for library calls.
10013
7d253f6e
DS
100142009-04-06 Danny Smith <dannysmith@users.sourceforge.net>
10015
10016 * config.gcc (mingw32 tm_file): Add mingw-stdint.h.
10017 (mingw32 tm clause use_gcc_stdint): Set to wrap.
10018 * config/i386/mingw-stdint.h: New file.
10019
941c3614
RB
100202009-04-05 Richard Guenther <rguenther@suse.de>
10021
10022 PR tree-optimization/39648
10023 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
10024 our &A vs. &A[0] IL deficiencies.
10025
12633413
JH
100262009-04-04 Jan Hubicka <jh@suse.cz>
10027
941c3614
RB
10028 * except.c (sjlj_find_directly_reachable_regions): Be ready for
10029 removed toplevel regions.
12633413
JH
10030 (sjlj_mark_call_sites): Likewise.
10031
bb2aaded
DK
100322009-04-04 Dave Korn <dave.korn.cygwin@gmail.com>
10033
10034 * config.gcc (cygwin tm_file): Add cygwin-stdint.h.
10035 (cygwin tm clause use_gcc_stdint): Set to wrap.
10036 * config/i386/cygwin-stdint.h: New file.
10037
86290011
RG
100382009-04-04 Richard Guenther <rguenther@suse.de>
10039
10040 * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
10041 * tree-ssa-copy.c (init_copy_prop): Do not propagate through
10042 single-argument PHIs if we are in loop-closed SSA form.
10043 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
10044 for the pre-condition.
10045 (slpeel_tree_peel_loop_to_edge): Likewise.
10046 (vect_build_loop_niters): Take an optional sequence to append stmts.
10047 (vect_generate_tmps_on_preheader): Likewise.
10048 (vect_do_peeling_for_loop_bound): Take extra guards for the
10049 pre-condition.
10050 (vect_do_peeling_for_alignment): Adjust. Unconditionally apply
10051 the cost model check.
10052 (vect_loop_versioning): Take stmt and stmt list to put pre-condition
7a715bba 10053 guards if we are going to peel. Do not apply versioning in that case.
86290011
RG
10054 * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
10055 (vect_do_peeling_for_loop_bound): Likewise.
10056 * tree-vect-loop.c (vect_transform_loop): If we are peeling for
10057 loop bound only record extra pre-conditions, do not apply loop
10058 versioning.
10059
5eeeac64
RG
100602009-04-04 Richard Guenther <rguenther@suse.de>
10061
10062 * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
10063 renaming code.
10064
1ff7d06b
JH
100652009-04-04 Jan Hubicka <jh@suse.cz>
10066
10067 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
10068 last_basic_block for size of bb->index indexed array.
10069 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
10070 compute_out, link_btr_uses, build_btr_def_use_webs,
10071 build_btr_def_use_webs, migrate_btr_defs): Likewise.
10072
14925fcd
JH
100732009-04-04 Jan Hubicka <jh@suse.cz>
10074
10075 * except.c (remove_eh_handler_and_replace): Break out from ...
10076 (remove_eh_handler): ... here.
10077 (bring_to_root): New function.
10078 (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
10079 handled ones, bring others to root of tree.
10080
4e6d1743
JH
100812009-04-04 Jan Hubicka <jh@suse.cz>
10082
4cb735f7
JH
10083 * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
10084 (all_phis_safe_to_merge): New function.
10085 (update_info): New structure.
10086 (make_eh_edge_and_update_phi, update_eh_edges): New functions.
10087 (cleanup_empty_eh): Update SSA if possible.
4e6d1743 10088
c6803d43
RG
100892009-04-04 Richard Guenther <rguenther@suse.de>
10090
10091 * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
10092 * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
10093 (append_vuse): Likewise.
10094
54f5943c
JJ
100952009-04-04 Jakub Jelinek <jakub@redhat.com>
10096
10097 * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
10098 * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
10099 instead of REG_UNSAVED for DW_CFA_undefined.
10100 (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
10101 (uw_update_context): If RA column is REG_UNDEFINED, mark it as
10102 outermost frame.
10103
aad2bccb
RE
101042009-04-04 Richard Earnshaw <rearnsha@arm.com>
10105
10106 PR target/39501
10107 * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
10108 * testsuite/gcc.c-torture/execute/pr39501.c: New file.
10109 * testsuite/gcc.c-torture/execute/pr39501.x: New file.
10110
aa7069aa
RG
101112009-04-04 Richard Guenther <rguenther@suse.de>
10112
10113 PR tree-optimization/8781
10114 PR tree-optimization/37892
10115 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
10116 * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
10117 (valueize_refs): Call it for *& valueizations.
10118 (shared_reference_ops_from_ref): Rename to ...
10119 (valueize_shared_reference_ops_from_ref): ... this and valueize.
10120 (shared_reference_ops_from_call): Rename to ...
10121 (valueize_shared_reference_ops_from_call): ... this and valueize.
10122 (vn_reference_lookup): Update.
10123 (visit_reference_op_call): Likewise.
10124 * tree-ssa-pre.c (phi_translate_1): Fold *&.
10125 (eliminate): Value-replace the call address in call statements.
10126
cd15ad3e
RG
101272009-04-04 Richard Guenther <rguenther@suse.de>
10128
10129 PR tree-optimization/39636
10130 * tree-ssa-forwprop.c
10131 (forward_propagate_addr_into_variable_array_index): Check for
10132 GIMPLE_ASSIGN before accessing the rhs code.
10133
462f3262
JM
101342009-04-03 Jason Merrill <jason@redhat.com>
10135
10136 * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
10137
6adb807e
SE
101382009-04-03 Steve Ellcey <sje@cup.hp.com>
10139
10140 * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
10141 truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
10142 fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
10143 floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
10144 fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
10145 smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
10146 divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
10147 umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
10148 *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
10149 *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
10150 adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
10151 smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
10152 *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
10153 *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
10154 sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
10155 Use fr_reg_or_fp01_operand instead of fr_register_operand
10156
10157 * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
10158 recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
10159 divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
10160
174b3107
VM
101612009-04-03 Vladimir Makarov <vmakarov@redhat.com>
10162
b844e5d8
L
10163 PR rtl-optimization/39607
10164 PR rtl-optimization/39631
7a715bba
UB
10165
10166 Revert:
2ba9daa7 10167
174b3107
VM
10168 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
10169 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
10170 instead of DF_LR_OUT.
10171 * ira-lives.c (process_bb_node_lives): Ditto.
10172 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
10173 instead of DF_LR_{OUT,IN}.
10174 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
10175 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
10176
535b544a
SB
101772009-04-03 Steven Bosscher <steven@gcc.gnu.org>
10178
10179 * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
10180 (execute_lower_omp): Always run but take the short way out if -fopenmp
10181 is not given.
10182 (gate_lower_omp): Remove, forcing the pass manager to always run the
10183 pass and always set PROP_gimple_lomp.
10184 (pass_lower_omp): Remove gate function.
10185 * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
10186 PROP_trees. Instead, require it.
10187 * ipa-cp.c (pass_ipa_cp): Likewise.
10188 * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
10189 (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
10190 * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
10191 and PROP_gimple_leh.
10192
5006671f
RG
101932009-04-03 Richard Guenther <rguenther@suse.de>
10194
10195 PR middle-end/13146
10196 PR tree-optimization/23940
10197 PR tree-optimization/33237
10198 PR middle-end/33974
10199 PR middle-end/34093
10200 PR tree-optimization/36201
10201 PR tree-optimization/36230
10202 PR tree-optimization/38049
10203 PR tree-optimization/38207
10204 PR tree-optimization/38230
10205 PR tree-optimization/38301
10206 PR tree-optimization/38585
10207 PR middle-end/38895
10208 PR tree-optimization/38985
10209 PR tree-optimization/39299
10210 * tree-ssa-structalias.h: Remove.
10211 * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
10212 (NULL_DEF_OPERAND_P): Make of type def_operand_p.
10213 (struct vuse_element_d): Remove.
10214 (struct vuse_vec_d): Likewise.
10215 (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
10216 VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
10217 SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
10218 VUSE_ELEMENT_VAR): Likewise.
10219 (struct voptype_d): Likewise.
10220 (NUM_VOP_FREE_BUCKETS): Likewise.
10221 (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
10222 (struct stmt_operands_d): Remove.
10223 (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
10224 VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
10225 VDEF_NUM, VDEF_VECT): Likewise.
10226 (copy_virtual_operands): Remove.
10227 (operand_build_cmp): Likewise.
10228 (create_ssa_artificial_load_stmt): Likewise.
10229 (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
10230 (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
10231 vuse_index and mayuse_index members. Pack and move done and iter_type
10232 members to the front.
10233 (SSA_OP_VMAYUSE): Remove.
10234 (SSA_OP_VIRTUAL_USES): Adjust.
10235 (FOR_EACH_SSA_VDEF_OPERAND): Remove.
10236 (unlink_stmt_vdef): Declare.
10237 (add_to_addressable_set): Remove.
10238 * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
10239 (vrp_visit_stmt): Likewise.
10240 * doc/tree-ssa.texi (Alias analysis): Update.
10241 * doc/invoke.texi (max-aliased-vops): Remove docs.
10242 (avg-aliased-vops): Likewise.
10243 * tree-into-ssa.c (syms_to_rename): Remove.
10244 (need_to_update_vops_p): Likewise.
10245 (need_to_initialize_update_ssa_p): Rename to ...
10246 (update_ssa_initialized_fn): ... this. Track function we are
10247 initialized for.
10248 (symbol_marked_for_renaming): Simplify.
10249 (add_new_name_mapping): Do not set need_to_update_vops_p.
10250 (dump_currdefs): Use SYMS_TO_RENAME.
10251 (rewrite_update_stmt): Always walk all uses/defs.
10252 (dump_update_ssa): Adjust.
10253 (init_update_ssa): Take function argument. Track what we are
10254 initialized for.
10255 (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
10256 (create_new_def_for): Initialize for cfun, assert we are initialized
10257 for cfun.
10258 (mark_sym_for_renaming): Simplify.
10259 (mark_set_for_renaming): Do not initialize update-ssa.
10260 (need_ssa_update_p): Simplify. Take function argument.
10261 (name_mappings_registered_p): Assert we ask for the correct function.
10262 (name_registered_for_update_p): Likewise.
10263 (ssa_names_to_replace): Likewise.
10264 (release_ssa_name_after_update_ssa): Likewise.
10265 (update_ssa): Likewise. Use SYMS_TO_RENAME.
10266 (dump_decl_set): Do not print a newline.
10267 (debug_decl_set): Do it here.
10268 (dump_update_ssa): And here.
10269 * tree-ssa-loop-im.c (move_computations): Adjust.
10270 (movement_possibility): Likewise.
10271 (determine_max_movement): Likewise.
10272 (gather_mem_refs_stmt): Likewise.
10273 * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
10274 or NAME_MEMORY_TAG.
10275 * tree-complex.c (update_all_vops): Remove.
10276 (expand_complex_move): Adjust.
10277 * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
10278 Simplify test for memory referencing statement. Exclude
10279 non-invariant ADDR_EXPRs.
10280 * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
10281 * tree-loop-distribution.c (generate_memset_zero): Adjust.
10282 (rdg_flag_uses): Likewise.
10283 * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
10284 related code.
10285 (tree_optimize_tail_calls_1): Also split the
10286 edge from the entry block if we have degenerate PHI nodes in
10287 the first basic block.
10288 * tree.c (init_ttree): Remove memory-tag related code.
10289 (tree_code_size): Likewise.
10290 (tree_node_structure): Likewise.
10291 (build7_stat): Re-write to be build6_stat.
10292 * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
10293 (SSA_VAR_P): Adjust.
10294 (struct tree_memory_tag): Remove.
10295 (struct tree_memory_partition_tag): Likewise.
10296 (union tree_node): Adjust.
10297 (build7): Re-write to be build6.
10298 * tree-pass.h (pass_reset_cc_flags): Remove.
10299 (TODO_update_address_taken): New flag.
10300 (pass_simple_dse): Remove.
10301 * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
10302 * params.h (MAX_ALIASED_VOPS): Remove.
10303 (AVG_ALIASED_VOPS): Likewise.
10304 * omp-low.c (expand_omp_taskreg): Update SSA form.
10305 * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
10306 aliases the lhs in a copy stmt.
10307 * tree-ssa-dse.c (struct address_walk_data): Remove.
10308 (memory_ssa_name_same): Likewise.
10309 (memory_address_same): Likewise.
10310 (get_kill_of_stmt_lhs): Likewise.
10311 (dse_possible_dead_store_p): Simplify, use the oracle. Handle
10312 unused stores. Look through PHI nodes into post-dominated regions.
10313 (dse_optimize_stmt): Simplify. Properly remove stores.
10314 (tree_ssa_dse): Compute dominators.
10315 (execute_simple_dse): Remove.
10316 (pass_simple_dse): Likewise.
10317 * ipa-reference.c (scan_stmt_for_static_refs): Open-code
10318 gimple_loaded_syms and gimple_stored_syms computation.
10319 * toplev.c (dump_memory_report): Dump alias and pta stats.
10320 * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
10321 (vn_reference_eq): Likewise.
10322 (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
10323 copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
10324 valueize_vuses): Remove.
10325 (get_def_ref_stmt_vuses): Simplify. Rename to ...
10326 (get_def_ref_stmt_vuse): ... this.
10327 (vn_reference_lookup_2): New function.
10328 (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
10329 walking equivalent vuses. Simplify.
10330 (vn_reference_lookup): Likewise.
10331 (vn_reference_insert): Likewise.
10332 (vn_reference_insert_pieces): Likewise.
10333 (visit_reference_op_call): Simplify.
10334 (visit_reference_op_load): Likewise.
10335 (visit_reference_op_store): Likewise.
10336 (init_scc_vn): Remove shared_lookup_vuses initialization.
10337 (free_scc_vn): Remove shared_lookup_vuses freeing.
10338 (sort_vuses, sort_vuses_heap): Remove.
10339 (get_ref_from_reference_ops): Export.
10340 * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
10341 vector with single vuse pointer.
10342 (vn_reference_lookup_pieces, vn_reference_lookup,
10343 vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
10344 (shared_vuses_from_stmt): Remove.
10345 (get_ref_from_reference_ops): Declare.
10346 * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
10347 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
10348 memory-tag related code.
10349 * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
10350 (likely_value): Add comment, skip static-chain of call statements.
10351 (surely_varying_stmt_p): Adjust.
10352 (gimplify_and_update_call_from_tree): Likewise.
10353 (execute_fold_all_builtins): Do not rebuild alias info.
10354 (gimplify_and_update_call_from_tree): Properly update VOPs.
10355 * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
10356 (copy_ref_info): Remove memory-tag related code.
10357 * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
10358 * ipa-pure-const.c (check_decl): Remove memory-tag related code.
10359 (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
10360 computation.
10361 * tree-ssa-dom.c (gimple_p): Remove typedef.
10362 (eliminate_redundant_computations): Adjust.
10363 (record_equivalences_from_stmt): Likewise.
10364 (avail_expr_hash): Likewise.
10365 (avail_expr_eq): Likewise.
7a715bba 10366 * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
5006671f
RG
10367 (stmt_makes_single_load): Likewise.
10368 (stmt_makes_single_store): Likewise.
10369 * tree-ssa-alias.c: Rewrite completely.
10370 (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
10371 debug_mem_sym_stats, dump_mem_sym_stats_for_var,
10372 debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
10373 delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
10374 dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
10375 Remove public functions.
10376 (pass_reset_cc_flags): Remove.
10377 (pass_build_alias): Move ...
10378 * tree-ssa-structalias.c (pass_build_alias): ... here.
10379 * tree-ssa-alias.c (may_be_aliased): Move ...
10380 * tree-flow-inline.h (may_be_aliased): ... here.
10381 tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
10382 count_uses_and_derefs): Move ...
10383 * gimple.c: ... here.
10384 * gimple.h (count_uses_and_derefs): Declare.
10385 * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
10386 ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
10387 same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
10388 indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
10389 ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
10390 call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
10391 get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
10392 New functions.
10393 * tree-dfa.c (refs_may_alias_p): Move ...
10394 * tree-ssa-alias.c (refs_may_alias_p): ... here. Extend.
10395 * tree-ssa-alias.h: New file.
10396 * tree-ssa-sink.c (is_hidden_global_store): Adjust.
10397 (statement_sink_location): Likewise.
10398 * opts.c (decode_options): Do not adjust max-aliased-vops or
10399 avg-aliased-vops values.
10400 * timevar.def (TV_TREE_MAY_ALIAS): Remove.
10401 (TV_CALL_CLOBBER): Likewise.
10402 (TV_FLOW_SENSITIVE): Likewise.
10403 (TV_FLOW_INSENSITIVE): Likewise.
10404 (TV_MEMORY_PARTITIONING): Likewise.
10405 (TV_ALIAS_STMT_WALK): New timevar.
10406 * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
10407 * tree-ssa-address.c (create_mem_ref_raw): Use build6.
10408 (get_address_description): Remove memory-tag related code.
10409 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
10410 * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
10411 * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
10412 and immediate uses in statements. Document.
10413 * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
10414 (dump_symbols): Remove.
10415 (dump_gimple_mem_ops): Do not dump loaded or stored syms.
10416 * alias.c (get_deref_alias_set): New function split out from ...
10417 (get_alias_set): ... here.
10418 * alias.h (get_deref_alias_set): Declare.
10419 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
10420 type parameter. Remove restrict pointer handling. Create a
10421 ref-all pointer in case type-based alias sets do not conflict.
10422 (vect_analyze_data_refs): Remove SMT related code.
10423 * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
10424 (vectorizable_load): Likewise.
10425 * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
10426 (DR_SYMBOL_TAG, DR_VOPS): Remove.
10427 * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
10428 Ignore vops and SMTs.
10429 (dr_analyze_alias): Likewise..
10430 (free_data_ref): Likewise.
10431 (create_data_ref): Likewise.
10432 (analyze_all_data_dependences): Likewise.
10433 (get_references_in_stmt): Adjust.
10434 * tree-flow-inline.h (gimple_aliases_computed_p,
10435 gimple_addressable_vars, gimple_call_clobbered_vars,
10436 gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
10437 factoring_name_p, mark_call_clobbered, clear_call_clobbered,
10438 compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
10439 gimple_mem_ref_stats): Remove.
10440 (gimple_vop): New function.
10441 (op_iter_next_use): Remove vuses and mayuses cases.
10442 (op_iter_next_def): Remove vdefs case.
10443 (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
10444 (clear_and_done_ssa_iter): Do not set removed fields.
10445 (op_iter_init): Likewise. Skip vuse and/or vdef if requested.
10446 Assert we are not iterating over vuses or vdefs if not also
10447 iterating over uses or defs.
10448 (op_iter_init_use): Likewise.
10449 (op_iter_init_def): Likewise.
10450 (op_iter_next_vdef): Remove.
10451 (op_iter_next_mustdef): Likewise.
10452 (op_iter_init_vdef): Likewise.
10453 (compare_ssa_operands_equal): Likewise.
10454 (link_use_stmts_after): Handle vuse operand.
10455 (is_call_used): Use is_call_clobbered.
10456 (is_call_clobbered): Global variables are always call clobbered,
10457 query the call-clobbers bitmap.
10458 (mark_call_clobbered): Ignore global variables.
10459 (clear_call_clobbered): Likewise.
10460 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
10461 virtual operands sanity check.
10462 * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
10463 Remove.
10464 (TARGET_MEM_REF): Remove TMR_TAG operand.
10465 * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
10466 Remove call-clobber related code.
10467 (remove_referenced_var): Likewise. Do not clear mpt or symbol_mem_tag.
10468 (dump_variable): Do not dump SMTs, memory stats, may-aliases or
10469 partitions or escape reason.
10470 (get_single_def_stmt, get_single_def_stmt_from_phi,
10471 get_single_def_stmt_with_phi): Remove.
10472 (dump_referenced_vars): Tidy.
10473 (get_ref_base_and_extent): Allow bare decls.
10474 (collect_dfa_stats): Adjust.
10475 * graphite.c (rename_variables_in_stmt): Adjust.
10476 (graphite_copy_stmts_from_block): Likewise.
10477 (translate_clast): Likewise.
10478 * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
10479 (EXPR_DIES): New.
10480 (translate_vuse_through_block): Use the oracle.
10481 (phi_translate_1): Adjust.
10482 (value_dies_in_block_x): Use the oracle. Cache the outcome
10483 in EXPR_DIES.
10484 (valid_in_sets): Check if the VUSE for
10485 a REFERENCE is available.
10486 (eliminate): Do not remove stmts during elimination,
10487 instead queue and remove them afterwards.
10488 (do_pre): Do not rebuild alias info.
10489 (pass_pre): Run TODO_rebuild_alias before PRE.
10490 * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
10491 * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
10492 (mark_all_v_defs_stmt): Remove.
10493 (mark_all_v_defs_seq): Adjust.
10494 (sra_replace): Likewise.
10495 (scalarize_use): Likewise.
10496 (scalarize_copy): Likewise.
10497 (scalarize_init): Likewise.
10498 (scalarize_ldst): Likewise.
10499 (todoflags): Remove.
10500 (tree_sra): Do not rebuild alias info.
10501 (tree_sra_early): Adjust.
10502 (pass_sra): Run TODO_update_address_taken before SRA.
10503 * tree-predcom.c (set_alias_info): Remove.
10504 (prepare_initializers_chain): Do not call it.
10505 (mark_virtual_ops_for_renaming): Adjust.
10506 (mark_virtual_ops_for_renaming_list): Remove.
10507 (initialize_root_vars): Adjust.
10508 (initialize_root_vars_lm): Likewise.
10509 (prepare_initializers_chain): Likewise.
10510 * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
10511 (may_propagate_copy_into_stmt): Likewise.
10512 (merge_alias_info): Do nothing for now.
10513 (propagate_tree_value_into_stmt): Adjust.
10514 (stmt_may_generate_copy): Likewise.
10515 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
10516 not mark symbols for renaming.
10517 (forward_propagate_addr_expr): Match up push/pop_stmt_changes
10518 with the same statement, make sure to update the new pointed-to one.
10519 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
10520 call statements, do not mark symbols for renaming.
10521 (mark_operand_necessary): Dump something.
10522 (ref_may_be_aliased): New function.
10523 (mark_aliased_reaching_defs_necessary_1): New helper function.
10524 (mark_aliased_reaching_defs_necessary): Likewise.
10525 (mark_all_reaching_defs_necessary_1): Likewise.
10526 (mark_all_reaching_defs_necessary): Likewise.
10527 (propagate_necessity): Do not process virtual PHIs. For
10528 non-aliased loads mark all reaching definitions as necessary.
10529 For aliased loads and stores mark the immediate dominating
10530 aliased clobbers as necessary.
10531 (visited): New global static.
10532 (perform_tree_ssa_dce): Free visited bitmap after propagating
10533 necessity.
10534 (remove_dead_phis): Perform simple dead virtual PHI removal.
10535 (remove_dead_stmt): Properly unlink virtual operands when
10536 removing stores.
10537 (eliminate_unnecessary_stmts): Schedule PHI removal after
10538 stmt removal.
10539 * tree-ssa-ter.c (is_replaceable_p): Adjust.
10540 (process_replaceable): Likewise.
10541 (find_replaceable_in_bb): Likewise.
10542 * tree-ssa.c (verify_ssa_name): Verify all VOPs are
10543 based on the single gimple vop.
10544 (verify_flow_insensitive_alias_info): Remove.
10545 (verify_flow_sensitive_alias_info): Likewise.
10546 (verify_call_clobbering): Likewise.
10547 (verify_memory_partitions): Likewise.
10548 (verify_alias_info): Likewise.
10549 (verify_ssa): Adjust..
10550 (execute_update_addresses_taken): Export. Update SSA
10551 manually. Optimize only when optimizing. Use a local bitmap.
10552 (pass_update_address_taken): Remove TODO_update_ssa, add
10553 TODO_dump_func.
10554 (pass_update_address_taken): Just use TODO_update_address_taken.
10555 (init_tree_ssa): Do not initialize addressable_vars.
10556 (verify_ssa): Verify new VUSE / VDEF properties.
10557 Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
10558 Do not call verify_alias_info.
10559 (delete_tree_ssa): Clear the VUSE, VDEF operands.
10560 Do not free the loaded and stored syms bitmaps. Reset the escaped
10561 and callused solutions. Do not free addressable_vars.
10562 Remove memory-tag related code.
10563 (warn_uninitialized_var): Aliases are always available.
10564 * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
10565 * lambda-code.c (can_put_in_inner_loop): Adjust.
10566 (can_put_after_inner_loop): Likewise.
10567 (perfect_nestify): Likewise.
10568 * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
10569 (vect_gen_widened_results_half): Remove CALL_EXPR handling.
10570 (vectorizable_conversion): Do not mark symbols for renaming.
10571 * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
10572 (expand_call_inline): Unlink the calls virtual operands before
10573 replacing it.
10574 (tree_function_versioning): Do not call update_ssa if we are not
10575 updating clones. Simplify.
10576 * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
10577 (propagate_with_phi): Likewise..
10578 * tree-outof-ssa.c (create_temp): Remove memory tag and call
10579 clobber code. Assert we are not aliased or global.
10580 * tree-flow.h: Include tree-ssa-alias.h
10581 (enum escape_type): Remove.
10582 (struct mem_sym_stats_d): Likewise.
10583 (struct mem_ref_stats_d): Likewise.
10584 (struct gimple_df): Add vop member. Remove global_var,
10585 call_clobbered_vars, call_used_vars, addressable_vars,
10586 aliases_compted_p and mem_ref_stats members. Add syms_to_rename,
10587 escaped and callused members.
10588 (struct ptr_info_def): Remove all members, add points-to solution
10589 member pt.
10590 (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
10591 call_clobbered, escape_mask, mpt and symbol_mem_tag members.
10592 * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
10593 (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
10594 (tree-ssa-alias.o): Likewise.
10595 (toplev.o): Add tree-ssa-alias.h
10596 (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
10597 * gimple.c (gimple_set_bb): Fix off-by-one error.
10598 (is_gimple_reg): Do not handle memory tags.
10599 (gimple_copy): Also copy virtual operands.
10600 Delay updating the statement. Do not reset loaded and stored syms.
10601 (gimple_set_stored_syms): Remove.
10602 (gimple_set_loaded_syms): Likewise.
10603 (gimple_call_copy_skip_args): Copy the virtual operands
10604 and mark the new statement modified.
10605 * tree-ssa-structalias.c (may_alias_p): Remove.
10606 (set_uids_in_ptset): Take the alias set to prune with as
10607 parameter. Fold in the alias test of may_alias_p.
10608 (compute_points_to_sets): Compute whether a ptr is dereferenced
10609 in a local sbitmap.
10610 (process_constraint): Deal with &ANYTHING on the lhs, reject all
10611 other ADDRESSOF constraints on the lhs.
10612 (get_constraint_for_component_ref): Assert that we don't get
10613 ADDRESSOF constraints from the base of the reference.
10614 Properly generate UNKNOWN_OFFSET for DEREF if needed.
10615 (struct variable_info): Remove collapsed_to member.
10616 (get_varinfo_fc): Remove.
10617 (new_var_info): Do not set collapsed_to.
10618 (dump_constraint): Do not follow cycles.
10619 (dump_constraint_graph): Likewise.
10620 (build_pred_graph): Likewise.
10621 (build_succ_graph): Likewise.
10622 (rewrite_constraints): Likewise.
10623 (do_simple_structure_copy): Remove.
10624 (do_rhs_deref_structure_copy): Remove.
10625 (do_lhs_deref_structure_copy): Remove.
10626 (collapse_rest_of_var): Remove.
10627 (do_structure_copy): Re-implement.
10628 (pta_stats): New global variable.
10629 (dump_pta_stats): New function.
10630 (struct constraint_expr): Make offset signed.
10631 (UNKNOWN_OFFSET): Define special value.
10632 (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
10633 (solution_set_expand): New helper function split out from ...
10634 (do_sd_constraint): ... here.
10635 (solution_set_add): Handle UNKNOWN_OFFSET. Handle negative offsets.
10636 (do_ds_constraint): Likewise.
10637 (do_sd_constraint): Likewise. Do not special-case ESCAPED = *ESCAPED
10638 and CALLUSED = *CALLUSED.
10639 (set_union_with_increment): Make inc argument signed.
10640 (type_safe): Remove.
10641 (get_constraint_for_ptr_offset): Handle unknown and negative
10642 constant offsets.
10643 (first_vi_for_offset): Handle offsets before start. Bail
10644 out early for offsets beyond the variable extent.
10645 (first_or_preceding_vi_for_offset): New function.
10646 (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
10647 Together with ESCAPED = *ESCAPED this properly computes reachability.
10648 (find_what_var_points_to): New function.
10649 (find_what_p_points_to): Implement in terms of find_what_var_points_to.
10650 (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
10651 pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
10652 pt_solutions_intersect): New functions.
10653 (compute_call_used_vars): Remove.
10654 (compute_may_aliases): New main entry into PTA computation.
10655 * gimple.h (gimple_p): New typedef.
10656 (struct gimple_statement_base): Remove references_memory_p.
10657 (struct gimple_statement_with_memory_ops_base): Remove
10658 vdef_ops, vuse_ops, stores and loads members. Add vdef and vuse
10659 members.
10660 (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
10661 gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
10662 gimple_set_references_memory): Remove.
10663 (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
10664 gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
10665 New functions.
10666 * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
10667 (verify_expr): Allow RESULT_DECL.
10668 (gimple_duplicate_bb): Do not copy virtual operands.
10669 (gimple_duplicate_sese_region): Adjust.
10670 (gimple_duplicate_sese_tail): Likewise.
10671 (mark_virtual_ops_in_region): Remove.
10672 (move_sese_region_to_fn): Do not call it.
10673 * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
10674 and pass_simple_dse.
10675 (execute_function_todo): Handle TODO_update_address_taken,
10676 call execute_update_addresses_taken for TODO_rebuild_alias.
10677 (execute_todo): Adjust.
10678 (execute_one_pass): Init dump files early.
10679 * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
10680 call-clobbered.
10681 (create_general_new_stmt): Clear vops.
10682 * tree-ssa-reassoc.c (get_rank): Adjust.
10683 * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
10684 symbols for renaming.
10685 * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
10686 (PARAM_AVG_ALIASED_VOPS): Likewise.
10687 * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
10688 (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
7a715bba 10689 * tree-ssa-operands.c: Simplify for new virtual operand representation.
5006671f
RG
10690 (operand_build_cmp, copy_virtual_operands,
10691 create_ssa_artificial_load_stmt, add_to_addressable_set,
10692 gimple_add_to_addresses_taken): Remove public functions.
10693 (unlink_stmt_vdef): New function.
10694
457d1d00
AM
106952009-04-03 Alan Modra <amodra@bigpond.net.au>
10696
10697 * config.gcc (powerpc-*-linux*): Merge variants.
10698
e19da24c 106992009-04-02 Chao-ying Fu <fu@mips.com>
60839f5d 10700 James Grosbach <james.grosbach@microchip.com>
e19da24c
CF
10701
10702 * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
10703 num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
10704 cop0_sp_offset.
10705 (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
10706 keep_interrupts_masked_p, use_debug_exception_return_p.
10707 (mips_attribute_table): Add interrupt, use_shadow_register_set,
10708 keep_interrupts_masked, use_debug_exception_return.
10709 (mips_interrupt_type_p, mips_use_shadow_register_set_p,
10710 mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
10711 New functions.
10712 (mips_function_ok_for_sibcall): Return false for interrupt handlers.
10713 (mips_print_operand): Process COP0 registers to print $0 .. $31
10714 correctly for GAS to process.
10715 (mips_interrupt_extra_call_saved_reg_p): New function.
10716 (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
10717 extra registers.
10718 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
10719 (mips_compute_frame_info): Add supports for interrupt context that
10720 includes doubleword accumulators and COP0 registers.
10721 (mips_for_each_saved_acc): New function.
10722 (mips_for_each_saved_gpr_and_fpr): Change the function name from
10723 mips_for_each_saved_reg.
10724 (mips_save_reg): Save accumulators.
10725 (mips_kernel_reg_p): A new for_each_rtx callback.
10726 (mips_expand_prologue): Support interrupt handlers.
10727 (mips_restore_reg): Restore accumulators.
10728 (mips_expand_epilogue): Support interrupt handlers.
10729 (mips_can_use_return_insn): Return false for interrupt handlers.
10730 (mips_epilogue_uses): New function.
10731 * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
10732 UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
10733 (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
10734 cop0_move): New instructions.
10735 * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
10736 * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
10737 defines.
10738 (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
10739 New defines.
10740 (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
10741 (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
10742 interrupt handlers, we use K0 as the temporary register.
10743 (EPILOGUE_USES): Change to a function call.
10744 * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
10745 handlers, we use K0 as the temporary register.
2ba9daa7 10746
e19da24c
CF
10747 * doc/extend.texi (Function Attributes): Document interrupt,
10748 use_shadow_register_set, keep_interrupts_masked,
10749 use_debug_exception_return for MIPS attributes.
10750
aa1ca044
AM
107512009-04-03 Alan Modra <amodra@bigpond.net.au>
10752
10753 * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
10754 Remove a number of t-files from tmake_file.
10755 * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
10756 * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
10757 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
10758 target_prototype, not TARGET_PROTOTYPE.
10759 (LINK_OS_GNU_SPEC): Define.
10760 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
10761 and darwin-ldoubdle.c.
10762
14fdc613
MM
107632009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
10764
10765 PR driver/39293
10766 * gcc.c (save_temps_flag): Add support for -save-temps=obj.
10767 (cpp_options): Ditto.
10768 (default_compilers): Ditto.
10769 (display_help): Ditto.
10770 (process_command): Ditto.
10771 (do_spec_1): Ditto.
10772 (set_input): Use lbasename instead of duplicate code.
10773 (save_temps_prefix): New static for -save-temps=obj.
10774 (save_temps_length): Ditto.
2ba9daa7 10775
14fdc613
MM
10776 * doc/invoke.texi (-save-temps=obj): Document new variant to
10777 -save-temps switch.
10778
d3aa398e
JL
107792009-04-02 Jeff Law <law@redhat.com>
10780
10781 * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
10782 variable.
10783
83f0ccb8
L
107842009-04-02 H.J. Lu <hongjiu.lu@intel.com>
10785
10786 * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
10787 * configure: Regenerated.
10788
dcb6e951
RAE
107892009-04-02 Rafael Avila de Espindola <espindola@google.com>
10790
10791 * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
10792 share the argument list.
10793
d85478c2
RAE
107942009-04-02 Rafael Avila de Espindola <espindola@google.com>
10795
10796 Merge
10797
10798 2009-02-12 Diego Novillo <dnovillo@google.com>
10799
83f0ccb8
L
10800 * varpool.c (debug_varpool): New.
10801 * cgraph.h (debug_varpool): Declare.
d85478c2 10802
34f42a49
JH
108032009-04-02 Jan Hubicka <jh@suse.cz>
10804
10805 * passes.c (init_optimization_passes): Remove two copies of ehcleanup
10806 pass.
10807
a4747b4a
L
108082009-04-02 H.J. Lu <hongjiu.lu@intel.com>
10809
10810 * config/i386/i386.c (ix86_abi): Move initialization to ...
10811 (override_options): Here.
10812
63a9de54
CB
108132009-04-02 Christian Bruel <christian.bruel@st.com>
10814
10815 * config/sh/sh.c (sh_dwarf_register_span): New function.
10816 (TARGET_DWARF_REGISTER_SPAN): Define.
10817 * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
2ba9daa7 10818
2f0fa28e
IR
108192009-04-02 Ira Rosen <irar@il.ibm.com>
10820
10821 PR tree-optimization/39595
2ba9daa7 10822 * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
2f0fa28e
IR
10823 interleaved loads group is not greater than the SLP group size.
10824
bbf7ce11
RAE
108252009-04-02 Rafael Avila de Espindola <espindola@google.com>
10826
10827 * builtins.c (is_builtin_name): New.
10828 (called_as_built_in): Use is_builtin_name.
10829 * tree.h (is_builtin_name): New.
10830 * varasm.c (incorporeal_function_p): Use is_builtin_name
10831
47e4dfcf
AS
108322009-04-02 Andrew Stubbs <ams@codesourcery.com>
10833
10834 * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
10835
d0940d56
DS
108362009-04-02 Dodji Seketeli <dodji@redhat.com>
10837
10838 PR c++/26693
532bfb0a 10839 * c-decl.c (clone_underlying_type): Move this ...
d0940d56
DS
10840 * c-common.c (set_underlying_type): ... here.
10841 Also, make sure the function properly sets TYPE_STUB_DECL() on
10842 the newly created typedef variant type.
10843 * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
7a715bba
UB
10844 * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
10845 points.
d0940d56 10846
bf1cbdc6
RG
108472009-04-02 Richard Guenther <rguenther@suse.de>
10848
10849 PR tree-optimization/37221
10850 * tree-flow.h (degenerate_phi_result): Declare.
10851 * tree-ssa-dom.c (degenerate_phi_result): Export.
10852 * tree-scalar-evolution.c (analyze_initial_condition): If
10853 the initial condition is defined by a degenerate PHI node
10854 use the degenerate value.
10855
87cfb32c
EB
108562009-04-01 Eric Botcazou <ebotcazou@adacore.com>
10857
10858 PR rtl-optimization/39588
10859 * combine.c (merge_outer_ops): Do not set the constant when this
10860 is not necessary.
10861 (simplify_shift_const_1): Do not modify it either in this case.
10862
bbb6eae8
SB
108632009-04-01 Steven Bosscher <steven@gcc.gnu.org>
10864
10865 * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
10866 tuning is deprecated if -mtune value is set to an Itanium1 variant.
10867
839a3b8a
JJ
108682009-04-01 Janis Johnson <janis187@us.ibm.com>
10869
10870 PR c/29027
10871 * c-lex.c (interpret_float): Default (no suffix) is double.
10872
667e8acb
XDL
108732009-04-1 Xinliang David Li <davidxl@google.com>
10874
10875 * config/i386/i386.c (legitimate_constant_p): Recognize
10876 all one vector constant.
10877
60839f5d 108782009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10879
60839f5d 10880 * config/vax/vax.c: Add #includes to silence warnings.
c4e75102
MT
10881 Change #include order to silence two warnings.
10882
60839f5d 108832009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10884
60839f5d 10885 * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
c4e75102
MT
10886 (ASM_SPEC): Pass -k to the assembler for PIC code.
10887
60839f5d 108882009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10889
60839f5d
EB
10890 * config.gcc: Add vax-*-linux* to the switch.
10891 * config/vax/linux.h: New file. (TARGET_VERSION,
c4e75102
MT
10892 TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
10893
60839f5d 108942009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10895
60839f5d 10896 * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
c4e75102 10897 Use predicate macros instead of GET_CODE() == foo.
60839f5d 10898 * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
c4e75102
MT
10899 ashlsi3, rotrsi3, <unnamed>): Likewise.
10900
60839f5d 109012009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10902
60839f5d 10903 * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
c4e75102 10904 jbbccihi, jbbccisi): Remova trailing whitespace.
60839f5d
EB
10905 * config/vax/constraints.md: Likewise.
10906 * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
10907 * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
10908 * config/vax/predicates.md: Likewise.
10909 * config/vax/vax.c (print_operand_address, vax_output_int_move,
c4e75102 10910 vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
60839f5d
EB
10911 * config/vax/vax.h: Likewise.
10912 * config/vax/vax.md (nonlocal_goto): Likewise.
c4e75102 10913
60839f5d 109142009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10915
60839f5d 10916 * config/vax/vax.c (vax_float_literal, vax_output_int_move)
c4e75102
MT
10917 (indirectable_address_p, adjacent_operands_p): Add spaces around
10918 braces.
60839f5d 10919 * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
c4e75102 10920
60839f5d 109212009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10922
60839f5d 10923 * config/vax/vax.c (legitimate_constant_address_p,
c4e75102
MT
10924 legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
10925 index_term_p, reg_plus_index_p, legitimate_address_p,
10926 vax_mode_dependent_address_p): Update comments to match functions
10927 modified by the recent int->bool conversion.
10928
60839f5d 109292009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10930
60839f5d
EB
10931 * config/vax/builtins.md: Update copyright message.
10932 * config/vax/constraints.md: Likewise.
10933 * config/vax/netbsd-elf.h: Likewise.
10934 * config/vax/predicates.md: Likewise.
10935 * config/vax/vax-protos.h: Likewise.
10936 * config/vax/vax.c: Likewise.
10937 * config/vax/vax.h: Likewise.
10938 * config/vax/vax.md: Likewise.
10939 * config/vax/vax.opt: Likewise.
c4e75102 10940
60839f5d 109412009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10942
60839f5d 10943 * config/vax/builtins.md (ffssi2, ffssi2_internal,
c4e75102 10944 sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
60839f5d
EB
10945 * config/vax/constraints.md (B, R): Likewise.
10946 * config/vax/predicates.md (external_memory_operand,
c4e75102 10947 nonimmediate_addsub_di_operand): Likewise.
60839f5d
EB
10948 * config/vax/vax.c (vax_output_int_add): Likewise.
10949 * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
c4e75102
MT
10950 untyped_call): Likewise.
10951
60839f5d 109522009-04-01 Matt Thomas <matt@3am-software.com>
c4e75102 10953
7a715bba
UB
10954 * config/vax/predicates.md: New file.
10955 (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
c4e75102
MT
10956 external_const_operand, nonsymbolic_operand, external_memory_operand,
10957 indirect_memory_operand, indexed_memory_operand,
10958 illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
10959 nonimmediate_addsub_di_operand, general_addsub_di_operand): New
10960 predicate.
7a715bba
UB
10961 * config/vax/constraints.md: New file.
10962 (Z0, U06, U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
10963 New constraint.
10964 * config/vax/builtins.md: New file.
10965 (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
10966 jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
10967 jbbccisi): Define.
c4e75102
MT
10968 * config/vax/vax.opt (mqmath): Add option.
10969 * config/vax/vax.md (isfx): Extend with DI.
10970 (VAXintQH, VAXintQHSD): Define.
10971 (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
10972 mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
10973 and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
10974 one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
10975 (movdi): Update constraints and use vax_output_int_move().
10976 (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
10977 movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
10978 pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
10979 nonlocal_goto): New.
10980 (mov<mode>): Extend accepted operand types.
10981 (subdi3_old): Rename from subdi3, change update constraints and use
10982 a new implementation.
60839f5d 10983 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
c4e75102
MT
10984 (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
10985 MOVE_RATIO, CLEAR_RATIO): Define.
10986 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
10987 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
10988 (PRINT_OPERAND): Redefine using a function instead of inlined code.
60839f5d 10989 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
c4e75102
MT
10990 (split_quadword_operands): Make static and really allow variable
10991 splitting.
10992 (print_operand_address): Update for PIC generation.
10993 (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
10994 indexable_address_p, fixup_mathdi_operand,
10995 vax_expand_addsub_di_operands, adjacent_operands_p): New.
10996 (vax_float_literal, legitimate_constant_p,
10997 indirectable_constant_address_p, index_term_p,
10998 reg_plus_index_p): Return bool instead of int.
10999 (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
11000 where needed.
11001 (vax_output_int_move, vax_output_int_add): Extend to allow PIC
11002 generation.
11003 (vax_output_conditional_branch): Indent.
11004 (legitimate_constant_address_p, indirectable_constant_address_p,
11005 indirectable_address_p, nonindexed_address_p, legitimate_address_p,
11006 vax_mode_dependent_address_p): Return bool instead of int, update for
11007 PIC generation.
11008 * config/vax/vax-protos.h (legitimate_constant_address_p,
11009 legitimate_constant_p, legitimate_address_p,
11010 vax_mode_dependent_address_p): Change declaration to bool.
11011 (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
11012 vax_expand_addsub_di_operands, vax_output_int_subtract,
11013 vax_output_movmemsi): Declare.
11014 (split_quadword_operands, vax_float_literal): Delete declaration.
11015 * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
11016 * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
11017 VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
11018 ASM_OUTPUT_DWARF_PCREL): Define.
11019 (ASM_SPEC): Change definition to allow PIC generation.
11020
9332c6eb
L
110212009-04-01 Steve Ellcey <sje@cup.hp.com>
11022
11023 * doc/sourcebuild.texi: Update front-end requirements.
11024
d93e052c
JJ
110252009-04-01 Jakub Jelinek <jakub@redhat.com>
11026
11027 PR target/39226
11028 * config/rs6000/rs6000.md (andsi3_internal5_nomc,
11029 anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
11030 (booldi3_internal3): Use boolean_or_operator instead of
11031 boolean_operator.
11032
6ccb2a4a
JM
110332009-04-01 Joseph Myers <joseph@codesourcery.com>
11034
11035 PR c/39605
11036 * c-decl.c (grokdeclarator): Pedwarn for file-scope array
11037 declarator whose size is not an integer constant expression but
11038 folds to an integer constant, then treat it as a constant
11039 subsequently.
11040
299b87f8
RG
110412009-04-01 Richard Guenther <rguenther@suse.de>
11042
11043 * fold-const.c (fold_plusminus_mult_expr): Do not fold
11044 i * 4 + 2 to (i * 2 + 1) * 2.
11045
b85eb797
JJ
110462009-04-01 Jakub Jelinek <jakub@redhat.com>
11047
11048 PR c/37772
11049 * c-parser.c (c_parser_asm_statement): Skip until close paren and
11050 return if c_parser_asm_string_literal returned NULL.
11051
235e1fe8
NC
110522009-04-01 Nick Clifton <nickc@redhat.com>
11053
11054 * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
11055 already defined.
11056 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
11057 * config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the
11058 other typedefs to avoid conflicts with libgcc2.c. Define labels
11059 to gain 16-bit bit-manipulation functions from libgcc2.c and then
11060 include it.
11061 * config/m32c/m32c-lib2-trapv.c: New file. Define labels
11062 to gain 16-bit trapping arithmetic functions from libgcc2.c and
11063 then include it.
11064
d6868399
RAE
110652009-04-01 Rafael Avila de Espindola <espindola@google.com>
11066
7a715bba
UB
11067 * varasm.c (default_function_rodata_section): Declare DOT as
11068 const char*.
d6868399 11069
73d21f56 110702009-04-01 Kai Tietz <kai.tietz@onevision.com>
60839f5d 11071 Andrey Galkin <agalkin@hypercom.com>
73d21f56
KT
11072
11073 PR/39492
11074 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
11075 Make object_name unique for each process.
11076
03742a9b
JJ
110772009-04-01 Jakub Jelinek <jakub@redhat.com>
11078
11079 PR other/39591
11080 * omp-low.c (remove_exit_barrier): Don't optimize if there are any
11081 addressable variables in the parallel that could go out of scope while
11082 running queued tasks.
11083
4223ff5f
AS
110842009-04-01 Anatoly Sokolov <aesok@post.ru>
11085
11086 * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
11087 (CASE_VALUES_THRESHOLD): Redefine.
11088 * config/avr/avr.c (avr_override_options): Remove initialization of
11089 avr_case_values_threshold variable.
11090 (avr_case_values_threshold): Remove variable. Add new function.
11091 * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
11092 * config/avr/avr.opt (mno-tablejump): Remove option.
11093 * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
11094
e893f6f3
DD
110952009-04-01 DJ Delorie <dj@redhat.com>
11096
11097 * varasm.c (default_function_rodata_section): Don't assume
11098 anything about where the first '.' in the section name is.
11099
b246d100
AM
111002009-04-01 Alan Modra <amodra@bigpond.net.au>
11101
11102 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
11103 rs6000_emit_stack_tie.
11104
d3e37a9e
ILT
111052009-03-31 Ian Lance Taylor <iant@google.com>
11106
11107 * tree-eh.c (tree_remove_unreachable_handlers): Compare
11108 gimple_code with GIMPLE_RESX, not RESX.
11109
c1b61fca
JM
111102009-03-31 Joseph Myers <joseph@codesourcery.com>
11111
11112 * c-common.c (c_get_ident): New.
7a715bba 11113 (c_common_nodes_and_builtins): Call it for type names that may be NULL.
c1b61fca 11114
c2d2ad48
BE
111152009-04-01 Ben Elliston <bje@au.ibm.com>
11116
11117 * config/rs6000/sysv4.opt (msdata): Improve option description.
11118
13d1a6e7
SE
111192009-03-31 Steve Ellcey <sje@cup.hp.com>
11120
11121 * config/ia64/ia64.md (divsf3_internal_lat): Remove.
11122 (divdf3_internal_lat): Remove.
11123 (divxf3_internal_lat): Remove.
11124 (divxf3_internal_thr): Remove.
11125 (divxf): Use divxf3_internal.
11126 * config/ia64/div.md (divsf3_internal_lat): New.
11127 (divdf3_internal_lat): New.
11128 (divxf3_internal): New.
11129
207bf79d
JM
111302009-03-31 Joseph Myers <joseph@codesourcery.com>
11131
11132 PR c/448
11133 * Makefile.in (USE_GCC_STDINT): Define.
11134 (stmp-int-hdrs): Install stdint.h if applicable.
11135 * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
11136 if known.
11137 (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
11138 (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
11139 UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
11140 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
11141 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
11142 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
11143 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
11144 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
11145 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
11146 (c_common_nodes_and_builtins): Initialize
11147 underlying_wchar_type_node. Do not initialize
11148 signed_wchar_type_node or unsigned_wchar_type_node. Initialize
11149 nodes for new types.
11150 (c_stddef_cpp_builtins): Define macros for new types.
11151 * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
11152 Remove.
11153 (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
11154 CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
11155 CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
11156 CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
11157 CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
11158 CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
11159 CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
11160 CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
11161 CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
11162 (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
11163 (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
11164 int16_type_node, int32_type_node, int64_type_node,
11165 uint8_type_node, uint16_type_node, c_uint32_type_node,
11166 c_uint64_type_node, int_least8_type_node, int_least16_type_node,
11167 int_least32_type_node, int_least64_type_node,
11168 uint_least8_type_node, uint_least16_type_node,
11169 uint_least32_type_node, uint_least64_type_node,
11170 int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
11171 int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
11172 uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
11173 uintptr_type_node): Define.
11174 * c-cppbuiltin.c (builtin_define_constants,
11175 builtin_define_type_minmax): New.
11176 (builtin_define_stdint_macros): Define more macros.
11177 (c_cpp_builtins): Define more limit macros.
11178 (type_suffix): New.
11179 (builtin_define_type_max): Define in terms of
11180 builtin_define_type_minmax. Remove is_long parameter. All
11181 callers changed.
11182 * config.gcc (use_gcc_stdint): Define.
11183 (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
11184 Add newlib-stdint.h for generic targets.
11185 * config/glibc-stdint.h, config/newlib-stdint.h,
11186 ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
11187 * config/m32c/m32c.h (UINTPTR_TYPE): Define.
11188 * config/score/score.h (UINTPTR_TYPE): Define.
11189 * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
11190 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
11191 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
11192 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
11193 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
11194 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
11195 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
11196 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
11197 * config/spu/spu.h (STDINT_LONG32): Define.
11198 * configure.ac (use_gcc_stdint): Substitute.
11199 * configure: Regenerate.
11200 * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
11201 __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
11202 __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
11203 __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
11204 __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
11205 __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
11206 __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
11207 __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
11208 __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
11209 __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
11210 __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
11211 __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
11212 __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
11213 __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
11214 __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
11215 __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
11216 __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
11217 __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
11218 __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
11219 __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
11220 __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
11221 * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
11222 INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
11223 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
11224 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
11225 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
11226 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
11227 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
11228 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
11229
ed853664
BS
112302009-03-31 Bernd Schmidt <bernd.schmidt@analog.com>
11231
11232 * loop-iv.c (suitable_set_for_replacement): Renamed from
11233 simplify_using_assignment; changed to return bool and to accept new
11234 args DEST and SRC. Return true iff we find a source/destination pair
11235 that can be used to make a replacement, and fill SRC and DEST if so.
11236 Remove arg ALTERED. Don't deal with altered regs here. All callers
11237 changed.
11238 (simplify_using_initial_values): Deal with altered regs here and track
11239 more precisely the effect they have on the validity of our expression.
11240
1569e190
BS
11241 * loop-iv.c (simplify_using_condition): A condition of the form
11242 (EQ REG CONST) can be used to simply make a substitution.
11243 (simplify_using_initial_values): Keep track of conditions we have seen
11244 and keep using them to simplify new expressions, while applying the
11245 same substitutions to them as to the expression.
11246
1d1eb80c
BS
11247 * simplify-rtx.c (simplify_relational_operation_1): Simplify
11248 (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
11249 GEU/LTU reversed.
11250
28af33b0
BS
11251 * loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers
11252 changed. Use this when trying to improve the upper bound.
11253 Generate the comparison by using simplify_gen_relational.
11254
b30321cd
BS
11255 * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
11256
60081874
BS
11257 * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
11258 functions.
2ba9daa7 11259 (simplify_using_assignment, simplify_using_initial_values): Call
60081874
BS
11260 replace_in_expr to make replacements. Call replace_single_def_regs
11261 once on the initial version of the expression.
11262
bebc6e07
RR
112632009-03-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11264
fcb82ab0 11265 PR target/27237
bebc6e07 11266 * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
2ba9daa7 11267
6b12efe9
RG
112682009-03-31 Richard Guenther <rguenther@suse.de>
11269
11270 PR middle-end/31029
11271 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
11272 equality comparisons. Fold C - X CMP X if C % 2 == 1.
11273
108f6c2f
RG
112742009-03-31 Richard Guenther <rguenther@suse.de>
11275
11276 * tree.h (div_if_zero_remainder): Declare.
11277 * fold-const.c (div_if_zero_remainder): Export.
11278 * tree-ssa-forwprop.c
11279 (forward_propagate_addr_into_variable_array_index): Handle
11280 constant array index addition outside of the variable index.
11281
8f612190
JM
112822009-03-31 Joseph Myers <joseph@codesourcery.com>
11283
11284 PR target/39592
11285 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
11286 define_splits, floatunssi<mode>2): Require x87 conversions from
11287 DImode to be permitted.
11288
47580d22
JM
112892009-03-31 Joseph Myers <joseph@codesourcery.com>
11290
11291 PR preprocessor/15638
11292 * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
11293
ba4d8f9d
RG
112942009-03-31 Richard Guenther <rguenther@suse.de>
11295
11296 PR middle-end/23401
11297 PR middle-end/27810
11298 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
11299 (struct tree_decl_with_vis): Remove gimple_formal_temp member.
11300 * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
11301 a separate statement.
11302 * gimplify.c (pop_gimplify_context): Remove formal temp handling.
11303 (lookup_tmp_var): Likewise.
11304 (is_gimple_formal_tmp_or_call_rhs): Remove.
11305 (is_gimple_reg_or_call_rhs): Rename to ...
11306 (is_gimple_reg_rhs_or_call): ... this.
11307 (is_gimple_mem_or_call_rhs): Rename to ...
11308 (is_gimple_mem_rhs_or_call): ... this.
11309 (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set
11310 DECL_GIMPLE_REG_P only if is_formal is true.
11311 (gimplify_compound_lval): Use is_gimple_reg. Remove workaround
11312 for non-proper post-modify expression gimplification.
11313 (gimplify_self_mod_expr): For post-modify expressions gimplify
11314 the lvalue to a minimal lvalue.
11315 (rhs_predicate_for): Remove formal temp case.
11316 (gimplify_modify_expr_rhs): Likewise.
11317 (gimplify_addr_expr): Use is_gimple_reg.
11318 (gimplify_expr): Remove formal temp cases.
11319 (gimple_regimplify_operands): Likewise.
11320 * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
11321 and FILTER_EXPR like constants.
11322 * gimple.c (walk_gimple_op): Fix val_only initialization, use
11323 is_gimple_reg.
11324 (is_gimple_formal_tmp_rhs): Remove.
11325 (is_gimple_reg_rhs): Remove special casing.
11326 (is_gimple_mem_rhs): Fix.
11327 (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
11328 (is_gimple_formal_tmp_var): Remove.
11329 (is_gimple_formal_tmp_reg): Likewise.
11330 (is_gimple_min_lval): Allow invariant component ref parts.
11331 * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
11332 is_gimple_formal_tmp_reg): Remove declarations.
11333 * tree-cfg.c (verify_expr): Verify that variables with address
11334 taken do not have DECL_GIMPLE_REG_P set.
11335 * tree-mudflap.c (mf_build_check_statement_for): Use
11336 force_gimple_operand instead of gimplify_expr.
11337
8de9b877
AZ
113382009-03-31 Ayal Zaks <zaks@il.ibm.com>
11339
11340 * modulo-sched.c (sms_schedule_by_order): Pass the actual
11341 schedulable rows to compute_split_row.
11342
b5e3caf2
BE
113432009-03-31 Ben Elliston <bje@au.ibm.com>
11344
11345 PR target/31635
11346 * config/rs6000/rs6000.c (rs6000_handle_option): Handle
11347 OPT_mvrsave.
11348
9752c4ad
AM
113492009-03-31 Alan Modra <amodra@bigpond.net.au>
11350
11351 * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
11352 * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
11353 * configure: Regenerate.
11354 * config.in: Regenerate.
11355 * config/rs6000/rs6000.opt (mtls-markers): Add.
11356 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
11357 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
11358 (tls_ld_aix, tls_ld_sysv): Likewise.
11359 (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
11360 (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
11361
b597d1b6
AM
113622009-03-31 Alan Modra <amodra@bigpond.net.au>
11363
11364 * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
11365
a203a221
JH
113662009-03-30 Jan Hubicka <jh@suse.cz>
11367
b597d1b6
AM
11368 * tree-eh.c (make_eh_edges): Set probability 100% to first edge
11369 out of RESX.
11370 (tree_remove_unreachable_handlers): Cleanup EH predecestor
11371 detection and label handling.
a203a221 11372
5b0c0b2c
VM
113732009-03-30 Vladimir Makarov <vmakarov@redhat.com>
11374
11375 * ira-int.h (ira_allocno): Rename left_conflicts_num to
11376 left_conflicts_size.
11377 (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
11378 ALLOCNO_LEFT_CONFLICTS_SIZE.
11379
11380 * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
11381 remove_allocno_from_bucket_and_push,
11382 allocno_spill_priority_compare, push_allocnos_to_stack,
11383 setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
11384 instead of ALLOCNO_LEFT_CONFLICTS_NUM.
11385 (setup_allocno_left_conflicts_num): Ditto. Rename to
11386 setup_allocno_left_conflicts_size.
11387 (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
11388 instead of ALLOCNO_LEFT_CONFLICTS_NUM and
11389 setup_allocno_left_conflicts_size instead of
11390 setup_allocno_left_conflicts_num.
11391
11392 * ira-build.c (ira_create_allocno): Use
11393 ALLOCNO_LEFT_CONFLICTS_SIZE instead of
11394 ALLOCNO_LEFT_CONFLICTS_NUM.
2ba9daa7 11395
9a48a93f
VM
113962009-03-30 Vladimir Makarov <vmakarov@redhat.com>
11397
11398 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
11399 instead of DF_LR_OUT.
11400
11401 * ira-lives.c (process_bb_node_lives): Ditto.
11402
11403 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
11404 instead of DF_LR_{OUT,IN}.
11405
11406 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
11407
11408 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
11409
4c936d4f
JH
114102009-03-30 Jan Hubicka <jh@suse.cz>
11411
11412 * except.c (label_to_region_map): Fix thinko.
11413
f4d9f129
SE
114142009-03-30 Steve Ellcey <sje@cup.hp.com>
11415
11416 PR middle-end/38237
11417 * tree.h (tree_find_value): New declaration.
11418 * tree.c (tree_find_value): New function.
11419 * varasm.c (assemble_external): Avoid duplicate entries on lists.
11420
b3f27c15
JJ
114212009-03-30 Jakub Jelinek <jakub@redhat.com>
11422
11423 PR debug/39563
11424 * c-decl.c (struct c_binding): Add locus field.
11425 (bind): Add locus argument, set locus field from it.
11426 (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
11427 add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
11428 (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
11429 implicitly_declare, undeclared_variable, lookup_label,
11430 declare_label, c_make_fname_decl, c_builtin_function,
11431 c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
11432 bind callers.
11433
ad41bd84 114342009-03-30 H.J. Lu <hongjiu.lu@intel.com>
680e8a00
L
11435
11436 PR target/38781
11437 * config/i386/i386.c (classify_argument): Check total size of
11438 structure.
11439
133f9369
MJ
114402009-03-30 Martin Jambor <mjambor@suse.cz>
11441
11442 * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
11443 IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
11444 IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
11445 respectively.
11446
11447 * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
11448 seen_variable_array_ref while also traversing a union.
11449
11450 * tree-inline.c (optimize_inline_calls): Do not call
11451 cgraph_node_remove_callees.
11452 * cgraphbuild.c (remove_cgraph_callee_edges): New function.
11453 (pass_remove_cgraph_callee_edges): New variable.
11454 * passes.c (init_optimization_passes): Add
11455 pass_remove_cgraph_callee_edges after early inlining and before all
11456 late intraprocedural passes.
11457
11458 * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
11459
1190f2eb
PB
114602009-03-30 Paolo Bonzini <bonzini@gnu.org>
11461
11462 * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
11463 Fix typos in names.
11464
fedc1775
PB
114652009-03-30 Paolo Bonzini <bonzini@gnu.org>
11466
fcb82ab0
UB
11467 * combine.c (simplify_comparison): Use have_insn_for.
11468 * dojump.c (do_jump): Likewise.
fedc1775 11469
65c5ae8b
PB
114702009-03-30 Paolo Bonzini <bonzini@gnu.org>
11471
11472 * config/sparc/sparc.c (sparc_compare_emitted): Remove.
11473 (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
11474 sparc_compare_op0 like sparc_compare_emitted used to be handled.
11475 (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
11476 instead of sparc_compare_emitted.
11477 * config/sparc/sparc.h (sparc_compare_emitted): Remove.
11478 * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
11479 instead of sparc_compare_emitted.
11480
d25aa7ab
PB
114812009-03-30 Paolo Bonzini <bonzini@gnu.org>
11482
11483 * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
11484 enter/exit cfglayout mode.
11485 (pass_partition_block): Require it.
11486 * combine.c (find_single_use, reg_dead_at_p): Use CFG.
11487 (combine_instructions): Track basic blocks instead of labels.
11488 (update_cfg_for_uncondjump): New.
11489 (try_combine): Use it. Update jumps after rescanning.
11490 (pass_combine): Require PROP_cfglayout.
11491 * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
11492
9c9e26f5
PB
114932009-03-30 Paolo Bonzini <bonzini@gnu.org>
11494
fcb82ab0
UB
11495 * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
11496 Provide/destroy PROP_cfglayout respectively.
11497 * gcse.c (pass_jump_bypass, pass_gcse): Require it.
11498 * tree-pass.h (PROP_cfglayout): New.
9c9e26f5 11499
28ddeea1
PB
115002009-03-30 Paolo Bonzini <bonzini@gnu.org>
11501
11502 * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
11503 fold_convert_const_fixed_from_fixed,
11504 fold_convert_const_fixed_from_int,
11505 fold_convert_const_fixed_from_real, fold_negate_const): Do not
11506 set TREE_CONSTANT_OVERFLOW.
11507 * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
11508 * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
11509
ebfd146a
IR
115102009-03-30 Ira Rosen <irar@il.ibm.com>
11511
11512 * tree-vect-loop-manip.c: New file.
11513 * tree-vectorizer.c: Update documentation and included files.
11514 (vect_loop_location): Make extern.
11515 (rename_use_op): Move to tree-vect-loop-manip.c
2ba9daa7
AS
11516 (rename_variables_in_bb, rename_variables_in_loop,
11517 slpeel_update_phis_for_duplicate_loop,
ebfd146a
IR
11518 slpeel_update_phi_nodes_for_guard1,
11519 slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
11520 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
11521 slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
2ba9daa7 11522 set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
ebfd146a
IR
11523 find_loop_location): Likewise.
11524 (new_stmt_vec_info): Move to tree-vect-stmts.c.
11525 (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
11526 get_vectype_for_scalar_type, vect_is_simple_use,
11527 supportable_widening_operation, supportable_narrowing_operation):
11528 Likewise.
11529 (bb_in_loop_p): Move to tree-vect-loop.c.
2ba9daa7
AS
11530 (new_loop_vec_info, destroy_loop_vec_info,
11531 reduction_code_for_scalar_code, report_vect_op,
ebfd146a
IR
11532 vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
11533 (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
11534 (vect_supportable_dr_alignment): Likewise.
11535 * tree-vectorizer.h (tree-data-ref.h): Include.
11536 (vect_loop_location): Declare.
11537 Reorganize function declarations according to the new file structure.
11538 * tree-vect-loop.c: New file.
2ba9daa7 11539 * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
ebfd146a
IR
11540 tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
11541 * tree-vect-data-refs.c: New file.
11542 * tree-vect-patterns.c (timevar.h): Don't include.
11543 * tree-vect-stmts.c: New file.
2ba9daa7 11544 * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
ebfd146a 11545 tree-vect-slp.c, tree-vect-loop.c.
2ba9daa7
AS
11546 * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
11547 tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
ebfd146a
IR
11548 tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
11549 (tree-vect-analyze.o): Remove.
11550 (tree-vect-transform.o): Likewise.
11551 (tree-vect-data-refs.o): Add rule.
2ba9daa7 11552 (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
ebfd146a
IR
11553 tree-vect-slp.o): Likewise.
11554 (tree-vect-patterns.o): Remove redundant dependencies.
11555 (tree-vectorizer.o): Likewise.
11556 * tree-vect-slp.c: New file.
11557
40a1cfba
RW
115582009-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11559
11560 * optc-gen.awk: Warn if an option flag has multiple different
11561 help strings.
11562
a9a7a9a2
SP
115632009-03-30 Sebastian Pop <sebastian.pop@amd.com>
11564
11565 * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
11566 -floop-block): Document dependences on PPL, CLooG and Graphite.
11567
8ce94e44
JM
115682009-03-30 Joseph Myers <joseph@codesourcery.com>
11569
11570 PR rtl-optimization/323
11571 * c-common.c (c_fully_fold, convert_and_check,
11572 c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
11573 (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
11574 * c-common.def (EXCESS_PRECISION_EXPR): New.
11575 * c-cppbuiltin.c (builtin_define_float_constants): Define
11576 constants with enough digits for long double.
11577 * c-lex.c (interpret_float): Interpret constant with excess
11578 precision where appropriate.
11579 * c-opts.c (c_common_post_options): Set
11580 flag_excess_precision_cmdline. Give an error for
11581 -fexcess-precision=standard for C++ for processors where the
11582 option is significant.
11583 * c-parser.c (c_parser_conditional_expression): Handle excess
11584 precision in condition.
11585 * c-typeck.c (convert_arguments): Handle arguments with excess
11586 precision.
11587 (build_unary_op): Move excess precision outside operation.
11588 (build_conditional_expr): Likewise.
11589 (build_compound_expr): Likewise.
11590 (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
11591 (build_modify_expr): Handle excess precision in RHS.
11592 (convert_for_assignment): Handle excess precision in converted
11593 value.
11594 (digest_init, output_init_element, process_init_element): Handle
11595 excess precision in initializer.
11596 (c_finish_return): Handle excess precision in return value.
11597 (build_binary_op): Handle excess precision in operands and add
11598 excess precision as needed for operation.
11599 * common.opt (-fexcess-precision=): New option.
11600 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
11601 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
11602 For standard excess precision, output explicit conversion to and
11603 truncation from XFmode.
11604 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
11605 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
11606 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
11607 define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
11608 define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
11609 floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
11610 divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
11611 *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
11612 *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
11613 define_splits, sqrt<mode>2): Disable where appropriate for
11614 standard excess precision.
11615 * convert.c (convert_to_real): Do not shorten arithmetic to type
11616 for which excess precision would be used.
11617 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
11618 * doc/invoke.texi (-fexcess-precision=): Document option.
11619 (-mfpmath=): Correct index entry.
11620 * flags.h (enum excess_precision, flag_excess_precision_cmdline,
11621 flag_excess_precision): New.
11622 * langhooks.c (lhd_post_options): Set
11623 flag_excess_precision_cmdline.
11624 * opts.c (common_handle_option): Handle -fexcess-precision=.
11625 * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
11626 init_excess_precision): New.
11627 (lang_dependent_init_target): Call init_excess_precision.
11628 * tree.c (excess_precision_type): New.
11629 * tree.h (excess_precision_type): Declare.
11630
1e57bf47
JM
116312009-03-30 Joseph Myers <joseph@codesourcery.com>
11632
11633 PR c/35235
11634 * c-typeck.c (build_component_ref): Do not copy qualifiers from
11635 non-lvalue to component.
11636
148e4216
JM
116372009-03-29 Joseph Myers <joseph@codesourcery.com>
11638
11639 PR preprocessor/34695
11640 * Makefile.in (c-opts.o): Depend on c-tree.h.
11641 * c-common.c: Move down include of diagnostic.h.
11642 (done_lexing, c_cpp_error): New.
11643 * c-common.h (done_lexing): Declare.
11644 * c-decl.c (c_write_global_declarations): Don't check cpp_errors
11645 (parse_in).
11646 * c-opts.c: Include c-tree.h.
11647 (c_common_init_options): Set preprocessor error callback.
11648 (c_common_handle_option): Do not set preprocessor
11649 inhibit_warnings, warnings_are_errors, warn_system_headers,
11650 pedantic_errors or inhibit_warnings flags.
11651 (c_common_post_options): Do not check cpp_errors (parse_in).
11652 (c_common_finish): Do not output dependencies if there were
11653 errors. Do not check return value of cpp_finish.
11654 * c-ppoutput.c (pp_file_change): Set input_location.
11655 * c-tree.h (c_cpp_error): Declare.
11656 * diagnostic.c (diagnostic_set_info_translated): Also initialize
11657 override_column.
11658 (diagnostic_build_prefix): Check override_column.
11659 * diagnostic.h (diagnostic_info): Add override_column field.
11660 (diagnostic_override_column): Define.
11661
2ec5deb5
PB
116622009-03-28 Paolo Bonzini <bonzini@gnu.org>
11663
ba20e309
UB
11664 * c-common.c (c_expand_expr, c_staticp): Remove.
11665 * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
11666 * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
11667 COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
11668 * c-gimplify.c (gimplify_compound_literal_expr,
11669 optimize_compound_literals_in_ctor): Remove.
11670 (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
11671 * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
11672 * c-semantics.c (emit_local_var): Remove.
11673
11674 * langhooks-def.h (lhd_expand_expr): Remove.
11675 * langhooks.c (lhd_expand_expr): Remove.
11676 * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
11677
11678 * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
11679 handling from c-semantics.c; don't call into langhook.
11680 (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
11681 * gimplify.c (gimplify_compound_literal_expr,
11682 optimize_compound_literals_in_ctor): Move from c-gimplify.c.
11683 (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
11684 (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
11685 as was done in c-gimplify.c.
11686 * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
11687 * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
11688 Move from c-common.h.
11689 * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
2ec5deb5
PB
11690
11691 * tree.c (staticp): Do not call langhook.
11692 * langhooks.c (lhd_staticp): Delete.
11693 * langhooks-def.h (lhd_staticp): Delete prototype.
11694 (LANG_HOOKS_STATICP): Delete.
11695 (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
11696
ba20e309
UB
11697 * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
11698 instead of DECL_STMTs.
2ec5deb5 11699
928c19bb
JM
117002009-03-29 Joseph Myers <joseph@codesourcery.com>
11701
11702 PR c/456
11703 PR c/5675
11704 PR c/19976
11705 PR c/29116
11706 PR c/31871
11707 PR c/35198
11708 * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
11709 void_type_node.
11710 (fold_call_expr): Return a NOP_EXPR from folding rather than the
11711 contained expression.
ba20e309 11712 * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
928c19bb
JM
11713 (c_common_truthvalue_conversion): Use c_save_expr. Do not fold
11714 conditional expressions for C.
11715 (decl_constant_value_for_optimization): Move from
ba20e309 11716 decl_constant_value_for_broken_optimization in c-typeck.c. Check
928c19bb
JM
11717 whether optimizing and that the expression is a VAR_DECL not of
11718 array type instead of doing such checks in the caller. Do not
11719 check pedantic. Call gcc_unreachable for C++.
11720 * c-common.def (C_MAYBE_CONST_EXPR): New.
11721 * c-common.h (c_fully_fold, c_save_expr,
11722 decl_constant_value_for_optimization): New prototypes.
11723 (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
11724 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
11725 EXPR_INT_CONST_OPERANDS): Define.
11726 * c-convert.c (convert): Strip nops from expression.
11727 * c-decl.c (groktypename): Take extra parameters expr and
11728 expr_const_operands. Update call to grokdeclarator.
11729 (start_decl): Update call to grokdeclarator. Add statement for
11730 expressions used in type of decl.
11731 (grokparm): Update call to grokdeclarator.
11732 (push_parm_decl): Update call to grokdeclarator.
11733 (build_compound_literal): Add parameter non_const and build a
11734 C_MAYBE_COSNT_EXPR if applicable.
11735 (grokdeclarator): Take extra parameters expr and
11736 expr_const_operands. Track expressions used in declaration
11737 specifiers and declarators. Fold array sizes and track whether
11738 they are constant expressions and whether they are integer
11739 constant expressions.
11740 (parser_xref_tag): Set expr and expr_const_operands fields in
11741 return value.
11742 (grokfield): Update call to grokdeclarator.
11743 (start_function): Update call to grokdeclarator.
11744 (build_null_declspecs): Set expr and expr_const_operands fields in
11745 return value.
11746 (declspecs_add_type): Handle expressions in typeof specifiers.
11747 * c-parser.c (c_parser_declspecs): Set expr and
11748 expr_const_operands fields for declaration specifiers.
11749 (c_parser_enum_specifier): Likewise.
11750 (c_parser_struct_or_union_specifier): Likewise.
11751 (c_parser_typeof_specifier): Likewise. Update call to
11752 groktypename. Fold expression as needed. Return expressions with
11753 type instead of adding statements.
11754 (c_parser_attributes): Update calls to c_parser_expr_list.
11755 (c_parser_statement_after_labels): Fold expression before passing
11756 to objc_build_throw_stmt.
11757 (c_parser_condition): Fold expression.
11758 (c_parser_asm_operands): Fold expression.
11759 (c_parser_conditional_expression): Use c_save_expr. Update call
11760 to build_conditional_expr.
11761 (c_parser_alignof_expression): Update call to groktypename.
11762 (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
11763 original_code. Fold expression argument of va_arg. Create
11764 C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
11765 argument to va_arg. Update calls to groktypename. Fold array
11766 index for offsetof. Verify that first argument to
11767 __builtin_choose_expr has integer type.
11768 (c_parser_postfix_expression_after_paren_type): Update calls to
11769 groktypename and build_compound_literal. Handle expressions with
11770 side effects in type name.
11771 (c_parser_postfix_expression_after_primary): Update call to
11772 c_parser_expr_list. Set original_code for calls to
11773 __builtin_constant_p.
11774 (c_parser_expr_list): Take extra parameter fold_p. Fold
11775 expressions if requested.
11776 (c_parser_objc_type_name): Update call to groktypename.
11777 (c_parser_objc_synchronized_statement): Fold expression.
11778 (c_parser_objc_receiver): Fold expression.
11779 (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
11780 (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
11781 c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
11782 * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
11783 (struct c_typespec): Add elements expr and expr_const_operands.
11784 (struct c_declspecs): Add elements expr and expr_const_operands.
11785 (groktypename, build_conditional_expr, build_compound_literal):
11786 Update prototypes.
11787 (in_late_binary_op): Declare.
11788 * c-typeck.c (note_integer_operands): New function.
11789 (in_late_binary_op): New variable.
11790 (decl_constant_value_for_broken_optimization): Move to c-common.c
11791 and rename to decl_constant_value_for_optimization.
11792 (default_function_array_conversion): Do not strip nops.
11793 (default_conversion): Do not call
11794 decl_constant_value_for_broken_optimization.
11795 (build_array_ref): Do not fold result.
11796 (c_expr_sizeof_expr): Fold operand. Use C_MAYBE_CONST_EXPR for
11797 result when operand is a VLA.
11798 (c_expr_sizeof_type): Update call to groktypename. Handle
11799 expressions included in type name. Use C_MAYBE_CONST_EXPR for
11800 result when operand names a VLA type.
11801 (build_function_call): Update call to build_compound_literal.
11802 Only fold result for calls to __builtin_* functions. Strip
11803 NOP_EXPR from INTEGER_CST returned from such functions. Fold
11804 the function designator.
11805 (convert_arguments): Fold arguments. Update call to
11806 convert_for_assignment.
11807 (build_unary_op): Handle increment and decrement of
11808 C_MAYBE_CONST_EXPR. Move lvalue checks for increment and
11809 decrement earlier. Fold operand of increment and decrement.
11810 Handle address of C_MAYBE_CONST_EXPR. Only fold expression being
11811 built for integer operand. Wrap returns that are INTEGER_CSTs
11812 without being integer constant expressions or that have integer
11813 constant operands without being INTEGER_CSTs.
11814 (lvalue_p): Handle C_MAYBE_CONST_EXPR.
11815 (build_conditional_expr): Add operand ifexp_bcp. Track whether
11816 result is an integer constant expression or can be used in
11817 unevaluated parts of one and avoid folding and wrap as
11818 appropriate. Fold operands before possibly doing -Wsign-compare
11819 warnings.
11820 (build_compound_expr): Wrap result for C99 if operands can be used
11821 in integer constant expressions.
11822 (build_c_cast): Update call to digest_init. Do not ignore
11823 overflow from casting floating-point constants to integers. Wrap
11824 results that could be confused with integer constant expressions,
11825 null pointer constants or floating-point constants.
11826 (c_cast_expr): Update call to groktypename. Handle expressions
11827 included in type name.
11828 (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR. Fold
11829 lhs inside possible SAVE_EXPR. Fold RHS before assignment.
11830 Update calls to convert_for_assignment.
11831 (convert_for_assignment): Take new parameter
11832 null_pointer_constant. Do not strip nops or call
11833 decl_constant_value_for_broken_optimization. Set
11834 in_late_binary_op for conversions to boolean.
11835 (store_init_value): Update call to digest_init.
11836 (digest_init): Take new parameter null_pointer_constant. Do not
11837 call decl_constant_value_for_broken_optimization. pedwarn for
11838 initializers not constant expressions. Update calls to
11839 convert_for_assignment.
11840 (constructor_nonconst): New.
11841 (struct constructor_stack): Add nonconst element.
11842 (really_start_incremental_init, push_init_level, pop_init_level):
11843 Handle constructor_nonconst and nonconst element.
11844 (set_init_index): Call constant_expression_warning for array
11845 designators.
11846 (output_init_element): Fold value. Set constructor_nonconst as
11847 applicable. pedwarn for initializers not constant expressions.
11848 Update call to digest_init. Call constant_expression_warning
11849 where constant initializers are required.
11850 (process_init_element): Use c_save_expr.
11851 (c_finish_goto_ptr): Fold expression.
11852 (c_finish_return): Fold return value. Update call to
11853 convert_for_assignment.
11854 (c_start_case): Fold switch expression.
11855 (c_process_expr_stmt): Fold expression.
11856 (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
ba20e309 11857 ensure statement expression is not evaluated in constant expression.
928c19bb
JM
11858 (build_binary_op): Track whether results are integer constant
11859 expressions or may occur in such, disable folding and wrap results
11860 as applicable. Fold operands for -Wsign-compare warnings unless
11861 in_late_binary_op.
11862 (c_objc_common_truthvalue_conversion): Handle results folded to
11863 integer constants that are not integer constant expressions.
11864 * doc/extend.texi: Document when typeof operands are evaluated,
11865 that condition of __builtin_choose_expr is an integer constant
11866 expression, and more about use of __builtin_constant_p in
11867 initializers.
11868
5babbcc0
RG
118692009-03-29 Richard Guenther <rguenther@suse.de>
11870
11871 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
11872 propagate addresses of array references.
11873
0340f2ba
SB
118742009-03-29 Steven Bosscher <steven@gcc.gnu.org>
11875
11876 * regmove.c (perhaps_ends_bb_p): Remove.
11877 (optimize_reg_copy_1): Don't call perhaps_ends_bb_p. Get basic block
11878 from INSN and check that the main loop stays within that basic block.
11879 (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
11880 (regmove_forward_pass): Split out from regmove_optimize. Use
11881 FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
11882 (regmove_backward_pass): Split out from regmove_optimize. Use
11883 FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
11884 (regmove_optimize): Simplify.
11885
eeae74a1
L
118862009-03-29 H.J. Lu <hongjiu.lu@intel.com>
11887
11888 PR target/39545
11889 * config/i386/i386.c (classify_argument): Ignore flexible array
11890 member in struct and warn ABI change.
11891
a24078b2
L
118922009-03-29 H.J. Lu <hongjiu.lu@intel.com>
11893
11894 * config/i386/i386-protos.h (ix86_agi_dependent): New.
11895
11896 * config/i386/i386.c (ix86_agi_dependent): Rewrite.
11897 (ix86_adjust_cost): Updated.
11898
a8da523f
JH
118992009-03-29 Jan Hubicka <jh@suse.cz>
11900
11901 PR middle-end/28850
11902 * tree-pass.h (pass_cleanup_eh): New function.
11903 (remove_unreachable_regions): Break code handling RTL
11904 to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
11905 that can not be reached by runtime.
11906 (can_be_reached_by_runtime): New function.
11907 (label_to_region_map): New function.
11908 (num_eh_regions): New function.
11909 (rtl_remove_unreachable_regions): New function.
11910 (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
11911 (remove_eh_region): New function.
11912 * except.h: Include sbitmap and vecprim.
11913 (remove_eh_region, remove_unreachable_regions, label_to_region_map,
11914 num_eh_regions): Declare.
11915 * passes.c (init_optimization_passes): Schedule cleanup_eh.
ba20e309 11916 * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
a8da523f
JH
11917 * tree-eh.c (tree_remove_unreachable_handlers): New function.
11918 (tree_empty_eh_handler_p): New function.
11919 (cleanup_empty_eh): New function.
11920 (cleanup_eh): New function.
11921 (pass_cleanup_eh): New function.
11922
98f358e5
JH
119232009-03-29 Jan Hubicka <jh@suse.cz>
11924
11925 * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
11926 for removed regions.
11927
13a9fa44
JH
119282009-03-29 Jan Hubicka <jh@suse.cz>
11929
11930 * except.c (dump_eh_tree): Dump all datastructures.
11931
e38cf733
JH
119322009-03-29 Jan Hubicka <jh@suse.cz>
11933
11934 * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
11935 (duplicate_eh_regions_1): Likewise.
11936 (duplicate_eh_regions): Likewise; cleanup code gorwing the region
11937 vector; call EH verification.
11938 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
11939 Be ready for region being removed.
11940
12802c2b
JH
119412009-03-29 Jan Hubicka <jh@suse.cz>
11942
11943 * bitmap.c (bitmap_last_set_bit): New function.
11944 * bitmap.h (bitmap_last_set_bit): Declare.
11945
4ea80a41
DA
119462009-03-29 David Ayers <ayers@fsfe.org>
11947
11948 PR objc/27377
11949 * c-typeck.c (build_conditional_expr): Emit ObjC warnings
11950 by calling objc_compare_types and surpress warnings about
11951 incompatible C pointers that are compatible ObjC pointers.
2ba9daa7 11952
4ea80a41 119532009-03-29 Adam Nemet <anemet@caviumnetworks.com>
3dc9eaa6
AN
11954
11955 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
11956 call initialize_inline_failed.
11957 (initialize_inline_failed): Move it from here ...
11958 * cgraph.c (initialize_inline_failed): ... to here.
11959 (cgraph_create_edge): Call initialize_inline_failed rather than
11960 setting inline_failed directly.
11961
7fb0ee07
BE
119622009-03-29 Ben Elliston <bje@au.ibm.com>
11963
11964 PR target/32542
11965 * sysv4.opt (msdata): Improve comment.
11966 * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
11967 * sysv4.h (SVR4_ASM_SPEC): Likewise.
11968
0be77bf2
BE
119692009-03-29 Ben Elliston <bje@au.ibm.com>
11970
11971 PR target/30451
11972 * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
11973 load and store attributes.
11974
593812b6
BE
119752009-03-29 Ben Elliston <bje@au.ibm.com>
11976
11977 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
11978 (ix86_init_builtins): Add built-in function __builtin_huge_valq.
11979 (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
11980 * doc/extend.texi (X86 Built-in Functions): Add index entries for
11981 __builtin_infq and __builtin_huge_valq.
11982
8272d11d
AS
119832009-03-28 Anatoly Sokolov <aesok@post.ru>
11984
11985 * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
11986 atmega8m1 devices.
11987 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
11988 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
11989
74fe548b
XDL
119902009-03-28 Xinliang David Li <davidxl@google.com>
11991
2ba9daa7 11992 * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
74fe548b
XDL
11993 (do_dbg_cnt): New function.
11994
33977f81
JH
119952009-03-28 Jan Hubicka <jh@suse.cz>
11996
11997 Merge from pretty-ipa:
11998
11999 2009-03-27 Jan Hubicka <jh@suse.cz>
ba20e309 12000
33977f81
JH
12001 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
12002 * tree-pass.h (function_called_by_processed_nodes_p): Declare.
12003 * passes.c (function_called_by_processed_nodes_p): New.
12004 * ipa-pure-const.c (check_call): Fix handling of operands.
12005 (analyze_function): Dump debug output for skipped bodies.
12006 (local_pure_const): Use function_called_by_processed_nodes_p.
12007 * dwarf2out.c (reference_to_unused): Use output.
12008 * passes.c (do_per_function_toporder): Likewise.
12009
12010 2008-11-12 Jan Hubicka <jh@suse.cz>
12011
12012 * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
12013 * ipa-pure-const.c (funct_state_d): Add can throw field; make
12014 state_set_in_source enum
12015 (check_decl): Ignore memory tags; do not set fake looping flags;
12016 dump diagnostics.
12017 (check_operand, check_tree, check_rhs_var, check_lhs_var,
12018 get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
12019 (check_call, analyze_function): Rewrite.
12020 (check_stmt): New.
12021 (add_new_function): Update call of analyze_function.
12022 (generate_summary): Add call of analyze_function.
12023 (propagate): Propagate can_throw; handle state_set_in_source correctly.
12024 (local_pure_const): New function.
12025 (pass_local_pure_const): New pass.
12026 * ipa-inline.c (inline_transform): Set after_inlining.
12027 * tree-eh.c (stmt_can_throw_external): New.
12028 * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
12029 work with aliasing built.
12030 * tree-flow.h (stmt_can_throw_external): New.
12031 * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
12032 and local pure/const pass in early and late optimization queue.
ba20e309 12033
617f3897
MJ
120342009-03-28 Martin Jambor <mjambor@suse.cz>
12035
12036 * fold-const.c (get_pointer_modulus_and_residue): New parameter
12037 allow_func_align.
12038 (fold_binary): Allow function decl aligment consideration is the
12039 second argument is integer constant one.
12040 * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
12041 (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
12042 with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
12043
fe89fbc5
JH
120442009-03-28 Jan Hubicka <jh@suse.cz>
12045
12046 * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
12047 * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
12048 * function.h (rtl_data): Add nothrow flag.
12049 * except.c (set_nothrow_function_flags): Use crtl->nothrow;
12050 set DECL_NOTHROW for AVAILABLE functions.
12051
574872ff
JJ
120522009-03-28 Jakub Jelinek <jakub@redhat.com>
12053
b3bf8855
JJ
12054 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
12055 following vector keyword has expansion starting with pixel or bool
12056 keyword, expand vector to __vector and pixel or bool to __pixel or
12057 __bool.
12058
574872ff
JJ
12059 PR c++/39554
12060 * opts.c (warning_disallowed_functions, warn_disallowed_functions,
12061 warn_if_disallowed_function_p): Removed.
12062 (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
12063 * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
12064 warning_if_disallowed_function_p.
12065 * flags.h (warn_if_disallowed_function_p,
12066 warn_disallowed_functions): Removed.
12067 * common.opt (Wdisallowed-function-list=): Removed.
12068 * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
12069
b005da11
RG
120702009-03-28 Richard Guenther <rguenther@suse.de>
12071
12072 PR tree-optimization/38723
12073 * tree-ssa-pre.c (compute_avail): Add all default definitions to
12074 the entry block.
12075
1de812a6
JH
120762009-03-28 Jan Hubicka <jh@suse.cz>
12077
12078 * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
12079 test introduced by my previous patch.
12080
fbb789d4
RG
120812009-03-28 Richard Guenther <rguenther@suse.de>
12082
12083 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
12084 the PHIs value undefined.
12085
6f1873a1
JH
120862009-03-28 Jan Hubicka <jh@suse.cz>
12087
12088 * tree-pass.h (pass_fixup_cfg): New pass.
12089 * ipa-inline.c (inline_transform): Set
12090 always_inline_functions_inlined/after_inlining.
12091 * tree-optimize.c (execute_fixup_cfg): Do not set them here.
12092 (pass_fixup_cfg): New pass.
12093 * passes.c (init_optimization_passes): Add fixup_cfg.
12094
17021bc8
RG
120952009-03-28 Richard Guenther <rguenther@suse.de>
12096
12097 PR tree-optimization/38458
12098 * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
12099 argument use the arguments copy-of value.
12100
e8114fba
RG
121012009-03-28 Richard Guenther <rguenther@suse.de>
12102
12103 PR tree-optimization/38180
12104 * tree-ssa-ccp.c (get_default_value): Simplify.
12105 (likely_value): Likewise.
12106 (surely_varying_stmt_p): Properly handle VOP case.
12107 (ccp_initialize): Likewise.
12108 (ccp_fold): Handle propagating through *&.
12109 (fold_const_aggregate_ref): Also handle decls.
12110
257eb6e3
JH
121112009-03-28 Jan Hubicka <jh@suse.cz>
12112
12113 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
12114 * cgraph.h (cgraph_node): Likewise.
12115 * cgraphunit.c (cgraph_process_new_functions): Set process flag.
12116 (cgraph_reset_node): Use process flag.
12117 (cgraph_mark_functions_to_output): Likewise.
12118 (cgraph_expand_function): Likewise.
12119 (cgraph_expand_all_functions): Likewise.
12120 (cgraph_output_in_order): Likewise.
12121 * dwarf2out.c (reference_to_unused): Likewise.
12122 * passes.c do_per_function_toporder): Likewise.
12123
61a05df1
JH
121242009-03-28 Jan Hubicka <jh@suse.cz>
12125
12126 Bring from lto-branch:
ba20e309 12127
61a05df1
JH
12128 2008-09-03 Doug Kwan <dougkwan@google.com>
12129
12130 * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
12131 enums instead of reason strings.
12132 * cgraph.c (cgraph_create_edge): Same.
12133 (cgraph_inline_failed_string): New function.
12134 * cgraph.h (cgraph_inline_failed_t): New enum type.
12135 (cgraph_inline_failed_string): New prototype.
12136 (struct cgraph_edge): Change type of INLINED_FAILED from constant
12137 char pointer to cgraph_inline_failed_t.
12138 (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
12139 (cgraph_default_inline_p): Ditto.
60839f5d 12140 * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
61a05df1
JH
12141 to cgraph_inline_failed_t pointer.
12142 * cif-code.def: New file.
12143 * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
12144 reason string.
12145 (cgraph_check_inline_limits): Change type of REASON to pointer to
12146 cgraph_inline_failed_t. Replace reason strings with enums.
12147 (cgraph_default_inline_p): Ditto.
12148 (cgraph_recursive_inlining_p): Ditto.
12149 (update_caller_keys): Change type of FAILED_REASON to
12150 cgraph_inline_failed_t.
12151 (cgraph_set_inline_failed): Change type of REASON to pointer to
12152 cgraph_inline_failed_t. Call cgraph_inline_failed_string to
12153 convert enums to strings for text output.
12154 (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
12155 to be of type cgraph_inline_failed_t. Replace reason strings with
12156 enums. Call cgraph_inline_failed_string to covert enums
12157 to strings for text output.
12158 (cgraph_decide_inlining): Replace reason strings with enums.
12159 (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
12160 to cgraph_inline_failed_t type. Call cgraph_inline_failed_string
12161 for text output.
12162 * tree-inline.c (expand_call_inline): Change type of REASON
12163 to cgraph_inline_failed_t. Replace reason strings with enums.
12164 Call cgraph_inline_failed_string for text output.
12165 * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
12166 (cgraph.o): Ditto.
12167
144e8aac
JH
121682009-03-28 Jan Hubicka <jh@suse.cz>
12169
12170 * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
12171 cgraph_clone_node): Remove master clone handling.
12172 (cgraph_is_master_clone, cgraph_master_clone): Remove.
12173 * cgraph.h (master_clone): Remove.
12174 (cgraph_is_master_clone, cgraph_master_clone): Remove.
12175 * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
12176 (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
12177
4a371c8d
JH
121782009-03-28 Jan Hubicka <jh@suse.cz>
12179
12180 * cgraph.c (cgraph_function_body_availability): Functions declared
12181 inline are always safe to assume that it is not going to be replaced.
12182
6cdb0ee3
RG
121832009-03-28 Richard Guenther <rguenther@suse.de>
12184
12185 PR tree-optimization/38513
12186 * tree-ssa-pre.c (eliminate): Remove redundant stores.
12187 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
12188 EXC_PTR_EXPR and FILTER_EXPR.
12189 (get_ref_from_reference_ops): Likewise.
12190
8ca1fd76
RG
121912009-03-28 Richard Guenther <rguenther@suse.de>
12192
12193 PR tree-optimization/38968
12194 * tree-vect-analyze.c (vect_compute_data_ref_alignment):
12195 Use FLOOR_MOD_EXPR to compute misalignment.
12196
a254e44d
RG
121972009-03-28 Richard Guenther <rguenther@suse.de>
12198
12199 PR tree-optimization/37795
12200 * tree.h (combine_comparisons): Declare.
12201 * fold-const.c (combine_comparisons): Export.
12202 * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
12203 comparisons.
12204 (ifcombine_iforif): Use combine_comparisons.
12205
a8ee227c
JH
122062009-03-28 Jan Hubicka <jh@suse.cz>
12207
12208 * tree-eh.c (inlinable_call_p): New function.
12209 (make_eh_edges): Use it.
12210 (verify_eh_edges): Use it.
12211 (stmt_can_throw_external, stmt_can_throw_internal): Use it.
12212 * except.c (reachable_next_level): Add inlinable_function argument
12213 (sjlj_find_directly_reachable_regions): Update.
12214 (add_reachable_handler): Do not set saw_any_handlers.
12215 (reachable_next_level): Handle MUST_NOT_THROW more curefully.
12216 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
12217 Add new inlinable call parameter.
12218 (can_throw_internal, can_throw_external): Update.
12219 * except.h (can_throw_internal_1, can_throw_external_1,
12220 foreach_reachable_handler): Update declaration.
12221
52c0e446
JM
122222009-03-28 Joseph Myers <joseph@codesourcery.com>
12223
12224 * config/arm/t-arm-coff, config/h8300/coff.h,
12225 config/i386/i386-aout.h, config/i386/i386-coff.h,
12226 config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
12227 config/pdp11/2bsd.h, config/rs6000/aix41.h,
12228 config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
12229 fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
12230 scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
12231 sys-types.h: Remove.
12232 * Makefile.in: Remove protoize and fixproto support and references
12233 in comments.
12234 (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
12235 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
12236 Remove.
12237 (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
12238 (MOSTLYCLEANFILES): Remove protoize$(exeext) and
12239 unprotoize$(exeext).
12240 (rest.encap): Don't depend on $(STMP_FIXPROTO)
12241 (.PHONY): Don't depend on proto.
12242 (libgcc-support): Don't depend on $(STMP_FIXPROTO).
12243 (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
12244 protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
12245 deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
12246 build/gen-protos.o, build/scan.o, xsys-protos.h,
12247 build/fix-header$(build_exeext), build/fix-header.o,
12248 build/scan-decls.o, fixhdr.ready, stmp-fixproto,
12249 stmp-install-fixproto): Remove.
12250 (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
12251 SYSCALLS.c or fixproto files.
12252 (install-common): Don't install protoize.
12253 (install-headers-tar, install-headers-cpio, install-headers-cp):
12254 Don't depend on $(STMP_FIXPROTO).
12255 (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't
12256 install fixproto files or write out fixproto settings.
12257 (uninstall): Don't uninstall protoize.
12258 * config.gcc (use_fixproto): Remove.
12259 (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
12260 i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
12261 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
12262 * config/m32r/t-linux (STMP_FIXPROTO): Remove.
12263 * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
12264 * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
12265 * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
12266 * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
12267 * config/t-svr4 (FIXPROTO_DEFINES): Remove.
12268 * config/t-vxworks (STMP_FIXPROTO): Remove.
12269 * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
12270 STMP_FIXPROTO): Remove.
12271 * config.in, configure: Regenerate.
12272 * crtstuff.c (gid_t, uid_t): Don't undefine.
12273 * doc/install.texi: Change m68k-coff to m68k-elf in example.
12274 (arm-*-coff, arm-*-aout: Remove target entries.
12275 (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
12276 Remove mention of AIX 4.1.
12277 (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
12278 * doc/invoke.texi (Running Protoize): Remove.
12279 * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
12280 (Protoize Caveats): Remove.
12281 * tsystem.h: Update comments on headers assumed to exist.
12282
20a07f44
VM
122832009-03-27 Vladimir Makarov <vmakarov@redhat.com>
12284
12285 * genautomata.c: Add a new year to the copyright. Add a new
12286 reference.
12287 (struct insn_reserv_decl): Add comments for member bypass_list.
12288 (find_bypass): Remove.
12289 (insert_bypass): New.
12290 (process_decls): Use insert_bypass.
12291 (output_internal_insn_latency_func): Output all bypasses with the
12292 same input insn in one switch case.
12293
12294 * rtl.def (define_bypass): Describe bypass choice.
12295 * doc/md.texi (define_bypass): Ditto.
12296
3a0d06c1
RB
122972009-03-27 Richard Guenther <rguenther@suse.de>
12298
12299 * gimplify.c (mark_addressable): Export.
12300 * tree-flow.h (mark_addressable): Declare.
12301 * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
12302 * tree-ssa.c (verify_phi_args): Verify that address taken
12303 variables have TREE_ADDRESSABLE set.
12304
123052009-03-27 Richard Guenther <rguenther@suse.de>
12306
12307 * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
12308 (build_fold_addr_expr_with_type): ... this. Remove in_fold handling.
12309 Do not mark decls TREE_ADDRESSABLE.
12310 (build_fold_addr_expr): Adjust.
12311 (fold_addr_expr): Remove.
12312 (fold_unary): Use build_fold_addr_expr.
12313 (fold_comparison): Likewise.
12314 (split_address_to_core_and_offset): Likewise.
12315 * coverage.c (tree_coverage_counter_addr): Mark the array decl
12316 TREE_ADDRESSABLE.
12317 * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
12318 (gimplify_modify_expr_to_memcpy): Mark source and destination
12319 addressable.
12320 * omp-low.c (create_omp_child_function): Mark the object decl
12321 TREE_ADDRESSABLE.
12322 (lower_rec_input_clauses): Mark the var we take the address of
12323 TREE_ADDRESSABLE.
12324 (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
12325
2ac26e15
L
123262009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12327
12328 PR middle-end/39315
12329 * cfgexpand.c (expand_one_stack_var_at): Change alignment
12330 limit to MAX_SUPPORTED_STACK_ALIGNMENT.
12331
472c7fbd
RG
123322009-03-27 Richard Guenther <rguenther@suse.de>
12333
12334 PR tree-optimization/39120
12335 * tree-ssa-structalias.c (handle_rhs_call): Fill out return
12336 constraints.
12337 (handle_lhs_call): Process return constraints. Add escape
12338 constraints if necessary.
12339 (handle_const_call): Fill out return constraints. Make nested
12340 case more precise. Avoid consttmp if possible.
12341 (handle_pure_call): Fill out return constraints. Avoid
12342 callused if possible.
12343 (find_func_aliases): Simplify call handling.
12344
123452009-03-27 Richard Guenther <rguenther@suse.de>
12346
12347 PR tree-optimization/39120
12348 * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
12349 as a representative.
12350 (solve_graph): Do propagate CALLUSED.
12351 (handle_pure_call): Use a scalar constraint from CALLUSED for
12352 the return value.
12353 (find_what_p_points_to): CALLUSED shall not appear in poins-to
12354 solutions.
12355
d9223014
L
123562009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12357
12358 PR c/39323
12359 * c-common.c (handle_aligned_attribute): Properly check alignment
12360 overflow. Use (1U << i) instead of (1 << i).
12361
ba20e309 12362 * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
d9223014
L
12363
12364 * expr.h (get_mem_align_offset): Updated.
12365
12366 * tree.h (tree_decl_common): Change align to "unsigned int" and
12367 move it before pointer_alias_set.
12368
689b689c
L
123692009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12370 Jakub Jelinek <jakub@redhat.com>
12371
12372 PR target/38034
12373 * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
12374 gr_register_operand with gr_reg_or_0_operand.
12375 (cmpxchg_rel_di): Likewise.
12376 (sync_lock_test_and_set<mode>): Likewise.
12377
c619e982
L
123782009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12379
12380 * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
12381 (true_regnum): Likewise.
12382
12383 * rtlanal.c (subreg_info): Moved to ...
12384 * rtl.h (subreg_info): Here. New.
12385 (subreg_get_info): New.
12386
12387 * rtlanal.c (subreg_get_info): Make it extern.
12388
51212b32
L
123892009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12390
12391 PR target/39472
12392 * config/i386/i386.c (ix86_abi): New.
12393 (override_options): Handle -mabi=.
ba20e309 12394 (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
51212b32
L
12395 (ix86_call_abi_override): Likewise.
12396 (init_cumulative_args): Likewise.
12397 (function_arg_advance): Likewise.
12398 (function_arg_64): Likewise.
12399 (function_arg): Likewise.
12400 (ix86_pass_by_reference): Likewise.
12401 (ix86_function_value_regno_p): Likewise.
12402 (ix86_build_builtin_va_list_abi): Likewise.
12403 (setup_incoming_varargs_64): Likewise.
12404 (is_va_list_char_pointer): Likewise.
12405 (ix86_init_machine_status): Likewise.
ba20e309 12406 (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
51212b32
L
12407 (ix86_function_type_abi): Return enum calling_abi. Rewrite
12408 for 64bit. Replace DEFAULT_ABI with ix86_abi.
ba20e309 12409 (ix86_function_abi): Make it static and return enum calling_abi.
51212b32
L
12410 (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI
12411 with ix86_abi.
12412 (ix86_fn_abi_va_list): Updated.
12413
12414 * config/i386/i386.h (ix86_abi): New.
12415 (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
12416 (CONDITIONAL_REGISTER_USAGE): Likewise.
12417 (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
12418 (machine_function): Likewise.
12419
12420 * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
12421 with ix86_abi.
12422 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
12423 (STACK_BOUNDARY): Likewise.
12424 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
12425
12426 * config/i386/i386.opt (mabi=): New.
12427
12428 * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
12429 return enum calling_abi.
12430 (ix86_function_type_abi): Likewise.
12431 (ix86_function_abi): Removed.
12432
12433 * doc/invoke.texi: Document -mabi= option for x86.
12434
7338ea63
KG
124352009-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12436
12437 * builtins.c (real_dconstp): Delete.
12438 (fold_builtin_logarithm): Remove inaccurate log(e) special case.
12439
68599f33
DS
124402009-03-27 Dodji Seketeli <dodji@redhat.com>
12441 Jakub Jelinek <jakub@redhat.com>
12442
12443 PR debug/37959
12444 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
12445 (gen_subprogram_die): When a function is explicit, generate the
12446 DW_AT_explicit attribute.
12447 * langhooks.h (struct lang_hooks_for_decls): Add
12448 function_decl_explicit_p langhook.
12449 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
12450 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
12451
9f5e9983
JJ
124522009-03-27 Jakub Jelinek <jakub@redhat.com>
12453
64d7685c
JJ
12454 * builtins.c (fold_builtin_memory_op): Optimize memmove
12455 into memcpy if we can prove source and destination don't overlap.
12456
9f5e9983
JJ
12457 * tree-inline.c: Include gt-tree-inline.h.
12458 (clone_fn_id_num): New variable.
12459 (clone_function_name): New function.
12460 (tree_function_versioning): Use it.
12461 * Makefile.in (GTFILES): Add tree-inline.c.
12462
e54d52a8
MM
124632009-03-27 Mark Mitchell <mark@codesourcery.com>
12464
12465 * BASE-VER: Change to 4.5.0.
12466
e9d51dc6
XDL
124672009-03-27 Xinliang David Li <davidxl@google.com>
12468
12469 PR tree-optimization/39557
12470 * tree-ssa.c (warn_uninitialized_vars): free postdom info.
12471
4577cea1
XDL
124722009-03-27 Xinliang David Li <davidxl@google.com>
12473
12474 PR tree-optimization/39548
2ba9daa7 12475 * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
4577cea1
XDL
12476 candidate check.
12477
0f7464f4
L
124782009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12479
12480 * c-common.c (pointer_int_sum): Use %wd on return from
12481 tree_low_cst.
12482
a8847a7f
L
124832009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12484
12485 * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
12486 on return from tree_low_cst.
12487
b0957daf
AP
124882009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com>
12489
12490 PR c++/36799
ba20e309
UB
12491 * ginclude/stdarg.h (va_copy): Define also for
12492 __GXX_EXPERIMENTAL_CXX0X__.
b0957daf 12493
a5f805df
MLI
124942009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
12495
12496 PR c++/35652
12497 * builtins.h (c_strlen): Do not warn here.
12498 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
12499 * c-common.c (pointer_int_sum): Take an explicit location.
12500 Warn about offsets out of bounds.
12501 * c-common.h (pointer_int_sum): Adjust declaration.
12502
6f401211
RW
125032009-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12504
a5f805df
MLI
12505 * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
12506 markup glitch.
6f401211 12507
5a59b39e
JJ
125082009-03-26 Jakub Jelinek <jakub@redhat.com>
12509
12510 PR c++/39554
12511 * opts.c (warn_if_disallowed_function_p): Don't assume
12512 get_callee_fndecl must return non-NULL.
12513
d5f89b53
VM
125142009-03-26 Vladimir Makarov <vmakarov@redhat.com>
12515
12516 PR rtl-optimization/39522
12517 * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
12518 when reg_reloaded_valid is set.
12519
61238a79
UW
125202009-03-26 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12521
12522 * config/spu/divv2df3.c: New file.
12523 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
12524 (DPBIT_FUNCS): Filter out _div_df.
12525
03f8829b
BS
125262009-03-26 Bernd Schmidt <bernd.schmidt@analog.com>
12527
12528 * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
12529 a jump insn, count that jump in the distance to the loop start.
12530
9fdcdc74
KK
125312009-03-25 Kaz Kojima <kkojima@gcc.gnu.org>
12532
12533 PR target/39523
12534 * config/sh/sh.c (calc_live_regs): Fix condition for global
12535 registers except PIC_OFFSET_TABLE_REGNUM.
12536
46994828
KT
125372009-03-25 Kai Tietz <kai.tietz@onevision.com>
12538
12539 PR/39518
12540 * doc/invoke.texi (-mconsole): New.
12541 (-mcygwin): New.
12542 (-mno-cygwin): New.
12543 (-mdll): New.
12544 (-mnop-fun-dllimport): New.
12545 (-mthread): New.
12546 (-mwin32): New.
12547 (-mwindows): New.
12548 (sub section "i386 and x86-64 Windows Options"): New.
12549
60839f5d 125502009-03-25 Ralf Corsépius <ralf.corsepius@rtems.org>
370017b4
RC
12551
12552 * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
12553 * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
12554
ae560440
RG
125552009-03-25 Richard Guenther <rguenther@suse.de>
12556
12557 PR middle-end/39497
12558 * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
12559 of -Wno-error.
12560
cd510f15
AM
125612009-03-25 Andrey Belevantsev <abel@ispras.ru>
12562
12563 * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
12564 neither of haifa/selective schedulers are working.
12565
44ab0f0e
RW
125662009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12567
12568 * doc/invoke.texi (Debugging Options): Fix description of
12569 -fno-merge-debug-strings.
12570
ad9646c7
HPN
125712009-03-24 Hans-Peter Nilsson <hp@axis.com>
12572
e6142656
HPN
12573 * config/cris/libgcc.ver: New version-script.
12574 * config/cris/t-linux (SHLIB_MAPFILES): Use it.
12575
ad9646c7
HPN
12576 * configure.ac <GAS features, nop mnemonic>: Add pattern
12577 crisv32-*-* for "nop".
ba20e309 12578 <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
ad9646c7
HPN
12579 * configure: Regenerate.
12580
09ac4473
IR
125812009-03-24 Ira Rosen <irar@il.ibm.com>
12582
12583 PR tree-optimization/39529
12584 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
12585 mark_sym_for_renaming for the tag copied to the new vector
12586 pointer.
12587
d94a427e
AL
125882009-03-24 Arthur Loiret <aloiret@debian.org>
12589
ba20e309 12590 * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
d94a427e
AL
12591 * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
12592 EXTRA_SPEC_FUNCTIONS.
12593 (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
12594 * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
12595 * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
12596 -march and -mtune options.
12597
60839f5d 125982009-03-24 Ralf Corsépius <ralf.corsepius@rtems.org>
722d07aa
RC
12599
12600 * config/m68k/t-rtems: Add m5329 multilib.
12601
603f5959
DS
126022009-03-24 Dodji Seketeli <dodji@redhat.com>
12603 Jakub Jelinek <jakub@redhat.com>
12604
12605 PR debug/39524
12606 * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
12607 nodes.
12608
c5cdb03f
JJ
126092009-03-23 Jakub Jelinek <jakub@redhat.com>
12610
12611 PR c/39495
12612 * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
12613 instead of c_parser_expression_conv, if original_code isn't one of the
12614 4 allowed comparison codes, fail.
12615
3691626c
RG
126162009-03-23 Richard Guenther <rguenther@suse.de>
12617
12618 * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
12619 * tree.h (struct tree_type): Likewise.
12620 * reload.h (struct insn_chain): Likewise.
12621 * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
12622 * function.h (struct function): Likewise.
12623 * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
12624
88ccb72a
JJ
126252009-03-23 Jakub Jelinek <jakub@redhat.com>
12626
12627 PR tree-optimization/39516
12628 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
12629
60839f5d 126302009-03-23 Bingfeng Mei <bmei@broadcom.com>
a583a67e 12631
2ba9daa7 12632 * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
a583a67e
BM
12633 should be set true if BITS_PER_WORD of target is bigger than 32
12634
f82162f8
HPN
126352009-03-22 Hans-Peter Nilsson <hp@axis.com>
12636
12637 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
12638 Translate -B-options to -rpath-link. Correct existing
12639 rpath-link and conditionalize on !nostdlib.
12640
048fd785
RW
126412009-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12642
12643 * doc/extend.texi (Function Attributes, Variable Attributes):
12644 Fix typos.
12645 * doc/invoke.texi (Debugging Options, Optimize Options)
12646 (i386 and x86-64 Options, MCore Options): Likewise.
12647
6e75c1a9
JJ
126482009-03-20 Jakub Jelinek <jakub@redhat.com>
12649
12650 PR debug/37890
12651 * dwarf2out.c (gen_namespace_die): Add context_die argument and use
12652 it for block local namespace aliases.
12653 (gen_decl_die): Pass context_die to gen_namespace_die.
12654
ea1199ee
JJ
126552009-03-19 Jakub Jelinek <jakub@redhat.com>
12656
12657 PR c/39495
12658 * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
12659 minimum or maximum value.
12660
58929c10
AO
126612009-03-19 Alexandre Oliva <aoliva@redhat.com>
12662
12663 * reginfo.c (globalize_reg): Recompute derived reg sets.
12664
60839f5d 126652009-03-19 Ozkan Sezer <sezeroz@gmail.com>
234952b3
OS
12666
12667 PR target/39063
12668 * libgcc2.c (mprotect): Do not use signed arguments for
12669 VirtualProtect, use DWORD arguments. Also fix the 'may
12670 be used uninitialized' warning for the np variable.
12671
f57c2f04
JJ
126722009-03-19 Jakub Jelinek <jakub@redhat.com>
12673
12674 PR target/39496
12675 * config/i386/i386.c (ix86_function_regparm): Don't optimize local
12676 functions using regparm calling conventions when not optimizing.
12677 (ix86_function_sseregparm): Similarly for sseregparm calling
12678 conventions.
12679
9e517d61
LF
126802009-03-19 Li Feng <nemokingdom@gmail.com>
12681
12682 PR middle-end/39500
12683 * tree-data-ref.c (analyze_subscript_affine_affine): There is no
12684 dependence if the first conflict is after niter iterations.
12685
8ef20026
HPN
126862009-03-19 Hans-Peter Nilsson <hp@axis.com>
12687
12688 PR middle-end/38609
12689 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
12690 functions with dynamic stack-pointer adjustments.
12691
64e4a1a6
BE
126922009-03-19 Ben Elliston <bje@au.ibm.com>
12693
12694 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
12695 option; change to -msdata=data.
12696
9a0f3e86
RW
126972009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12698
12699 * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
12700 and -fopenmp.
12701
09bc5979
EB
127022009-03-18 Eric Botcazou <ebotcazou@adacore.com>
12703
12704 PR target/35180
12705 * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
12706
332459cd
SL
127072009-03-18 Sandra Loosemore <sandra@codesourcery.com>
12708
12709 * doc/invoke.texi (Code Gen Options): Expand discussion of
12710 -fno-common.
12711
8f5929e1
JJ
127122009-03-18 Jakub Jelinek <jakub@redhat.com>
12713
12714 * dse.c (struct group_info): Reorder fields for 64-bit hosts.
12715 * matrix-reorg.c (struct matrix_info): Likewise.
12716 * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
12717 * rtl.h (struct mem_attrs): Likewise.
12718 * df.h (struct df): Likewise.
12719 * tree-data-ref.h (struct data_dependence_relation): Likewise.
12720 * ira-int.h (struct ira_allocno): Likewise.
12721 * df-scan.c (struct df_collection_rec): Likewise.
12722 * ira.c (struct equivalence): Likewise.
12723 * function.c (struct temp_slot): Likewise.
12724 * cfgloop.h (struct loop): Likewise.
12725
d130d647
JJ
12726 PR debug/39485
12727 * function.c (use_register_for_decl): When not optimizing, disregard
12728 register keyword for variables with types containing methods.
12729
9968d233
SP
127302009-03-18 Sebastian Pop <sebastian.pop@amd.com>
12731
12732 PR middle-end/39447
12733 * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
12734 (is_simple_operand): Call contains_component_ref_p before calling data
12735 reference analysis that would fail on COMPONENT_REFs.
12736
12737 * tree-vrp.c (search_for_addr_array): Fix formatting.
12738
69484bfd
RG
127392009-03-18 Richard Guenther <rguenther@suse.de>
12740
12741 * tree-vect-transform.c (vect_loop_versioning): Fold the
12742 generated comparisons.
12743 * tree-vectorizer.c (set_prologue_iterations): Likewise.
12744 (slpeel_tree_peel_loop_to_edge): Likewise.
12745
66811228
RW
127462009-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12747
0631b69f
RW
12748 PR middle-end/37805
12749 * opts.c (print_specific_help): In addition to `undocumented',
12750 accept `separate' and `joined' flags if passed alone. Describe
12751 output by the first matched one of those.
12752 (common_handle_option): Skip over empty strings.
12753 * gcc.c (display_help): Fix help string for `--help='.
12754 * doc/invoke.texi (Option Summary, Overall Options): With
12755 `--help=', classes and qualifiers can both be repeated, but
12756 only the latter can be negated. One should not pass only
12757 negated qualifiers. Fix markup and examples.
12758
66811228
RW
12759 Revert
12760 2008-10-14 Jakub Jelinek <jakub@redhat.com>
12761 PR middle-end/37805
12762 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
12763 and -fhelp=separate.
12764
3c072c6b
JY
127652009-03-17 Jing Yu <jingyu@google.com>
12766
12767 PR middle-end/39378
80c65208
JY
12768 * function.h (struct rtl_data): Move is_thunk from here...
12769 (struct function): ...to here.
12770 * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
3c072c6b
JY
12771 * varasm.c (assemble_start_function): Change is_thunk from crtl to
12772 cfun.
80c65208
JY
12773 * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
12774 cfun.
12775 (alpha_does_function_need_gp, alpha_start_function): Likewise.
12776 (alpha_output_function_end_prologue): Likewise.
12777 (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
12778 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
12779 (rs6000_output_function_epilogue): Likewise.
12780 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
3c072c6b 12781
9ade279b
UB
127822009-03-17 Uros Bizjak <ubizjak@gmail.com>
12783
12784 PR target/39482
12785 * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
12786 from different units in a single alternative.
12787 (*truncdfsf_i387): Ditto.
12788 (*truncxfsf2_mixed): Ditto.
12789 (*truncxfdf2_mixed): Ditto.
12790
16e60c17
JJ
127912009-03-17 Jakub Jelinek <jakub@redhat.com>
12792
98381eb4
JJ
12793 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
12794 non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
12795
df5deb18
JJ
12796 PR debug/39474
12797 * tree-ssa-live.c (remove_unused_locals): Don't remove local
12798 unused non-artificial variables when not optimizing.
12799
a3f596ba
JJ
12800 PR debug/39471
12801 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
12802 DW_TAG_imported_module even if decl is IMPORTED_DECL with
12803 NAMESPACE_DECL in its DECL_INITIAL.
12804
6b2b8871
JJ
12805 PR middle-end/39443
12806 * optabs.c (set_user_assembler_libfunc): New function.
12807 * expr.h (set_user_assembler_libfunc): New prototype.
12808 * c-common.c: Include libfuncs.h.
12809 (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
12810 for memcmp, memset, memcpy, memmove and abort.
12811 * Makefile.in (c-common.o): Depend on libfuncs.h.
12812
16e60c17
JJ
12813 PR debug/39412
12814 * dwarf2out.c (gen_inlined_enumeration_type_die,
12815 gen_inlined_structure_type_die, gen_inlined_union_type_die,
12816 gen_tagged_type_instantiation_die): Removed.
12817 (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
12818 do nothing.
12819
4d936aca
JJ
128202009-03-17 Janis Johnson <janis187@us.ibm.com>
12821
12822 PR testsuite/38526
12823 * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
12824 its use.
12825 (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
12826 (check-parallel-%): Ditto.
12827 (check-consistency): Ditto.
12828
4e9b2e50
KT
128292009-03-17 Kai Tietz <kai.tietz@onevision.com>
12830
12831 * ipa-struct-reorg.c (create_general_new_stmt): Initialize
12832 local variable rhs by NULL_TREE.
12833
21440b2d
L
128342009-03-17 H.J. Lu <hongjiu.lu@intel.com>
12835
12836 PR target/39477
9ade279b 12837 * doc/extend.texi: Correct register behavior for regparm on Intel 386.
21440b2d 12838
d8905c6a
L
128392009-03-17 H.J. Lu <hongjiu.lu@intel.com>
12840
12841 PR target/39476
9ade279b 12842 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
d8905c6a
L
12843
128442009-03-17 H.J. Lu <hongjiu.lu@intel.com>
435a61d3
L
12845
12846 PR target/39473
12847 * config/i386/i386.c (ix86_expand_call): Check extra clobbers
12848 for ms->sysv ABI calls only in 64bit mode.
12849
12850 * config/i386/i386.md (untyped_call): Support 32bit.
12851
cdcabece
L
128522009-03-16 H.J. Lu <hongjiu.lu@intel.com>
12853
12854 * doc/extend.texi: Replace x86_65 with x86_64.
12855
97b4ba9f
JJ
128562009-03-16 Jakub Jelinek <jakub@redhat.com>
12857
12858 PR tree-optimization/39455
12859 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
12860 mismatches for POINTER_TYPE_P (type).
12861 (number_of_iterations_le): Likewise.
12862
60839f5d 128632009-03-16 Hariharan Sandanagobalane <hariharan@picochip.com>
83c191e1
HS
12864
12865 * config/picochip/picochip.c: Removed profiling support.
12866 * config/picochip/picochip.md: Removed profiling instruction.
12867 * config/picochip/picochip.h: Removed profiling builtin.
12868
f38095f3
JM
128692009-03-16 Joseph Myers <joseph@codesourcery.com>
12870
12871 * doc/install.texi (--with-host-libstdcxx): Document.
12872
2cb4817b
AS
128732009-03-14 Anatoly Sokolov <aesok@post.ru>
12874
12875 PR target/34299
12876 * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
12877 generate a warning if the function name does not begin with
12878 "__vector" and the function has either the 'signal' or 'interrupt'
12879 attribute, from here to ...
12880 (avr_declare_function_name): ...here. New function.
12881 * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
12882 * config/avr/avr-protos.h (avr_declare_function_name): Declare.
12883
39b2ac74
JJ
128842009-03-14 Jakub Jelinek <jakub@redhat.com>
12885
12886 PR bootstrap/39454
12887 * cse.c (fold_rtx): Don't modify original const_arg1 when
12888 canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
12889 separate variable instead.
12890 * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
12891 from out of range shift counts.
12892 (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
12893
ad41bd84 128942009-03-13 Catherine Moore <clm@codesourcery.com>
f7a82dee 12895
60839f5d 12896 * config/i386/x-mingw32 (host-mingw32.o): Replace
f7a82dee
CM
12897 diagnostic.h with $(DIAGNOSTIC_H).
12898
ad41bd84 128992009-03-12 Jakub Jelinek <jakub@redhat.com>
03a18198
JJ
12900
12901 PR target/39431
12902 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
12903 predicate.
12904 * config/i386/sync.md (sync_compare_and_swap<mode>,
12905 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
12906 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
12907 into a register.
12908 (sync_double_compare_and_swapdi_pic,
12909 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
12910 cmpxchg8b_pic_memory_operand instead of just memory_operand.
12911
122c59c7
L
129122009-03-12 H.J. Lu <hongjiu.lu@intel.com>
12913
12914 PR target/39445
9ade279b 12915 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
122c59c7 12916
cec8874f
L
129172009-03-12 H.J. Lu <hongjiu.lu@intel.com>
12918
12919 PR target/39327
12920 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
12921 (avx_addsubv4df3): Likewise.
12922 (*avx_addsubv4sf3): Likewise.
12923 (sse3_addsubv4sf3): Likewise.
12924
bbb52802
L
129252009-03-12 H.J. Lu <hongjiu.lu@intel.com>
12926
12927 PR target/38824
9ade279b 12928 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
bbb52802 12929
a812fb07
VM
129302009-03-12 Vladimir Makarov <vmakarov@redhat.com>
12931
12932 PR debug/39432
12933 * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
12934 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
12935 registers for allocnos created from user-defined variables.
12936
4caab5ba
UW
129372009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12938
12939 PR target/39181
12940 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
12941 of non-integer mode as well.
12942
498e51ca
AN
129432009-03-11 Adam Nemet <anemet@caviumnetworks.com>
12944
12945 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
12946 for functions for which the parameter types are unknown.
12947
9bfaf89d
JJ
129482009-03-11 Jakub Jelinek <jakub@redhat.com>
12949
12950 PR target/39137
9ade279b 12951 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
9bfaf89d
JJ
12952 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
12953 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
12954 * config/i386/i386.c (ix86_local_alignment): For
12955 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
12956 long long variables on the stack to avoid dynamic realignment.
12957 Allow the first argument to be a decl rather than type.
12958 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
12959
18a3bdcb
NC
129602009-03-11 Nick Clifton <nickc@redhat.com>
12961
12962 PR target/5362
40190a76
NC
12963 * config/mcore/mcore.opt: Remove deprecated m4align and m8align
12964 options.
12965 Add description to mno-lsim option.
12966 * config/mcore/mcore.h: Remove comment about deprecated m4align
12967 option.
12968 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
12969 * doc/invoke.texi: Add description of mno-lsim and
12970 mstack-increment options.
12971
18a3bdcb
NC
12972 * config/fr30/fr30.opt: Document the -mno-lsim option.
12973 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
12974 and -mno-lsim options.
12975
dc215785
UW
129762009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12977
12978 * fold-const.c (fold_comparison): Only call fold_inf_compare
12979 if the mode supports infinities.
12980
7716876b
JM
129812009-03-11 Jason Merrill <jason@redhat.com>
12982
12983 PR debug/39086
12984 * tree-nrv.c (tree_nrv): Don't do this optimization if the front
12985 end already did. Notice GIMPLE_CALL modifications of the result.
12986 Don't copy debug information from an ignored decl or a decl from
12987 another function.
12988
ddef83d2
RG
129892009-03-10 Richard Guenther <rguenther@suse.de>
12990 Nathan Froyd <froydnj@codesourcery.com>
12991
12992 PR middle-end/37850
9ade279b 12993 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
ddef83d2
RG
12994 (__divMODE3): Likewise.
12995
9a9ba8d9
JJ
129962009-03-09 Jakub Jelinek <jakub@redhat.com>
12997
12998 PR tree-optimization/39394
12999 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
13000 DECL_SIZE_UNIT of variable length FIELD_DECLs.
13001
929b7fc3
AK
130022009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13003
13004 * recog.c (verfiy_changes): Disallow renaming of hard regs in
13005 inline asms for register asm ("") declarations.
13006
1803581d
EB
130072009-03-09 Eric Botcazou <ebotcazou@adacore.com>
13008
13009 * fold-const.c (fold_unary): Fix comment.
13010
8454d27e
JH
130112009-03-07 Jan Hubicka <jh@suse.cz>
13012
13013 PR target/39361
969a5433
JJ
13014 * tree-inline.c (setup_one_parameter): Do replacement of const
13015 argument by constant in SSA form.
8454d27e 13016
3a695389
UW
130172009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13018
13019 PR middle-end/38028
13020 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
13021 determine alignment passed to assign_stack_local.
13022 (assign_parms_unsplit_complex): Likewise.
13023 * except.c (sjlj_build_landing_pads): Likewise.
13024
9f0e7885
JJ
130252009-03-06 Jakub Jelinek <jakub@redhat.com>
13026
65401a0b
JJ
13027 PR middle-end/39360
13028 * tree-flow.h (add_referenced_var): Return bool instead of void.
13029 * tree-dfa.c (add_referenced_var): Return result of
13030 referenced_var_check_and_insert call.
13031 * tree-inline.c (expand_call_inline): Call add_referenced_var instead
13032 of referenced_var_check_and_insert.
13033
9f0e7885 13034 PR debug/39372
9ade279b 13035 * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
9f0e7885
JJ
13036 (gen_variable_die): Emit DW_AT_location on abstract static variable's
13037 DIE, don't emit it if abstract origin already has it.
13038 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
13039 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
13040
3b664bd1
JBG
130412009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
13042
ba20e309 13043 * genpreds.c (needs_variable): Fix parentheses at variable name
3b664bd1
JBG
13044 detection.
13045 (write_tm_constrs_h): Indent generated code.
13046
d8f8ca80
RR
130472009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
13048
13049 * doc/extend.texi (Function Attributes): Add documentation
13050 for isr attributes.
13051
6c3d550c
JJ
130522009-03-06 Jakub Jelinek <jakub@redhat.com>
13053
13054 PR debug/39387
13055 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
13056 take locus from its DECL_SOURCE_LOCATION instead of input_location.
13057
f9e96751
BS
130582009-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
13059
13060 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
13061 the loop as bad.
13062
ee0ee7e2
JJ
130632009-03-05 Jakub Jelinek <jakub@redhat.com>
13064
13065 PR debug/39379
13066 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
13067 with blocks containing IMPORTED_DECLs in BLOCK_VARS.
13068
6c6094f1
UB
130692009-03-05 Uros Bizjak <ubizjak@gmail.com>
13070
13071 * config/i386/i386.md (R8_REG, R9_REG): New constants.
13072 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
13073 constants instead of magic numbers.
13074 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
13075 (QI_REG_P): Ditto.
13076 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
13077 (x86_64_ms_abi_int_parameter_registers): Ditto.
13078 (x86_64_int_return_registers): Ditto.
09f8a8d3 13079 (ix86_maybe_switch_abi): Ditto.
6c6094f1
UB
13080 (ix86_expand_call): Ditto for clobbered_registers array.
13081 (ix86_hard_regno_mode_ok): Ditto.
13082 (x86_extended_QIreg_mentioned_p): Ditto.
13083
b267bd41
R
130842009-03-05 J"orn Rennecke <joern.rennecke@arc.com>
13085
6c6094f1 13086 PR tree-optimization/39349
1f3ad3f0
R
13087 * cse.c (cse_insn): Fix loop to stop at VOIDmode.
13088
b267bd41
R
13089 * combine.c (gen_lowpart_for_combine): Use omode when generating
13090 clobber.
13091
1242bc9d
R
130922009-03-04 J"orn Rennecke <joern.rennecke@arc.com>
13093
6c6094f1 13094 PR rtl-optimization/39235
1242bc9d
R
13095 * loop-iv.c (get_simple_loop_desc): Use XCNEW.
13096
48f03606
ZD
130972009-03-04 Zdenek Dvorak <ook@ucw.cz>
13098
13099 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
13100
b505e785
RG
131012009-03-04 Richard Guenther <rguenther@suse.de>
13102
13103 PR tree-optimization/39362
13104 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
13105 that occur in abnormal PHIs should be varying.
13106
f017bf5e
ZD
131072009-03-04 Zdenek Dvorak <ook@ucw.cz>
13108
13109 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
13110 Extend comments.
13111 (simple_iv): Take loop as an argument instead of statement.
13112 * tree-scalar-evolution.h (simple_iv): Declaration changed.
13113 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
13114 to simple_iv.
13115 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
13116 Ditto.
13117 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
13118 * matrix-reorg.c (analyze_transpose): Ditto.
13119 * tree-data-ref.c (dr_analyze_innermost): Ditto.
13120 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
13121 * tree-predcom.c (ref_at_iteration): Ditto.
13122 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
13123
6a66f28e
RG
131242009-03-04 Richard Guenther <rguenther@suse.de>
13125
13126 PR tree-optimization/39358
13127 * tree-ssa-structalias.c (do_sd_constraint): Fix check for
13128 escaped_id and callused_id.
13129 (solve_graph): Likewise.
13130
57e454ee
RG
131312009-03-04 Richard Guenther <rguenther@suse.de>
13132
13133 PR tree-optimization/39339
13134 * tree-sra.c (try_instantiate_multiple_fields): Make it
13135 no longer ICE on the above.
13136
a6fe9ed4
JM
131372009-03-03 Joseph Myers <joseph@codesourcery.com>
13138
13139 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
13140 that fits within Pmode.
13141
dc672951
SE
131422009-03-03 Steve Ellcey <sje@cup.hp.com>
13143
13144 PR middle-end/10109
13145 * tm.texi (LIBCALL_VALUE): Update description.
13146
8b9d598f
SE
131472009-03-03 Steve Ellcey <sje@cup.hp.com>
13148
13149 PR middle-end/34443
13150 * doc/extend.texi (section): Update description.
13151
13e4e36e
L
131522009-03-03 H.J. Lu <hongjiu.lu@intel.com>
13153
13154 PR middle-end/39345
13155 * tree-inline.c (remapped_type): New.
13156 (can_be_nonlocal): Call remapped_type instead of remap_type.
13157
067dd3c9
JJ
131582009-03-03 Jakub Jelinek <jakub@redhat.com>
13159
13160 PR fortran/39354
13161 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
13162 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
13163
9bd9f738
RG
131642009-03-03 Richard Guenther <rguenther@suse.de>
13165
13166 PR middle-end/39272
13167 * tree.c (tree_nonartificial_location): New function.
13168 * tree.h (tree_nonartificial_location): Declare.
13169 * builtins.c (expand_builtin_memory_chk): Provide location
13170 of the call location for artificial function pieces.
13171 (maybe_emit_chk_warning): Likewise.
13172 (maybe_emit_sprintf_chk_warning): Likewise.
13173 (maybe_emit_free_warning): Likewise.
13174 * expr.c (expand_expr_real_1): Likewise.
13175
f07049c8
JJ
131762009-03-03 Jakub Jelinek <jakub@redhat.com>
13177
13178 PR tree-optimization/39343
13179 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
13180 COMPONENT_REF t has ARRAY_TYPE.
13181
7d4fba4a
SP
131822009-03-02 Sebastian Pop <sebastian.pop@amd.com>
13183
13184 PR middle-end/39335
13185 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
13186 when the type precision of the induction variable should be
13187 larger than the type precision of nit.
13188 (gen_parallel_loop): Update use of canonicalize_loop_ivs.
13189 * graphite.c (graphite_loop_normal_form): Same.
13190 * tree-flow.h (canonicalize_loop_ivs): Update declaration.
13191
78168632
UB
131922009-03-02 Uros Bizjak <ubizjak@gmail.com>
13193
13194 * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
13195 (*call_1_rex64_ms_sysv): Use named constants instead of magic
6c6094f1 13196 numbers to describe clobbered registers.
78168632 13197 (*call_value_0_rex64_ms_sysv): Ditto.
6c6094f1
UB
13198 * config/i386/mmx.md (mmx_emms): Ditto.
13199 (mmx_femms): Ditto.
78168632 13200
63553059
RS
132012009-03-02 Richard Sandiford <rdsandiford@googlemail.com>
13202
13203 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
13204 of ABI_64.
13205
500a1f85
UW
132062009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13207
13208 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
13209 (spu_section_type_flags): New function.
13210
962aae34
UB
132112009-03-02 Uros Bizjak <ubizjak@gmail.com>
13212
13213 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
13214 reg_class_contents of FLOAT_REGS into a temporary.
13215
6dfb529c 132162009-03-02 Richard Guenther <rguenther@suse.de>
962aae34 13217 Ira Rosen <irar@il.ibm.com>
6dfb529c
RG
13218
13219 PR tree-optimization/39318
13220 * tree-vect-transform.c (vectorizable_call): Transfer the EH region
13221 information to the vectorized statement.
13222
6b5629db
UB
132232009-03-01 Uros Bizjak <ubizjak@gmail.com>
13224
434426d2
UB
13225 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
13226 variable. Use defined names instead of magic constants for REX SSE
13227 registers.
6b5629db 13228
14e5b285
RG
132292009-03-01 Richard Guenther <rguenther@suse.de>
13230
13231 PR tree-optimization/39331
13232 * omp-low.c (lower_send_shared_vars): Do not receive new
13233 values for the reference of DECL_BY_REFERENCE parms or results.
13234
526d73ab
JH
132352009-03-01 Jan Hubicka <jh@suse.cz>
13236
13237 PR debug/39267
13238 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
13239 BLOCK_NONLOCALIZED_VAR): New macros.
13240 (tree_block): Add nonlocalized_vars.
f4ea99bd
EB
13241 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
13242 gen_decl_die): Add origin argument. Allow generation of die with
13243 origin at hand only.
526d73ab 13244 (gen_member_die, gen_type_die_with_usage, force_decl_die,
f4ea99bd
EB
13245 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
13246 of gen_*.
526d73ab
JH
13247 (gen_block_die): Fix checking for unused blocks.
13248 (process_scope_var): Break out from .... ; work with origins only.
13249 (decls_for_scope) ... here; process nonlocalized list.
13250 (dwarf2out_ignore_block): Look for nonlocalized vars.
f4ea99bd
EB
13251 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
13252 vars.
526d73ab
JH
13253 (dump_scope_block): Dump them.
13254 * tree-inline.c (remap_decls): Handle nonlocalized vars.
13255 (remap_block): Likewise.
13256 (can_be_nonlocal): New predicate.
13257 (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
13258
7a9d3fe8
RW
132592009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13260
13261 * configure: Regenerate.
13262
b3cdf3cb
RW
132632009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13264
a16d1645 13265 * optc-gen.awk: No need to duplicate option flags twice.
9ade279b 13266 Reuse help texts for duplicate options which do not have any.
a16d1645 13267
1156c176
RW
13268 * gcc.c (display_help): Document --version.
13269
033505fc
RW
13270 * gcc.c (main): If print_help_list and verbose_flag, ensure
13271 driver output comes before subprocess output.
13272
4d077054
RW
13273 * optc-gen.awk: Assign all remaining fields to help string,
13274 space-separated, for multi-line help in *.opt.
13275
a072f1cf
RW
13276 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
13277 -Wno-pedantic-ms-format is for MinGW targets only.
13278
b3cdf3cb
RW
13279 * doc/options.texi (Option file format): Fix bad indentation,
13280 restoring dropped sentence.
13281
a3aadcc5
JH
132822009-02-28 Jan Hubicka <jh@suse.cz>
13283
13284 * tree-inline.c (tree_function_versioning): Output debug info.
13285
1cf5abb3
JH
132862009-02-28 Jan Hubicka <jh@suse.cz>
13287
13288 PR debug/39267
13289 * tree-inline.c (setup_one_parameter): Do not copy propagate
13290 arguments when not optimizing.
13291
c4d3f42f
L
132922009-02-28 H.J. Lu <hongjiu.lu@intel.com>
13293
13294 PR target/39327
13295 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
13296 (avx_addsubv4df3): Likewise.
13297 (*avx_addsubv4sf3): Likewise.
13298 (sse3_addsubv4sf3): Likewise.
13299 (*avx_addsubv2df3): Likewise.
13300 (sse3_addsubv2df3): Likewise.
13301 (avx_unpckhps256): Correct item selectors.
13302 (avx_unpcklps256): Likewise.
13303 (avx_unpckhpd256): Likewise.
13304 (avx_unpcklpd256): Likewise.
13305
eb50f5f4
JH
133062009-02-28 Jan Hubicka <jh@suse.cz>
13307
13308 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
13309 static vars.
13310 (copy_arguments_for_versioning): If var is declared don't declare it.
13311 (tree_function_versioning): First setup substitutions and then copy
13312 args.
13313
26140130
JH
133142009-02-27 Jan Hubicka <jh@suse.cz>
13315
13316 PR debug/39267
13317 * cgraph.h (varpool_output_debug_info): Remove.
13318 * cgraphunit.c (varpool_output_debug_info): Remove.
13319 * dwarf2out.c (deferred_locations_struct): New struct
13320 (deferred_locations): New type.
13321 (deferred_locations_list): New static var.
13322 (deffer_location): New function.
13323 (gen_variable_die): Use it.
13324 (decls_for_scope): Output info on local static vars.
13325 (dwarf2out_finish): Process deferred locations.
13326 * varpool.c (varpool_output_debug_info): Remove.
13327
cff7525f
JH
133282009-02-27 Jan Hubicka <jh@suse.cz>
13329
13330 PR debug/39267
13331 * tree.h (TREE_PROTECTED): Fix comment.
13332 (BLOCK_HANDLER_BLOCK): Remove.
13333 (struct tree_block): Remove handler_block add body_block.
13334 (inlined_function_outer_scope_p): New.
13335 (is_body_block): Remove.
13336 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
13337 * dwarf2out.c (is_inlined_entry_point): Remove.
13338 (add_high_low_attributes): Use inlined_function_outer_scope_p.
f10a1c6c
EB
13339 (gen_block_die): Use is_inlined_entry_point check. Remove body block
13340 code.
cff7525f
JH
13341 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
13342 * gimplify.c (gimplify_expr): Gimplify body blocks.
f10a1c6c
EB
13343 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
13344 block with multiple subblocks.
cff7525f
JH
13345 (dump_scope_block): Prettier output; dump more flags and info.
13346 (dump_scope_blocks): New.
13347 (remove_unused_locals): Use dump_scope_blocks.
13348 * tree-flow.h (dump_scope_blocks): Declare.
13349 * tree-cfg.c (execute_build_cfg): Dump scope blocks.
13350 * stmt.c (is_body_block): Remove.
13351 * tree-inline.c (remap_block): Copy BODY_BLOCK info.
13352 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
13353
c20993b9
SP
133542009-02-27 Sebastian Pop <sebastian.pop@amd.com>
13355
13356 PR middle-end/39308
2ba9daa7 13357 * graphite.c (graphite_loop_normal_form): Do not call
c20993b9
SP
13358 number_of_iterations_exit from a gcc_assert.
13359
e3cba5e5
AK
133602009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13361
60839f5d 13362 * config/s390/s390.c (s390_swap_cmp): Look for conditional
e3cba5e5
AK
13363 jumps if COND is NULL.
13364 (find_cond_jump): New function.
13365 (s390_z10_optimize_cmp): Handling for reg-reg compares added.
60839f5d 13366 * config/s390/s390.md: Remove z10_cobra attribute value.
e3cba5e5 13367
9dadeeb8
UB
133682009-02-26 Uros Bizjak <ubizjak@gmail.com>
13369
13370 * config/alpha/alpha.h (alpha_expand_mov): Return false if
13371 force_const_mem returns NULL_RTX.
13372
625d3251
EB
133732009-02-26 Jan Hubicka <jh@suse.cz>
13374
13375 PR debug/39267
13376 * cgraph.h (varpool_output_debug_info): Remove.
13377 * cgraphunit.c (varpool_output_debug_info): Remove.
13378 * dwarf2out.c (deferred_locations_struct): New struct
13379 (deferred_locations): New type.
13380 (deferred_locations_list): New static var.
13381 (deffer_location): New function.
13382 (gen_variable_die): Use it.
13383 (decls_for_scope): Output info on local static vars.
13384 (dwarf2out_finish): Process deferred locations.
13385 * varpool.c (varpool_output_debug_info): Remove.
13386
38432148 133872009-02-25 H.J. Lu <hongjiu.lu@intel.com>
8592acaf
L
13388
13389 PR rtl-optimization/39241
13390 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
13391 to subreg_offset_representable_p.
13392
62d049cf
PB
133932009-02-25 Paolo Bonzini <bonzini@gnu.org>
13394
13395 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
13396 execute function prototype. Get f and nregs from max_reg_num
13397 and get_insns. Remove the first backward pass as it's dead,
13398 guard the forward pass by flag_expensive_optimizations.
13399 (rest_of_handle_regmove): Delete.
13400 (pass_regmove): Replace it with regmove_optimize.
13401
f618d33e
MJ
134022009-02-25 Martin Jambor <mjambor@suse.cz>
13403
13404 PR tree-optimization/39259
13405 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
6c6094f1 13406 calls_alloca function flags.
f618d33e
MJ
13407 (copy_bb): Set calls_setjmp and alls_alloca function flags if such
13408 calls are detected.
13409
c8a05f7c
PB
134102009-02-25 Paolo Bonzini <bonzini@gnu.org>
13411
13412 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
13413 flags_set_1_rtx, flags_set_1_set): Delete.
13414 (regmove_optimize): Do not call mark_flags_life_zones.
13415
6d2538f5
JB
134162009-02-24 Julian Brown <julian@codesourcery.com>
13417
13418 PR target/35965
13419 * config/arm/arm.c (require_pic_register): Only set
13420 cfun->machine->pic_reg once per function.
13421
a2fa6772
SL
134222009-02-24 Sandra Loosemore <sandra@codesourcery.com>
13423
13424 * doc/invoke.texi (Link Options): Document an easier way to pass
9dadeeb8 13425 options that take arguments to the GNU linker using -Xlinker and -Wl.
a2fa6772 13426
5472de36
SE
134272009-02-24 Steve Ellcey <sje@cup.hp.com>
13428
13429 PR target/33785
13430 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
13431
844216f3
RG
134322009-02-24 Richard Guenther <rguenther@suse.de>
13433
13434 PR debug/39285
13435 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
13436
71adbef3 134372009-02-24 Richard Guenther <rguenther@suse.de>
8592acaf 13438 Zdenek Dvorak <ook@ucw.cz>
71adbef3
RG
13439
13440 PR tree-optimization/39233
13441 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
13442 from converting them to a generic type.
13443
f1a558e0
SP
134442009-02-23 Sebastian Pop <sebastian.pop@amd.com>
13445
13446 PR tree-optimization/39260
13447 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
13448 contains a condition with a real type.
13449 (build_scop_conditions_1): Conditions are always last_stmt of a bb.
13450
d8028f2c
JM
134512009-02-23 Jason Merrill <jason@redhat.com>
13452
13453 PR c++/38880
13454 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
13455 narrowing_initializer_constant_valid_p.
2ba9daa7 13456 (narrowing_initializer_constant_valid_p): Don't return
d8028f2c
JM
13457 null_pointer_node for adding a pointer to itself.
13458
9283b513
JH
134592009-02-23 Jan Hubicka <jh@suse.cz>
13460
13461 PR c/12245
9dadeeb8
UB
13462 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
13463 resizing.
9283b513 13464
61e04322
JH
134652009-02-23 Jan Hubicka <jh@suse.cz>
13466
9dadeeb8
UB
13467 PR tree-optimization/37709
13468 * tree.c (block_ultimate_origin): Move here from dwarf2out.
13469 * tree.h (block_ultimate_origin): Declare.
13470 * dwarf2out.c (block_ultimate_origin): Move to tree.c
61e04322
JH
13471 * tree-ssa-live.c (remove_unused_scope_block_p):
13472 Eliminate blocks containig no instructions nor live variables nor
13473 nested blocks.
13474 (dump_scope_block): New function.
13475 (remove_unused_locals): Enable removal of dead blocks by default;
9dadeeb8 13476 enable dumping at TDF_DETAILS.
61e04322 13477
38432148 134782009-02-21 H.J. Lu <hongjiu.lu@intel.com>
5339d3ea
L
13479
13480 * config/i386/i386.c (classify_argument): Don't allow COImode
13481 and OImode.
13482 (function_arg_advance_32): Don't allow OImode.
13483 (function_arg_32): Likewise.
13484 (function_value_32): Likewise.
13485 (return_in_memory_32): Likewise.
13486 (function_arg_64): Remove OImode comment.
13487
38432148 134882009-02-21 H.J. Lu <hongjiu.lu@intel.com>
f161e158
L
13489
13490 PR target/39261
13491 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
13492 ix86_expand_vector_set for V4DImode in 64bit mode only.
13493 (ix86_expand_vector_init_one_var): Likewise.
13494
dcd739a6
SP
134952009-02-21 Sebastian Pop <sebastian.pop@amd.com>
13496
13497 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
13498
6c3b938d
RS
134992009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
13500
8e361f23 13501 PR bootstrap/39257
6c3b938d
RS
13502 * loop-iv.c: Revert last change.
13503 * emit-rtl.c: Likewise.
13504
38432148 135052009-02-21 H.J. Lu <hongjiu.lu@intel.com>
4c64d3dd
L
13506
13507 PR target/39256
13508 * config/i386/i386.c (type_natural_mode): Remove an extra
13509 space in the warning message.
13510 (function_value_32): Handle 32-byte vector modes.
13511 (return_in_memory_32): Likewise.
13512
2ec62529
RS
135132009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
13514
13515 * loop-iv.c (truncate_value): New function.
13516 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
13517 of lowpart_subreg.
13518 (lowpart_subreg): Move to...
13519 * emit-rtl.c: ...here.
13520
ecb8c3cc 135212009-02-21 Danny Smith <dannysmith@users.sourceforge.net>
f814e489 13522
ecb8c3cc
DS
13523 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
13524 accidental and undocumented change at revision 140860.
13525
ae46a823
JM
135262009-02-21 Joseph Myers <joseph@codesourcery.com>
13527
13528 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
13529 take gimple_seq * arguments.
13530 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
13531 types_compatible_p langhook.
13532
07d8efe3 135332009-02-20 Mark Mitchell <mark@codesourcery.com>
f814e489 13534 Joseph Myers <joseph@codesourcery.com>
07d8efe3
MM
13535
13536 * config/arm/arm.c (arm_builtin_va_list): New function.
13537 (arm_expand_builtin_va_start): Likewise.
13538 (arm_gimplify_va_arg_expr): Likewise.
13539 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
13540 (TARGET_BUILD_BUILTIN_VA_START): Likewise.
13541 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
13542 (va_list_type): New variable.
13543 (arm_mangle_type): Mangle va_list_type appropriately.
13544
b1fb9f56
JJ
135452009-02-20 Jakub Jelinek <jakub@redhat.com>
13546
13547 PR middle-end/39157
13548 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
13549 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
13550 * params.def (loop-invariant-max-bbs-in-loop): New parameter.
13551 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
13552 parameter to 1000 for -O1 by default.
13553 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
13554 parameter.
13555 * loop-invariant.c: Include params.h.
13556 (move_loop_invariants): Don't call move_single_loop_invariants on
13557 very large loops.
13558
5bc0807c
JM
135592009-02-20 Jaka Mocnik <jaka@xlab.si>
13560
13561 * calls.c (emit_library_call_value_1): Use slot_offset instead of
13562 offset when calculating bounds for indexing stack_usage_map. Fixes
13563 a buffer overflow with certain target setups.
13564
c69cd1f5
JJ
135652009-02-20 Jakub Jelinek <jakub@redhat.com>
13566
13567 PR target/39240
13568 * calls.c (expand_call): Clear try_tail_call if caller and callee
13569 disagree in promotion of function return value.
13570
09812622
JJ
135712009-02-19 Jakub Jelinek <jakub@redhat.com>
13572
13573 PR target/39175
13574 * c-common.c (c_determine_visibility): If visibility changed and
13575 DECL_RTL has been already set, call make_decl_rtl to update symbol
13576 flags.
13577
68017cb4
L
135782009-02-19 H.J. Lu <hongjiu.lu@intel.com>
13579
13580 PR c++/39188
13581 * varasm.c (assemble_variable): Don't check DECL_NAME when
13582 globalizing a variable.
13583
ab4194da
JM
135842009-02-19 Joseph Myers <joseph@codesourcery.com>
13585
13586 PR c/38483
13587 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
13588 expression before any __builtin_trap call.
13589 * c-typeck.c (build_function_call): Convert and check function
13590 arguments before generating a call to a trap. Evaluate the
13591 function arguments before the trap.
13592
6b67572e
UB
135932009-02-19 Uros Bizjak <ubizjak@gmail.com>
13594
13595 PR target/39228
13596 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
13597 (UNSPEC_FXAM_MEM): New unspec.
13598 (fxam<mode>2_i387_with_temp): New insn and split pattern.
13599 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
13600 memory using fxam<mode>2_i387_with_temp to remove excess precision.
13601
9e39dba6
RG
136022009-02-19 Richard Guenther <rguenther@suse.de>
13603
13604 PR tree-optimization/39207
13605 PR tree-optimization/39074
13606 * tree-ssa-structalias.c (storedanything_id, var_storedanything,
13607 storedanything_tree): New.
13608 (do_ds_constraint): Simplify ANYTHING shortcutting. Update
6b67572e 13609 the STOREDANYTHING solution if the lhs solution contains ANYTHING.
9e39dba6
RG
13610 (build_succ_graph): Add edges from STOREDANYTHING to all
13611 non-direct nodes.
13612 (init_base_vars): Initialize STOREDANYTHING.
13613 (compute_points_to_sets): Free substitution info after
13614 building the succ graph.
13615 (ipa_pta_execute): Likewise.
13616
13617 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
13618 field.
13619 (do_ds_constraint): Do not add to special var or non-pointer
13620 field solutions.
13621 (type_could_have_pointers): Split out from ...
13622 (could_have_pointers): ... here. For arrays use the element type.
13623 (create_variable_info_for): Initialize may_have_pointers.
13624 (new_var_info): Likewise.
13625 (handle_lhs_call): Make the HEAP variable unknown-sized.
13626 (intra_create_variable_infos): Use a type with pointers for
13627 PARM_NOALIAS, make it unknown-sized.
13628
fd7b2603
L
136292009-02-18 H.J. Lu <hongjiu.lu@intel.com>
13630
13631 PR target/39224
6b67572e 13632 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
fd7b2603 13633
98b80692
JM
136342009-02-18 Jason Merrill <jason@redhat.com>
13635
13636 PR target/39179
13637 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
13638 value if DECL_EXTERNAL.
13639 * tree-sra.c (sra_walk_gimple_assign): Likewise.
13640 * target.h (gcc_target::binds_local_p): Clarify "module".
13641 * tree.h (TREE_PUBLIC): Clarify "module".
13642
0705d3f4
L
136432009-02-17 Xuepeng Guo <xuepeng.guo@intel.com>
13644
13645 PR target/38891
13646 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
13647 initialization for MS_ABI prior to the hunk of !TARGET_MMX.
13648
bce08d50
L
136492009-02-17 H.J. Lu <hongjiu.lu@intel.com>
13650
13651 PR target/39082
13652 * c.opt (Wabi): Support C and ObjC.
13653 (Wpsabi): New.
13654
13655 * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
13656
13657 * config/i386/i386.c (classify_argument): Warn once about the ABI
13658 change when passing union with long double.
13659
13660 * doc/invoke.texi: Update -Wabi for warning psABI changes.
13661
5600f233
JM
136622009-02-18 Joseph Myers <joseph@codesourcery.com>
13663
13664 PR c/35447
13665 * c-parser.c (c_parser_compound_statement): Always enter and leave
13666 a scope.
13667
8cd01fe6
JDA
136682009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13669
13670 PR target/34587
13671 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
13672
418df9d7
JJ
136732009-02-18 Jakub Jelinek <jakub@redhat.com>
13674
13675 PR tree-optimization/36922
13676 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
13677 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
13678 Likewise.
13679
082d2ebb
RS
136802009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
13681
13682 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
13683 to 0 for EABI64.
13684
17de576c
RS
136852009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
13686
13687 * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
13688
6d8d5435
RS
136892009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
13690
13691 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
13692 tree sharing.
13693
e69ff910
RB
136942009-02-17 Ruan Beihong <ruanbeihong@gmail.com>
13695 Richard Sandiford <rdsandiford@googlemail.com>
13696
13697 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
13698 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
13699 (loongson_biadd): ...this.
13700
6b24ee26
RG
137012009-02-17 Richard Guenther <rguenther@suse.de>
13702
13703 PR tree-optimization/39202
13704 * tree-ssa-structalias.c (do_structure_copy): Before collapsing
13705 a var make sure to follow existing collapses.
13706
91ab2c86
RG
137072009-02-17 Richard Guenther <rguenther@suse.de>
13708
13709 PR middle-end/39214
13710 * langhooks.c (lhd_print_error_function): Check for NULL block.
13711
73a63870
RG
137122009-02-17 Richard Guenther <rguenther@suse.de>
13713
13714 PR tree-optimization/39204
13715 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
13716 of the PHI arg.
13717
0e08f686
UB
137182009-02-17 Uros Bizjak <ubizjak@gmail.com>
13719
13720 * config/soft-fp/double.h: Update from glibc CVS.
13721
a60b7ddb
RG
137222009-02-17 Richard Guenther <rguenther@suse.de>
13723
13724 PR tree-optimization/39207
13725 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
13726 strict-aliasing warnings for pointers pointing to NULL.
13727
a47e20fd
JM
137282009-02-16 Joseph Myers <joseph@codesourcery.com>
13729
13730 PR c/35446
13731 * c-parser.c (c_parser_braced_init): Call pop_init_level when
13732 skipping until next close brace.
13733
50aab7dc
L
137342009-02-16 H.J. Lu <hongjiu.lu@intel.com>
13735
13736 PR target/37049
13737 * config/i386/i386.c (ix86_expand_push): Set memory alignment
13738 to function argument boundary.
13739
68e53db0
HS
137402009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com>
13741
13742 * config/picochip/picochip.md (lea_add): Allow any nonimmediate
13743 in the lea_add. Reload eventually constraints it properly.
0d50d55a 13744 * config/picochip/constraints.md: Remove the target constraint
68e53db0
HS
13745 "b", since it is not needed anymore.
13746
09e361bb
JJ
137472009-02-16 Jakub Jelinek <jakub@redhat.com>
13748
13749 * gthr-dce.h: Uglify function parameter and local variable names.
13750 * gthr-gnat.h: Likewise.
13751 * gthr-mipssde.h: Likewise.
13752 * gthr-nks.h: Likewise.
13753 * gthr-posix95.h: Likewise.
13754 * gthr-posix.h: Likewise.
13755 * gthr-rtems.h: Likewise.
13756 * gthr-single.h: Likewise.
13757 * gthr-solaris.h: Likewise.
13758 * gthr-tpf.h: Likewise.
13759 * gthr-vxworks.h: Likewise.
13760 * gthr-win32.h: Likewise.
13761
47f5a48f
L
137622009-02-15 H.J. Lu <hongjiu.lu@intel.com>
13763
13764 PR target/39196
13765 * config/i386/i386.md: Restrict the new peephole2 to move
13766 between MMX/SSE registers.
13767
68c9ab45
RG
137682009-02-15 Richard Guenther <rguenther@suse.de>
13769
13770 Revert
13771 2009-02-13 Richard Guenther <rguenther@suse.de>
13772
13773 * configure.ac: Enable LFS.
13774 * configure: Re-generate.
13775 * config.in: Likewise.
13776
d7815554
UW
137772009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13778
13779 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
13780 spu_srqwbyte, spu_srqwbytebc): Define.
13781 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
13782 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
13783 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
13784 "shrqby_<mode>"): New insn-and-split patterns.
13785 * config/spu/spu.c (expand_builtin_args): Determine and return
13786 number of operands using spu_builtin_description data.
13787 (spu_expand_builtin_1): Use it.
13788
c208436c
SE
137892009-02-13 Steve Ellcey <sje@cup.hp.com>
13790
13791 PR target/38056
13792 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
13793 TARGET_CONST_GP.
13794
c2e7ba7e
L
137952009-02-13 H.J. Lu <hongjiu.lu@intel.com>
13796
13797 PR target/39149
13798 * config/i386/i386.c (override_options): Correct warning
6c6094f1 13799 messages for -malign-loops, -malign-jumps and -malign-functions.
c2e7ba7e 13800
72f4e3a7
L
138012009-02-13 H.J. Lu <hongjiu.lu@intel.com>
13802
13803 PR target/39152
13804 * config/i386/i386.md: Restrict the new peephole2 to move
13805 between the general purpose registers.
13806
53f648e2
L
138072009-02-13 H.J. Lu <hongjiu.lu@intel.com>
13808
13809 PR target/39162
13810 * config/i386/i386.c (type_natural_mode): Add a new argument.
6b67572e 13811 Return the original mode and warn ABI change if vector size is 32byte.
53f648e2
L
13812 (function_arg_advance): Updated.
13813 (function_arg): Likewise.
13814 (ix86_function_value): Likewise.
13815 (ix86_return_in_memory): Likewise.
13816 (ix86_sol10_return_in_memory): Likewise.
13817 (ix86_gimplify_va_arg): Likewise.
13818 (function_arg_32): Don't warn ABX ABI change here.
13819 (function_arg_64): Likewise.
13820
38432148 138212009-02-13 Bernd Schmidt <bernd.schmidt@analog.com>
b1c92d54
BS
13822
13823 * loop-iv.c (implies_p): In the final case, test that operands 0
13824 of the two comparisons match.
13825
dd2139e7
BS
13826 * config/bfin/bfin.c (find_prev_insn_start): New function.
13827 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
13828 (find_next_insn_start): Move.
13829
601b3e1a
RG
138302009-02-13 Richard Guenther <rguenther@suse.de>
13831
13832 * configure.ac: Enable LFS.
13833 * configure: Re-generate.
13834 * config.in: Likewise.
13835
f007042e
JM
138362009-02-13 Joseph Myers <joseph@codesourcery.com>
13837
13838 PR c/35444
13839 * c-parser.c (c_parser_parms_list_declarator): Discard pending
13840 sizes on syntax error after some arguments have been parsed.
13841
3f238e8b
JJ
138422009-02-12 Jakub Jelinek <jakub@redhat.com>
13843
13844 * doc/invoke.texi (-fira): Remove.
13845
328e13b7
L
138462009-02-12 H.J. Lu <hongjiu.lu@intel.com>
13847
13848 * caller-save.c: Replace regclass.c with reginfo.c in comments.
13849 * recog.c: Likewise.
13850 * rtl.h: Likewise.
13851
c252db20
L
138522009-02-12 Uros Bizjak <ubizjak@gmail.com>
13853
13854 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
13855 (umul_ppmm): Likewise.
13856 (count_leading_zeros): Likewise.
13857 (count_trailing_zeros): Likewise.
13858 (UMUL_TIME): Likewise.
13859
138602009-02-12 H.J. Lu <hongjiu.lu@intel.com>
13861
ba181049
UB
13862 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
13863 soft-fp/t-softfp to tmake_file.
c252db20
L
13864
13865 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
ba181049
UB
13866 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
13867 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
13868 IA64_BUILTIN_INFQ]: New.
c252db20
L
13869 (ia64_init_builtins): Initialize __builtin_infq,
13870 __builtin_fabsq and __builtin_copysignq if not HPUX.
13871 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
13872 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
13873
13874 * config/ia64/lib1funcs.asm (__divtf3): Define only if
13875 SHARED is defined.
13876 (__fixtfti): Likewise.
13877 (__fixunstfti): Likewise.
13878 (__floattitf): Likewise.
13879
13880 * config/ia64/libgcc-glibc.ver: New.
13881 * config/ia64/t-fprules-softfp: Likewise.
13882 * config/ia64/sfp-machine.h: Likewise.
13883
13884 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
13885 (LIBGCC2_TF_CEXT): Likewise.
13886 (TF_SIZE): Likewise.
13887 (TARGET_INIT_LIBFUNCS): Likewise.
13888
ba181049 13889 * config/ia64/t-glibc (SHLINB_MAPFILES):
6b67572e 13890 Add $(srcdir)/config/ia64/libgcc-glibc.ver.
c252db20 13891
f13eae6a
L
138922009-02-12 H.J. Lu <hongjiu.lu@intel.com>
13893
13894 * config/i386/i386.c (construct_container): Rewrite processing
13895 BLKmode with X86_64_SSE_CLASS.
13896
12019aec
L
138972009-02-12 Paolo Bonzini <bonzini@gnu.org>
13898
13899 PR target/39152
13900 * config/i386/i386.md: Replace simplify_replace_rtx with
13901 replace_rtx in the new peephole2.
13902
28c11eb3
NS
139032009-02-12 Nathan Sidwell <nathan@codesourcery.com>
13904
13905 * doc/invoke.texi (Optimize Options): Stop claiming inlining and
13906 loop unrolling do not happen at -O2.
13907
c7b94907
MM
139082009-02-12 Michael Matz <matz@suse.de>
13909
13910 * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
13911
61e98967
JJ
139122009-02-12 Jakub Jelinek <jakub@redhat.com>
13913
13914 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
13915 for -g3.
13916
a2a237b5
BE
139172009-02-12 Ben Elliston <bje@au.ibm.com>
13918
13919 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
13920 patterns when updating the back chain. Missed in the 2009-02-10
13921 change.
13922
853eda8d
JJ
139232009-02-11 Janis Johnson <janis187@us.ibm.com>
13924
13925 * doc/extend.texi (Decimal Floating Types): Update identifier of
13926 draft TR and list of missing support.
13927
3ad6b266
JJ
139282009-02-11 Jakub Jelinek <jakub@redhat.com>
13929
13930 PR middle-end/39154
13931 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
13932 bit to variable length decl's flags, add it also to its
13933 pointer replacement variable.
13934
b058b753
UB
139352009-02-11 Uros Bizjak <ubizjak@gmail.com>
13936 Jakub Jelinek <jakub@redhat.com>
13937
13938 PR target/39118
13939 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
13940 (memory_blockage): New expander.
13941 (*memory_blockage): New insn pattern.
13942 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
13943 instead of general blockage at the end of function prologue when
13944 frame pointer is used to access red zone area. Do not emit blockage
13945 when profiling, it is emitted in generic code.
13946 (ix86_expand_epilogue): Emit memory_blockage at the beginning of
13947 function epilogue when frame pointer is used to access red zone area.
13948
bab64f23
PB
139492009-02-11 Paolo Bonzini <bonzini@gnu.org>
13950
0ce6dcfa 13951 PR target/38824
bab64f23
PB
13952 * config/i386/i386.md: Add two new peephole2 to avoid mov followed
13953 by arithmetic with memory operands.
13954 * config/i386/predicates.md (commutative_operator): New.
13955
8fd94bda
JJ
139562009-02-10 Janis Johnson <janis187@us.ibm.com>
13957
13958 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
13959 bulleted lists.
13960
794511d2
EB
139612009-02-10 Eric Botcazou <ebotcazou@adacore.com>
13962
13963 * alias.h (record_alias_subset): Declare.
13964 * alias.c (record_alias_subset): Make global.
13965
6da7fc87
NC
139662009-02-10 Nick Clifton <nickc@redhat.com>
13967
13968 * tree-parloops.c: Change license to GPLv3.
13969 * ipa-struct-reorg.c: Change license to GPLv3.
13970 * ipa-struct-reorg.h: Change license to GPLv3.
13971
a03813c8
SE
139722009-02-10 Steve Ellcey <sje@cup.hp.com>
13973
13974 PR c/39084
13975 * c-decl.c (start_struct): Return NULL on error.
13976
fc3103e7
JJ
139772009-02-10 Jakub Jelinek <jakub@redhat.com>
13978
9b43d37b
JJ
13979 PR middle-end/39124
13980 * cfgloopmanip.c (remove_path): Call remove_bbs after
13981 cancel_loop_tree, not before it.
13982
fc3103e7 13983 PR target/39139
b058b753 13984 * function.h (struct function): Add has_local_explicit_reg_vars bit.
fc3103e7
JJ
13985 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
13986 VAR_DECLs were seen.
13987 * tree-ssa-live.c (remove_unused_locals): Recompute
13988 cfun->has_local_explicit_reg_vars.
13989 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
13990 copies or clearings if cfun->has_local_explicit_reg_vars.
13991
dbf9ee15
UB
139922009-02-10 Uros Bizjak <ubizjak@gmail.com>
13993
13994 PR target/39118
13995 * config/i386/i386.c (expand_prologue): Emit blockage at the end
13996 of function prologue when frame pointer is used to access
13997 red zone area.
13998
bdec4dc7
RG
139992009-02-10 Richard Guenther <rguenther@suse.de>
14000
14001 PR middle-end/39127
14002 * gimplify.c (gimple_regimplify_operands): Always look if
14003 we need to create a temporary.
14004
7cae94fc
RG
140052009-02-10 Richard Guenther <rguenther@suse.de>
14006
14007 PR tree-optimization/39132
14008 * tree-loop-distribution.c (todo): New global var.
14009 (generate_memset_zero): Trigger TODO_rebuild_alias.
14010 (tree_loop_distribution): Return todo.
14011
a8800687
L
140122009-02-10 H.J. Lu <hongjiu.lu@intel.com>
14013
14014 PR target/39119
14015 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
14016 (x86_64_reg_class_name): Removed.
14017 (classify_argument): Return 0 if bytes > 32. Return 0 if the
14018 first one isn't X86_64_SSE_CLASS or any other ones aren't
14019 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn
14020 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
14021 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS
14022 and 3 X86_64_SSEUP_CLASS.
14023 (construct_container): Remove X86_64_AVX_CLASS. Handle 4
14024 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
14025
d4bacef0
BE
140262009-02-10 Ben Elliston <bje@au.ibm.com>
14027
14028 * config/rs6000/rs6000.md (allocate_stack): Always use an update
14029 form instruction to update the stack back chain word, even if the
14030 user has disabled the generation of update instructions.
14031 (movdi_<mode>_update_stack): New.
14032 (movsi_update_stack): Likewise.
14033 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
14034 always use an update form instruction to update the stack back
14035 chain word.
14036
01d7d2f3
SP
140372009-02-09 Sebastian Pop <sebastian.pop@amd.com>
14038
14039 PR middle-end/38953
b058b753
UB
14040 * graphite.c (if_region_set_false_region): After moving a region in
14041 the false branch of a condition, remove the empty dummy basic block.
01d7d2f3
SP
14042 (gloog): Remove wrong fix for PR38953.
14043
e41e2ab4
UW
140442009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14045
14046 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
14047 generation due to implicit sign extension.
14048
4bb07c5d
EB
140492009-02-09 Eric Botcazou <ebotcazou@adacore.com>
14050
14051 PR middle-end/38981
14052 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
14053 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
14054
f060a261
RG
140552009-02-09 Richard Guenther <rguenther@suse.de>
14056
14057 PR middle-end/35202
14058 * convert.c (convert_to_real): Disable (float)fn((double)x)
14059 to fnf(x) conversion if errno differences may occur and
14060 -fmath-errno is set.
14061
5a7e237c
AS
140622009-02-07 Anatoly Sokolov <aesok@post.ru>
14063
14064 * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
14065 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
14066 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
14067
feab5a67
JM
140682009-02-06 Joseph Myers <joseph@codesourcery.com>
14069
14070 PR c/35434
14071 * c-common.c (handle_alias_attribute): Disallow attribute for
14072 anything not a FUNCTION_DECL or VAR_DECL.
14073
90ef2296
JJ
140742009-02-06 Janis Johnson <janis187@us.ibm.com>
14075
14076 PR c/39035
14077 * real.c (do_compare): Special-case compare of zero against
14078 decimal float value.
14079
1de2c900
JM
140802009-02-06 Joseph Myers <joseph@codesourcery.com>
14081
14082 PR c/36432
14083 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
14084 as indicating flexible array members unless the field itself is
14085 being declarared as the incomplete array.
14086
e901811a
JH
140872009-02-06 Jan Hubicka <jh@suse.cz>
14088
14089 PR tree-optimization/38844
14090 * ipa-inline.c (try_inline): Stop inlining recursion when edge
14091 is already inlined.
14092
3cfa762b
RG
140932009-02-06 Richard Guenther <rguenther@suse.de>
14094
14095 PR middle-end/38977
14096 * tree-cfg.c (need_fake_edge_p): Force a fake edge for
14097 fork because we may expand it as __gcov_fork.
14098
8506528c
NC
140992009-02-06 Nick Clifton <nickc@redhat.com>
14100
dbf9ee15 14101 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
8506528c 14102
85169114
PB
141032009-02-06 Paolo Bonzini <bonzini@gnu.org>
14104
14105 PR tree-optimization/35659
14106 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
14107 vn_phi_eq): Shortcut if hashcode does not match.
14108 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
14109 NULL operands.
14110 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
14111 and avoid iterative_hash_expr.
14112 (FOR_EACH_VALUE_ID_IN_SET): New.
14113 (value_id_compare): Remove.
14114 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
14115 sort expressions by value id.
14116
6d39673d
KK
141172009-02-05 Kaz Kojima <kkojima@gcc.gnu.org>
14118
14119 PR target/38991
14120 * config/sh/predicates.md (general_movsrc_operand): Don't check
14121 the subreg of system registers here.
14122
e6e1c050
JJ
141232009-02-05 Jakub Jelinek <jakub@redhat.com>
14124
14125 PR c++/39106
14126 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
14127 on the copied decl.
14128
65a74b5d
PB
141292009-02-05 Paolo Bonzini <bonzini@gnu.org>
14130
14131 PR rtl-optimization/39110
14132 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
14133 addresses, not aligned ones.
14134
08e14b2a
DB
141352009-02-05 Daniel Berlin <dberlin@dberlin.org>
14136 Richard Guenther <rguenther@suse.de>
14137
14138 PR tree-optimization/39100
14139 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
14140 comment says and add edges.
14141
5006381c
JM
141422009-02-05 Joseph Myers <joseph@codesourcery.com>
14143
14144 PR c/35435
14145 * c-common.c (handle_tls_model_attribute): Ignore attribute for
14146 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
14147
2ba9daa7 141482009-02-04 Tobias Grosser <grosser@fim.uni-passau.de>
b0789219
TG
14149
14150 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
14151 sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
14152 register_bb_in_sese, new_sese, free_sese): Moved.
14153 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
14154 outermost_loop_in_scop, build_scop_iteration_domain,
14155 expand_scalar_variables_ssa_name, get_vdef_before_scop,
14156 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
14157 Use loop_in_sese_p instead of loop_in_scop_p.
14158 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
14159 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
14160 (scopdet_basic_block_info): Fix bug in scop detection.
14161 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
14162 eq_loop_to_cloog_loop): Remove.
14163 (nb_loops_around_loop_in_scop, nb_loop
14164 ref_nb_loops): Moved here...
14165 * graphite.h (ref_nb_loops): ... from here.
14166 (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
14167 (loop_domain_dim, loop_iteration_vector_dim): Remove.
14168 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
14169 * testsuite/gcc.dg/graphite/scop-19.c: New
14170
48e8382e
PB
141712009-02-04 Paolo Bonzini <bonzini@gnu.org>
14172 Hans-Peter Nilsson <hp@axis.com>
14173
14174 PR rtl-optimization/37889
14175 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
14176 Move offset handling from PLUS to before the switch. Use new
14177 arguments when considering SYMBOL_REFs too.
14178 (rtx_addr_can_trap_p): Pass dummy offset and size.
14179 (enum may_trap_p_flags): Remove.
14180 (may_trap_p_1): Pass size from MEM_SIZE.
14181
14182 PR rtl-optimization/38921
14183 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
14184 * rtl.h (may_trap_after_code_motion_p): Delete prototype.
14185 * rtlanal.c (may_trap_after_code_motion_p): Delete.
14186 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
14187
69349ea5
L
141882009-02-04 H.J. Lu <hongjiu.lu@intel.com>
14189
14190 AVX Programming Reference (January, 2009)
14191 * config/i386/sse.md (*vpclmulqdq): New.
14192
b545e411
JJ
141932009-02-04 Jakub Jelinek <jakub@redhat.com>
14194
14195 PR tree-optimization/38977
14196 PR gcov-profile/38292
bf9b2cc9 14197 * calls.c (special_function_p): Disregard __builtin_ prefix.
b545e411 14198
5b43bf05
HS
141992009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com>
14200
14201 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
14202 non-indexable addresses even before reload.
14203
062c4bb3
JM
142042009-02-03 Joseph Myers <joseph@codesourcery.com>
14205
14206 PR c/29129
14207 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
14208 as having variable size. Do not give an error for unnamed
14209 parameters with [*] declarators. Give a warning for type names
14210 with [*] declarators and mark them as variable size.
14211 * c-parser.c (c_parser_sizeof_expression): Do not give an error
14212 for sizeof applied to [*] type names.
14213
6175f578
AP
142142009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
14215
14216 PR C++/36607
14217 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
14218
d4f4bc84
JJ
142192009-02-03 Jakub Jelinek <jakub@redhat.com>
14220
14221 * gcc.c (process_command): Update copyright notice dates.
14222 * gcov.c (print_version): Likewise.
14223 * gcov-dump.c (print_version): Likewise.
14224 * mips-tfile.c (main): Likewise.
14225 * mips-tdump.c (main): Likewise.
14226
f6294de7
JM
142272009-02-03 Joseph Myers <joseph@codesourcery.com>
14228
14229 PR c/35433
14230 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
14231 for composite type involving a zero-length array type.
14232
754ccf7c
JJ
142332009-02-03 Jakub Jelinek <jakub@redhat.com>
14234
70f16287
JJ
14235 PR target/35318
14236 * function.c (match_asm_constraints_1): Skip over
14237 initial optional % in the constraint.
14238
754ccf7c
JJ
14239 PR inline-asm/39059
14240 * c-parser.c (c_parser_postfix_expression): If fixed point is not
14241 supported, don't accept FIXED_CSTs.
14242 * c-decl.c (finish_declspecs): Error if fixed point is not supported
14243 and _Sat is used without _Fract/_Accum. Set specs->type to
14244 integer_type_node for cts_fract/cts_accum if fixed point is not
14245 supported.
14246
965fdadf
CM
142472009-02-02 Catherine Moore <clm@codesourcery.com>
14248
dbf9ee15 14249 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
965fdadf 14250
2e8a796f
RS
142512009-02-02 Richard Sandiford <rdsandiford@googlemail.com>
14252
14253 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
14254 (ABI_HAS_64BIT_SYMBOLS): Use it.
14255 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
14256
e0079468
PB
142572009-02-02 Paul Brook <paul@codesourcery.com>
14258
14259 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
14260
eca72963
JJ
142612009-02-02 Jakub Jelinek <jakub@redhat.com>
14262
14263 PR inline-asm/39058
14264 * recog.h (asm_operand_ok): Add constraints argument.
14265 * recog.c (asm_operand_ok): Likewise. If it is set, for digits
14266 recurse on matching constraint.
14267 (check_asm_operands): Pass constraints as 3rd argument to
14268 asm_operand_ok. Don't look up matching constraint here.
14269 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
14270 to asm_operand_ok.
14271
b5bde9ff
BE
142722009-02-02 Ben Elliston <bje@au.ibm.com>
14273
14274 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
14275 TARGET_NARROW_VOLATILE_BITFIELD macro names.
14276
30f3e427
JDA
142772009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14278
be7659ba
JDA
14279 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
14280 information. Remove some obsolete information. Reorganize.
14281
30f3e427
JDA
14282 * config/pa/fptr.c: Revert license to GPL 2.
14283 * config/pa/milli64.S: Likewise.
14284
3cbfaf98
DK
142852009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
14286
14287 PR target/38904
14288 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass
14289 LIBRARY name in, instead of hard-coding it.
14290 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an
14291 extra target make frag to tmake_files according to EH model.
14292 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
14293 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target
14294 frags that define makefile variable EH_MODEL appropriately.
14295 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment.
14296 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or
14297 to "-sjlj" according to type of EH configured.
14298 (LIBGCC_SONAME): Concatenate it to shared library base name.
14299 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or
14300 to "_sjlj" according to type of EH configured.
14301 (LIBGCC_SONAME): Concatenate it to shared library base name.
14302 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL.
14303 (SHLIB_LINK): Add missing semicolon to if-else construct.
14304 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
14305 string value of "pe_dll" command-line option.
14306 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper.
14307 (SHLIB_SONAME): Use it when overriding t-cygming default.
14308 (SHLIB_IMPLIB): Override t-cygming default.
14309 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
14310 string value of "pe_dll" command-line option.
14311
8d0b6068
DK
143122009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
14313
14314 PR target/38952
14315 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
bf9b2cc9 14316 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
8d0b6068 14317
14c28276
RG
143182009-01-31 Richard Guenther <rguenther@suse.de>
14319
14320 PR tree-optimization/38937
14321 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
14322 computing the transitive closure.
14323
5f4d82c2
RG
143242009-01-30 Richard Guenther <rguenther@suse.de>
14325
14326 PR tree-optimization/39041
14327 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
14328 Propagate variable indices only if the types match for this stmt.
14329
d0728ae0
JJ
143302009-01-30 Jakub Jelinek <jakub@redhat.com>
14331
14332 PR target/39013
14333 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
14334 inline but never defined.
14335
6b67572e 143362009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com>
9fec758d
WG
14337
14338 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
14339 (*insv_h_di_reg_extimm): New insn.
14340 (*insv_l<mode>_reg_extimm): New insn.
14341
143422009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
9e8be1e4
HS
14343
14344 * config/picochip/picochip.c (flag_conserve_stack): set
14345 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
14346 fconserve-stack. Reduce call-overhead used by inliner.
14347
9fec758d 143482009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
df9198ab
HS
14349
14350 PR/38157
14351 * common.opt (flag_conserve_stack): Initialised to zero.
14352
7f1c539c
KT
143532009-01-30 Kai Tietz <kai.tietz@onevision.com>
14354
14355 PR/39002
14356 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
14357 (ix86_expand_epilogue): Take nsseregs in account to use proper restore
14358 method.
14359
3631be48
L
143602009-01-29 H.J. Lu <hongjiu.lu@intel.com>
14361
14362 * ira-color.c (allocno_reload_assign): Update comments.
14363 * regmove.c (regmove_optimize): Likewise.
14364
14365 * ra.h: Removed.
14366
416ac4d4
RM
143672009-01-29 Robert Millan <rmh@aybabtu.com>
14368
60839f5d
EB
14369 * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
14370 * config/i386/kopensolaris-gnu.h: New file. Undefine
416ac4d4 14371 `MD_UNWIND_SUPPORT'.
60839f5d 14372 * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
416ac4d4 14373
d5e54bc1
KH
143742009-01-29 Kazu Hirata <kazu@codesourcery.com>
14375
14376 PR tree-optimization/39007
14377 * tree-loop-distribution.c (generate_builtin): Use
14378 recompute_dominator to compute the immediate dominator of the
14379 basic block just after the loop.
14380
38432148 143812009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
e9e077fa
RO
14382
14383 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
14384 (ASM_OUTPUT_DWARF_PCREL): Define.
14385
38432148 143862009-01-29 Vladimir Makarov <vmakarov@redhat.com>
2af2dbdc
VM
14387
14388 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
14389 * doc/passes.texi: Remove entries about regclass, local-alloc, and
14390 global. Modify entries about regmove and IRA.
14391
14392 * ra-conflict.c: Remove the file.
14393
14394 * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
14395
14396 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
14397 (pass_regclass_init): Rename to pass_reginfo_init.
14398
14399 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
14400
14401 * toplev.h (flag_ira): Remove.
14402
14403 * caller-save.c (setup_save_areas): Remove flag_ira.
14404
bf9b2cc9 14405 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
2af2dbdc
VM
14406
14407 * global.c: Remove the file.
14408
ba20e309 14409 * opts.c (decode_options): Remove flag_ira.
2af2dbdc
VM
14410
14411 * hard-reg-set.h (losing_caller_save_reg_set): Remove.
14412
14413 * regmove.c: Modify file description.
14414 (find_use_as_address, try_auto_increment): Define them only if
14415 AUTO_INC_DEC is defined.
14416 (replacement_quality, replace_in_call_usage, fixup_match_1,
14417 stable_and_no_regs_but_for_p): Remove.
14418 (reg_set_in_bb): Make it static.
14419 (regmove_optimize): Remove flag_ira and code which worked for
14420 !flag_ira.
14421
14422 * local-alloc.c: Remove the file.
14423
14424 * common.opt (fira): Remove.
14425
14426 * ira.c: Include except.h.
14427 (eliminable_regset): Move from global.c.
14428 (mark_elimination): Ditto. Remove flag_ira.
14429 (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
14430 equiv_mem_modified, validate_equiv_mem_from_store,
14431 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
14432 contains_replace_regs, memref_referenced_p, memref_used_between_p,
14433 no_equiv, recorded_label_ref): Move from local-alloc.c.
14434 (update_equiv_regs): Ditto. Make it static.
14435 (print_insn_chain, print_insn_chains): Move it from global.c.
bf9b2cc9 14436 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira.
2af2dbdc
VM
14437 (build_insn_chain): Ditto. Make it static.
14438 (ra_init_live_subregs): Move from ra-conflict.c. Make it static.
14439 Rename to init_live_subregs.
14440 (gate_ira): Remove flag_ira.
14441
14442 * regclass.c: Rename reginfo.c. Change file description.
14443 (FORBIDDEN_INC_DEC_CLASSES): Remove.
dbf9ee15 14444 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
2af2dbdc
VM
14445 (init_reg_sets_1): Remove code for evaluation of
14446 reg_class_superclasses and losing_caller_save_reg_set.
14447 (init_regs): Remove init_reg_autoinc.
14448 (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
14449 ok_for_base_p_nonstrict): Remove.
bf9b2cc9 14450 (regclass_init): Rename to reginfo_init. Don't initialize init_cost.
2af2dbdc
VM
14451 (pass_regclass_init): Rename to pass_reginfo_init. Modify
14452 corresponding entries.
14453 (dump_regclass, record_operand_costs, scan_one_insn,
14454 init_reg_autoinc, regclass, record_reg_classes, copy_cost,
14455 record_address_regs, auto_inc_dec_reg_p): Remove.
14456 (gt-regclass.h): Rename to gt-reginfo.h.
14457
14458 * rtl.h (dump_global_regs, retry_global_alloc,
bf9b2cc9 14459 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
2af2dbdc
VM
14460
14461 * Makefile.in (RA_H): Remove.
14462 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
14463 Rename regclass.o to reginfo.o.
14464 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to
14465 gt-reginfo.h.
14466 (global.o, local-alloc.o, ra-conflict.o): Remove entries.
14467 (GTFILES): Rename regclass.c to reginfo.c.
14468
14469 * passes.c (init_optimization_passes): Remove pass_local_alloc and
bf9b2cc9 14470 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init.
2af2dbdc
VM
14471
14472 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
14473 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
14474 Remove flag_ira.
6b67572e 14475 (finish_spills): Ditto. Remove code for !flag_ira.
2ba9daa7 14476
c95b2534 144772009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
00b251a0
KZ
14478
14479 PR middle-end/35854
14480 * doc/invoke.texi (rtl debug options): Complete rewrite.
14481 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
14482 to auto_inc_dec".
14483 * mode-switching.c (pass_mode_switching): Rename pass from
14484 "mode-sw" to "mode_sw".
14485 * except.c (pass_convert_to_eh_ranges): Rename pass from
14486 "eh-ranges" to "eh_ranges".
14487 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
14488 to "subreg1".
2ba9daa7
AS
14489
14490
72a54528
AM
144912009-01-29 Andrey Belevantsev <abel@ispras.ru>
14492 Alexander Monakov <amonakov@ispras.ru>
14493
14494 PR middle-end/38857
14495 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
14496 register.
14497 (move_exprs_to_boundary): Change return type and pass through
14498 should_move from move_op. Relax assert. Update usage ...
14499 (schedule_expr_on_boundary): ... here. Use should_move instead of
14500 cant_move.
14501 (move_op_orig_expr_found): Indicate that insn was disconnected from
14502 stream.
14503 (code_motion_process_successors): Do not call after_merge_succs
14504 callback if original expression was not found when traversing any of
14505 the branches.
14506 (code_motion_path_driver): Change return type. Update prototype.
14507 (move_op): Update comment. Add a new parameter (should_move). Update
14508 prototype. Set *should_move based on indication provided by
14509 move_op_orig_expr_found.
14510
001b9eb6
PH
145112009-01-28 Pat Haugen <pthaugen@us.ibm.com>
14512
14513 * doc/invoke.texi (avoid-indexed-addresses): Document new option.
14514 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
14515 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
14516 * config/rs6000/rs6000.c (rs6000_override_options): Default
14517 avoid-indexed-addresses on for Power6, off for everything else.
14518 (avoiding_indexed_address_p): New function.
14519 (rs6000_legitimize_address): Use it.
14520 (rs6000_legitimate_address): Likewise.
14521 * config/rs6000/rs6000.md (movXX_updateX): Likewise
14522
59dc4898
KH
145232009-01-28 Kazu Hirata <kazu@codesourcery.com>
14524
14525 PR tree-optimization/38997
14526 * tree-loop-distribution.c (generate_memset_zero): Use
14527 POINTER_PLUS_EXPR for a pointer addition.
14528
07da44ab
AK
145292009-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
14530
14531 * config/s390/s390.md (bswap<mode>2): New pattern added.
14532
cdc15d23
WG
145332009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
14534
14535 * config/s390/s390.md (*tls_load_31): Added type attribute.
14536
d46f24b6
WG
145372009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
14538
14539 * config/s390/s390.md: Fix a few comments.
14540
729e750f
WG
145412009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
14542
14543 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
14544 (*tm<mode>_full): Fixed z10prop attribute.
14545 (*tst<mode>_extimm): Fixed z10prop attribute.
14546 (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
14547 (*tstqiCCT_cconly): Fixed z10prop attribute.
14548 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
14549 (*movsi_larl): Fixed z10prop attribute.
14550 (*movsi_zarch): Fixed z10prop attribute.
14551 (*movsi_eas): Fixed z10prop attribute.
14552 (*movhi): Fixed z10prop attribute.
14553 (*movqi): Fixed z10prop attribute.
14554 (*movstrictqi): Fixed z10prop attribute.
14555 (*mov<mode>): Fixed z10prop attribute.
14556 (*movcc): Fixed z10prop attribute.
14557 (*sethighpartdi_64): Fixed z10prop attribute.
14558 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
14559 (*negdi2_sign_cc): Fixed z10prop attribute.
14560 (*negdi2_sign): Fixed z10prop attribute.
14561 (*absdi2_sign_cc): Fixed z10prop attribute.
14562 (*absdi2_sign): Fixed z10prop attribute.
14563 (*negabsdi2_sign_cc): Fixed z10prop attribute.
14564 (*negabsdi2_sign): Fixed z10prop attribute.
14565 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
14566 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
14567 (doloop_si64): Fixed z10prop attribute.
14568 (doloop_si31): Fixed z10prop attribute.
14569 (doloop_long): Fixed z10prop attribute.
14570 (indirect_jump): Fixed z10prop attribute.
14571 (nop): Fixed z10prop attribute.
14572 (main_base_64): Fixed z10prop attribute.
14573 (reload_base_64): Fixed z10prop attribute.
14574
c7789bfb
JJ
145752009-01-28 Jakub Jelinek <jakub@redhat.com>
14576
14577 PR rtl-optimization/38740
6b67572e
UB
14578 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
14579 if !optimize.
c7789bfb
JJ
14580 * config/mips/mips.c (mips_reorg): Likewise.
14581
de081cfd
RG
145822009-01-28 Richard Guenther <rguenther@suse.de>
14583
14584 PR tree-optimization/38926
14585 * tree-ssa-pre.c (add_to_value): Assert we add only expressions
14586 with the correct value id to a value.
14587 (do_regular_insertion): Use the value number of edoubleprime
14588 for the value number of the expr.
14589
14590 Revert
14591 2008-08-21 Richard Guenther <rguenther@suse.de>
bf9b2cc9 14592
d748c406
UB
14593 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
14594 a PHI ask VN if it is already available.
14595 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
14596 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
de081cfd 14597
a9d386a1
JJ
145982009-01-28 Jakub Jelinek <jakub@redhat.com>
14599
14600 PR middle-end/38934
14601 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
14602 set to varying whenever max has TREE_OVERFLOW set, similarly
14603 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
14604
97a170cd
RG
146052009-01-28 Richard Guenther <rguenther@suse.de>
14606
14607 PR middle-end/38908
14608 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
14609 uninitialized aggregate uses in call arguments.
14610
89ebafc6
PB
146112009-01-28 Paolo Bonzini <bonzini@gnu.org>
14612
14613 PR tree-optimization/38984
14614 * tree-ssa-structalias.c (get_constraints_for_1): Do not use
14615 the nothing_id variable if -fno-delete-null-pointer-checks.
14616
bef3c57b
UB
146172009-01-28 Uros Bizjak <ubizjak@gmail.com>
14618
14619 PR target/38988
14620 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
14621 (set_got_offset_rex64): Ditto.
14622
0c6390fa
L
146232009-01-27 H.J. Lu <hongjiu.lu@intel.com>
14624
14625 PR target/38941
14626 * doc/extend.texi: Improve local variable with asm reg.
14627
bee6fa6d
AN
146282009-01-27 Adam Nemet <anemet@caviumnetworks.com>
14629
14630 * c.opt (Wpacked-bitfield-compat): Change init value to -1.
14631 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
14632 was not supplied then set warn_packed_bitfield_compat to the
14633 default value of 1.
14634 * stor-layout.c (place_field): Check warn_packed_bitfield_compat
14635 against 1.
14636
b5c3dfbb
RG
146372009-01-27 Richard Guenther <rguenther@suse.de>
14638
14639 PR tree-optimization/38503
14640 * cfgexpand.c (expand_gimple_basic_block): Ignore
14641 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
14642 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
14643 variables that cannot have TBAA applied.
14644 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
14645 statements.
14646
d748c406 146472009-01-27 Uros Bizjak <ubizjak@gmail.com>
576de5cb
UB
14648
14649 PR middle-end/38969
14650 * calls.c (initialize_argument_information): Do not wrap complex
14651 arguments in SAVE_EXPR.
14652
9112bb38
AT
146532009-01-26 Andreas Tobler <a.tobler@schweiz.org>
14654
14655 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
5efb79fc 14656 (INSTALL_LIBGCC): Revert typo commit.
9112bb38 14657
4757704f
RG
146582009-01-26 Richard Guenther <rguenther@suse.de>
14659
14660 PR tree-optimization/38745
14661 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
14662 from special handling.
14663
e3e6cff4
RG
146642009-01-26 Richard Guenther <rguenther@suse.de>
14665
14666 PR tree-optimization/38745
14667 * tree-ssa.c (execute_update_addresses_taken): Do not include
14668 variables that cannot possibly be a register in not_reg_needs.
14669 Do not clear TREE_ADDRESSABLE on vars that may not become
14670 registers.
14671 * tree-ssa.c (update_alias_info_1): Include those in the set
14672 of addressable vars.
14673
dc874b53
RG
146742009-01-26 Richard Guenther <rguenther@suse.de>
14675
14676 PR middle-end/38851
14677 * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
14678 * tree-ssa-dse.c: Include langhooks.h
14679 (execute_simple_dse): Remove stores with zero size.
14680
849421a3
JJ
146812009-01-24 Jakub Jelinek <jakub@redhat.com>
14682
14683 PR c/38957
14684 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
14685 as PLUS_EXPR.
14686
82f70421
JB
146872009-01-24 Julian Brown <julian@codesourcery.com>
14688
14689 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
14690 config/arm/linux-atomic.c.
14691 * config/arm/linux-atomic.c: New.
14692
863412d6
EB
146932009-01-24 Eric Botcazou <ebotcazou@adacore.com>
14694
14695 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
14696 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
14697 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
14698
8c684300
L
146992009-01-24 H.J. Lu <hongjiu.lu@intel.com>
14700
14701 PR c/38938
93f1527a 14702 * c-opts.c (c_common_handle_option): Update warn_pointer_sign
8c684300
L
14703 properly.
14704
b840fb02
SP
147052009-01-24 Sebastian Pop <sebastian.pop@amd.com>
14706
14707 PR tree-optimization/38953
14708 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
14709 (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
14710 (gloog): Split the exit of the scop when the scop exit is a loop exit.
14711 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
14712 changed the CFG.
14713
ecee559f
PB
147142009-01-24 Paul Brook <paul@codesourcery.com>
14715
14716 * config/arm/neon.md (neon_type): Move to arm.md.
14717 (neon_mov<VSTRUCT>): Add neon_type attribute.
14718 * config/arm/arm.md (neon_type): Move to here.
14719 (conds): Add "unconditioal" and use as default for NEON insns.
14720
61ad0914
BE
147212009-01-24 Ben Elliston <bje@au.ibm.com>
14722
14723 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
14724 void *' warning from -Wc++-compat.
14725 * Makefile.in (dominance.o-warn): Remove.
14726
38432148 147272009-01-23 Paolo Bonzini <bonzini@gnu.org>
9bacafeb
PB
14728
14729 PR tree-optimization/38932
14730 * fold-const.c (fold_unary_ignore_overflow): New.
14731 * tree.h (fold_unary_ignore_overflow): Declare.
14732 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
14733 * tree-ssa-sccvn.c (visit_reference_op_load,
14734 simplify_unary_expression): Likewise.
14735
2cd36c22
AN
147362009-01-22 Adam Nemet <anemet@caviumnetworks.com>
14737
14738 * c-decl.c (finish_struct): Move code to set DECL_PACKED after
14739 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields
14740 regardless of their type.
14741 * c-common.c (handle_packed_attribute): Don't ignore packed on
14742 bitfields.
14743 * c.opt (Wpacked-bitfield-compat): New warning option.
14744 * stor-layout.c (place_field): Warn if offset of a field changed.
14745 * doc/extend.texi (packed): Mention the ABI change.
14746 * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
14747 (Warning Options): Add it to the list.
14748
e4e624ab
L
147492009-01-22 H.J. Lu <hongjiu.lu@intel.com>
14750
14751 * c-opts.c (c_common_post_options): Fix a typo in comments.
14752
d0ea0759
SE
147532009-01-22 Steve Ellcey <sje@cup.hp.com>
14754
14755 PR middle-end/38615
14756 * gimplify.c (gimplify_init_constructor): Fix promotion of const
14757 variables to static.
14758 * doc/invoke.texi (-fmerge-all-constants): Update description.
14759
87673f84
UB
147602009-01-22 Uros Bizjak <ubizjak@gmail.com>
14761
14762 PR target/38931
14763 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
14764 (*movdi_1_rex64): Use type "mmx" for alternative 5.
14765
96339268
RE
147662009-01-22 Richard Earnshaw <rearnsha@arm.com>
14767
14768 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
14769 a word boundary.
14770 (LOCAL_ALIGNMENT): Similarly.
14771
442dc742 147722009-01-22 Mark Shinwell <shinwell@codesourcery.com>
87673f84 14773 Joseph Myers <joseph@codesourcery.com>
442dc742
MS
14774
14775 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
14776 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
14777 * config/arm/arm-tune.md: Regenerate.
14778 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
14779 -march=iwmmxt2.
14780
9b34732e
MS
147812009-01-22 Mark Shinwell <shinwell@codesourcery.com>
14782
14783 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
14784 version number to five.
14785
03c2a308
DS
147862009-01-22 Dodji Seketeli <dodji@redhat.com>
14787
14788 PR c++/38930
ba20e309 14789 * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
03c2a308
DS
14790 * c-common.c (set_underlying_type): Likewise.
14791 (is_typedef_decl ): Likewise
14792 * tree.h: Likewise
14793 (set_underlying_type): Likewise.
14794 (is_typedef_type): Likewise.
14795
1240d76e
VM
147962009-01-21 Vladimir Makarov <vmakarov@redhat.com>
14797
14798 PR middle-end/38587
14799 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
14800 crossing setjmps.
14801
b8a1087d
DK
148022009-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
14803
14804 PR bootstrap/37660
14805 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro.
14806 (LIBGCC_SPEC): Don't define.
14807 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC.
14808
435da628
UB
148092009-01-21 Uros Bizjak <ubizjak@gmail.com>
14810
14811 PR rtl-optimization/38879
14812 * alias.c (base_alias_check): Unaligned access via AND address can
14813 alias all surrounding object types except those with sizes equal
14814 or wider than the size of unaligned access.
14815
d597b3ce
DS
148162009-01-21 Dodji Seketeli <dodji@redhat.com>
14817
14818 PR c++/26693
ba20e309 14819 * c-decl.c (clone_underlying_type): Move this ...
d597b3ce 14820 * c-common.c (set_underlying_type): ... here.
435da628 14821 Also, make sure the function properly sets TYPE_STUB_DECL() on
d597b3ce
DS
14822 the newly created typedef variant type.
14823 (is_typedef_decl ): New entry point.
14824 * tree.h: Added a new member member_types_needing_access_check to
14825 struct tree_decl_non_common.
14826 (set_underlying_type): New entry point.
14827 (is_typedef_type): Likewise.
14828
71a6fe66
BM
148292009-01-21 Bingfeng Mei <bmei@broadcom.com>
14830
14831 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
14832 Check whether two instructions have memory references that
14833 belong to conflicting alias sets. walk_mems_1 and walk_mems_2
14834 are helper functions for traversing.
14835 * alias.h (insn_alias_sets_confilict_p): New prototypes.
14836 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
14837 not to draw dependency edge for instructions with non-conflicting
14838 alias sets.
14839
5a248274
JM
148402009-01-20 Joseph Myers <joseph@codesourcery.com>
14841
14842 PR other/38758
6b67572e
UB
14843 * longlong.h: Update copyright years. Use soft-fp license notice.
14844 Sync __clz_tab declaration with glibc.
5a248274 14845
4b84f3de
SE
148462009-01-20 Steve Ellcey <sje@cup.hp.com>
14847
14848 PR target/30687
14849 * doc/extend.texi (syscall_linkage): New.
14850 (version_id): Modify.
14851
37348bf1 148522009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
435da628 14853 Richard Guenther <rguenther@suse.de>
37348bf1
AP
14854
14855 PR tree-optimization/38747
14856 PR tree-optimization/38748
14857 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
14858 conversion if the base address is an indirect reference and the
14859 aliasing sets could cause issues.
14860
d0a58904
SP
148612009-01-20 Sebastian Pop <sebastian.pop@amd.com>
14862
2ba9daa7 14863 * common.opt (fgraphite, fgraphite-identity): Add comment for
d0a58904
SP
14864 explaining why these options are not documented.
14865
71e7afb2
SP
148662009-01-20 Sebastian Pop <sebastian.pop@amd.com>
14867
14868 * graphite.c (stmt_simple_for_scop_p): Also handle cases when
14869 gimple_call_lhs is NULL.
14870
38432148 148712009-01-20 Paolo Bonzini <bonzini@gnu.org>
09efeca1
PB
14872
14873 PR target/38868
14874 * emit-rtl.c (adjust_address_1): Make sure memref is never
14875 overwritten.
14876
cbb8dee3
BE
148772009-01-20 Ben Elliston <bje@au.ibm.com>
14878
14879 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
435da628 14880 const qualifier from arg parameter. Remove unnecessary cast to char *.
cbb8dee3
BE
14881 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
14882 const qualifier from arg 2.
14883
72c66596
IS
148842009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
14885
435da628 14886 * config/darwin.h: Add static-libgfortran to LINK_SPEC.
72c66596 14887
f68211cd
VM
148882009-01-19 Vladimir Makarov <vmakarov@redhat.com>
14889
14890 PR c/38869
14891 * rtl.h (reinit_regs): New prototype.
14892 * regclass.c: Include ira.h.
14893 (reinit_regs): New.
14894 * Makefile.in (regclass.o): Add ira.h.
14895 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
14896
6e4f1168
L
148972009-01-18 H.J. Lu <hongjiu.lu@intel.com>
14898
14899 PR target/38736
14900 * c-common.c (handle_aligned_attribute): Use
14901 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
14902 default alignment value.
14903
14904 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
14905
14906 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
14907 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
14908
14909 * doc/extend.texi: Update __attribute__ ((aligned)). Document
14910 __BIGGEST_ALIGNMENT__.
14911
14912 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
14913
890065bf
RG
149142009-01-18 Richard Guenther <rguenther@suse.de>
14915
14916 PR tree-optimization/38819
14917 * tree-flow.h (operation_could_trap_helper_p): Declare.
14918 * tree-eh.c (operation_could_trap_helper_p): Export.
14919 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
14920 * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
14921 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
14922 are about to insert a possibly trapping instruction and fail
14923 in this case.
14924
a729d731
AS
149252009-01-18 Andreas Schwab <schwab@suse.de>
14926
14927 * doc/install.texi (Configuration): Remove obsolete paragraph
14928 about use of --with-gnu-ld with --with-gnu-as.
14929
a640c13b
KH
149302009-01-18 Kazu Hirata <kazu@codesourcery.com>
14931
14932 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
14933 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
14934 Follow spelling conventions.
14935
dba2cc0c
BE
149362009-01-18 Ben Elliston <bje@au.ibm.com>
14937
14938 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
14939 C++ warning about implicit conversion from void * to struct
14940 bitmap_head_def *.
14941 (bitmap_obstack_free): Likewise for bitmap_element *.
bc127c63 14942 * Makefile.in (bitmap.o-warn): Remove.
dba2cc0c 14943
2207a498
DK
149442009-01-17 Dave Korn <dave.korn.cygwin@gmail.com>
14945
14946 * Makefile.in (BACKENDLIBS): Reorder to match dependencies.
14947
8137e465
SP
149482009-01-17 Sebastian Pop <sebastian.pop@amd.com>
14949 Tobias Grosser <tobi.grosser@amd.com>
14950
14951 * graphite.c (graphite_trans_scop_block): Do not block single
14952 nested loops.
14953
5be1c58c
AO
149542009-01-16 Alexandre Oliva <aoliva@redhat.com>
14955
14956 * ebitmap.h (ebitmap_iter_init): Initialize all fields.
14957 * ipa-struct-reorg.c (gen_struct_type): Replace known-true
14958 test with assertion.
14959
786ce82d
RG
149602009-01-16 Richard Guenther <rguenther@suse.de>
14961
14962 PR tree-optimization/38835
14963 PR middle-end/36227
14964 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
14965 and INT + PTR -> (INT)(PTR p+ INT) folding.
14966 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
14967
c1cb09ad
AN
149682009-01-16 Adam Nemet <anemet@caviumnetworks.com>
14969
14970 PR target/38554
14971 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
14972 the subreg from a lowpart subreg if it is also casting the value.
14973
bcab4e19
SP
149742009-01-16 Sebastian Pop <sebastian.pop@amd.com>
14975 Tobias Grosser <tobi.grosser@amd.com>
14976
14977 * graphite.c (compare_prefix_loops): New.
14978 (build_scop_canonical_schedules): Rewritten.
14979 (graphite_transform_loops): Move build_scop_canonical_schedules
14980 after build_scop_iteration_domain.
14981
0b040072
SP
149822009-01-16 Sebastian Pop <sebastian.pop@amd.com>
14983 Tobias Grosser <tobi.grosser@amd.com>
14984
2ba9daa7 14985 * graphite.c (add_conditions_to_domain): Add the loops to
0b040072
SP
14986 the dimension of the iteration domain. Do copy the domain
14987 only when it exists.
14988 (build_scop_conditions_1): Do not call add_conditions_to_domain.
14989 (add_conditions_to_constraints): New.
14990 (can_generate_code_stmt, can_generate_code): Removed.
14991 (gloog): Do not call can_generate_code.
14992 (graphite_transform_loops): Call add_conditions_to_constraints
14993 after building the iteration domain.
14994
56c6a499
JJ
149952009-01-16 Jakub Jelinek <jakub@redhat.com>
14996
14997 PR tree-optimization/38789
14998 * tree-ssa-threadedge.c
14999 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
15000 __builtin_constant_p.
15001
c95b2534 150022009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com>
cd3f1729
KZ
15003
15004 * dce.c (delete_unmarked_insns): Reversed the order that insns are
15005 examined before deleting them.
2ba9daa7 15006
c433cb14
RE
150072009-01-16 Richard Earnshaw <rearnsha@arm.com>
15008
15009 * function.c (aggregate_value_p): Correctly extract the function
15010 type from CALL_EXPR_FN lookup.
15011
c95b2534 150122009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com>
27d62fa4
HS
15013
15014 * config/picochip/picochip.c (picochip_override_options): Revert
15015 CFI asm flag disable commited previously.
15016
c77bb78f
SP
150172009-01-15 Sebastian Pop <sebastian.pop@amd.com>
15018 Tobias Grosser <tobi.grosser@amd.com>
15019 Jan Sjodin <jan.sjodin@amd.com>
15020
15021 * graphite.c (scan_tree_for_params): On substractions negate
15022 all the coefficients of the term.
15023 (clast_to_gcc_expression_red): New. Handle reduction expressions
15024 of more than two operands.
15025 (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
15026 (get_vdef_before_scop): Handle also the case of default definitions.
15027
574af2d6
RS
150282009-01-15 Richard Sandiford <rdsandiford@googlemail.com>
15029
15030 * caller-save.c (add_used_regs_1, add_used_regs): New functions.
15031 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
15032 Also use them when walking CALL_INSN_FUNCTION_USAGE.
15033
e939805b
L
150342009-01-15 H.J. Lu <hongjiu.lu@intel.com>
15035 Joey Ye <joey.ye@intel.com>
15036
15037 PR middle-end/37843
15038 * cfgexpand.c (expand_stack_alignment): Don't update stack
15039 boundary nor check incoming stack boundary here.
15040 (gimple_expand_cfg): Update stack boundary and check incoming
15041 stack boundary here.
15042
c95b2534 150432009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com>
750900db 15044
435da628 15045 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
2ba9daa7 15046
0196c95e
JJ
150472009-01-14 Jakub Jelinek <jakub@redhat.com>
15048
15049 PR rtl-optimization/38245
15050 * calls.c (expand_call): Add stack arguments to
15051 CALL_INSN_FUNCTION_USAGE even for pure calls (when
15052 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
15053 in regs and partially in memory or BLKmode arguments.
15054 (emit_library_call_value_1): Add stack arguments to
15055 CALL_INSN_FUNCTION_USAGE even for pure calls (when
15056 ACCUMULATE_OUTGOING_ARGS).
15057 * dce.c: Include tm_p.h.
15058 (find_call_stack_args): New function.
15059 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
15060 argument.
15061 (mark_insn): Call find_call_stack_args for CALL_Ps.
15062 (prescan_insns_for_dce): Walk insns backwards in bb rather than
15063 forwards. Allocate and free arg_stores bitmap if needed, pass it
15064 down to deletable_insn_p, don't mark stores set in arg_stores
15065 bitmap, clear the bitmap at the beginning of each bb.
15066 * Makefile.in (dce.o): Depend on $(TM_P_H).
15067
6df6bcfa
MM
150682009-01-14 Michael Meissner <gnu@the-meissners.org>
15069
15070 PR target/22599
435da628
UB
15071 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
15072 to make sure the insn is a conditional test (bug 22599). Reformat a
15073 few long lines.
6df6bcfa 15074
765ec70c
SP
150752009-01-14 Sebastian Pop <sebastian.pop@amd.com>
15076
15077 PR middle-end/38431
15078 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
15079 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
15080 (gloog): Do not call cleanup_tree_cfg.
2ba9daa7 15081 (graphite_transform_loops): Call cleanup_tree_cfg after all
765ec70c
SP
15082 scops have been code generated.
15083
7de2b688
BS
150842009-01-14 Basile Starynkevitch <basile@starynkevitch.net>
15085 * doc/gty.texi (Invoking the garbage collector): Added new node
15086 and section documenting ggc_collect.
15087
10bd6c5c
RG
150882009-01-14 Richard Guenther <rguenther@suse.de>
15089
15090 PR tree-optimization/38826
15091 PR middle-end/38477
15092 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
15093 initialization notes only if we actually emitted a warning.
15094 (intra_create_variable_infos): Add constraints for a result decl
15095 that is passed by hidden reference.
15096 (build_pred_graph): Mark all related variables non-direct on
15097 address-taking.
15098
9c7c70ee
NC
150992009-01-14 Nick Clifton <nickc@redhat.com>
15100
15101 * ira-conflicts.c: Include addresses.h for the definition of
15102 base_reg_class.
435da628
UB
15103 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
15104 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
9c7c70ee 15105
cf0c2a60
VM
151062009-01-13 Vladimir Makarov <vmakarov@redhat.com>
15107
15108 PR target/38811
15109 * Makefile.in (ira-lives.o): Add except.h.
15110
15111 * ira-lives.c: Include except.h.
15112 (process_bb_node_lives): Process can_throw_internal.
15113
d3302fd3
JJ
151142009-01-13 Jakub Jelinek <jakub@redhat.com>
15115
15116 PR rtl-optimization/38774
15117 * combine.c (simplify_set): When undoing cc_use change, don't do
15118 PUT_CODE on the newly created comparison, but instead put back the
15119 old comparison.
15120
7ab23fd0
JM
151212009-01-13 Joseph Myers <joseph@codesourcery.com>
15122
15123 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
15124 values. Remove duplicate arm8 entry.
15125
f9344488
SP
151262009-01-13 Sebastian Pop <sebastian.pop@amd.com>
15127
15128 PR tree-optimization/38786
15129 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
15130 the SSA_NAME case of expand_scalar_variables_expr.
15131 Set the type of an expression to the type of its assign statement.
15132 (expand_scalar_variables_expr): Also gather the scalar computation
15133 used to index the memory access. Do not pass loop_p.
15134 Fix comment. Stop recursion on tcc_constant or tcc_declaration.
15135 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
bef3c57b
UB
15136 the gimple_stmt_iterator where it inserts new code.
15137 Do not pass loop_p.
f9344488
SP
15138 (copy_bb_and_scalar_dependences): Do not pass loop_p.
15139 (translate_clast): Update call to copy_bb_and_scalar_dependences.
15140
2d8bb84d
SP
151412009-01-13 Sebastian Pop <sebastian.pop@amd.com>
15142
15143 * graphite.h (debug_value): Removed.
15144 * graphite.c (debug_value): Removed.
15145
ff128632
RE
151462009-01-13 Richard Earnshaw <rearnsha@arm.com>
15147
435da628
UB
15148 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
15149 ldrd/strd with two 32-bit instructions.
ff128632 15150
d5a0a47b
RE
151512009-01-13 Richard Earnshaw <rearnsha@arm.com>
15152
435da628
UB
15153 * config/arm/arm.c (struct processors): Pass for speed down into
15154 cost helper functions.
d5a0a47b
RE
15155 (const_ok_for_op): Handle COMPARE and inequality nodes.
15156 (arm_rtx_costs_1): Rewrite.
15157 (arm_size_rtx_costs): Update prototype.
15158 (arm_rtx_costs): Pass speed down to helper functions.
15159 (arm_slowmul_rtx_costs): Rework cost calculations.
15160 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
15161 (arm_9e_rtx_costs): Likewise.
15162
26d5bf5b
UB
151632009-01-13 Uros Bizjak <ubizjak@gmail.com>
15164
15165 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
435da628 15166 relocations of local symbols wider than UNITS_PER_WORD are not valid.
26d5bf5b
UB
15167 (alpha_legitimize_address): Do not split local symbols wider than
15168 UNITS_PER_WORD into HIGH/LO_SUM parts.
15169
5d14e3d5
DS
151702009-01-13 Danny Smith <dannysmith@users.sourceforge.net>
15171
15172 PR bootstrap/38580
15173 * gcc.c (process_command): Replace call to execvp with calls
15174 to pex_one and exit.
15175
33faafca
AS
151762009-01-03 Anatoly Sokolov <aesok@post.ru>
15177
15178 PR target/29141
15179 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
15180 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
15181 variant for devices with 3-byte PC.
ba20e309 15182 (__tablejump_elpm__): New.
33faafca 15183
634b5df5
JJ
151842009-01-12 Jakub Jelinek <jakub@redhat.com>
15185
15186 PR c/32041
15187 * c-parser.c (c_parser_postfix_expression): Allow `->' in
15188 offsetof member-designator, handle it as `[0].'.
15189
2842bb86
JDA
151902009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15191
15192 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
15193 function when not using named sections on targets with named sections
15194 if branch distance is less than 262132.
15195
76ee70f6
RE
151962009-01-12 Richard Earnshaw <rearnsha@arm.com>
15197
15198 * combine.c (combine_instructions): Recompute
15199 optimize_this_for_speed_p for each BB in the main combine loop.
15200
f56e675d
TB
152012009-01-12 Tomas Bily <tbily@suse.cz>
15202
15203 PR middlend/38385
26d5bf5b
UB
15204 * tree-loop-distribution.c (prop_phis): New function.
15205 (generate_builtin): Call prop_phis.
15206 * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
f56e675d 15207
c2152239
JJ
152082009-01-12 Jakub Jelinek <jakub@redhat.com>
15209
15210 PR tree-optimization/38807
15211 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
15212 gimple_visited_p unless stmt is GIMPLE_ASSIGN.
15213
0e510b3e
AN
152142009-01-11 Adam Nemet <anemet@caviumnetworks.com>
15215
15216 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
15217 subreg of op0 to the original op0.
15218
c95b2534 152192009-01-11 Laurent GUERBY <laurent@guerby.net>
10270471
LG
15220
15221 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
2ba9daa7 15222
53a7ff9a
MS
152232009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
15224
15225 PR debug/7055
60839f5d 15226 * mips-tfile.c (parse_def): Fix parsing of def strings
53a7ff9a
MS
15227 starting with digits.
15228
b3a796bc
JJ
152292009-01-10 Jakub Jelinek <jakub@redhat.com>
15230
15231 PR target/38695
15232 * config/arm/arm.c (arm_is_long_call_p): Don't call
15233 arm_function_in_section_p if decl isn't a FUNCTION_DECL.
15234
b21b850e
SB
152352009-01-09 Steven Bosscher <steven@gcc.gnu.org>
15236
15237 * regrename.c (regrename_optimize): Fix dumping.
15238 (find_oldest_value_reg): Preserve REG_POINTER.
15239 (copy_hardreg_forward_1): Likewise.
15240
e0e10d3a
DN
152412009-01-09 Diego Novillo <dnovillo@google.com>
15242
bf9b2cc9 15243 * gimple.h (struct gimple_statement_base) <uid>: Document
e0e10d3a
DN
15244 the restrictions on its use.
15245 (gimple_uid): Tidy.
15246 (gimple_set_uid): Tidy.
15247
c9da2ae8
JJ
152482009-01-09 Jakub Jelinek <jakub@redhat.com>
15249
15250 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
15251 zero guard even if align_bytes != 0 and count is smaller than
15252 size_needed.
15253
38432148 152542009-01-09 Vladimir Makarov <vmakarov@redhat.com>
a174c19c
VM
15255
15256 PR rtl-optimization/38495
26d5bf5b 15257 * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
a174c19c
VM
15258 (add_range_and_copies_from_move_list): Print all added ranges.
15259 Add ranges to memory optimized destination.
15260
260fda3d
JJ
152612009-01-09 Jakub Jelinek <jakub@redhat.com>
15262
6f6278ad
JJ
15263 PR target/38686
15264 PR target/38708
15265 * config/i386/i386.c (override_options): Reject
15266 -mstringop-strategy=rep_8byte with -m32.
15267 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
15268 to 1. Do count comparison against epilogue_size_needed at compile
15269 time even when count_exp was constant forced into register. For
15270 size_needed don't jump to epilogue, instead just avoid aligning
15271 and invoke the body algorithm. If need_zero_guard, add zero guard
15272 even if count is non-zero, but smaller than size_needed + number of
15273 bytes that could be stored for alignment.
15274 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
15275 to 1. If need_zero_guard, add zero guard even if count is non-zero,
15276 but smaller than size_needed + number of bytes that could be stored
15277 for alignment. Compare size_needed with epilogue_size_needed instead
15278 of desired_align - align, don't adjust size_needed, pass
15279 epilogue_size_needed to the epilogue expanders.
15280
260fda3d 15281 PR c/35742
26d5bf5b 15282 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
260fda3d 15283
67b846fa
JDA
152842009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15285
15286 * pa.c (last_address): Change to unsigned.
15287 (update_total_code_bytes): Change argument to unsigned. Don't
15288 check if insn addresses are set.
15289 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
15290 addresses are not set.
15291 (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
15292
91c82473
NC
152932009-01-09 Nick Clifton <nickc@redhat.com>
15294
15295 * config/sh/symbian.c: Replace uses of DECL_INLINE with
15296 DECL_DECLARED_INLINE_P.
15297
4017e262
JJ
152982009-01-09 Jakub Jelinek <jakub@redhat.com>
15299
0a49e5c2
JJ
15300 PR middle-end/38347
15301 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
15302 GET_MODE (op0) in operand_subword_force calls.
15303
4017e262
JJ
15304 PR middle-end/38771
15305 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
15306 fold_convert arg0 operands to TREE_TYPE (op0) first.
15307
7cd06356
VM
153082009-01-08 Vladimir Makarov <vmakarov@redhat.com>
15309
15310 * params.def (ira-max-conflict-table-size): Decrease default value
15311 to 1000.
15312
96867bbd
JJ
153132009-01-08 Jakub Jelinek <jakub@redhat.com>
15314
15315 PR tree-optimization/37031
15316 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
15317 on parameter_set.
15318 (build_access_matrix): Reserve correct size for AM_MATRIX vector,
15319 allocate it using gc instead of heap, use VEC_quick_push instead of
15320 VEC_safe_push.
15321 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
15322 instead of heap, use VEC_quick_push instead of VEC_safe_push.
15323 * tree-data-ref.h (struct access_matrix): Change matrix to gc
15324 allocated vector from heap allocated.
15325 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
15326 * tree-loop-linear.c (linear_transform_loops): Allocate nest
15327 vector only after perfect_loop_nest_depth call.
15328
68f61c3d
SP
153292009-01-08 Sebastian Pop <sebastian.pop@amd.com>
15330 Jan Sjodin <jan.sjodin@amd.com>
15331
15332 PR tree-optimization/38559
15333 * graphite.c (debug_value, copy_constraint,
15334 swap_constraint_variables, scale_constraint_variable, ): New.
15335 (get_lower_bound, get_upper_bound): Removed.
15336 (graphite_trans_bb_strip_mine): Clean up this code that works
15337 only for constant number of iterations. Fully copy upper and
15338 lower bound constraints, not only the constant part of them.
15339 * graphite.h (debug_value): Declared.
15340
82567e33
IR
153412009-01-08 Ira Rosen <irar@il.ibm.com>
15342
15343 PR tree-optimization/37194
15344 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
2ba9daa7 15345 Don't add the cost of cost model guard in prologue to scalar
82567e33
IR
15346 outside cost in case of known number of iterations.
15347
7da13f1d
NF
153482009-01-07 Nathan Froyd <froydnj@codesourcery.com>
15349 Alan Modra <amodra@bigpond.net.au>
15350
15351 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
15352 non-word-aligned REG+CONST addressing.
15353
c0f64575
UB
153542009-01-07 Uros Bizjak <ubizjak@gmail.com>
15355
15356 PR target/38706
15357 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
15358 free_after_compilation when outputting a thunk.
15359 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
15360 Do not call free_after_compilation here.
15361
301b6a4e
UB
153622009-01-07 Uros Bizjak <ubizjak@gmail.com>
15363
15364 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
301b6a4e
UB
15365 (ix86_valid_target_attribute_inner_p): Ditto.
15366
6a114766
JS
153672009-01-07 Jan Sjodin <jan.sjodin@amd.com>
15368
15369 PR tree-optimization/38492
15370 PR tree-optimization/38498
15371 * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
15372 * tree-chrec.h (scev_is_linear_expression): Declared.
15373 * graphite.c (graphite_cannot_represent_loop_niter): New.
15374 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
15375 (graphite_loop_normal_form): Use gcc_assert.
15376 (scan_tree_for_params): Use CASE_CONVERT.
15377 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
15378 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
15379 Use gcc_assert. Discard scops that contain unhandled cases.
15380 (build_scop_conditions): Return a boolean status for unhandled cases.
15381 (strip_mine_profitable_p): Print the loop number, not its depth.
15382 (is_interchange_valid): Pass the depth of the loop nest, don't
15383 recompute it wrongly.
15384 (graphite_trans_bb_block): Same.
15385 (graphite_trans_bb_block): Print tentative of loop blocking.
15386 (graphite_trans_scop_block): Do not print that the loop has been
15387 blocked.
15388 (graphite_transform_loops): Do not handle scops that contain condition
15389 scalar phi nodes.
15390
65b82caa
L
153912009-01-07 H.J. Lu <hongjiu.lu@intel.com>
15392
15393 AVX Programming Reference (December, 2008)
15394 * config/i386/avxintrin.h (_mm256_stream_si256): New.
15395 (_mm256_stream_pd): Likewise.
15396 (_mm256_stream_ps): Likewise.
15397
15398 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
15399 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
15400 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
15401 (bdesc_special_args): Add __builtin_ia32_movntdq256,
15402 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
15403 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
15404 (ix86_expand_special_args_builtin): Likewise.
15405
15406 * config/i386/sse.md (AVXMODEDI): New.
15407 (avx_movnt<mode>): Likewise.
15408 (avx_movnt<mode>): Likewise.
15409 (<sse>_movnt<mode>): Remove AVX support.
15410 (sse2_movntv2di): Likewise.
15411
cef158f9
RG
154122009-01-07 Richard Guenther <rguenther@suse.de>
15413
15414 PR middle-end/38751
15415 * fold-const.c (extract_muldiv): Remove obsolete comment.
15416 (fold_plusminus_mult_expr): Undo MINUS_EXPR
15417 to PLUS_EXPR canonicalization for the canonicalization.
15418
246cb5be
GP
154192009-01-07 Gerald Pfeifer <gerald@pfeifer.com>
15420
15421 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
15422 hosted cross-compilers generating less efficient code.
15423
84b9b872
RS
154242009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
15425
15426 * function.h (rtl_data): Add a dbr_scheduled_p field.
15427 * reorg.c (dbr_schedule): Set it.
15428 (gate_handle_delay_slots): Check it.
15429 * config/mips/mips.c (mips_base_delayed_branch): Delete.
15430 (mips_reorg): Check flag_delayed_branch instead of
15431 mips_base_delayed_branch.
15432 (mips_override_options): Don't set mips_base_delayed_branch
15433 or flag_delayed_branch.
15434
ace984c8
RS
154352009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
15436
15437 PR rtl-optimization/38426.
15438 * ira.c (ira): Set current_function_is_leaf earlier.
15439
7ad7809b
JJ
154402009-01-06 Jakub Jelinek <jakub@redhat.com>
15441
15442 PR rtl-optimization/38722
15443 * combine.c (try_combine): Don't modify PATTERN (i3) and notes
15444 too early, only set a flag and modify after last possible
15445 undo_all point.
15446
c52ec948
JJ
154472009-01-06 Janis Johnson <janis187@us.ibm.com>
15448
15449 PR c/34252
15450 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
15451 * real.c (decimal_single_format): Correct values of emin and emax.
15452 (decimal_double_format): Ditto.
15453 (decimal_quad_format): Ditto.
15454 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
15455 computation of DECnn_MIN and DECnn_MAX for corrected values of
15456 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of
15457 __DECnn_MIN__, and adjust its computation for the corrected value
15458 of emin.
15459
300240e1
JH
154602009-01-06 Jan Hubicka <jh@suse.cz>
15461
15462 PR target/38744
435da628 15463 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
300240e1 15464
271c069e
GP
154652009-01-06 Gerald Pfeifer <gerald@pfeifer.com>
15466
15467 * doc/contrib.texi (Contributors): Slightly adjust the end note.
15468 Add Robert Clark to the list of testers.
15469
64e4c301 154702009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 15471 Kai Tietz <kai.tietz@onevision.com>
64e4c301 15472
435da628
UB
15473 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
15474 * config/i386/i386.c (ix86_expand_call): Add clobbers.
64e4c301 15475
7650b83e 154762009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 15477 Kai Tietz <kai.tietz@onevision.com>
7650b83e 15478
435da628
UB
15479 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
15480 for w64 ABI.
15481 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
7650b83e
JH
15482 (ix86_nsaved_regs): Count only general purpose regs.
15483 (ix86_nsaved_sseregs): New.
15484 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
15485 to 16 for w64; compute padding and size of sse reg save area.
301b6a4e
UB
15486 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
15487 general purpose regs.
7650b83e
JH
15488 (ix86_emit_save_sse_regs_using_mov): New.
15489 (ix86_expand_prologue): Save SSE regs if needed.
15490 (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
15491 (ix86_emit_restore_sse_regs_using_mov): New.
15492 (ix86_expand_epilogue): Save SSE regs if needed.
15493
9aa5c1b2 154942009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 15495 Kai Tietz <kai.tietz@onevision.com>
9aa5c1b2 15496
435da628
UB
15497 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
15498 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
15499 functions when accumulate outgoing args is off.
9aa5c1b2 15500
f7556aae
L
155012009-01-06 H.J. Lu <hongjiu.lu@intel.com>
15502
15503 PR bootstrap/38742
15504 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
15505 before using pseudos_have_intersected_live_ranges_p.
15506
15507 * ira-int.h (ira_assert): Always define.
15508
e47b7d04
L
155092009-01-06 H.J. Lu <hongjiu.lu@intel.com>
15510
15511 AVX Programming Reference (December, 2008)
15512 * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
15513 (_mm256_permute2_pd): Likewise.
15514 (_mm_permute2_ps): Likewise.
15515 (_mm256_permute2_ps): Likewise.
15516 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
15517 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
15518
15519 * config/i386/i386.c (ix86_builtins): Remove
15520 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
15521 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
15522 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
15523 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
15524 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
15525 (bdesc_args): Remove __builtin_ia32_vpermil2pd,
15526 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
15527 __builtin_ia32_vpermil2ps256.
15528 (ix86_init_mmx_sse_builtins): Updated.
15529 (ix86_expand_args_builtin): Likewise.
15530
44b86471
JDA
155312009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15532
e47b7d04
L
15533 * pa.c (output_call): Relocate non-jump insns in the delay slot of
15534 long absolute calls when generating PA 2.0 code.
44b86471 15535
311aab06
VM
155362009-01-05 Vladimir Makarov <vmakarov@redhat.com>
15537
15538 PR rtl-optimization/38583
15539 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
15540
15541 * params.def (ira-max-conflict-table-size): New.
15542
15543 * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
2ba9daa7 15544
311aab06 15545 * ira.h (ira_conflicts_p): New external definition.
2ba9daa7 15546
311aab06
VM
15547 * ira-conflicts.c (build_conflict_bit_table): Do not build too big
15548 table. Report this. Return result of building.
15549 (ira_build_conflicts): Use ira_conflicts_p. Check result of
15550 building conflict table.
15551
301b6a4e 15552 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
311aab06 15553 (ira_color): Use ira_conflicts_p.
2ba9daa7 15554
311aab06
VM
15555 * global.c: Include ira.h.
15556 (pseudo_for_reload_consideration_p, build_insn_chain): Use
15557 ira_conflicts_p.
15558
15559 * Makefile.in (global.o): Add ira.h.
2ba9daa7 15560
311aab06
VM
15561 * ira-build.c (mark_all_loops_for_removal,
15562 propagate_some_info_from_allocno): New.
15563 (remove_unnecessary_allocnos): Call
15564 propagate_some_info_from_allocno.
15565 (remove_low_level_allocnos): New.
15566 (remove_unnecessary_regions): Add parameter. Call
15567 mark_all_loops_for_removal and remove_low_level_allocnos. Pass
15568 parameter to remove_unnecessary_regions.
15569 (ira_build): Remove all regions but root if the conflict table was
15570 not built. Update conflict hard regs for allocnos crossing calls.
15571
15572 * ira.c (ira_conflicts_p): New global.
15573 (ira): Define and use ira_conflicts_p.
15574
15575 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
15576 count_spilled_pseudo, find_reg, alter_reg, finish_spills,
301b6a4e 15577 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
2ba9daa7 15578
5641785f
BE
155792009-01-06 Ben Elliston <bje@au.ibm.com>
15580
15581 * gengtype-lex.l (YY_NO_INPUT): Define.
15582
e4e5261f
AP
155832009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
15584
15585 PR c/34911
5641785f
BE
15586 * c-common.c (handle_vector_size_attribute): Also reject
15587 BOOLEAN_TYPE types.
e4e5261f 15588
7b10257f
SP
155892009-01-05 Sebastian Pop <sebastian.pop@amd.com>
15590
15591 PR tree-optimization/38492
15592 * graphite.c (rename_map_elt, debug_rename_elt,
301b6a4e
UB
15593 debug_rename_map_1, debug_rename_map, new_rename_map_elt,
15594 rename_map_elt_info, eq_rename_map_elts,
15595 get_new_name_from_old_name, bb_in_sese_p): Moved around.
7b10257f
SP
15596 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
15597 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
15598 (sese_build_livein_liveouts): New.
15599 (new_sese, free_sese): New.
15600 (new_scop): Call new_sese.
15601 (free_scop): Call free_sese.
15602 (rename_variables_from_edge, rename_phis_end_scop): Removed.
15603 (register_old_new_names): Renamed register_old_and_new_names.
15604 (register_scop_liveout_renames, add_loop_exit_phis,
15605 insert_loop_close_phis, struct igp,
15606 default_liveout_before_guard, add_guard_exit_phis,
15607 insert_guard_phis, copy_renames): New.
15608 (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
15609 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
15610 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
15611 (scop_adjust_phis_for_liveouts): New.
15612 (gloog): Call scop_adjust_phis_for_liveouts.
15613
15614 * graphite.h (struct sese): Documented. Added fields liveout,
301b6a4e 15615 num_ver and livein.
7b10257f
SP
15616 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
15617 (new_sese, free_sese, sese_build_livein_liveouts): Declared.
15618 (struct scop): Added field liveout_renames.
15619 (SCOP_LIVEOUT_RENAMES): New.
15620
9761fcc7
HJ
156212009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
15622
15623 PR tree-optimization/38510
15624 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
15625 (translate_clast): Call recompute_all_dominators before
15626 graphite_verify.
15627 (gloog): Call recompute_all_dominators before graphite_verify.
15628
156292009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
c95b2534 15630 Jan Sjodin <jan.sjodin@amd.com>
9761fcc7
HJ
15631
15632 PR tree-optimization/38500
15633 * graphite.c (create_sese_edges): Call fix_loop_structure after
15634 splitting blocks.
15635
c95b2534 156362009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
48a01864
JS
15637
15638 * config.gcc: Add m32r*-*-rtems*.
15639 * config/m32r/rtems.h: New file.
15640
fc0cd180
BE
156412009-01-05 Ben Elliston <bje@au.ibm.com>
15642
15643 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
15644 (.po.pox): Likewise.
15645 (po/gcc.pot): Likewise.
15646
3106d8e5
DM
156472009-01-04 David S. Miller <davem@davemloft.net>
15648
15649 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
15650 (STARTING_FRAME_OFFSET): Always set to zero.
15651
0009b473
RS
156522009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
15653
15654 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
15655 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
15656 fixed-point types, and vectors of the same.
15657
4f24c6d6
RS
156582009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
15659
15660 * config/mips/sync.md (*mb_barrier): Rename to...
15661 (*memory_barrier): ...this.
15662
1df48f5c
JW
156632009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com>
15664
15665 * doc/extend.texi (Function Attributes): Move @cindex after @item
eefe5da0 15666 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
1df48f5c
JW
15667 and put in alphabetical order. Fix 'target' name and put in order.
15668 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
15669 typos.
15670
1a8c13b3
UB
156712009-01-04 Uros Bizjak <ubizjak@gmail.com>
15672
15673 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
15674 (memory_barrier): Expand as unspec instead of unspec_volatile.
15675 Remove mem:BLK from insn operands. Use Pmode scratch register.
15676 (*memory_barrier): Define as unspec instead of unspec_volatile.
15677 Use (match_dup 0) as input operand.
15678
15679 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
15680 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
15681 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
15682 scratch register. Remove operand 1.
15683 (*stbar): Define as unspec instead of unspec_volatile.
15684 Use (match_dup 0) as input operand, remove (const_int 8).
15685 (*membar): Define as unspec instead of unspec_volatile.
15686 Use (match_dup 0) as input operand, remove input operand 2.
15687
15688 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
15689 (memory_barrier): Expand as unspec instead of unspec_volatile.
15690 Remove mem:BLK from insn operands. Use Pmode scratch register.
15691 (*memory_barrier): Define as unspec instead of unspec_volatile.
15692 Use (match_dup 0) as input operand.
15693
15694 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
15695 Remove mem:BLK from insn operands. Use Pmode scratch register.
15696 Set volatile flag on operand 0.
15697 (*memory_barrier): New insn pattern.
15698
15699 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
15700 insn operands.
15701 (*memory_barrier): Use (match_dup 0) as input operand.
15702
15703 * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
15704 Remove mem:BLK from insn operands. Use Pmode scratch register.
15705 Set volatile flag on operand 0.
301b6a4e 15706 (*mb_internal): New insn pattern.
1a8c13b3
UB
15707
15708 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
15709
fb0703f7
SB
157102009-01-04 Steven Bosscher <steven@gcc.gnu.org>
15711
15712 PR middle-end/38586
15713 * function.c (struct temp_slot): Move to the section of the file
15714 that deals with temp slots. Remove field 'address'.
15715 (temp_slot_address_table): New hash table of address -> temp slot.
15716 (struct temp_slot_address_entry): New struct, items for the table.
15717 (temp_slot_address_compute_hash, temp_slot_address_hash,
15718 temp_slot_address_eq, insert_temp_slot_address): Support functions
15719 for the new table.
15720 (find_temp_slot_from_address): Rewrite to use the new hash table.
15721 (remove_unused_temp_slot_addresses): Remove addresses of temp
15722 slots that have been made available.
15723 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
15724 worker function for remove_unused_temp_slot_addresses.
15725 (assign_stack_temp_for_type): Don't clear the temp slot address list.
15726 Add the temp slot address to the address -> temp slot map.
15727 (update_temp_slot_address): Update via insert_temp_slot_address.
15728 (free_temp_slots): Call remove_unused_temp_slot_addresses.
15729 (pop_temp_slots): Likewise.
15730 (init_temp_slots): Allocate the address -> temp slot map, or empty
15731 the map if it is already allocated.
15732 (prepare_function_start): Initialize temp slot processing.
15733
b5a430f3
SB
157342009-01-04 Steven Bosscher <steven@gcc.gnu.org>
15735
15736 PR middle-end/38584
15737 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
15738 Calculate the size of all stack vars assuming no packing of stack
15739 vars will happen, replacing a quadratic algorithm with a linear one.
15740
5d560619
JJ
157412009-01-03 Jakub Jelinek <jakub@redhat.com>
15742
15743 PR target/38707
15744 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
15745 can't be used.
15746
953a7caa
DN
157472009-01-03 Diego Novillo <dnovillo@google.com>
15748
15749 * doc/contrib.texi: Update contributions.
15750
5f26a230
JJ
157512009-01-03 Jakub Jelinek <jakub@redhat.com>
15752
493aa551
JJ
15753 PR c++/38705
15754 * builtins.c (fold_builtin_memory_op): Give up if either operand
15755 is volatile. Set srctype or desttype to non-qualified version
15756 of the other type.
15757
5f26a230
JJ
15758 PR c/38700
15759 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
15760 and FUNCTION_DECLs.
15761
c95b2534 157622009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
fafe34f9
KZ
15763
15764 PR rtl-optimization/35805
15765 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
15766 problem if fast dce is able to remove any instructions.
15767 * dce.c (dce_process_block): Fix dump message.
2ba9daa7 15768
0b355794
MM
157692009-01-02 Mark Mitchell <mark@codesourcery.com>
15770
15771 PR 33649
15772 * tree-ssa-pre.c (compute_antic): Correct loop bounds.
15773
0cf0d02b
JJ
157742009-01-02 Jakub Jelinek <jakub@redhat.com>
15775
15776 PR middle-end/38690
15777 * tree-flow.h (op_code_prio, op_prio): New prototypes.
15778 * tree-pretty-print.c (op_code_prio): New function.
15779 (op_prio): No longer static. Use op_code_prio.
15780 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
15781 Use op_prio and op_code_prio to determine if () should be
15782 printed around operand(s) or not.
15783
15784 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
15785 dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
15786 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
15787 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
15788 pp_character instead of pp_string for single letter printing.
15789
e3606f3b
RS
157902009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
15791
15792 * doc/extend.texi: Fix '#pragma GCC option' typo.
15793
c95b2534 157942009-01-02 Richard Guenther <rguenther@suse.de>
00f39bd5 15795
a5f061dc
RG
15796 * doc/install.texi (--enable-checking): Mention different
15797 default for stage1.
15798 (--enable-stage1-checking): Document.
00f39bd5 15799
26de0bcb
AP
158002009-01-01 Andrew Pinski <pinskia@gmail.com>
15801
15802 PR middle-end/30142
15803 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
15804 case to be an error.
15805
7a7d8fab
BE
158062009-01-02 Ben Elliston <bje@au.ibm.com>
15807
15808 * config/fp-bit.h (pack_d): Constify argument.
15809 * config/fp-bit.c (makenan): Constify return type. Remove casts.
15810 (isnan): Constify argument.
15811 (isinf): Likewise.
15812 (iszero): Likewise.
15813 (pack_d): Likewise.
15814 (_fpadd_parts): Constify return type.
15815 (_fpmul_parts): Likewise.
15816 (_fpdiv_parts): Likewise.
15817
b295aee2
JJ
158182009-01-01 Jakub Jelinek <jakub@redhat.com>
15819
15820 PR c/36489
15821 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only
15822 warn about overwriting initializer with side-effects or
15823 -Woverride-init if !IMPLICIT.
15824 (output_init_element): Likewise. Pass IMPLICIT down to
15825 add_pending_init.
15826 (process_init_element): Add IMPLICIT argument. Pass it down
15827 to output_init_element.
15828 (push_init_element, pop_init_level, set_designator): Adjust
15829 process_init_element callers.
15830 (set_nonincremental_init, set_nonincremental_init_from_string):
15831 Adjust add_pending_init callers.
15832 (output_pending_init_elements): Adjust output_init_element callers.
15833 * c-tree.h (process_init_element): Adjust prototype.
15834 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
15835 process_init_element callers.
ad41bd84
JM
15836
15837\f
15838Copyright (C) 2009 Free Software Foundation, Inc.
15839
15840Copying and distribution of this file, with or without modification,
15841are permitted in any medium without royalty provided the copyright
15842notice and this notice are preserved.