]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
* include/cpplib.h (progname): Don't declare.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
2cb0a60d
DD
12009-06-17 David Daney <ddaney@caviumnetworks.com>
2
3 * jump.c (cleanup_barriers): Handle case of no insns before a
4 barrier.
5
82882240
DE
62009-06-17 David Edelsohn <edelsohn@gnu.org>
7
8 * config/rs6000/dfp.md (nabsdd2_fpr): Correct mode.
9 (nabstd2_fpr): Same.
10
a1a65f89
SE
112009-06-17 Steve Ellcey <sje@cup.hp.com>
12
13 * expr.c (expand_assignment): Change complex type check.
14
07ae5620
BS
152009-06-17 Basile Starynkevitch <basile@starynkevitch.net>
16
17 * doc/plugins.texi (Building GCC plugins): Added new section.
18
5eb4df45
ILT
192009-06-17 Ian Lance Taylor <iant@google.com>
20
21 * c-pch.c (get_ident): Don't set size of templ array.
22 (pch_init): Don't set size of partial_pch array.
23
24 * c-typeck.c (digest_init): If -Wc++-compat, warn about using a
25 string constant to intialize an array whose size is the length of
26 the string.
27
4d61856d
RG
282009-06-17 Richard Guenther <rguenther@suse.de>
29
30 PR tree-optimization/40389
31 * tree-ssa-structalias.c (handle_rhs_call): Restrict NRV case
32 to addressable types.
33 * gimple.c (walk_stmt_load_store_addr_ops): Likewise.
34
3cb8677c
RG
352009-06-17 Richard Guenther <rguenther@suse.de>
36
37 PR middle-end/40460
38 * tree-chrec.h (build_polynomial_chrec): If we cannot determine
39 if there is no evolution of left in the loop bail out.
40 * tree-chrec.c (chrec_fold_multiply_poly_poly): CSE one
41 chrec_fold_multiply.
42
a4d99c86
R
432009-06-16 J"orn Rennecke <joern.rennecke@arc.com>
44 Janis Johnson <janis187@us.ibm.com>
45
46 PR target/39254
47 * config/rs6000/rs6000.c (rs6000_emit_move): Don't emit a USE
48 for the symbol ref of a constant that is the source of a move
49 - nor for any other not-obvious-label-ref constants.
50
8dd1bca0
OR
512009-06-16 Olatunji Ruwase <tjruwase@google.com>
52
53 * plugin.c(position_pass): Skip newly inserted pass during list
54 traversal to avoid repeated insertion.
55
8019538f
ILT
562009-06-16 Ian Lance Taylor <iant@google.com>
57
58 * vec.h (VEC_stack_alloc): Define different version if
59 GATHER_STATISTICS is defined, to accept and ignore MEM_STAT.
60 (DEF_VEC_ALLOC_FUNC_P_STACK): Remove MEM_STAT_DECL.
61 (DEF_VEC_ALLOC_FUNC_O_STACK): Likewise.
62 (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
63
7c45393e
L
642009-06-16 H.J. Lu <hongjiu.lu@intel.com>
65
66 * config.gcc (extra_headers): Add ia32intrin.h for x86.
67
68 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_BSRSI,
69 IX86_BUILTIN_BSRDI. IX86_BUILTIN_RDPMC, IX86_BUILTIN_RDTSC.
70 IX86_BUILTIN_RDTSCP. IX86_BUILTIN_ROLQI, IX86_BUILTIN_ROLHI,
71 IX86_BUILTIN_RORQI and IX86_BUILTIN_RORHI.
72 (ix86_special_builtin_type): Add UINT64_FTYPE_VOID,
73 UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
74 INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and
75 UINT8_FTYPE_UINT8_INT
76 (bdesc_special_args): Add __builtin_ia32_rdtsc and
77 __builtin_ia32_rdtscp.
78 (bdesc_args): Add __builtin_ia32_bsrsi, __builtin_ia32_bsrdi,
79 __builtin_ia32_rolqi, __builtin_ia32_rolhi, __builtin_ia32_rorqi
80 and __builtin_ia32_rorhi,
81 (ix86_init_mmx_sse_builtins): Handle UINT64_FTYPE_VOID,
82 UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
83 INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and
84 UINT8_FTYPE_UINT8_INT.
85 (ix86_expand_args_builtin): Likewise.
86 (ix86_expand_special_args_builtin): Likewise.
87
88 * config/i386/i386.md (UNSPECV_RDTSCP): New.
89 (UNSPECV_RDTSC): Likewise.
90 (UNSPECV_RDPMC): Likewise.
91 (*bsr): Removed to ...
92 (bsr): This
93 (*bsr_rex64): Removed to ...
94 (bsr_rex64): This.
95 (rdpmc): New.
96 (*rdpmc): Likewise.
97 (*rdpmc_rex64): Likewise.
98 (rdtsc): Likewise.
99 (*rdtsc): Likewise.
100 (*rdtsc_rex64): Likewise.
101 (rdtscp): Likewise.
102 (*rdtscp): Likewise.
103 (*rdtscp_rex64): Likewise.
104
105 * config/i386/ia32intrin.h: New.
106
107 * config/i386/x86intrin.h: Include <ia32intrin.h>.
108
504b33d8
ILT
1092009-06-16 Ian Lance Taylor <iant@google.com>
110
111 * ira-build.c (copy_info_to_removed_store_destinations):
112 Initialize parent_a.
113
f9551830
ILT
1142009-06-16 Ian Lance Taylor <iant@google.com>
115
116 * c-decl.c (grokdeclarator): Change size_varies to bool.
117
c32e2175
ILT
1182009-06-16 Ian Lance Taylor <iant@google.com>
119
120 * sel-sched.c: Make forward declarations of move_op_hooks and
121 fur_hooks explicitly extern.
122
415a06c2
ILT
1232009-06-16 Ian Lance Taylor <iant@google.com>
124
125 * df-problems.c (df_byte_lr_alloc): Don't set problem_data to
126 itself.
127 * vec.c (vec_gc_o_reserve_1): Don't set alloc to itself.
128
675f99c9
ILT
1292009-06-16 Ian Lance Taylor <iant@google.com>
130
131 * resource.c (mark_referenced_resources): Change
132 include_delayed_effects parameter to bool. Change all callers.
133 (mark_end_of_function_resources): Likewise.
134 * reorg.c (insn_references_resource_p): Likewise.
135 (insn_sets_resource_p): Likewise.
136 * resource.h (mark_referenced_resources): Update declaration.
137 (mark_end_of_function_resources): Update declaration.
138
a322799d
DE
1392009-06-16 David Edelsohn <edelsohn@gnu.org>
140
141 * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove -lstdc++.
142
c58c92f5
DE
1432009-06-16 David Edelsohn <edelsohn@gnu.org>
144
145 * doc/install.texi (*-*-aix): Update explanation of XLC bootstrap.
146 GCC can bootstrap on AIX with GNU Binutils 2.20.
147
95228603
ILT
1482009-06-16 Ian Lance Taylor <iant@google.com>
149
150 * Makefile.in (tree-vect-stmts.o): Depend upon $(TOPLEV_H).
151
9c727c9a
ILT
1522009-06-16 Ian Lance Taylor <iant@google.com>
153
154 * toplev.h (floor_log2): If GCC_VERSION >= 3004, declare as static
155 inline, not extern inline.
156 (exact_log2): Likewise.
157 * toplev.c (floor_log2): Only define if GCC_VERSION < 3004. Don't
158 test CLZ_HWI.
159 (exact_log2): Likewise, but don't test CTZ_HWI.
160
5fd8300b
ILT
1612009-06-16 Ian Lance Taylor <iant@google.com>
162
163 * bitmap.c (bitmap_clear): Don't declare as inline.
164 * gimple.c (gimplify_assign): Likewise.
165 * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
166 * haifa-sched.c (insn_cost): Don't declare with HAIFA_INLINE.
167 (sched_scan_info): Remove duplicate definition.
168
7d882b83
ILT
1692009-06-16 Ian Lance Taylor <iant@google.com>
170
171 * c-common.c (skip_evaluation): Don't define.
172 (c_inhibit_evaluation_warnings): Define global variable.
173 (overflow_warning): Check c_inhibit_evaluation_warnings rather
174 than skip_evaluation.
175 (convert_and_check, warn_for_div_by_zero): Likewise.
176 * c-common.h (skip_evaluation): Don't declare.
177 (c_inhibit_evaluation_warnings): Declare.
178 * c-parser.c (c_parser_typeof_specifier): Set
179 c_inhibit_evaluation_warnings rather than skip_evaluation.
180 (c_parser_conditional_expression): Likewise.
181 (c_parser_binary_expression): Likewise.
182 (c_parser_sizeof_expression): Likewise.
183 (c_parser_alignof_expression): Likewise.
184 * c-typeck.c (build_indirect_ref): Check
185 c_inhibit_evaluation_warnings rather than skip_evaluation.
186 (build_conditional_expr, build_binary_op): Likewise.
187
2e407842
RG
1882009-06-16 Richard Guenther <rguenther@suse.de>
189
190 * tree-ssa-alias.c (is_escape_site): Remove.
191 * tree-ssa-alias.h (enum escape_type): Remove.
192 (is_escape_site): Likewise.
193 * tree-ssa-structalias.c (find_func_aliases): Handle escapes
194 via casts and asms without deferring to is_escape_site.
195
f2ff8872
JJ
1962009-06-16 Jakub Jelinek <jakub@redhat.com>
197
198 PR middle-end/40446
199 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Don't
200 use gen_lowpart if op0 has complex mode.
201
de70bb20
RG
2022009-06-16 Richard Guenther <rguenther@suse.de>
203
204 * tree-ssa-structalias.c (do_ds_constraint): Stores in global
205 variables add them to ESCAPED.
206 (find_func_aliases): Do not make all indirectly stored values
207 escaped.
208
daa0eeb8
RAE
2092009-06-16 Rafael Avila de Espindola <espindola@google.com>
210
211 * config/i386/winnt.c (i386_pe_encode_section_info): Update call to
212 make_decl_one_only.
213
0ec19b8c
MJ
2142009-06-16 Martin Jambor <mjambor@suse.cz>
215
216 PR tree-optimization/40432
217 * tree-sra.c (sra_modify_assign): When creating VIEW_CONVERT_EXPR,
218 check whether we need to force gimple register operand.
219
2b26b801
MJ
2202009-06-16 Martin Jambor <mjambor@suse.cz>
221
222 PR tree-optimization/40413
223 * tree-sra.c (load_assign_lhs_subreplacements): Pass offset to
224 build_ref_for_offset.
225 (propagate_subacesses_accross_link): Fix a typo in a comment.
226
7c5222ff
IR
2272009-06-16 Ira Rosen <irar@il.ibm.com>
228
229 * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
230 with additional parameter.
231 * tree-vectorizer.h (enum vect_def_type): Add new value
232 vect_nested_cycle.
233 (enum vect_relevant): Add comments.
234 (vect_is_simple_reduction): Add new argument.
235 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Add comments.
236 Detect nested cycles.
237 (vect_is_simple_reduction): Update documentation, add an argument to
238 distinguish inner-loop reduction from nested cycle, detect nested
239 cycles, fix printings and indentation, don't swap operands in case
240 of nested cycle.
241 (get_initial_def_for_reduction): Handle subtraction.
242 (vect_create_epilog_for_reduction): Add new argument to specify
243 reduction variable.
244 (vect_finalize_reduction): Handle subtraction, fix comments.
245 (vectorizable_reduction): Handle nested cycles. In case of nested cycle
246 keep track of the reduction variable position. Call
247 vect_is_simple_reduction with additional parameter. Use original
248 statement code in reduction epilogue for nested cycle. Call
249 vect_create_epilog_for_reduction with additional parameter.
250 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Assert inner-loop
251 vectorization.
252 (vect_recog_widen_sum_pattern): Likewise.
253 * tree-vect-stmts.c (process_use): Distinguish between nested cycles
254 and reductions.
255 (vect_mark_stmts_to_be_vectorized): Likewise.
256 (vect_get_vec_def_for_operand): Handle nested cycles.
257
d376d545
RW
2582009-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
259
260 * doc/invoke.texi (Debugging Options): Fix option index entries
261 for -fdump-statistics, -frandom-seed add entries for
262 -fdump-tree-original, -fdump-tree-optimized, -frandom-seed.
263 (FRV Options): Fix entries for -mTLS, -mtls.
264 (HPPA Options): Fix entries for -mgnu-ld, -mhp-ld.
265 (i386 and x86-64 Options): Fix entry for -mno-red-zone.
266 (M68hc1x Options): Fix @itemx for -mnominmax.
267 (MCore Options): Fix entry for -mno-lsim.
268 (MMIX Options): Fix entry for -mabi=mmixware.
269 (PDP-11 Options): Fix entry for -mbcopy-builtin.
270
bd117bb6
BS
2712009-06-16 Basile Starynkevitch <basile@starynkevitch.net>
272
273 * doc/plugins.texi (Interacting with the GCC Garbage Collector):
274 Mention the plugin mode of gengtype.
275 * doc/gty.texi (Source Files Containing Type Information):
276 Likewise.
277 * gengtype.c: Updated copyright.
278 (plugin_files, nb_plugin_files) Added new static variables.
279 (measure_input_list) Care about plugin_files.
280 (write_rtx_next): Added early return in plugin mode.
281 (create_file): Updated copyright year in generated file. Added
282 asserts.
283 (oprintf): Added early return if NULL outf.
284 (get_output_file_with_visibility): Care of plugin_files.
285 (get_output_file_name): May return null.
286 (write_local): Added early return.
287 (put_mangled_filename): Ditto.
288 (finish_root_table): Added check for base_files.
289 (write_roots): Care about null when plugins.
290 (main): Added plugin mode.
291
e1b7793c
ILT
2922009-06-15 Ian Lance Taylor <iant@google.com>
293
294 * df-problems.c (df_simulate_one_insn_forwards): Fix braces in
295 switch.
296 * gcov.c (read_count_file): Add braces around variables declared
297 before label.
298
299 * c.opt (Wjump-misses-init): New warning.
300 * c-opts.c (c_common_handle_option): Set warn_jump_misses_init for
301 -Wall and -Wc++-compat if not already set.
302 (c_common_post_options): Clear warn_jump_misses_init if it was not
303 set.
304 * c-decl.c (struct c_binding): Change type field to a union with
305 new label field. Make it the first field in the struct. Update
306 references to type to use u.type instead.
307 (struct c_spot_bindings): Define.
308 (struct c_goto_bindings): Define.
309 (c_goto_bindings_p): Define, along with VECs.
310 (struct c_label_vars): Define.
311 (struct c_scope): Add has_label_bindings field.
312 (bind_label, set_spot_bindings): New static functions.
313 (decl_jump_unsafe, update_spot_bindings): New static functions.
314 (update_label_decls): New static function.
315 (pop_scope): Call update_label_decls. Don't call c_end_vm_scope.
316 Update binding u.label field to shadowed field.
317 (c_binding_start_stmt_expr): New function.
318 (c_binding_end_stmt_expr): New function.
319 (pushdecl): Don't call c_begin_vm_scope.
320 (make_label): Add defining and p_label_vars parameters. Change
321 all callers.
322 (lookup_label): Correct test for whether a label has not yet been
323 defined. Call bind_label rather than bind.
324 (warn_about_goto): New static function.
325 (lookup_label_for_goto): New function.
326 (declare_label): Call bind_label rather than bind.
327 (check_earlier_gotos): New static function.
328 (define_label): Don't give errors about jumping into statement
329 expressions or scopes of variably modified types. Call
330 set_spot_bindings and check_earlier_gotos. Call bind_label
331 instead of bind. Don't set label_context_stack_se or
332 label_context_stack_vm.
333 (c_get_switch_bindings): New function.
334 (c_release_switch_bindings): New function.
335 (c_check_switch_jump_warnings): New function.
336 (start_function): Don't set label_context_stack_se or
337 label_context_stack_vm.
338 (finish_function): Likewise.
339 * c-typeck.c (label_context_stack_se): Don't define.
340 (label_context_stack_vm): Don't define.
341 (c_finish_goto_label): Call lookup_label_for_goto rather than
342 lookup_label. Don't give errors about jumping into a statement
343 expression or the scope of a variably modified type. Don't set
344 label_context_stack_se or label_context_stack_vm.
345 (struct c_switch): Remove blocked_stmt_expr and blocked_vm
346 fields. Add bindings field.
347 (c_start_case): Don't set deleted fields. Set bindings field.
348 (do_case): Rework order of tests. Don't check blocked_stmt_expr
349 or blocked_vm. Call c_check_switch_jump_warnings.
350 (c_finish_case): Don't test blocked_stmt_expr field. Call
351 c_release_switch_bindings.
352 (c_begin_stmt_expr): Don't increment blocked_stmt_expr in
353 c_switch_stack. Don't walk label_context_stack_se labels. Don't
354 set label_context_stack_se. Call c_bindings_start_stmt_expr.
355 (c_finish_stmt_expr): Don't decrement blocked_stmt_expr in
356 c_switch_stack. Don't walk label_context_stack_se labels. Don't
357 set label_context_stack_se. Call c_bindings_end_stmt_expr.
358 (c_begin_vm_scope, c_end_vm_scope): Don't define.
359 * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR): Don't define.
360 (C_DECL_UNDEFINABLE_STMT_EXPR): Don't define.
361 (C_DECL_UNJUMPABLE_VM): Don't define.
362 (C_DECL_UNDEFINABLE_VM): Don't define.
363 (struct c_label_list): Don't define.
364 (struct c_label_context_se): Don't define.
365 (struct c_label_context_vm): Don't define.
366 (struct c_spot_bindings): Declare.
367 (c_bindings_start_stmt_expr): Declare.
368 (c_bindings_end_stmt_expr): Declare.
369 (lookup_label_for_goto): Declare.
370 (c_get_switch_bindings, c_release_switch_bindings): Declare.
371 (c_check_switch_jump_warnings): Declare.
372 (label_context_stack_se, label_context_stack_vm): Don't declare.
373 (c_finish_goto_label): Update declaration.
374 (c_begin_vm_scope, c_end_vm_scope): Don't declare.
375 * doc/invoke.texi (Option Summary): Mention -Wjump-misses-init.
376 (Warning Options): Document -Wjump-misses-init.
377
98a129b9
JJ
3782009-06-15 Jakub Jelinek <jakub@redhat.com>
379
380 * tree-object-size.c (addr_object_size): Fix a pasto in the last
381 change.
382
19751f1f
RAE
3832009-06-15 Rafael Avila de Espindola <espindola@google.com>
384
385 * cgraph.c (cgraph_make_node_local): Use DECL_COMDAT_GROUP.
386
d40eb158
AH
3872009-06-15 Aldy Hernandez <aldyh@redhat.com>
388
389 * except.c (init_eh): Use BUILTINS_LOCATION when calling build_decl.
390
3912009-06-15 Aldy Hernandez <aldyh@redhat.com>
392
393 * tree-eh.c (lower_try_finally_switch): Initialize tf_loc.
394
fc26fae3
RAE
3952009-06-15 Rafael Avila de Espindola <espindola@google.com>
396
397 * cgraphunit.c (cgraph_function_versioning,save_inline_function_body):
398 Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
399 * cgraph.c (cgraph_create_virtual_clone): Use DECL_COMDAT_GROUP.
400 * config/i386/i386.c (ix86_file_end): Compute DECL_COMDAT_GROUP.
401 * dwarf2asm.c(dw2_force_const_mem): Update call to make_decl_one_only.
402 * langhooks-def.h (lhd_comdat_group, LANG_HOOKS_COMDAT_GROUP): Remove.
403 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_COMDAT_GROUP.
404 * langhooks.c (lhd_comdat_group): Remove.
405 * langhooks.h (lang_hooks_for_decls): Remove comdat_group.
406 * tree.h (DECL_COMDAT_GROUP): New.
407 (DECL_ONE_ONLY): Use DECL_COMDAT_GROUP.
408 (tree_decl_with_vis): Add comdat_group. Remove one_only.
409 (make_decl_one_only): Change signature.
410 * varasm.c (get_emutls_init_templ_addr, emutls_decl): Update call to
411 make_decl_one_only.
412 (make_decl_one_only): Change signature.
413 (default_elf_asm_named_section): Use DECL_COMDAT_GROUP.
414
0eb92735
RG
4152009-06-15 Richard Guenther <rguenther@suse.de>
416
417 PR middle-end/40439
418 * tree.c (widest_int_cst_value): Fix bootstrap on 32bit HWI hosts.
419
0ab352d5
AK
4202009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
421
422 * tree-ssa-math-opts.c: Remove extra divide.
423
677fbff4
AK
4242009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
425
426 * config/s390/s390.md ("bswap<mode>2"): Only available on z900.
427
03bd2f1a
AK
4282009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
429
430 * passes.c: Add bswap pass.
431 * tree-pass.h: Add pass_optimize_bswap declaration.
432 * tree-ssa-math-opts.c: Include diagnostics.h for print_gimple_stmt.
433 Include rtl.h, expr.h and optabs.h for optab_handler check.
434 (struct symbolic_number, pass_optimize_bswap): New definition.
435 (do_shift_rotate, verify_symbolic_number_p): New functions.
436 (find_bswap_1, find_bswap, execute_optimize_bswap): New functions.
437 (gate_optimize_bswap): New function.
438 * tree.c (widest_int_cst_value): New function.
439 * tree.h (widest_int_cst_value): Prototype added.
440
fb4c4640
SB
4412009-06-14 Steven Bosscher <steven@gcc.gnu.org>
442
443 * cfgcleanup.c (old_insns_match_p): Remove code to substitute
444 REG_EQUAL/REG_EQUIV notes.
445
1d24fdd9
RG
4462009-06-14 Richard Guenther <rguenther@suse.de>
447
448 PR middle-end/40389
449 * gimple.c (walk_stmt_load_store_addr_ops): The LHS of a call
450 has its address taken if NRV was applied and it is addressable.
451 * tree-ssa-structalias.c (get_constraint_for_address_of): New
452 function split out from ...
453 (get_constraint_for_1): ... here.
454 (handle_rhs_call): Use it to mark the return slot escaped if
455 it is addressable and NRV was applied.
456
4b29c5e5
AH
4572009-06-13 Aldy Hernandez <aldyh@redhat.com>
458
459 * config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin):
460 Change first argument type to location_t.
461 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Same.
462 Do not set input_location.
463 Use loc instead of input_location throughout.
464
e1e6dc73
RG
4652009-06-13 Richard Guenther <rguenther@suse.de>
466
1d24fdd9 467 PR tree-optimization/40421
e1e6dc73
RG
468 * tree-predcom.c (should_unroll_loop_p): Remove.
469 (tree_predictive_commoning_loop): Use can_unroll_loop_p.
470
8012b923
MM
4712009-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
472
473 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
474 Add location argument.
475
4c4bde29
AH
4762009-06-13 Aldy Hernandez <aldyh@redhat.com>
477
478 * config/alpha/alpha.c (alpha_build_builtin_va_list): Pass location to
479 build_decl.
480 * config/s390/s390.c (s390_build_builtin_va_list): Same.
481 (s390_gimplify_va_arg): Pass location to create_artificial_label.
482 * config/spu/spu-protos.h: Add location to
483 spu_resolve_overloaded_builtin.
484 * config/spu/spu.c (spu_build_builtin_va_list): Pass location to
485 spu_build_builtin_va_list.
486 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Add location
487 argument. Pass location to build_function_call_vec.
488 * config/sh/sh.c (sh_build_builtin_va_list): Pass location to
489 build_decl.
490 (emit_fpu_switch): Same.
491 (sh_gimplify_va_arg_expr): Pass location to create_artificial_label.
492 * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Pass location
493 to build_decl and create_artificial_label.
494 (xtensa_gimplify_va_arg_expr): Same.
495 * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list): Same.
496 (xstormy16_gimplify_va_arg_expr): Same.
497 * config/iq2000/iq2000.c (iq2000_expand_prologue): Same.
498 * config/arm/arm.c (arm_build_builtin_va_list): Same.
499 * config/mips/mips.c (mips_build_builtin_va_list): Same.
500 (mips16_build_function_stub): Same.
501 (mips16_build_call_stub): Same.
502
81beb031
RE
5032009-06-13 Richard Earnshaw <rearnsha@arm.com>
504
505 PR target/40327
506 * arm/constraints.md (Pa, Pb): New constraints.
507 * arm/arm.md (thumb1_addsi3): Support more complex additions. Add a
508 split pattern to deal with them.
509
98f6c600
JS
5102009-06-13 Joerg Sonnenberger <joerg@britannica.bec.de>
511
512 * doc/invoke.texi: Add missing option -Wp,OPTION in list,
513 fix index entry for -Xpreprocessor.
514
71856685
AH
5152009-06-12 Aldy Hernandez <aldyh@redhat.com>
516
517 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
518 Add location argument to build_decl call.
519 * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Same.
520 (rs6000_init_builtins): Same.
521 (spe_init_builtins): Same.
522 (rs6000_gimplify_va_arg): Add location argument to
523 create_artificial_label call.
524
756b65f5
SB
5252009-06-12 Steven Bosscher <steven@gcc.gnu.org>
526
527 * timevar.def (TV_COMBINE_STACK_ADJUST): New timevar.
528 * combine-stack-adj.c (pass_stack_adjustments): Use it.
529 * Makefile.in: Fix GGC dependency for gcse.o.
530
c2255bc4
AH
5312009-06-12 Aldy Hernandez <aldyh@redhat.com>
532
533 * tree-pretty-print.c (dump_generic_node): Dump column numbers.
534 * gimple-pretty-print.c (dump_gimple_stmt): Same.
535 * gimplify.c (gimplify_modify_expr): Set location for GIMPLE_ASSIGNs
536 created.
537 * c-parser.c (c_parser_binary_expression): Use current column while
538 building binary operations.
539 * common.opt (fshow-column): Enable by default.
540 * tree-vrp.c (check_array_ref): Use warning_at.
541 (check_array_bounds): Use location from call back if expr has no
542 location.
543 * tree.h: Add location argument to maybe_fold_*.
544 * tree-ssa-ccp.c (ccp_fold): Pass location to maybe_fold_*.
545 (maybe_fold_offset_to_array_ref): Add location argument and use it.
546 (maybe_fold_offset_to_component_ref): Same.
547 (maybe_fold_offset_to_reference): Same.
548 (maybe_fold_offset_to_address): Same.
549 (maybe_fold_stmt_indirect): Same.
550 (maybe_fold_stmt_addition): Same.
551 (fold_stmt_r): Pass location to maybe_fold_*.
552 (fold_gimple_assign): Same.
553 * c-tree.h: Add location argument to finish_decl,
554 default_function_array_conversion, store_init_value.
555 * c-decl.c (define_label): Use error_at.
556 (c_make_fname_decl): Pass location to finish_decl.
557 (finish_decl): New location argument.
558 (build_compound_literal): Pass location to store_init_value.
559 (grokdeclarator): Pass location to finish_decl.
560 (grokfield): Same.
561 * c-typeck.c (array_to_pointer_conversion): New location argument.
562 (function_to_pointer_conversion): Same.
563 (default_function_array_conversion): Same.
564 (parser_build_unary_op): Pass location to overflow_warning.
565 (parser_build_binary_op): Same. Use warning_at.
566 (build_unary_op): Pass location to array_to_pointer_conversion.
567 (build_c_cast): Pass location to digest_init.
568 (build_modify_expr): New location argument.
569 (convert_for_assignment): Same.
570 (store_init_value): Same.
571 (digest_init): Same.
572 (output_init_element): Pass location to digest_init and
573 array_to_pointer_conversion.
574 (c_finish_return): Pass location to convert_for_assignment.
575 * gimplify.c (gimplify_conversion): Pass location to
576 maybe_fold_offset_to_address.
577 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Pass location
578 to maybe_fold_stmt_addition.
579 * c-omp.c (c_finish_omp_atomic): Pass new location to
580 build_modify_expr.
581 (c_finish_omp_for): Same.
582 * c-common.c (overflow_warning): New argument.
583 * c-common.h: New argument to build_modify_expr, overflow_warning.
584 * c-parser.c (c_parser_declaration_or_fndef): Pass location to
585 finish_decl.
586 (c_parser_initializer): Pass location to
587 default_function_array_conversion.
588 (c_parser_initelt): Same.
589 (c_parser_initval): Same.
590 (c_parser_asm_operands): Same.
591 (c_parser_expr_no_commas): Same. Pass location to build_modify_expr.
592 (c_parser_conditional_expression): Same.
593 (c_parser_binary_expression): Add location info to stack. Use it.
594 (c_parser_unary_expression): Pass location to
595 default_function_array_conversion, parser_build_unary_op,
596 build_indirect_ref, c_parser_postfix_expression_after_primary.
597 (c_parser_postfix_expression_after_primary): New location argument.
598 Use it.
599 (c_parser_expression_conv): Pass location to
600 default_function_array_conversion.
601 (c_parser_expr_list): Same.
602 (c_parser_omp_atomic): Same.
603 (c_parser_omp_for_loop): Same.
604 * c-tree.h: (struct c_declarator): Add comment to id_loc.
605 (build_array_declarator): New argument.
606 * c-decl.c (build_array_declarator): Add location argument.
607 (grokdeclarator): Set id_loc for cdk_array.
608 * c-parser.c (c_parser_direct_declarator_inner): Pass location to
609 build_array_declarator.
610 * tree.c (build_omp_clause): Add location argument.
611 * tree.h (OMP_CLAUSE_HAS_LOCATION): New macro.
612 (OMP_CLAUSE_LOCATION): New macro.
613 (struct tree_omp_clause): Add location field.
614 (build_omp_clause): Add argument.
615 * testsuite/gcc.dg/gomp/for-1.c: Fix column.
616 * cp/pt.c (tsubst_omp_for_iterator): Pass location to
617 build_omp_clause.
618 * cp/parser.c (cp_parser_omp_var_list_no_open): Same.
619 (cp_parser_omp_clause_collapse): Same.
620 (cp_parser_omp_clause_default): Same.
621 (cp_parser_omp_clause_if): Same.
622 (cp_parser_omp_clause_nowait): Same.
623 (cp_parser_omp_clause_num_threads): Same.
624 (cp_parser_omp_clause_ordered): Same.
625 (cp_parser_omp_clause_schedule): Same.
626 (cp_parser_omp_clause_untied): Same.
627 (cp_parser_omp_for_loop): Same.
628 (cp_parser_omp_parallel): Pass location to c_split_parallel_clauses.
629 * c-tree.h (c_start_case): Add location argument.
630 (c_process_expr_stmt): Same.
631 (c_finish_goto_*): Same.
632 * tree-parloops.c (initialize_reductions): Pass location to
633 build_omp_clause.
634 (create_parallel_loop): Same.
635 * fortran/trans-openmp.c (gfc_trans_omp_variable_list): Same.
636 (gfc_trans_omp_reduction_list): Same.
637 (gfc_trans_omp_clauses): Same.
638 (gfc_trans_omp_do): Same.
639 * c-typeck.c (c_finish_goto_label): Same.
640 (c_finish_goto_ptr): New location argument.
641 (c_start_case): Same.
642 (emit_side_effect_warnings): Same.
643 (c_process_expr_stmt): Same.
644 (c_finish_stmt_expr): Same.
645 (c_finish_omp_clauses): Use error_at instead of error.
646 * gimplify.c (gimplify_adjust_omp_clauses_1): Pass location to
647 build_omp_clause.
648 * c-omp.c (c_split_parallel_clauses): New location argument.
649 * tree-nested.c (convert_nonlocal_reference_stmt): Pass location
650 to build_omp_clause.
651 (convert_local_reference_stmt): Same.
652 (convert_gimple_call): Same.
653 * c-common.h (c_split_parallel_clauses): New argument.
654 * c-parser.c (c_parser_statement_after_labels): Pass location to
655 c_finish_goto_label.
656 (c_parser_switch_statement): Pass location to c_start_case.
657 (c_parser_for_statement): Pass location to c_finish_expr_stmt,
658 and c_process_expr_stmt.
659 (c_parser_omp_variable_list): Add location argument.
660 (c_parser_omp_clause_collapse): Pass location to
661 build_omp_clause.
662 (c_parser_omp_clause_default): Same.
663 (c_parser_omp_clause_if): Same.
664 (c_parser_omp_clause_num_threads): Same.
665 (-c_parser_omp_clause_ordered): Same.
666 (c_parser_omp_clause_reduction): Pass location to
667 c_parser_omp_variable_list.
668 (c_parser_omp_clause_schedule): Pass location to build_omp_clause.
669 (c_parser_omp_clause_untied): Same.
670 (c_parser_omp_for_loop): Pass location to c_process_expr_stmt.
671 (c_parser_omp_parallel): Pass location to
672 c_split_parallel_clauses.
673
674 * c-tree.h (check_for_loop_decls, undeclared_variable,
675 build_component_ref, build_array_ref, build_external_ref,
676 c_expr_sizeof_expr, c_expr_sizeof_type, parser_build_unary_op,
677 build_conditional_expr, build_compound_expr, c_cast_expr,
678 build_c_cast, build_asm_expr, c_end_compound_stmt, c_finish_stmt_expr,
679 c_finish_return, c_finish_omp_parallel, c_finish_omp_task): New
680 argument.
681 * c-semantics.c (build_stmt): Same.
682 (build_case_label): Same.
683 * c-decl.c (c_finish_incomplete_decl): Pass location on down.
684 (undeclared_variable): New argument.
685 (make_label): Same.
686 (lookup_label): Pass location on down.
687 (define_label): Same.
688 (finish_decl): Same.
689 (build_compound_literal): Same.
690 (finish_struct): Same.
691 (finish_function): Do not set location here.
692 (check_for_loop_decls): New argument.
693 * tree.c (save_expr): Set location.
694 (build_empty_stmt): New argument.
695 * tree.h (build_empty_stmt): New argument to build_empty_stmt.
696 (CAN_HAVE_LOCATION_P): Make sure we have a non empty node.
697 * builtins.c (gimplify_va_arg_expr): Use locations.
698 (expand_builtin_sync_operation): Same.
699 * c-typeck.c (build_component_ref): New argument.
700 (build_array_ref): Same.
701 (build_external_ref): Same.
702 (c_expr_sizeof_expr): Same.
703 (c_expr_sizeof_type): Same.
704 (parser_build_unary_op): Same.
705 (build_conditional_expr): Same.
706 (build_compound_expr): Pass location on down.
707 (build_compound_expr): New argument.
708 (build_c_cast): Same.
709 (c_cast_expr): Same.
710 (build_asm_expr): Same.
711 (c_finish_return): Same.
712 (c_process_expr_stmt): Pass location on down.
713 (c_finish_stmt_expr): New argument.
714 (push_clenaup): Same.
715 (c_finish_omp_parallel): Same.
716 (c_finish_omp_task): Same.
717 * gimplify.c (gimplify_call_expr): Pass location on down.
718 * c-omp.c (c_finish_omp_master): New argument.
719 (c_finish_omp_critical): Same.
720 (c_finish_omp_ordered): Same.
721 (c_finish_omp_barrier): Same.
722 (-c_finish_omp_taskwait): Same.
723 (c_finish_omp_atomic): Same.
724 (c_finish_omp_flush): Same.
725 * tree-inline.c (copy_tree_body_r): Pass location on down.
726 (inline_forbidden_p): Remove use of input_location.
727 * c-gimplify.c (c_build_bind_expr): New argument.
728 * c-common.c (c_common_truthvalue_conversion): Pass location on down.
729 (c_sizeof_or_alignof_type): New argument.
730 (c_alignof_expr): Same.
731 (build_va_arg): Same.
732 (c_add_case_label): Same.
733 * c-common.h (c_sizeof_or_alignof_type, c_alignof_expr,
734 c_sizeof, c_alignof, build_va_arg, build_stmt, build_case_label,
735 c_build_bind_expr, objc_build_selector_expr, objc_build_throw_stmt,
736 c_finish_omp_master, c_finish_omp_critical, c_finish_omp_ordered,
737 c_finish_omp_barrier, c_finish_omp_atomic, c_finish_omp_flush,
738 c_finish_omp_taskwait, c_finish_omp_for, c_split_parallel_clauses):
739 New argument.
740 * stub-objc.c (objc_build_selector_expr): Same.
741 (objc_build_throw_stmt): Same.
742 * c-parser.c (c_parser_declaration_or_fndef): Pass location on down.
743 (c_parser_initelt): Same.
744 (c_parser_compound_statement): Same.
745 (c_parser_compound_statement_nostart): Same.
746 (c_parser_label): Same.
747 (c_parser_statement_after_labels): Same.
748 (c_parser_if_body): Same.
749 (c_parser_else_body): Same.
750 (c_parser_if_statement): Same.
751 (c_parser_switch_statement): Same.
752 (c_parser_while_statement): Same.
753 (c_parser_do_statement): Same.
754 (c_parser_for_statement): Same.
755 (c_parser_asm_statement): Same.
756 (c_parser_conditional_expression): Same.
757 (c_parser_binary_expression): Same.
758 (c_parser_cast_expression): Same.
759 (c_parser_unary_expression): Same.
760 (c_parser_sizeof_expression): Same.
761 (c_parser_alignof_expression): Same.
762 (c_parser_postfix_expression): Same.
763 (c_parser_expression): Same.
764 (c_parser_objc_receiver): Same.
765 (c_parser_omp_variable_list): Same.
766 (c_parser_omp_structured_block): Same.
767 (c_parser_omp_atomic): New argument.
768 (c_parser_omp_barrier): Same.
769 (c_parser_omp_critical): Same.
770 (c_parser_omp_flush): Pass location on down.
771 (c_parser_omp_for_loop): New argument.
772 (c_parser_omp_for): Same.
773 (c_parser_omp_master): Same.
774 (c_parser_omp_ordered): Same.
775 (c_parser_omp_sections_scope): Same.
776 (c_parser_omp_sections): Same.
777 (c_parser_omp_parallel): Same.
778 (c_parser_omp_single): Same.
779 (c_parser_omp_task): Same.
780 (c_parser_omp_taskwait): Pass location on down.
781 (c_parser_omp_construct): Same.
782 (c_parser_omp_threadprivate): Same.
783 * dwarf2asm.c, targhooks.c, optabs.c, tree.c, tree.h, target.h,
784 builtins.c, omp-low.c, cgraphunit.c, tree-call-cdce.c,
785 tree-ssa-alias.c, gimple-low.c, c-tree.h, expr.c, tree-parloops.c,
786 c-decl.c, tree-eh.c, langhooks.c, function.c, stor-layout.c,
787 c-typeck.c, gimplify.c, c-pragma.c, expmed.c, except.c, coverage.c,
788 emit-rtl.c, cfgexpand.c, tree-mudflap.c, varasm.c, tree-nested.c,
789 rtl.h, tree-inline.c, tree-profile.c, c-common.c, c-common.h,
790 tree-switch-conversion.c, tree-cfg.c, ipa-struct-reorg.c, c-parser.c,
791 config/i386/i386.c, stmt.c:
792 Add location argument to the following function definitions and/or
793 function calls: build_decl, objcp_start_struct, objcp_finish_struct,
794 start_struct, finish_struct, PUSH_FIELD, create_artificial_label,
795 cp_make_fname_decl, pushtag, implicitly_declare, c_make_fname_decl,
796 build_compound_literal, parser_xref_tag, resolve_overloaded_builtin,
797 do_case, c_finish_bc_stmt, build_compound_literal,
798 build_function_call.
799 * c-decl.c (build_compound_literal): Add location argument.
800 Make all diagnostic calls use location.
801 (start_struct): Same.
802 (finish_struct): Same.
803 (start_enum): Same.
804 (build_enumerator): Same.
805 (start_function): Same.
806 (grokdeclarator): Make all diagnostic calls use location.
807 (store_parm_decls_oldstyle): Same.
808 * c-typeck.c (build_function_call): Add location argument.
809 Make all diagnostic calls use location.
810 (do_case): Same.
811 (c_finish_bc_stmt): Same.
812 * tree-nested.c (get_trampoline_type): Add argument.
813 Pass location to build_decl.
814 (lookup_tramp_for_decl): Pass location to get_trampoline_type.
815 * rtl.h (RTL_LOCATION): New.
816 * c-common.c (c_add_case_label): Add location argument.
817 Make all diagnostic calls use location.
818 * c-common.h: Add location argument to make_fname_decl, do_case,
819 c_add_case_label, build_function_call, resolve_overloaded_builtin.
820 * c-parser.c (c_parser_enum_specifier): Rename ident_loc to enum_loc.
821 Set it appropriately for every case. Pass enum_loc to start_enum
822 call. Pass value_loc first to build_enumerator. Pass enum_loc to
823 parser_xref_tag.
824 (c_parser_struct_or_union_specifier): Save location. Use it for
825 start_struct, finish_struct, and parser_xref_tag.
826
3d8b2a98
ILT
8272009-06-12 Ian Lance Taylor <iant@google.com>
828
829 * fold-const.c (fold_unary): Rename local variable and to
830 and_expr.
831
832 * c-opts.c (c_common_handle_option): For -Wc++-compat set
833 cpp_opts->warn_cxx_operator_names.
834
737142ce
AP
8352009-06-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
836
837 PR tree-opt/38865
838 * tree-ssa-sccvn.c (visit_reference_op_load): If vn_reference_lookup
839 is returns NULL and OP is a VCE, look through the VCE.
840
d3a0d55d
ILT
8412009-06-12 Ian Lance Taylor <iant@google.com>
842
843 PR bootstrap/40430
844 * collect2.c (main): Use CONST_CAST2 in code inside #if
845 LINK_ELIMINATE_DUPLICATE_LDIRECTORIES.
846
f85882d8
JY
8472009-06-12 Joey Ye <joey.ye@intel.com>
848
849 PR middle-end/39146
850 * cfgexpand.c (get_decl_align_unit): Update
851 max_used_stack_slot_alignment with align instead of
852 stack_alignment_needed.
853
854 * function.c (assign_stack_local_1): Update
855 max_used_stack_slot_alignment with alignment_in_bits instead
856 of stack_alignment_needed.
857 (locate_and_pad_parm): Don't update max_used_stack_slot_alignment
858 here.
859
fc9f468b
JJ
8602009-06-12 Jakub Jelinek <jakub@redhat.com>
861
862 * dwarf2out.c (last_var_location_insn): New variable.
863 (dwarf2out_end_epilogue): Clear last_var_location_insn.
864 (dwarf2out_var_location): Don't record anything after last real
865 insn. Only change labels if there were any real instructions
866 in between last note and this one, or if changed sections.
867
7c1db202
RH
8682009-06-11 Richard Henderson <rth@redhat.com>
869
f85882d8 870 * alpha.c (alpha_expand_prologue): Add a REF_CFA_REGISTER
15cb981a
RH
871 note when storing the frame pointer in a register.
872 (FRP): Don't redefine to nothing for epilogue.
873 (alpha_expand_epilogue): Mark register and sp restores.
874 (unicosmk_gen_dsib): Don't mark weird frame pointer adjust.
875
7c1db202
RH
876 * config/alpha/alpha.c (alpha_emit_setcc): Fix test for
877 when gen_lowpart is needed.
878
f2ae7631
RH
8792009-06-11 Richard Henderson <rth@redhat.com>
880
42755c21
RH
881 * dwarf2out.c (def_cfa_1): Likewise for DW_CFA_cfa_offset.
882
f2ae7631
RH
883 * dwarf2out.c (need_data_align_sf_opcode): New.
884 (div_data_align): Move earlier.
885 (def_cfa_1, reg_save): Use it.
886
8ed0ce99
L
8872009-06-11 H.J. Lu <hongjiu.lu@intel.com>
888
889 * config/i386/i386.c (OPTION_MASK_ISA_CRC32_SET): New.
890 (OPTION_MASK_ISA_CRC32_UNSET): Likewise.
891 (ix86_handle_option): Handle OPT_mcrc32.
892 (ix86_target_string): Add -mcrc32.
893 (bdesc_args): Enable crc32 builtins with OPTION_MASK_ISA_CRC32.
894
895 * config/i386/i386.h (TARGET_CRC32): New.
896
897 * config/i386/i386.md (sse4_2_crc32<mode>): Also check
898 TARGET_CRC32.
899 (sse4_2_crc32di): Likewise.
900
901 * config/i386/i386.opt (mcrc32: New.
902
903 * doc/invoke.texi: Document -mcrc32.
904
9fd68a1f
RH
9052009-06-11 Richard Henderson <rth@redhat.com>
906
8ed0ce99 907 * common.opt (gdwarf-): Accept a version number.
9fd68a1f
RH
908 * doc/invoke.texi (gdwarf-): Update docs.
909 * opth-gen.awk: Special case -gdwarf+ to OPT_gdwarfplus.
910 * opts.c (common_handle_option) [OPT_gdwarf_]: Verify dwarf
911 version level, and record it.
912
913 * dwarf2.h (DW_CIE_VERSION): Remove.
914 * dwarf2out.c (DWARF_VERSION): Remove.
915 (add_fde_cfi): Skip DW_CFA_set_loc addition for dwarf3.
916 (output_call_frame_info): Use CIE version 3 for dwarf3,
917 or if the return register column is out of range for version 1.
918 (dwarf_stack_op_name): Add all dwarf3 values.
919 (DEBUG_PUBTYPES_SECTION): New.
920 (size_of_die) [dw_val_class_die_ref]: Handle DW_FORM_ref_addr
921 encoding change for dwarf3.
922 (output_die) [dw_val_class_die_ref]: Likewise.
923 (output_compilation_unit_header): Emit correct version for dwarf3.
924 (output_line_info): Likewise.
925 (output_pubnames): Update for DWARF_VERSION removal.
926 (output_aranges): Likewise.
927 (gen_subprogram_die): Emit DW_OP_call_frame_cfa if emitting dwarf3.
928 (dwarf2out_init): Don't ifdef DEBUG_PUBTYPES_SECTION.
929 (dwarf2out_finish): Likewise.
930
4de8ce3b
DD
9312009-06-11 David Daney <ddaney@caviumnetworks.com>
932
933 * system.h (gcc_assert, gcc_unreachable): Revert accidental commit
934 in r148403.
935
468059bc
DD
9362009-06-11 David Daney <ddaney@caviumnetworks.com>
937
938 PR c/39252
939 * doc/extend.texi ( __builtin_unreachable): Document new builtin.
940 * builtins.c (expand_builtin_unreachable): New function.
941 (expand_builtin): Handle BUILT_IN_UNREACHABLE case.
942 * builtins.def (BUILT_IN_UNREACHABLE): Add new builtin.
943 * cfgcleanup.c (try_optimize_cfg): Delete empty blocks with no
944 successors.
945 * cfgrtl.c (rtl_verify_flow_info): Handle empty blocks when
946 searching for missing barriers.
947
b5a6e96f
FXC
9482009-06-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
949
950 * config/darwin.h (LINK_COMMAND_SPEC): Adjust spec to link libcov
951 when -fprofile-generate* was passed.
952 * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
953
6be6462e
AG
9542009-06-11 Anthony Green <green@moxielogic.com>
955
956 * config/moxie/moxie.md: Define length attribute for all
957 instructions.
958 (rCC): Define.
959 (*b<cond:code>): Support limited branch ranges for new PC-relative
960 branch instructions.
961 * config/moxie/moxie.h (HAS_LONG_UNCOND_BRANCH): Define.
962
caaabe0a
JJ
9632009-06-11 Jakub Jelinek <jakub@redhat.com>
964
e5219642
JJ
965 * config/i386/i386.c (min_insn_size): Use get_attr_length
966 for normal insns other than TYPE_MULTI, TYPE_OTHER and TYPE_FCMP.
967 For __asm return 0.
968
caaabe0a
JJ
969 * config/i386/i386.c (ix86_pad_returns): Use emit_jump_insn_before
970 instead of emit_insn_before.
971
a567fa6a
ILT
9722009-06-10 Ian Lance Taylor <iant@google.com>
973
974 PR bootstrap/40408
975 * graphite.c (add_conditions_to_domain): Change SWITCH_EXPR to
976 GIMPLE_SWITCH.
977
6a753d5f
RE
9782009-06-10 Revital Eres <eres@il.ibm.com>
979
980 * passes.c (init_optimization_passes): Reschedule
981 predictive-commoning pass before complete unroll pass.
982
a550d677
MJ
9832009-06-10 Martin Jambor <mjambor@suse.cz>
984
985 * cgraph.c (cgraph_node_can_be_local_p): New function.
986 (cgraph_make_node_local): New function.
987 * cgraph.h (cgraph_node_can_be_local_p): Declare.
988 (cgraph_make_node_local): Declare.
989
d8259b07
NF
9902009-06-10 Nathan Froyd <froydnj@codesourcery.com>
991
992 * tree.h (tree_base): Add packed_flag and user_align fields.
993 Decrease size of spare field.
994 (TYPE_USER_ALIGN): Use user_align from tree_base.
995 (DECL_USER_ALIGN): Likewise.
996 (TYPE_PACKED): Use packed_flag from tree_base.
997 (DECL_PACKED): Likewise.
998 (tree_type): Delete packed_flag and user_align fields. Widen
999 precision field. Widen mode field and shuffle fields to align
1000 mode on an 8-bit boundary.
1001 (tree_decl_common): Delete decl_flag_1 and user_align fields.
1002 Renumber decl_flag_* fields. Fix comments. Widen
1003 decl_common_unused field.
1004 (DECL_HAS_VALUE_EXPR_P): Adjust for renumbering of decl_flag_*
1005 fields.
1006 (DECL_EXTERNAL): Likewise.
1007 (DECL_BIT_FIELD): Likewise.
1008 (DECL_NONADDRESSABLE_P): Likewise.
1009 (TYPE_DECL_SUPRESS_DEBUG): Likewise.
1010 * config/arm/arm-modes.def (XImode): Make it an INT_MODE.
1011
c2569604
ILT
10122009-06-10 Ian Lance Taylor <iant@google.com>
1013
1014 * vec.h (DEF_VEC_ALLOC_I): Use DEF_VEC_NONALLOC_FUNCS_I.
1015 (DEF_VEC_ALLOC_P): Use DEF_VEC_NONALLOC_FUNCS_P.
1016 (DEF_VEC_ALLOC_O): Use DEF_VEC_NONALLOC_FUNCS_O.
1017 (DEF_VEC_ALLOC_FUNC_P): Only define VEC_OP (T,A,alloc).
1018 (DEF_VEC_NONALLOC_FUNCS_P): New macro, broken out of old
1019 DEF_VEC_ALLOC_FUNC_P.
1020 (DEF_VEC_ALLOC_FUNC_O): Only define VEC_OP (T,A,alloc).
1021 (DEF_VEC_NONALLOC_FUNCS_O): New macro, broken out of old
1022 DEF_VEC_ALLOC_FUNC_O.
1023 (DEF_VEC_ALLOC_FUNC_I): Only define VEC_OP (T,A,alloc).
1024 (DEF_VEC_NONALLOC_FUNCS_I): New macro, broken out of old
1025 DEF_VEC_ALLOC_FUNC_I.
1026 (vec_stack_p_reserve, vec_stack_p_reserve_exact): Declare.
1027 (vec_stack_p_reserve_exact_1): Declare.
1028 (vec_stack_o_reserve, vec_stack_o_reserve_exact): Declare.
1029 (vec_stack_free): Declare.
1030 (VEC_stack_alloc): Define.
1031 (DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_FUNC_P_STACK): Define.
1032 (DEF_VEC_ALLOC_O_STACK, DEF_VEC_ALLOC_FUNC_O_STACK): Define.
1033 (DEF_VEC_ALLOC_I_STACK, DEF_VEC_ALLOC_FUNC_I_STACK): Define.
1034 * vec.c (void_p): New type. Call DEF_VEC_P and DEF_VEC_ALLOC_P
1035 for void_p.
1036 (stack_vecs): New static variable.
1037 (vec_stack_p_reserve_exact_1): New function.
1038 (vec_stack_o_reserve_1): New static function.
1039 (vec_stack_p_reserve, vec_stack_p_reserve_exact): New functions.
1040 (vec_stack_o_reserve, vec_stack_o_reserve_exact): New functions.
1041 (vec_stack_free): New function.
1042 * df-scan.c (df_ref): Use DEF_VEC_P and DEF_VEC_ALLOC_P_STACK.
1043 (VEC_df_ref_stack_alloc): Define.
1044 (df_mw_hardreg_ptr): New type. Use DEF_VEC_P and
1045 DEF_VEC_ALLOC_P_STACK.
1046 (VEC_df_mw_hardreg_ptr_stack_alloc): Define.
1047 (struct df_collection_rec): Change _vec fields to VEC. Remove
1048 _use fields.
1049 (df_free_collection_rec): Adjust for new fields.
1050 (df_insn_rescan): Use new df_collection_rec fields.
1051 (df_notes_rescan, df_canonize_collection_rec): Likewise.
1052 (df_ref_create_structure, df_ref_record): Likewise.
1053 (df_get_conditional_uses, df_get_call_refs): Likewise.
1054 (df_insn_refs_collect, df_bb_refs_collect): Likewise.
1055 (df_bb_refs_record, df_record_entry_block_defs): Likewise.
1056 (df_record_exit_block_uses, df_bb_verify): Likewise.
1057 (df_swap_refs): Change ref_vec parameter to VEC. Change all
1058 callers.
1059 (df_sort_and_compress_refs): Change ref_vec parameter to VEC.
1060 Remove count parameter. Change return type to void. Change all
1061 callers.
1062 (df_sort_and_compress_mws): Change mw_vec parameter to VEC.
1063 Remove count parameter. Change return type to void. Change all
1064 callers.
1065 (df_install_refs): Change old_vec parameter to VEC. Remove count
1066 parameter. Change all callers.
1067 (df_install_mws): Change old_vec parameter to VEC. Remove count
1068 parameter. Change all callers.
1069 (df_refs_verify): Change new_rec parameter to VEC. Change call
1070 callers.
1071 (df_mws_verify): Likewise.
1072
e7aae3e8
AO
10732009-06-10 Alexandre Oliva <aoliva@redhat.com>
1074
1075 * gcc.c (compare_files): Cast munmap argumento to caddr_t.
1076
412ac8d5
L
10772009-06-10 H.J. Lu <hongjiu.lu@intel.com>
1078
1079 * doc/extend.texi: Add description for __builtin_ia32_crc32di.
1080
cceb575c
AG
10812009-06-10 Anthony Green <green@moxielogic.com>
1082
1083 * config/moxie/crti.asm: New file.
1084 * config/moxie/crtn.asm: New file.
1085 * config/moxie/moxie.c: New file.
1086 * config/moxie/moxie.h: New file.
1087 * config/moxie/sfp-machine.h: New file.
1088 * config/moxie/moxie-protos.h: New file.
1089 * config/moxie/t-moxie: Created.
1090 * config/moxie/t-moxie-softfp: Created.
1091 * config/moxie/moxie.md: Created.
1092 * config/moxie/constraints.md: Created.
1093 * config.gcc: Add moxie support.
1094 * doc/md.texi (Machine Constraints): Add moxie constraints.
1095 * doc/contrib.texi (Contributors): Mention moxie port.
1096 * doc/install.texi (Specific): Mention the moxie port.
1097
bf406687
ILT
10982009-06-09 Ian Lance Taylor <iant@google.com>
1099
1100 * system.h (HAVE_DESIGNATED_INITIALIZERS): Don't define if
1101 compiling with C++.
1102 * optabs.c (optab_table): Only use designated initializers if
1103 HAVE_DESIGNATED_INITIALIZERS is defined.
1104 (convert_optab_table): Likewise.
1105 (init_optabs): Always call init_insn_codes if
1106 HAVE_DESIGNATED_INITIALIZERS is not defined.
1107
744aa42f
ILT
11082009-06-09 Ian Lance Taylor <iant@google.com>
1109
1110 * targhooks.c (default_builtin_vectorized_function): Change fn
1111 parameter to unsigned int.
1112 (default_builtin_vectorized_conversion): Change code parameter to
1113 unsigned int.
1114 (default_builtin_reciprocal): Change fn parameter to unsigned int.
1115 * targhooks.h: Update declarations.
1116 * config/rs6000/rs6000.c (rs6000_builtin_conversion): Change code
1117 parameter to unsigned int.
1118
1119 * c-typeck.c (comptypes_check_enum_int): New static function.
1120 (comptypes_internal): Add enum_and_int_p parameter. Change all
1121 callers.
1122 (comp_target_types): Add location parameter. Change all callers.
1123 (tagged_types_tu_compatible_p): Add enum_and_int_p parameter.
1124 Change all callers.
1125 (function_types_compatible_p, type_lists_compatible_p): Likewise.
1126 (build_conditional_expr): Add colon_loc parameter. Change all
1127 callers.
1128 (convert_for_assignment): Add location parameter. Change all
1129 callers.
1130 * c-parser.c (c_parser_conditional_expression): Pass location of
1131 colon to build_conditional_expr.
1132 * c-tree.h (build_conditional_expr): Update declaration.
1133
bcbe3b25
SP
11342009-06-09 Sebastian Pop <sebastian.pop@amd.com>
1135
1136 * graphite.c: Revert previous patch.
1137
dc2a6925
SP
11382009-06-09 Sebastian Pop <sebastian.pop@amd.com>
1139
1140 PR bootstrap/40103
1141 * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
1142
d81f5387
GS
11432009-06-09 Ghassan Shobaki <ghassan.shobaki@amd.com>
1144
8ed0ce99
L
1145 * tree-ssa-loop-prefetch.c
1146 (loop_prefetch_arrays): Fixed a portability problem in printf format
1147 string.
d81f5387 1148
8056eb4f
MJ
11492009-06-09 Martin Jambor <mjambor@suse.cz>
1150
1151 PR tree-optimization/40351
1152 * tree-sra.c (propagate_subacesses_accross_link): Check that a refrence
1153 to a potential artifical subaccess can be constructed.
1154
bd9a3465
KK
11552009-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
1156
1157 * config/sh/sh-protos.h (sh_optimization_options): Declare.
1158 (sh_override_options): Likewise.
1159 * config/sh/sh.c: Include params.h.
1160 (sh_optimization_options): New.
1161 (sh_override_options): Likewise.
1162 * config/sh/sh.c (OPTIMIZATION_OPTIONS): Use sh_optimization_options.
1163 (OVERRIDE_OPTIONS): Use sh_override_options.
1164
8845deab
JJ
11652009-06-08 Jakub Jelinek <jakub@redhat.com>
1166
1167 * dwarf2out.c (emit_cfa_remember): New variable.
1168 (add_fde_cfi): If emit_cfa_remember, recurse to add
1169 DW_CFA_remember_state first.
1170 (dwarf2out_begin_epilogue): Don't add_fde_cfi DW_CFA_remember_state,
1171 instead just set emit_cfa_remember.
1172
9ea81b0c
JH
11732009-06-08 Jan Hubicka <jh@suse.cz>
1174
1175 PR debug/40126
1176 * dwarf2out.c (dwarf2out_abstract_function): Free decl_loc_table.
1177
21ecdec5
JH
11782009-06-08 Jan Hubicka <jh@suse.cz>
1179
1180 PR middle-end/39834
1181 * cgraphunit.c (save_inline_function_body): Do not copy transform hooks
1182 for saved inline bodies.
1183 * ipa-passes.c (do_per_function): Do not add the hoks multiple times
1184 for given function.
1185
72e48218
AN
11862009-06-08 Adam Nemet <anemet@caviumnetworks.com>
1187
1188 * jump.c (returnjump_p): Handle delayed branches. Add missing
1189 function comment.
1190
6ce2002b
JH
11912009-06-08 Jan Hubicka <jh@suse.cz>
1192
1193 PR middle-end/40102
1194 * cgraph.c (cgraph_create_edge_including_clones): Also asume that the
1195 original node might've been modified.
1196 * tree-inline.c (copy_bb): Do not assume that all clones are the same.
1197
eb9ed98a
JJ
11982009-06-08 Jakub Jelinek <jakub@redhat.com>
1199
1200 * tree-object-size.c (addr_object_size): Add OSI argument.
1201 Handle also INDIRECT_REF with SSA_NAME inside of it as base address.
1202 (compute_builtin_object_size, expr_object_size): Adjust callers.
1203 (plus_stmt_object_size): Call addr_object_size instead of
1204 compute_builtin_object_size.
1205
db34470d 12062009-06-08 Ghassan Shobaki <ghassan.shobaki@amd.com>
8ed0ce99 1207 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
db34470d
GS
1208
1209 * tree-ssa-loop-prefetch.c
1210 (gather_memory_references): Introduced a counter for the number of
1211 memory references.
1212 (anything_to_prefetch_p): Introduced a counter for the number of
1213 prefetches.
1214 (is_loop_prefetching_profitable): New function with a cost model
1215 for prefetching.
1216 (loop_prefetch_arrays): Use the new cost model to determine if
1217 prefetching is profitable.
1218 * params.def (MIN_INSN_TO_PREFETCH_RATIO,
1219 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
1220 * params.h (MIN_INSN_TO_PREFETCH_RATIO,
1221 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
1222 * doc/invoke.texi (MIN_INSN_TO_PREFETCH_RATIO,
1223 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
1224
eb7adebc
MM
12252009-06-08 Michael Matz <matz@suse.de>
1226
1227 PR debug/40012
eb7adebc
MM
1228 * cfgexpand.c (set_rtl): Store place also in DECL_RTL, if all
1229 partitions use the same.
1230 (expand_one_var): Deal with DECL_RTL sometimes begin set also
1231 for basevars of SSA_NAMEs.
1232 (expand_used_vars): Reset TREE_USED for basevars of SSA_NAMEs,
1233 to not expand them twice.
1234 (gimple_expand_cfg): Clear DECL_RTL for those decls that have
1235 multiple places.
1236
2153915d
AO
12372009-06-08 Alexandre Oliva <aoliva@redhat.com>
1238
1239 * common.opt (fcompare-debug=, fcompare-debug-second): New.
1240 (fdump-final-insns=, gtoggle): New.
1241 * doc/invoke.texi: Document them.
1242 * final.c (rest_of_clean_state): Dump final insn stream.
1243 * gcc.c (invoke_as): Hook in -fcompare-debug.
1244 (static_spec_functions): Add compare-debug-dump-opt,
1245 compare-debug-self-opt and compare-debug-auxbase-opt.
1246 (compare_debug, compare_debug_second, compare_debug_opt): New.
1247 (switches_debug_check, n_switches_debug_check): New.
1248 (debug_auxbase_opt, debug_check_temp_file): New.
1249 (process_command): Handle -fno-compare-debug, -fcompare-debug and
1250 -fcompare-debug=*.
1251 (do_self_spec): Handle arguments after switches.
1252 (do_spec_1): Add .gk extension to temp file basenames for compare.
1253 (check_live_switch): Take SWITCH_IGNORE into account, and earlier.
1254 (cc1_options): Use it instead of normal auxbase computation for
1255 the second compare-debug compilation.
1256 (compare_files): New.
1257 (main): Set up and implement compare debug mode.
1258 (compare_debug_dump_opt_spec_function): New.
1259 (compare_debug_self_opt_spec_function): New.
1260 (compare_debug_auxbase_opt_spec_function): New.
1261 * toplev.c (process_options): Handle flag_gtoggle,
1262 flag_dump_final_insns.
1263 * coverage.c (coverage_begin_output): Don't overwrite .gcno file
1264 during -fcompare-debug-second compilation.
1265
cdb88468
ILT
12662009-06-07 Ian Lance Taylor <iant@google.com>
1267
1268 * dwarf2.h (enum dwarf_location_atom): Add
1269 INTERNAL_DW_OP_tls_addr.
1270 * dwarf2out.c (INTERNAL_DW_OP_tls_addr): Don't #define.
1271
1272 * c-common.c (c_do_switch_warnings): Don't exit early for -Wswitch
1273 with no default node. Change warning with %H to warning_at.
1274 Don't clear warn_switch around case checking.
1275 * doc/invoke.texi (Warning Options): Clarify distinction between
1276 -Wswitch and -Wswitch-enum.
1277
4fe8e1a2
BRF
12782009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1279
1280 * tree-pass.h (TODO_update_ssa_any): Document internal use only.
1281
69952c1d
BRF
12822009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1283
1284 * gbl-ctors.h: Add header guard.
1285
b2ad0284
BRF
12862009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1287
1288 * tree-flow.h (make_value_handle, set_value_handle, sort_vuses,
1289 sort_vuses_heap, vn_lookup_or_add, vn_lookup_or_add_with_stmt,
1290 vn_lookup_or_add_with_vuses, vn_add, vn_add_with_vuses,
1291 vn_lookup_with_stmt, vn_lookup, vn_lookup_with_vuses): Remove
1292 prototypes for removed functions.
1293 (expressions_equal_p): Move to ...
1294 * tree-ssa-sccvn.h: ... here and ...
1295 * matrix-reorg.c: ... adjust includes.
1296
c3df55f9
BRF
12972009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1298
1299 * ipa-struct-reorg.c (do_reorg_1): Fix whitespace in dump output.
1300
b5a7159f
BRF
13012009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1302
1303 * c-decl.c (finish_decl): Use bool for variable was_incomplete.
1304 (finish_function): Remove erroneous whitespace.
1305
95bca6b0
BRF
13062009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1307
2cd713a0
BRF
1308 * tree-cfg.c (gimple_merge_blocks): Commentary typo fix.
1309 (verify_stmts): Print statement who's gimple_bb is set to a wrong BB
249eb506
BRF
1310
13112009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1312
1313 * errors.c (internal_error): Commentary typo fix.
1314 * gimple-iterator.c (gsi_insert_seq_on_edge): Ditto.
1315 * tree-ssa-pre.c: Ditto.
95bca6b0 1316
2cd713a0
BRF
13172009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1318
1319 * basic-block.h (ENTRY_BLOCK, EXIT_BLOCK): Document that neither of
1320 them is supposed to hold actual statements.
1321
5bca4e80
ILT
13222009-06-06 Ian Lance Taylor <iant@google.com>
1323
1324 * doc/extend.texi (Attribute Syntax): Document that C++ labels on
1325 empty statements can now have attributes.
1326
47ac44d6
SZ
13272009-06-05 Shujing Zhao <pearly.zhao@oracle.com>
1328
1329 * config/mips/mips.c: Use REG_P and CONST_INT_P where applicable.
1330 * config/mips/mips.md: Ditto.
1331
19b905ce
NF
13322009-06-05 Nathan Froyd <froydnj@codesourcery.com>
1333
1334 * config/rs6000/eabi.asm (__eabi_convert): Don't define if
1335 _RELOCATABLE.
1336 (__eabi_uconvert): Likewise.
1337
16702e19
NF
13382009-06-05 Nathan Froyd <froydnj@codesourcery.com>
1339
1340 * config/rs6000/ppc-asm.h: Protect auto-host.h inclusion and
1341 CFI_* definitions with IN_GCC.
1342
a735afd1
DE
13432009-06-05 David Edelsohn <edelsohn@gnu.org>
1344
1345 * xcoffout.h (xcoffout_source_line): Update prototype.
1346
26a347c5
KG
13472009-06-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1348
1349 * builtins.c (do_mpc_ckconv, do_mpc_arg1): Use
1350 mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM.
1351
9f706f23
JJ
13522009-06-05 Jakub Jelinek <jakub@redhat.com>
1353
1354 PR middle-end/40340
1355 * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
1356 inlined_function_outer_scope_p blocks for artificial inlines
1357 even at -g0/-g1.
1358 * tree.c (tree_nonartificial_location): Rewrite using
1359 block_nonartificial_location.
1360
8f439681
RE
13612009-06-05 Revital Eres <eres@il.ibm.com>
1362 Leehod Baruch <leehod@il.ibm.com>
1363
1364 * expr.c (expand_assignment): Expand MISALIGNED_INDIRECT_REF.
1365 (expand_expr_real_1): Remove comment.
1366 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
1367 Vectorize misaligned access when the target supports it.
1368 (vect_supportable_dr_alignment): Check for unaligned access
1369 support.
1370 * tree-vect-stmts.c (vectorizable_store): Generate misaligned store
1371 and remove asset.
1372
b89f8e3c
JB
13732009-06-05 Julian Brown <julian@codesourcery.com>
1374
1375 * config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP.
1376 * config/arm/ieee754-sf.S (cmpsf2): Likewise.
1377
47d1f191
RG
13782009-06-05 Richard Guenther <rguenther@suse.de>
1379
1380 PR bootstrap/40350
1381 * dwarf2out.c (dwarf2out_begin_function): Mark discriminator
1382 as possibly unused.
1383
9f706f23 13842009-06-05 Jakub Jelinek <jakub@redhat.com>
75707b28
JJ
1385
1386 * config/s390/s390.c (global_not_special_regno_p): New static inline.
1387 (save_gprs): Don't tell unwinder when a global register is saved.
1388 (s390_emit_epilogue): Emit needed epilogue unwind info.
1389
90f06248
AO
13902009-06-05 Alexandre Oliva <aoliva@redhat.com>
1391
1392 * dwarf2out.c (deferred_asm_name): New.
1393 (add_name_and_src_coords_attributes): Defer creation of
1394 DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not
1395 computed yet.
1396 (move_linkage_attr): New.
1397 (dwarf2out_finish): Revisit deferrals and emit attributes at the
1398 right place.
1399
c10348e5
AO
14002009-06-05 Alexandre Oliva <aoliva@redhat.com>
1401
1402 * tree-nested.c (finalize_nesting_tree_1): Declare the
1403 frame_decl in the binding tree.
1404
6c52e687
CC
14052009-06-04 Cary Coutant <ccoutant@google.com>
1406
1407 * basic-block.h (struct basic_block_def): Add discriminator field.
1408 * dbxout.c (dbxout_source_line): Add new parameter. Change all
1409 callers.
1410 * debug.c (do_nothing_debug_hooks): Add additional entry.
1411 (debug_nothing_int_charstar_int): New function.
1412 * debug.h (struct gcc_debug_hooks): Add parameter to source_line
1413 hook.
1414 (debug_nothing_int_charstar_int): New declaration.
1415 * dwarf2out.c (dwarf2out_source_line): Add new parameter. Write
1416 discriminator value in .loc directive.
1417 * final.c (last_discriminator): New variable.
1418 (discriminator): New variable.
1419 (final_start_function): Initialize above variables, pass current
1420 discriminator to debug hook.
1421 (notice_source_line): Check for discriminator change.
1422 * gimple-pretty-print.c (dump_bb_header): Print discriminator value.
1423 * sdbout.c (sdbout_source_line): New parameter.
1424 * tree-cfg.c (struct locus_discrim_map): New structure type.
1425 (discriminator_per_locus): New hash table.
1426 (build_gimple_cfg): Allocate and free discriminator hash table.
1427 (make_edges): Call assign_discriminator.
1428 (locus_map_hash): New function.
1429 (locus_map_eq): New function.
1430 (next_discriminator_for_locus): New function.
1431 (same_line_p): New function.
1432 (assign_discriminator): New function.
1433 (make_cond_expr_edges): Call assign_discriminator.
1434 (make_gimple_switch_edges): Likewise.
1435 (first_non_label_stmt): New function.
1436 * vmsdbgout.c (vmsdbgout_source_line): Add new parameter. Change
1437 all callers.
1438 * xcoffout.c (xcoffout_source_line): Add new parameter.
1439
1440 * configure.ac (gcc_cv_as_discriminator): New configury check for
1441 gas support for discriminator.
1442 * configure: Regenerate.
1443 * config.in: Regenerate.
1444
e07e020b
RR
14452009-06-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1446
1447 * config/arm/arm.c (thumb2_legitimate_index_p): Initialize
1448 val after checking for integers.
1449
72fa3605
UB
14502009-06-04 Uros Bizjak <ubizjak@gmail.com>
1451
1452 * config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from
1453 X64_REGPARM_MAX.
1454 (REGPARM_MAX): Use X86_64_MS_REGPARM_MAX.
1455 (X86_64_MS_SSE_REGPARM_MAX): Rename from X64_SSE_REGPARM_MAX.
1456 (SSE_REGPARM_MAX): Use X86_64_MS_SSE_REGPARM_MAX.
1457 * config/i386/i386.c: Use X86_64_MS_REGPARM_MAX instead of
1458 X64_REGPARM_MAX. Use X86_64_MS_SSE_REGPARM_MAX instead of
1459 X64_SSE_REGPARM_MAX.
1460 * config/i386/i386.md: Use X86_64_MS_SSE_REGPARM_MAX instead of
1461 X64_SSE_REGPARM_MAX.
1462
bdde878c
AO
14632009-06-04 Alexandre Oliva <aoliva@redhat.com>
1464
1465 * gcc.c (report_times_to_file): New.
1466 (execute): Implement it.
1467 (process_command): Support -time=.
1468 * doc/invoke.texi: Document it.
1469
2ce59df7
AO
14702009-06-04 Alexandre Oliva <aoliva@redhat.com>
1471
1472 * tree-ssa-live.c (remove_unused_scope_block_p): Keep variables
1473 that have value exprs.
1474
78bd9046
AO
14752009-06-04 Alexandre Oliva <aoliva@redhat.com>
1476
1477 * dwarf2asm.c (dw2_force_const_mem): Defer creation of
1478 declarations for constants until...
1479 (dw2_output_indirect_constant_1): ... this point.
1480
e63d4106
RE
14812009-06-04 Richard Earnshaw <rearnsha@arm.com>
1482
1483 PR target/10242
1484 * arm.md (arm_addsi3): Don't try to split an add with an
1485 eliminable register until after reload has completed.
1486
6bc7bc14
ILT
14872009-06-03 Ian Lance Taylor <iant@google.com>
1488
1489 * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST.
1490 * genattrtab.c (write_length_unit_log): Likewise.
1491 * genchecksum.c (dosum): Likewise.
1492 * gengtype.c (write_rtx_next): Likewise.
1493 (finish_root_table, write_roots): Likewise.
1494 * gimple.c (gimple_ops_offset_): Likewise.
1495 * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise.
1496 * config/arc/arc.c (arc_attribute_table): Likewise.
1497 * config/arm/arm.c (arm_attribute_table): Likewise.
1498 * config/avr/avr.c (avr_attribute_table): Likewise.
1499 * config/crx/crx.c (crx_attribute_table): Likewise.
1500 * config/m32r/m32r.c (m32r_attribute_table): Likewise.
1501 * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise.
1502 * config/mcore/mcore.c (mcore_attribute_table): Likewise.
1503 * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
1504 * config/sh/sh.c (sh_attribute_table): Likewise.
1505 * config/sparc/sparc.c (sparc_attribute_table): Likewise.
1506 * config/spu/spu.c (spu_attribute_table): Likewise.
1507 * config/v850/v850.c (v850_attribute_table): Likewise.
1508
1509 * config/alpha/alpha.c (vms_attribute_table): Make static.
1510 * config/bfin/bfin.c (bfin_attribute_table): Likewise.
1511 * config/h8300/h8300.c (h8300_attribute_table): Likewise.
1512 * config/mips/mips.c (mips_attribute_table): Likewise.
1513
1514 * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and
1515 $(SYSTEM_H).
1516 (cc1-checksum.o): Likewise.
1517
19d892fd
SE
15182009-06-03 Steve Ellcey <sje@cup.hp.com>
1519
1520 * config/ia64/vect.md (*movv2sf_internal): Handle big endian case.
1521
679f3354
JJ
15222009-06-03 Jakub Jelinek <jakub@redhat.com>
1523
ff35822b
JJ
1524 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated
1525 insn if it is changing sp. Use gen_add3_insn instead of
1526 conditionally gen_addsi3 and gen_adddi3.
1527 (offset_below_red_zone_p): New static inline function.
1528 (rs6000_emit_epilogue): Emit needed epilogue unwind info.
1529 Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3.
1530 * config/rs6000/ppc-asm.h: Include auto-host.h.
1531 (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET,
1532 CFI_RESTORE): Define.
1533 * config/rs6000/crtresxgpr.asm: Add unwind info.
1534 * config/rs6000/crtresxfpr.asm: Likewise.
1535 * config/rs6000/crtresgpr.asm: Likewise.
1536 * config/rs6000/crtresfpr.asm: Likewise.
1537 * config/rs6000/crtsavgpr.asm: Likewise.
1538 * config/rs6000/crtsavfpr.asm: Likewise.
1539
679f3354
JJ
1540 * dwarf2out.c (output_cfi_directive): Pass 1 instead of
1541 0 to second argument of DWARF2_FRAME_REG_OUT macros.
1542
2e94c12d
JB
15432009-06-03 Julian Brown <julian@codesourcery.com>
1544
1545 * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four
1546 words or less (including TImode) in core registers.
1547
3111cce0
RG
15482009-06-03 Richard Guenther <rguenther@suse.de>
1549
1550 PR middle-end/40328
1551 * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.
1552
5e1b50f6
AB
15532009-06-03 Andrey Belevantsev <abel@ispras.ru>
1554
1555 * statistics.c (statistics_counter_event): Do not record event
1556 in pass dump if its number == -1.
1557 (curr_statistics_hash): Add assert that we never get passes
1558 with static number == -1.
1559
6f11d690
RG
15602009-06-03 Richard Guenther <rguenther@suse.de>
1561 Andrey Belevantsev <abel@ispras.ru>
1562
1563 * cfgexpand.c (discover_nonconstant_array_refs_r): Make only
1564 non-BLKmode arrays addressable.
1565
88961471
MK
15662009-06-03 Maxim Kuvyrkov <maxim@codesourcery.com>
1567
1568 * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
1569 * config/m68k/m68k.h: ... here.
1570 * testsuite/gcc.dg/falign-labels.c (dg-options): Don't restrict for
1571 m68k and fido.
1572
9961eb45
MJ
15732009-06-03 Martin Jambor <mjambor@suse.cz>
1574
1575 PR tree-optimization/40323
1576 * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single
1577 assignment.
1578
2f2c62a0
RG
15792009-06-03 Richard Guenther <rguenther@suse.de>
1580
1581 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
1582 consistently.
1583
d6ced3b7
SZ
15842009-06-03 Shujing Zhao <pearly.zhao@oracle.com>
1585
1586 * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
1587 JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
1588 JUMP_TABLE_DATA_P where applicable.
1589 * config/sh/sh.c: Ditto.
1590 * config/sh/sh.h: Ditto.
1591 * config/sh/sh.md: Ditto.
1592 * config/sh/symbian.c: Ditto.
1593
f3afc8a7
UB
15942009-06-03 Uros Bizjak <ubizjak@gmail.com>
1595
1596 * config/i386/driver-i386.c (describe_cache): Optimize
1597 concatenation of strings. Use snprintf instead of sprintf.
1598 (host_detect_local_cpu): Ditto. Ignore -march and -mtune for native
1599 target when not compiling with GCC.
1600
1964788a
KK
16012009-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
1602
1603 * config/sh/sh.c: Revert last change.
1604 (sh_expand_epilogue): Emit a blockage insn before the frame
1605 pointer adjustment unconditionally.
1606
8633c315
RS
16072009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1608
1609 * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
1610 * config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
1611 * config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
1612 * gcc.c (set_collect_gcc_options): Don't add -fwhole-program
1613 to COLLECT_GCC_OPTIONS.
1614
781a1758
RS
16152009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1616
1617 * collect2.c (target_system_root): New variable.
1618 (main): Handle --sysroot=.
1619 (ignore_library): Strip the sysroot from the library path.
1620
dfb636dc
RS
16212009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1622
1623 * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
1624 (collect2.o): Depend on collect2-aix.h.
1625 (collect2-aix.o): New rule.
1626 * collect2-aix.h: New file.
1627 * collect2-aix.c: Likewise.
1628 * collect2.c: Include collect2-aix.h. Don't undefine
1629 OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
1630 Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
1631 Use TARGET_AIX_VERSION instead of _AIX51.
1632 * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
1633 * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
1634 * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
1635 * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
1636 * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.
1637
51136ae8
RS
16382009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1639
1640 * collect2.c (ignore_library): Avoid premature post-increment
1641 and null deference.
1642
7f142d33
RS
16432009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1644
1645 * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
1646 * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
1647 !CROSS_DIRECTORY_STRUCTURE alternative and use it for
1648 CROSS_DIRECTORY_STRUCTURE too.
1649 (LINK_LIBG_SPEC): Likewise.
1650 (LIB_SPEC): Add %R to sysroot paths.
1651 * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
1652 (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
1653 * config/rs6000/aix51.h: As for aix43.h.
1654 * config/rs6000/aix52.h: Likewise.
1655 * config/rs6000/aix53.h: Likewise.
1656 * config/rs6000/aix61.h: Likewise.
1657 * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
1658 to the beginning of sysroot paths.
1659
9e74b7d2
AO
16602009-06-02 Alexandre Oliva <aoliva@redhat.com>
1661
1662 * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
1663 INSN_LISTs that are out of the REG_NOTE range.
1664
a9f6ecee
AO
16652009-06-02 Alexandre Oliva <aoliva@redhat.com>
1666
1667 * loop-unroll.c (struct iv_to_split): Add pointer to next.
1668 (struct var_to_expand): Likewise.
1669 (struct opt_info): Add head and tail for linked lists of the above.
1670 (analyze_insn_to_expand_var): Initialize next.
1671 (analyze_iv_to_split_insn): Likewise.
1672 (analyze_insns_in_loop): Create linked lists.
1673 (allocate_basic_variable): Simplify for use without hash table.
1674 (insert_var_expansion_initialization): Likewise, make it type-safer.
1675 (combine_var_copies_in_loop_exit): Likewise.
1676 (apply_opt_in_copies): Walk lists rather than hash tables.
1677 (release_var_copies): Simplified and inlined by hand into...
1678 (free_opt_info): ... this function.
1679
69596c69
RG
16802009-06-02 Richard Guenther <rguenther@suse.de>
1681
1682 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
1683 for field decls.
1684
fe8a7779
AO
16852009-06-02 Alexandre Oliva <aoliva@redhat.com>
1686
1687 * cfgexpand.c (gimple_expand_cfg): Discard the source location
1688 only for builtins that are not overridden.
1689
1bcca2c5
AO
16902009-06-02 Alexandre Oliva <aoliva@redhat.com>
1691
1692 * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
1693 label string.
1694
8588f797
AO
16952009-06-02 Alexandre Oliva <aoliva@redhat.com>
1696
1697 * df-core.c (df_ref_debug): Honor -fdump-noaddr.
1698
45f39d78
AO
16992009-06-02 Alexandre Oliva <aoliva@redhat.com>
1700
1701 * combine.c (move_deaths): Compare LUIDs within the same BB only.
1702
2aa7c49b
AO
17032009-06-02 Alexandre Oliva <aoliva@redhat.com>
1704
1705 * common.opt (fdump-unnumbered-links): New.
1706 * doc/invoke.texi (-fdump-unnumbered-links): Document it.
1707 * print-rtl.c (flag_dump_unnumbered_links): New.
1708 (print_rtx): Test it.
1709
55b2829b
RE
17102009-06-02 Richard Earnshaw <rearnsha@arm.com>
1711
1712 * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
1713 push/pop multiple to 8-byte alignment.
e63d4106 1714
6c0d7021
JJ
17152009-06-01 Jakub Jelinek <jakub@redhat.com>
1716
0aa34d44
JJ
1717 * config/i386/i386.c (queued_cfa_restores): New static variable.
1718 (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
1719 functions.
1720 (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
1721 (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
1722 Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
1723 Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
1724 note unconditionally.
1725 (ix86_emit_restore_regs_using_mov): Likewise.
1726 (ix86_emit_restore_sse_regs_using_mov): Likewise.
1727 (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
1728 it through to ix86_emit_restore_reg_using_pop.
1729 (ix86_emit_leave): Add RED_OFFSET argument. Call
1730 ix86_add_queued_cfa_restore_notes. Call ix86_add_cfa_restore_note
1731 instead of adding REG_CFA_OFFSET note unconditionally.
1732 (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
1733 the above functions. Call ix86_add_queued_cfa_restore_notes when
1734 needed.
1735
1736 * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
1737 force output of the label even for dwarf2out_do_cfi_asm.
1738 (add_fde_cfi): If -g2 and above and cfi might change CFA,
1739 force creation of CFI label and chain DW_CFA_set_loc jumping to it
1740 for convert_cfa_to_fb_loc_list. Adjust other dwarf2out_cfi_label
1741 caller.
1742 (dwarf2out_stack_adjust, dwarf2out_frame_debug,
1743 dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
1744 dwarf2out_cfi_label callers.
1745 * tree.h (dwarf2out_cfi_label): Adjust prototype.
1746 * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
1747 Adjust dwarf2out_cfi_label callers.
1748 * config/vax/vax.c (vax_output_function_prologue): Likewise.
1749
604a6be9
JJ
1750 * config/i386/i386.h (struct machine_cfa_state,
1751 struct machine_function): Guard with ifndef USED_FOR_TARGET
1752 instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.
1753
df0026a7
JJ
1754 PR other/40024
1755 * emutls.c (__emutls_get_address): Change arr->size to mean number
1756 of allocated arr->data entries instead of # of slots + 1.
1757
6c0d7021
JJ
1758 PR middle-end/40316
1759 * recog.c (peep2_reinit_state): New function.
1760 (peephole2_init_state): Use it at the end of a basic block and also
1761 when seeing a RTX_FRAME_RELATED_P insn.
1762
49df2fb8
SE
17632009-06-01 Steve Ellcey <sje@cup.hp.com>
1764
1765 * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
1766 fixuns_truncrfdi2): New.
1767 (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
1768 *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
1769 *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
1770 *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
1771 *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
1772 *recip_approx): Remove.
1773 (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
1774 moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
1775 divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
1776 move to div.md.
1777 * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
1778 setf_exp_rf): New.
1779
67165eb3
ILT
17802009-06-01 Ian Lance Taylor <iant@google.com>
1781
1782 * attribs.c (register_attribute): Use CONST_CAST.
1783 * collect2.c (main): Use CONST_CAST2.
1784 (scan_prog_file): Likewise.
1785 * gcc.c (process_command, main): Likewise.
1786 * toplev.c (toplev_main): Likewise.
1787
1788 * c-typeck.c (handle_warn_cast_qual): New static function,
1789 partially broken out of build_c_cast.
1790 (build_c_cast): Call handle_warn_cast_qual.
1791 * doc/invoke.texi (Warning Options): Document new effect of
1792 -Wcast-qual.
1793
e74fe492
AH
17942009-06-01 Aldy Hernandez <aldyh@redhat.com>
1795
1796 * diagnostic.c (diagnostic_build_prefix): Always print columns.
1797 (diagnostic_report_current_module): Print columns.
1798 * common.opt (flag_show_column): Enable by default.
1799
7eba2d1f
LM
18002009-06-01 Luis Machado <luisgpm@br.ibm.com>
1801
1802 * alias.c (find_base_term): Check for NULL term before returning.
1803
ee88d9aa
MK
18042009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
1805
1806 Revert due to PR40320:
ee88d9aa
MK
1807 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
1808 * calls.c (emit_library_call_value_1): Don't force_operand for move
1809 and push insns.
1810
324c9b02 18112009-06-01 Olivier Hainque <hainque@adacore.com>
40d0d9e4 1812 Eric Botcazou <ebotcazou@adacore.com>
324c9b02
OH
1813
1814 * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
1815 to be processed as a bitfield for constructor output purposes.
1816 * output.h (initializer_constant_valid_for_bitfield_p): Declare
1817 new function.
1818 * varasm.c (oc_local_state): New type, output_constructor
1819 local state to support communication with helpers.
1820 (oc_outer_state): New type, output_constructor outer state of
1821 relevance in recursive calls.
1822 (output_constructor_array_range): New output_constructor helper,
1823 extracted code for an array range element.
1824 (output_constructor_regular_field): New output_constructor helper,
1825 extracted code for an element that is not a bitfield.
1826 (output_constructor_bitfield): New output_constructor helper,
1827 extracted code for a bitfield element. Accept an OUTER state
1828 argument for recursive processing. Recurse on record or array
1829 CONSTRUCTOR values, possibly past noop conversions.
62295314 1830 (initializer_constant_valid_for_bitfield_p): New predicate. Whether
324c9b02
OH
1831 VALUE is a valid constant-valued expression for use in a static
1832 bit-field initializer.
62295314
OH
1833 (output_constructor): Rework to use helpers. Accept and honor an
1834 OUTER state argument for recursive calls. Return total size. Be
324c9b02
OH
1835 prepared for nested constructors initializing bitfields.
1836 (output_constant): Feed OUTER in calls to output_constructor.
1837
0980d7fe
MK
18382009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
1839
1840 * calls.c (emit_library_call_value_1): Don't force_operand for move
1841 and push insns.
1842
29661412
NC
18432009-06-01 Nick Clifton <nickc@redhat.com>
1844
1845 * doc/invoke.texi (IA-64 Options): Fix typo.
1846
e9dbe7bb
IR
18472009-06-01 Ira Rosen <irar@il.ibm.com>
1848
1849 PR tree-optimization/39129
1850 * tree-vect-loop-manip.c (conservative_cost_threshold): Change the
1851 printed message.
1852 (vect_do_peeling_for_loop_bound): Use
1853 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
1854 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
1855 (vect_loop_versioning): Likewise.
1856 (vect_create_cond_for_alias_checks): Fix indentation.
1857 * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the
1858 macros.
1859 (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
1860 (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
1861 * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to
1862 "control flow in loop".
1863 (vect_estimate_min_profitable_iters): Use
1864 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
1865 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
1866 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
1867 (vect_create_data_ref_ptr): Don't mention array dimension in printing.
1868 * tree-vect-stmts.c (vectorizable_store): Replace the check that the
1869 statement belongs to a group of strided accesses with the exact code
1870 check.
1871 (vectorizable_load): Likewise.
1872 * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
1873 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
1874
5ac69a80
GP
18752009-06-01 Gerald Pfeifer <gerald@pfeifer.com>
1876
1877 * config/freebsd-stdint.h: New file.
1878 * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
1879 Add freebsd-stdint.h to tm_file.
1880
54b2b460
RE
18812009-06-01 Richard Earnshaw <rearnsha@arm.com>
1882
1883 * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
1884 (thumb2_extendhidi2): Likewise.
1885
a7ca77cf
ILT
18862009-05-31 Ian Lance Taylor <iant@google.com>
1887
f3afc8a7 1888 * regstat.c (regstat_n_sets_and_refs): Remove duplicate definition.
c50d84e3
ILT
1889
18902009-05-31 Ian Lance Taylor <iant@google.com>
1891
f3afc8a7 1892 * Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H).
a7ca77cf
ILT
1893 (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
1894 (ipa-reference.o): Depend upon gt-ipa-reference.h.
1895
1aec401e
JM
18962009-05-31 Jason Merrill <jason@redhat.com>
1897
1898 * tree-pretty-print.c (print_call_name): Take the callee, not the
f3afc8a7 1899 call itself. Make non-static. Use dump_function_name for functions.
1aec401e
JM
1900 (dump_generic_node): Adjust.
1901 * diagnostic.h: Declare print_call_name.
1902 * gimple-pretty-print.c (dump_gimple_call): Use it.
1903
ed7910bb
KK
19042009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
1905
1906 * config/sh/sh.md (ashldi3_std): New define_expand.
1907 (ashldi3): Use it.
1908
47ea8d4e
KK
19092009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
1910
1911 PR target/40313
1912 * config/sh/sh.c: Include debug.h.
1913 (sh_expand_epilogue): Emit a blockage insn before the frame
1914 pointer adjustment also when dwarf2out_do_frame returns true.
1915
405e8b49
RE
19162009-05-31 Richard Earnshaw <rearnsha@arm.com>
1917
1918 * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
1919 (thumb2_extendqidi2): New pattern.
1920
71ece343
IR
19212009-05-31 Ira Rosen <irar@il.ibm.com>
1922
1923 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
1924 mark phis for renaming.
1925 * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
1926 (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
1927 Call mark_sym_for_renaming.
1928 * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
f3afc8a7
UB
1929 * tree-vect-loop.c (vect_transform_loop): Remove
1930 vect_memsyms_to_rename initialization and a call to
1931 mark_set_for_renaming.
71ece343 1932
b3041944
JJ
19332009-05-31 Jakub Jelinek <jakub@redhat.com>
1934
1935 PR middle-end/40304
1936 * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
1937 frame related even if !set_cfa && style < 0.
1938
a1bda0d7
KT
19392009-05-30 Kai Tietz <kai.tietz@onevision.com>
1940
1941 * config/i386/mingw-tls.c: New file.
f3afc8a7
UB
1942 * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file.
1943 * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets
1944 defining _WIN32 but not __CYGWIN__.
a1bda0d7 1945
acd26225
KG
19462009-05-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1947
1948 * configure.ac: Add MPC support.
1949
1950 * config.in, configure: Regenerate.
1951
cd9c1ca8
RH
19522009-05-29 Richard Henderson <rth@redhat.com>
1953
1954 * cfgcleanup.c (try_crossjump_to_edge): Only skip past
1955 NOTE_INSN_BASIC_BLOCK.
1956 * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
1957 Duplicate NOTE_INSN_EPILOGUE_BEG notes.
1958 * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
1959 to be deleted.
1960 * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
1961 add in_use field.
1962 (add_cfi): Disable check redefining cfa away from drap.
1963 (lookup_cfa_1): Add remember argument; handle remember/restore.
1964 (lookup_cfa): Pass remember argument.
1965 (cfa_remember): New.
1966 (compute_barrier_args_size_1): Remove sibcall check.
1967 (dwarf2out_frame_debug_def_cfa): New.
1968 (dwarf2out_frame_debug_adjust_cfa): New.
1969 (dwarf2out_frame_debug_cfa_offset): New.
1970 (dwarf2out_frame_debug_cfa_register): New.
1971 (dwarf2out_frame_debug_cfa_restore): New.
1972 (dwarf2out_frame_debug): Handle REG_CFA_* notes.
1973 (dwarf2out_begin_epilogue): New.
1974 (dwarf2out_frame_debug_restore_state): New.
1975 (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
1976 DW_CFA_restore_state.
1977 (output_cfi_directive): Likewise.
1978 (convert_cfa_to_fb_loc_list): Likewise.
1979 (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
1980 * dwarf2out.h: Update.
1981 * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
1982 (copy_insn_1): Early out for null.
1983 * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
1984 and dwarf2out_frame_debug_restore_state.
1985 * function.c (prologue, epilogue, sibcall_epilogue): Remove.
1986 (prologue_insn_hash, epilogue_insn_hash): New.
1987 (free_after_compilation): Adjust freeing accordingly.
1988 (record_insns): Create hash table if needed; push insns into
1989 hash instead of array.
1990 (maybe_copy_epilogue_insn): New.
1991 (contains): Search hash table instead of array.
1992 (sibcall_epilogue_contains): Remove.
1993 (thread_prologue_and_epilogue_insns): Split eh_return insns
1994 and mark them as epilogues.
1995 (reposition_prologue_and_epilogue_notes): Rewrite epilogue
1996 scanning in terms of basic blocks.
1997 * insn-notes.def (CFA_RESTORE_STATE): New.
1998 * jump.c (returnjump_p_1): Accept EH_RETURN.
1999 (eh_returnjump_p_1, eh_returnjump_p): New.
2000 * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
2001 CFA_REGISTER, CFA_RESTORE): New.
2002 * rtl.def (EH_RETURN): New.
2003 * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
2004
2005 * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
2006 (eh_return_internal): Use eh_return rtx; split w/ epilogue.
2007
2008 * config/i386/i386.c (gen_push): Update cfa state.
2009 (pro_epilogue_adjust_stack): Add set_cfa argument. When true,
2010 add a CFA_ADJUST_CFA note.
2011 (ix86_dwarf_handle_frame_unspec): Remove.
2012 (ix86_expand_prologue): Update cfa state.
2013 (ix86_emit_restore_reg_using_pop): New.
2014 (ix86_emit_restore_regs_using_pop): New.
2015 (ix86_emit_leave): New.
2016 (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
2017 (ix86_expand_epilogue): Add notes for unwinding the epilogue.
2018 * config/i386/i386.h (struct machine_cfa_state): New.
2019 (ix86_cfa_state): New.
2020 * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
2021 (eh_return_internal): Merge from eh_return_<mode>,
2022 use eh_return rtx, split w/ epilogue.
2023
72b5577d
ILT
20242009-05-29 Ian Lance Taylor <iant@google.com>
2025
2026 * builtins.c (validate_gimple_arglist): Don't use va_arg with
2027 enum type.
2028 * calls.c (emit_library_call_value_1): Likewise.
2029
2030 * c-typeck.c (c_build_va_arg): New function.
2031 * c-tree.h (c_build_va_arg): Declare.
2032 * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
2033 instead of build_va_arg.
2034
7a2faca1
EB
20352009-05-29 Eric Botcazou <ebotcazou@adacore.com>
2036
2037 * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
2038 (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
2039 (ptr_difference_cost): Use affine combinations to compute it.
2040 (difference_cost): Likewise.
2041 (get_computation_cost_at): Compute more accurate cost for addresses
2042 if the ratio is a multiplier allowed in addresses.
2043 For non-addresses, consider that an additional offset or symbol is
2044 added only once.
2045
725fd454
JJ
20462009-05-29 Jakub Jelinek <jakub@redhat.com>
2047
a0987204
JJ
2048 * config/i386/i386.c (ix86_decompose_address): Avoid useless
2049 0 displacement. Add 0 displacement if base is %[er]bp or %r13.
2050
725fd454
JJ
2051 * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
2052 TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
2053 (prefix_rex): For UNIT_MMX don't imply the prefix by default
2054 if MODE_DI.
2055 (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
2056 to 1 for TYPE_SSE{IADD1,CVT1}.
2057 (prefix_vex_imm8): Removed.
2058 (length_vex): Only pass 1 as second argument to
2059 ix86_attr_length_vex_default if prefix_extra is 0.
2060 (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
2061 (length): For prefix vex computation use length_immediate
2062 attribute instead of prefix_vex_imm8.
2063 (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
2064 addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
2065 *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
2066 *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
2067 (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
2068 *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
2069 a space in between the operands.
2070 (*anddi_1_rex64, *andsi_1): Likewise. Override prefix_rex to 1
2071 if one operand is 0xff and the other one si, di, bp or sp.
2072 (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
2073 other one si, di, bp or sp.
2074 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
2075 (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
2076 type and mode attributes.
2077 (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
2078 (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
2079 prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
2080 (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
2081 prefix_data16 attribute iff MODE_DF.
2082 (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
2083 (fix_trunc<mode>di_sse): Set prefix_rex attribute.
2084 (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
2085 constm128_operand in length_immediate computation.
2086 (*addhi_4): Likewise. Fix mode attribute to MODE_HI.
2087 (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
2088 (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
2089 length_immediate attribute to 1.
2090 (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
2091 (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
2092 for certain alternatives.
2093 (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
2094 prefix_data16 attribute if MODE_V1DF.
2095 (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
2096 length_immediate to 1.
2097 (set_got_rex64, set_rip_rex64): Remove length attribute, set
2098 length_address to 4, set mode attribute to MODE_DI.
2099 (set_got_offset_rex64): Likewise. Set length_immediate to 0.
2100 (fxam<mode>2_i387): Set length attribute to 4.
2101 (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
2102 *prefetch_3dnow_rex): Override length_address attribute.
2103 (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
2104 attributes.
2105 * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
2106 (constm128_operand): Removed.
2107 * config/i386/i386.c (memory_address_length): For
2108 disp && !index && !base in 64-bit mode account for SIB byte if
2109 print_operand_address can't optimize disp32 into disp32(%rip)
2110 and UNSPEC doesn't imply (%rip) addressing. Add 1 to length
2111 for fs: or gs: segment.
2112 (ix86_attr_length_immediate_default): When checking if shortform
2113 is possible, truncate immediate to the length of the non-shortened
2114 immediate.
2115 (ix86_attr_length_address_default): Ignore MEM_P operands
2116 with X constraint.
2117 (ix86_attr_length_vex_default): Only check for DImode on
2118 GENERAL_REG_P operands.
2119 * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
2120 prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
2121 (sse_cvttps2pi): Clear prefix_rep attribute.
2122 (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
2123 attribute.
2124 (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
2125 (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
2126 *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
2127 iff operand 2 is const_int_operand.
2128 (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
2129 sse2_shufpd_<mode>): Set length_immediate attribute to 1.
2130 (sse2_pshufd_1): Likewise. Set prefix attribute to maybe_vex
2131 instead of vex.
2132 (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
2133 prefix_data16.
2134 (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
2135 prefix_data16 attribute for movlpd and movhpd instructions.
2136 (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise. Override
2137 length_immediate for shufpd instruction.
2138 (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
2139 (avx_cmpp<avxmodesuffixf2c><mode>3,
2140 avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
2141 <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
2142 avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
f3afc8a7 2143 *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1.
725fd454
JJ
2144 (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
2145 (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
2146 (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
2147 prefix_data16 attribute for the first alternative to 1.
2148 (*avx_loadlps): Override length_immediate for the first alternative.
2149 (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
2150 attributes for second alternative.
2151 (*vec_concatv2sf_sse4_1): Override length_immediate and
2152 prefix_data16 attributes for second alternative.
2153 (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
2154 vec_extract_hi_<mode>, vec_extract_lo_v16hi,
2155 vec_extract_hi_v16hi, vec_extract_lo_v32qi,
2156 vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
2157 (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
2158 prefix_data16 and length_immediate to 1.
2159 (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
2160 to 1.
2161 (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
f3afc8a7 2162 prefix_extra attribute for variants that don't have 0f prefix alone.
725fd454
JJ
2163 (*avx_pinsr<ssevecsize>): Likewise. Set length_immediate to 1.
2164 (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
2165 *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
2166 *sse4_1_pextrd): Set length_immediate to 1.
2167 (*sse4_1_pinsrd): Likewise. Set prefix_extra to 1.
2168 (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
2169 to 1.
2170 (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
2171 *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
2172 length_immediate to 1 for second alternative.
2173 (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
2174 prefix_extra and length_immediate attributes for the first
2175 alternative.
2176 (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
2177 first alternative.
2178 (*vec_concatv2di_rex64_sse4_1): Likewise. Override prefix_rex
2179 to 1 for the first and third alternative.
2180 (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
2181 alternative.
2182 (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
2183 attribute.
2184 (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
2185 attribute to 0.
2186 (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
2187 *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
2188 *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
2189 *avx_psign<mode>3): Set prefix_extra attribute to 1.
2190 (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
2191 ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
2192 ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
2193 ssse3_psign<mode>3): Override prefix_rex attribute.
f3afc8a7 2194 (*avx_palignrti): Override prefix_extra and length_immediate to 1.
725fd454
JJ
2195 (ssse3_palignrti): Override length_immediate to 1.
2196 (ssse3_palignrdi): Override length_immediate to 1, override
2197 prefix_rex attribute.
f3afc8a7 2198 (abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute.
725fd454
JJ
2199 (sse4a_extrqi): Override length_immediate to 2.
2200 (sse4a_insertqi): Likewise. Override prefix_data16 to 0.
2201 (sse4a_insertq): Override prefix_data16 to 0.
2202 (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
2203 avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
2204 avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
2205 *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
2206 avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
2207 and length_immediate to 1.
2208 (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
2209 sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
2210 sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
2211 sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
2212 and length_immediate to 1.
2213 (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
2214 (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
2215 (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
2216 avx_ptest256): Override prefix_extra to 1.
2217 (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
2218 Override prefix_data16 and length_immediate to 1.
2219 (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
2220 sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
2221 sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
2222 sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
2223 prefix_data16 to 0 and prefix_extra to 2.
2224 (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
2225 (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
2226 attribute.
2227 (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
2228 sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
2229 Override prefix_data16 and prefix_rep to 0, length_immediate to 1
2230 and prefix_extra to 2.
2231 (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
2232 prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
2233 (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
2234 avx_vpermilvar<mode>3,
2235 avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
2236 avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
2237 avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
2238 avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
2239 Override prefix_extra to 1.
2240 (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
2241 (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
2242 vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
2243 vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
2244 prefix_extra and length_immediate to 1.
2245 (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
2246 modrm to 0.
2247 (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
2248 to 1 for the first alternative.
2249 * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
2250 prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
2251 cases.
2252 (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
2253 *movv2sf_internal_avx, *movv2sf_internal): Override
2254 prefix_rep attribute for certain alternatives.
2255 (*mov<mode>_internal): Override prefix_rep or prefix_data16
2256 attributes for certain alternatives.
2257 (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
2258 attributes for certain alternatives.
2259 (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
2260 *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
2261 mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
2262 mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
2263 *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
2264 mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
2265 mmx_pswapdv2si2): Set prefix_extra attribute to 1.
2266 (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
2267 length_immediate to 1 if operand 2 is const_int_operand.
2268 (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
f3afc8a7 2269 *vec_extractv2si_1): Set length_immediate attribute to 1.
725fd454
JJ
2270 (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
2271 using old 3DNOW insn rather than SSE/3DNOW_A.
2272 (mmx_emms, mmx_femms): Clear modrm attribute.
2273
0674b9d0
MJ
22742009-05-29 Martin Jambor <mjambor@suse.cz>
2275
2276 * tree-sra.c: New implementation of SRA.
2277
2278 * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
2279 (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
2280 (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
2281 * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
2282 (SRA_MAX_STRUCTURE_COUNT): Removed.
2283 (SRA_FIELD_STRUCTURE_RATIO): Removed.
2284 * doc/invoke.texi (sra-max-structure-size): Removed.
2285 (sra-field-structure-ratio): Removed.
2286
616f21df
JJ
22872009-05-29 Jakub Jelinek <jakub@redhat.com>
2288
2289 PR middle-end/40291
2290 * builtins.c (expand_builtin_memcmp): Convert len to sizetype
2291 before expansion.
2292
da7ba240
AB
22932009-05-29 Andrey Belevantsev <abel@ispras.ru>
2294
2295 PR rtl-optimization/40101
2296 * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
2297 seqno. Adjust comment.
2298 * sel-sched.c (find_seqno_for_bookkeeping): Assert that when
2299 inserting bookkeeping before a jump, the jump is not scheduled.
2300 When no positive seqno found, provide a value. Add comment.
2301
71dcd609
RG
23022009-05-29 Richard Guenther <rguenther@suse.de>
2303
2304 * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
2305 short-cutting on the first component.
2306
a900ae6b
JJ
23072009-05-29 Jakub Jelinek <jakub@redhat.com>
2308
2309 PR middle-end/39958
2310 * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
2311 for trees other than decls/types.
2312
821bb7f8
RG
23132009-05-29 Richard Guenther <rguenther@suse.de>
2314
2315 * tree-ssa-operands.c (get_expr_operands): Do not handle
2316 INDIRECT_REFs in the handled-component case. Remove
2317 unused get_ref_base_and_extent case.
2318 * tree-dfa.c (get_ref_base_and_extent): Avoid calling
2319 tree_low_cst and host_integerp where possible.
2320 * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
2321 codes for equivalence.
2322 * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
2323
e997fb9c
DB
23242009-05-29 David Billinghurst <billingd@gcc.gnu.org>
2325
2326 * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
2327 to tmake_file for i[34567]86-*-cygwin*.
2328
58195b74
JJ
23292009-05-29 Jakub Jelinek <jakub@redhat.com>
2330
2331 PR target/40017
2332 * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
2333 (altivec_categorize_keyword, init_vector_keywords,
2334 rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
2335 similar to bool.
2336
055df276
KT
23372009-05-29 Kai Tietz <kai.tietz@onevision.com>
2338
2339 * tree.c (handle_dll_attribute): Check if node is
2340 of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
2341
f5939ef3
RE
23422009-05-29 Richard Earnshaw <rearnsha@arm.com>
2343
2344 * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
2345 component.
2346 (thumb2_zero_extendqidi2): Likewise.
2347
c185de40
KK
23482009-05-28 Kaz Kojima <kkojima@gcc.gnu.org>
2349
2350 * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
2351 instead of gen_movrt.
2352 * config/sh/sh.md (movrt): Remove.
2353
bf3c6caf
SE
23542009-05-28 Steve Ellcey <sje@cup.hp.com>
2355
f3afc8a7 2356 * doc/invoke.texi (IA-64 Options):
bf3c6caf
SE
2357 Add -msdata, -mfused-madd, -mno-inline-float-divide,
2358 -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
2359 -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
2360 -msched-prefer-non-control-spec-insns,
2361 -msched-stop-bits-after-every-cycle,
2362 -msched-count-spec-in-critical-path,
2363 -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
f3afc8a7 2364 -msched-max-memory-insns-hard-limit, -msched-max-memory-insns.
bf3c6caf
SE
2365 Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
2366 and -msched-spec-verbose.
2367
8a66e987
JM
23682009-05-28 Joseph Myers <joseph@codesourcery.com>
2369
f3afc8a7 2370 * config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache.
8a66e987
JM
2371 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
2372 error if used.
2373 * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
2374
b45d2719
RG
23752009-05-28 Richard Guenther <rguenther@suse.de>
2376
2377 * tree-ssa-alias.c (ao_ref_init): New function.
2378 (ao_ref_base): Likewise.
2379 (ao_ref_base_alias_set): Likewise.
2380 (ao_ref_alias_set): Likewise.
2381 (refs_may_alias_p_1): Change signature.
2382 (refs_may_alias_p): Adjust.
2383 (refs_anti_dependent_p): Likewise.
2384 (refs_output_dependent_p): Likewise.
2385 (call_may_clobber_ref_p_1): Change signature.
2386 (call_may_clobber_ref_p): Adjust.
2387 (stmt_may_clobber_ref_p_1): New function split out from ...
2388 (stmt_may_clobber_ref_p): ... here.
2389 (maybe_skip_until): Adjust signature.
2390 (get_continuation_for_phi): Likewise.
2391 (walk_non_aliased_vuses): Likewise.
2392 * tree-ssa-alias.h (struct ao_ref_s): New structure type.
2393 (ao_ref_init): Declare.
2394 (ao_ref_base): Likewise.
2395 (ao_ref_alias_set): Likewise.
2396 (stmt_may_clobber_ref_p_1): Likewise.
2397 (walk_non_aliased_vuses): Adjust.
2398 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
2399 (get_ref_from_reference_ops): remove.
2400 (vn_reference_lookup_2): Adjust signature.
2401 (vn_reference_lookup_3): Do not re-build trees. Handle unions.
f3afc8a7 2402 (vn_reference_lookup_pieces): Adjust signature, do not re-build trees.
b45d2719
RG
2403 (vn_reference_lookup): Adjust.
2404 (vn_reference_insert): Likewise.
2405 (vn_reference_insert_pieces): Adjust signature.
2406 (visit_reference_op_call): Adjust.
2407 * tree-ssa-pre.c (get_expr_type): Simplify.
2408 (phi_translate_1): Adjust.
2409 (compute_avail): Likewise.
2410 (translate_vuse_through_block): Do not re-build trees.
2411 (value_dies_in_block_x): Likewise.
2412 * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
2413 fields.
2414 (vn_reference_lookup_pieces): Adjust declaration.
2415 (vn_reference_insert_pieces): Likewise.
2416
554223b6
BK
24172009-05-28 Benjamin Kosnik <bkoz@redhat.com>
2418
2419 * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
2420 with checking disabled.
2421
233215fe
DK
24222009-05-28 Dave Korn <dave.korn.cygwin@gmail.com>
2423
2424 PR target/37216
2425
2426 * configure.ac (HAVE_GAS_ALIGNED_COMM): Add autoconf test and
2427 macro definition for support of three-operand format aligned
2428 .comm directive in assembler on cygwin/pe/mingw target OS.
2429 * configure: Regenerate.
2430 * config.h: Regenerate.
2431
2432 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Use
2433 aligned form of .comm directive if -mpe-aligned-commons is in effect.
2434 * config/i386/cygming.opt (-mpe-aligned-commons): Add new option.
2435
2436 * doc/invoke.texi (-mpe-aligned-commons): Document new target option.
2437 * doc/tm.texi (ASM_OUTPUT_COMMON): Document zero size commons.
2438
24adb18f
IR
24392009-05-28 Ira Rosen <irar@il.ibm.com>
2440
2441 PR tree-optimization/40254
2442 * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
2443 in analysis of basic blocks.
2444
2c5bfdf7
AN
24452009-05-28 Adam Nemet <anemet@caviumnetworks.com>
2446
2447 PR middle-end/33699
f3afc8a7 2448 * target.h (struct gcc_target): Fix indentation. Add const_anchor.
2c5bfdf7
AN
2449 * target-def.h (TARGET_CONST_ANCHOR): New macro.
2450 (TARGET_INITIALIZER): Use it.
2451 * cse.c (CHEAPER): Move it up to the other macros.
2452 (insert): Rename this ...
2453 (insert_with_costs): ... to this. Add cost parameters. Update
2454 function comment.
2455 (insert): New function. Call insert_with_costs.
2456 (compute_const_anchors, insert_const_anchor, insert_const_anchors,
2457 find_reg_offset_for_const, try_const_anchors): New functions.
2458 (cse_insn): Call try_const_anchors. Adjust cost of src_related
2459 when using a const-anchor. Call insert_const_anchors.
f3afc8a7 2460 * config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor.
2c5bfdf7
AN
2461 * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
2462
9e6aced0
AO
24632009-05-28 Alexandre Oliva <aoliva@redhat.com>
2464
2465 * tree-inline.c (remap_decls): Enable nonlocalized variables
2466 when not optimizing.
2467
89fbbe4e
AO
24682009-05-28 Alexandre Oliva <aoliva@redhat.com>
2469
2470 * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
2471 Simplify other tests involving optimize.
2472
e455776a
TT
24732009-05-27 Tom Tromey <tromey@redhat.com>
2474
2475 * unwind-dw2.c (_Unwind_DebugHook): New function.
2476 (uw_install_context): Call _Unwind_DebugHook.
2477
cea32bca
TT
24782009-05-27 Tom Tromey <tromey@redhat.com>
2479
2480 * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
2481
c607156f
ILT
24822009-05-27 Ian Lance Taylor <iant@google.com>
2483
2484 * Makefile.in (LINKER, LINKER_FLAGS): Define.
2485 (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
2486 (ALL_LINKERFLAGS): Define.
2487 (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
2488 (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
2489 (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
2490 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
2491 (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
2492 $(LINKER_FOR_BUILD).
2493 (build/gcov-iov$(build_exeext)): Likewise.
2494
ec0a1343
JB
24952009-05-27 Julian Brown <julian@codesourcery.com>
2496
2497 * gcse.c (target.h): Include.
2498 (can_assign_to_reg_without_clobbers_p): Check that the target allows
2499 copy of argument to a pseudo register.
2500
ac80ba07
DN
25012009-05-27 Diego Novillo <dnovillo@google.com>
2502
2503 * tree-ssa-live.c (dump_scope_block): Document arguments.
2504 (dump_scope_blocks): Document.
2505 (debug_scope_blocks): New.
2506 * tree-flow.h (debug_scope_blocks): Declare.
2507
d1803a17
DC
25082009-05-21 Denis Chertykov <denisc@overta.ru>
2509
f3afc8a7 2510 * doc/contrib.texi (Contributors): Add myself to the list.
d1803a17 2511
51fb7760 25122009-05-27 Olivier Hainque <hainque@adacore.com>
ceadb728
OH
2513
2514 * expr.c (target_align): New function. Alignment the TARGET of an
2515 assignment may be assume to have.
2516 (highest_pow2_factor_for_target): Use it instead of relying on
2517 immediate tree attributes of TARGET, not necessarily honored when
2518 intermediate bitfields are involved.
2519
634fa334
L
25202009-05-27 H.J. Lu <hongjiu.lu@intel.com>
2521
2522 PR target/40266
2523 * config/i386/driver-i386.c (host_detect_local_cpu): Support
2524 AVX, SSE4, AES, PCLMUL and POPCNT.
2525
65332587
DN
25262009-05-27 Diego Novillo <dnovillo@google.com>
2527
2528 * tree-pretty-print.c (dump_location): New.
2529 (dump_generic_node): Call it.
2530 Factor code to handle BLOCK nodes ...
2531 (dump_block_node): ... here.
2532
3e17e31d
RAE
25332009-05-27 Rafael Avila de Espindola <espindola@google.com>
2534
f3afc8a7
UB
2535 * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h
2536 with it.
3e17e31d
RAE
2537 * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
2538 included.
2539 * gcc-plugin.h: Include config.h and system.h.
2540 (IN_GCC): Define if not defined.
2541
5e370570
HPN
25422009-05-27 Hans-Peter Nilsson <hp@axis.com>
2543
2544 PR middle-end/40249
2545 * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
2546 with -fno-inline.
2547
d000f0d9
SZ
25482009-05-27 Shujing Zhao <pearly.zhao@oracle.com>
2549
2550 * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
2551 applicable.
2552 * config/m32r/m32r.h: Ditto.
2553 * config/m32r/m32r.md: Ditto.
2554 * config/m32r/predicates.md: Ditto.
2555
82f331ff
AO
25562009-05-27 Alexandre Oliva <aoliva@redhat.com>
2557
2558 * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
2559
ae2392a9
BS
25602009-05-26 Basile Starynkevitch <basile@starynkevitch.net>
2561
2562 * doc/plugins.texi
2563 (Loading plugins): typo.
2564 (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
2565 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
2566 (Interacting with the GCC Garbage Collector): Added new section.
2567 (Giving information about a plugin): Added new section for
2568 PLUGIN_INFO.
ae2392a9
BS
2569 * ggc.h (ggc_register_root_tab): Added declaration.
2570 * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
2571 (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
2572 (register_callback): Improved comment in declaration.
f3afc8a7
UB
2573 * ggc-common.c (const_ggc_root_tab_t) Added new typedef for vectors.
2574 (extra_root_vec) Added static variable for dynamic roots registration.
ae2392a9
BS
2575 (ggc_register_root_tab) Added new routine.
2576 (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
2577 PLUGIN_GGC_MARKING event.
2578 * ggc-zone.c: Include plugin.h.
2579 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
2580 * ggc-page.c: Include plugin.h.
2581 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
2582 * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
2583 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
2584 (register_callback): check lack of callbacks for
2585 pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
2586 PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
2587 (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
2588 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
2589 * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
2590 dependency on plugin.h.
2591 (plugin.o): Added dependency on ggc.h...
2592
f0cfd3a8
RG
25932009-05-26 Richard Guenther <rguenther@suse.de>
2594
2595 PR middle-end/40248
2596 Revert
2597 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
2598 with mismatched comparison modes.
2599
2600 * expr.c (expand_expr_real_1): Expand the operand of a
2601 VIEW_CONVERT_EXPR in its natural mode.
2602
7980bfb8
ILT
26032009-05-26 Ian Lance Taylor <iant@google.com>
2604
2605 * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
2606 (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
2607 (ALL_COMPILERFLAGS): Define.
2608 (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
2609 (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
2610 (collect2$(exeext), collect2.o): Likewise.
2611 (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
2612 (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
2613 ($(out_object_file), mips-tfile, mips-tdump): Likewise.
2614 (libbackend.o, intl.o, cppdefault.o): Likewise.
2615 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
2616 (build/%.o): Use $(COMPILER_FOR_BUILD).
2617 (build/gen%$(build_exeext)): Likewise.
2618 (build/gcov-iov$(build_exeext)): LIkewise.
2619 * config/t-darwin (darwin.o): Use $(COMPILER).
2620 (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
2621 * config/t-sol2 (sol2-c.o): Likewise.
2622 (sol2.o): Likewise.
2623 * config/t-vxworks (vxworks.o): Likewise.
2624 * config/x-darwin (host-darwin.o): Likewise.
2625 * config/x-hpux (host-hpux.o): Likewise.
2626 * config/x-linux (host-linux.o): Likewise.
2627 * config/x-solaris (host-solaris.o): Likewise.
2628 * config/alpha/x-alpha (driver-alpha.o): Likewise.
2629 * config/arm/t-arm (arm-c.o): Likewise.
2630 * config/arm/t-pe (pe.o): Likewise.
2631 * config/arm/t-wince-pe (pe.o): Likewise.
2632 * config/i386/t-cygming (winnt.o): Likewise.
2633 (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
2634 * config/i386/t-cygwin (cygwin1.o): Likewise.
2635 (cygwin2.o): Likewise.
2636 * config/i386/t-i386 (i386-c.o): Likewise.
2637 * config/i386/t-interix (winnt.o): Likewise.
2638 * config/i386/t-netware (netware.o): Likewise.
2639 * config/i386/t-nwld (nwld.o): Likewise.
2640 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
2641 * config/i386/x-i386 (driver-i386.o): Likewise.
2642 * config/i386/x-cygwin (host-cygwin.o): Likewise.
2643 * config/i386/x-mingw32 (host-mingw32.o): Likewise.
2644 * config/ia64/t-ia64 (ia64-c.o): Likewise.
2645 * config/m32c/t-m32c (m32c-pragma.o): Likewise.
2646 * config/mips/x-native (driver-native.o): Likewise.
2647 * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
2648 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
2649 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
2650 * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
2651 * config/score/t-score-elf (score7.o): Likewise.
2652 (score3.o): Likewise.
2653 * config/sh/t-sh (sh-c.o): Likewise.
2654 * config/sh/t-symbian (sh-c.o): Likewise.
2655 (symbian.o): Likewise.
2656 * config/spu/t-spu-elf (spu-c.o): Likewise.
2657 * config/v850/t-v850 (v850-c.o): Likewise.
2658 * config/v850/t-v850e (v850-c.o): Likewise.
2659
23977d3c
RG
26602009-05-26 Richard Guenther <rguenther@suse.de>
2661
2662 PR tree-optimization/40122
2663 * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
2664 VECTOR_CSTs if possible.
2665 (fold_gimple_assign): Likewise.
2666
3d62b895
RG
26672009-05-26 Richard Guenther <rguenther@suse.de>
2668
2669 PR middle-end/40252
2670 * fold-const.c (fold_binary): Use the correct types for building
2671 rotates.
2672
12346147
RG
26732009-05-26 Richard Guenther <rguenther@suse.de>
2674
2675 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
2676 redundant calls to merge_alias_info.
2677 (bump_vector_ptr): Likewise.
2678 * tree-ssa-copy.c (merge_alias_info): Remove.
2679 (replace_exp_1): Remove call to merge_alias_info.
2680 (propagate_tree_value): Likewise.
2681 (fini_copy_prop): Propagate points-to info.
2682 * tree-flow.h (merge_alias_info): Remove.
2683
807d5e6f
HS
26842009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
2685
2686 * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
2687
85057983
JH
26882009-05-25 Jan Hubicka <jh@suse.cz>
2689
2690 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
2691 * cgraph.h (struct inline_summary): New filed self_wize,
2692 size_inlining_benefit, self_time and time_inlining_benefit.
2693 (struct cgraph_global_info): Replace insns by time ans size fields.
2694 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
2695 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
2696 (ipcp_update_callgraph): Do not touch function bodies.
2697 * ipa-inline.c: Include except.h
2698 (MAX_TIME): New constant.
2699 (overall_insns): Remove.
2700 (leaf_node_p): New.
2701 (overall_size, max_benefit): New static variables.
2702 (cgraph_estimate_time_after_inlining): New function.
2703 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
2704 (cgraph_clone_inlined_nodes): Update size.
2705 (cgraph_mark_inline_edge): Update size.
2706 (cgraph_estimate_growth): Use size info.
2707 (cgraph_check_inline_limits): Check size.
2708 (cgraph_default_inline_p): Likewise.
2709 (cgraph_edge_badness): Compute badness based on benefit and size cost.
2710 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
2711 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
2712 and times.
85057983
JH
2713 (cgraph_decide_inlining): Likewise.
2714 (cgraph_decide_inlining_incrementally): Likewise; honor
2715 PARAM_EARLY_INLINING_INSNS.
2716 (likely_eliminated_by_inlining_p): New predicate.
2717 (estimate_function_body_sizes): New function.
2718 (compute_inline_parameters): Use it.
2719 * except.c (must_not_throw_labels): New function.
2720 * except.h (must_not_throw_labels): Declare.
2721 * tree-inline.c (init_inline_once): Kill inlining_weigths
2722 * tree-ssa-structalias.c: Avoid uninitialized warning.
2723 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
2724 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
2725 (PARAM_INLINE_CALL_COST): Remove.
2726 (PARAM_EARLY_INLINING_INSNS): New.
2727
01df5c8a
RG
27282009-05-25 Richard Guenther <rguenther@suse.de>
2729
2730 PR tree-optimization/36327
2731 * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
f3afc8a7 2732 callback for reference translation or lookup at the point of may-defs.
01df5c8a
RG
2733 * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
2734 * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
2735 for union COMPONENT_REFs.
2736 (vn_reference_lookup_3): New callback. Lookup from memset
2737 and CONSTRUCTOR assignment, translate through struct copies.
2738 (vn_reference_lookup_pieces): Make sure to not free the
2739 passed operands array. Adjust walk_non_aliased_vuses call.
2740 (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
2741 make sure we do not leak memory.
2742
6b8ed145
RG
27432009-05-25 Richard Guenther <rguenther@suse.de>
2744
2745 * tree-ssa-alias.h (dump_points_to_solution): Declare.
2746 * tree-inline.c (expand_call_inline): Reset the escaped and
2747 callused solutions.
2748 * tree-ssa-structalias.c (pass_build_ealias): New.
2749 * tree-pass.h (pass_build_ealias): Declare.
2750 * passes.c (init_optimization_passes): Add PTA during
2751 early optimizations.
2752 * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
2753 and CALLUSED solutions.
2754 (dump_points_to_solution): New function, split out from ...
2755 (dump_points_to_info_for): ... here.
2756 * tree-parloops.c (parallelize_loops): Reset the escaped and
2757 callused solutions.
2758
0adcf178
RO
27592009-05-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2760
2761 PR bootstrap/40027
2762 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
2763 * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
2764
12aaf609
IR
27652009-05-25 Ira Rosen <irar@il.ibm.com>
2766
2767 PR tree-optimization/40238
2768 * tree-vect-stmts.c (vect_init_vector): Insert initialization
2769 statements after basic block's labels.
2770 * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info()
2771 to free the allocated memory.
2772
7f9a14e3
KK
27732009-05-24 Kaz Kojima <kkojima@gcc.gnu.org>
2774
2775 * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
2776 return address with a USE.
2777
b842d478
RG
27782009-05-24 Richard Guenther <rguenther@suse.de>
2779
2780 PR middle-end/40233
2781 * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
2782 array type from the main variant of the inner type.
2783
8db7b33f
JBG
27842009-05-24 Jan-Benedict Glaw <jbglaw@lug-owl.de>
2785
2786 * config/vax/vax-protos.h (legitimate_constant_address_p): Change
2787 definition to bool (from int) to un-break build.
2788 (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
2789
cff4e50d
PB
27902009-05-24 Paolo Bonzini <bonzini@gnu.org>
2791
2792 * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
2793 discard_stmt_changes): Delete.
2794 * tree-ssa-operands.c (scb_stack): Delete.
2795 (init_ssa_operands): Do not initialize it.
2796 (fini_ssa_operands): Do not free it.
2797 (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
2798
2799 * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with
2800 update_stmt, remove the others. Fix comments.
2801 * tree-dfa.c (optimize_stack_restore): Likewise.
2802 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
2803 * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
2804 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
2805 * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
2806 Likewise.
2807 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
2808 * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
f3afc8a7
UB
2809 (dom_opt_finalize_block): Likewise, adjusting access to
2810 stmts_to_rescan.
cff4e50d
PB
2811 (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
2812 (stmts_to_rescan): Change item type to gimple.
2813 (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
2814
a70d6342
IR
28152009-05-24 Ira Rosen <irar@il.ibm.com>
2816
2817 * doc/passes.texi (Tree-SSA passes): Document SLP pass.
2818 * tree-pass.h (pass_slp_vectorize): New pass.
2819 * params.h (SLP_MAX_INSNS_IN_BB): Define.
2820 * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
2821 * tree-vectorizer.c (timevar.h): Include.
2822 (user_vect_verbosity_level): Declare.
2823 (vect_location): Fix comment.
2824 (vect_set_verbosity_level): Update user_vect_verbosity_level
2825 instead of vect_verbosity_level.
2826 (vect_set_dump_settings): Add an argument. Ignore user defined
2827 verbosity if dump flags require higher level of verbosity. Print to
2828 stderr only for loop vectorization.
2829 (vectorize_loops): Update call to vect_set_dump_settings.
2830 (execute_vect_slp): New function.
2831 (gate_vect_slp): Likewise.
2832 (struct gimple_opt_pass pass_slp_vectorize): New.
2833 * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
2834 access its members.
2835 (vec_info_for_bb): New function.
2836 (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
2837 (VECTORIZATION_ENABLED): New macro.
2838 (SLP_ENABLED, SLP_DISABLED): Likewise.
2839 (vect_is_simple_use): Add bb_vec_info argument.
2840 (new_stmt_vec_info, vect_analyze_data_ref_dependences,
2841 vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
2842 vect_analyze_data_ref_accesses, vect_analyze_data_refs,
2843 vect_schedule_slp, vect_analyze_slp): Likewise.
2844 (vect_analyze_stmt): Add slp_tree argument.
2845 (find_bb_location): Declare.
2846 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
2847 * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
2848 (vect_analyze_loop_operations, vect_analyze_loop,
2849 get_initial_def_for_induction, vect_create_epilog_for_reduction,
2850 vect_finalize_reduction, vectorizable_reduction,
2851 vectorizable_live_operation, vect_transform_loop): Likewise.
2852 * tree-data-ref.c (dr_analyze_innermost): Update comment,
2853 skip evolution analysis if analyzing a basic block.
2854 (dr_analyze_indices): Likewise.
2855 (initialize_data_dependence_relation): Skip the test whether the
2856 object is invariant for basic blocks.
2857 (compute_all_dependences): Skip dependence analysis for data
2858 references in basic blocks.
2859 (find_data_references_in_stmt): Don't fail in case of invariant
2860 access in basic block.
2861 (find_data_references_in_bb): New function.
2862 (find_data_references_in_loop): Move code to
782dc37a 2863 find_data_references_in_bb and add a call to it.
a70d6342
IR
2864 (compute_data_dependences_for_bb): New function.
2865 * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
2866 * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
2867 that STEP is 0.
2868 (vect_analyze_data_ref_dependence): Check for interleaving in case of
2869 unknown dependence in basic block and fail in case of dependence in
2870 basic block.
2871 (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
2872 dependence instances from either loop or basic block vectorization
2873 info.
2874 (vect_compute_data_ref_alignment): Check if it is loop vectorization
2875 before calling nested_in_vect_loop_p.
2876 (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
2877 dependence instances from either loop or basic block vectorization
2878 info.
2879 (vect_verify_datarefs_alignment): Likewise.
2880 (vect_enhance_data_refs_alignment): Adjust function calls.
2881 (vect_analyze_data_refs_alignment): Likewise.
2882 (vect_analyze_group_access): Fix printing. Skip different checks if
2883 DR_STEP is 0. Keep strided stores either in loop or basic block
2884 vectorization data structure. Fix indentation.
2885 (vect_analyze_data_ref_access): Fix comments, allow zero step in
2886 basic blocks.
2887 (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
2888 dependence instances from either loop or basic block vectorization
2889 info.
2890 (vect_analyze_data_refs): Update comment. Call
2891 compute_data_dependences_for_bb to analyze basic blocks.
2892 (vect_create_addr_base_for_vector_ref): Check for outer loop only in
2893 case of loop vectorization. In case of basic block vectorization use
782dc37a 2894 data-ref itself as a base.
a70d6342
IR
2895 (vect_create_data_ref_ptr): In case of basic block vectorization:
2896 don't advance the pointer, add new statements before the current
2897 statement. Adjust function calls.
2898 (vect_supportable_dr_alignment): Support only aligned accesses in
2899 basic block vectorization.
2900 * common.opt (ftree-slp-vectorize): New flag.
2901 * tree-vect-patterns.c (widened_name_p): Adjust function calls.
2902 (vect_pattern_recog_1): Likewise.
2903 * tree-vect-stmts.c (process_use): Likewise.
2904 (vect_init_vector): Add new statements in the beginning of the basic
2905 block in case of basic block SLP.
2906 (vect_get_vec_def_for_operand): Adjust function calls.
2907 (vect_finish_stmt_generation): Likewise.
2908 (vectorizable_call): Add assert that it is loop vectorization, adjust
2909 function calls.
2910 (vectorizable_conversion, vectorizable_assignment): Likewise.
2911 (vectorizable_operation): In case of basic block SLP, take
2912 vectorization factor from statement's type and skip the relevance
2913 check. Adjust function calls.
2914 (vectorizable_type_demotion): Add assert that it is loop
2915 vectorization, adjust function calls.
2916 (vectorizable_type_promotion): Likewise.
2917 (vectorizable_store): Check for outer loop only in case of loop
2918 vectorization. Adjust function calls. For basic blocks, skip the
2919 relevance check and don't advance pointers.
2920 (vectorizable_load): Likewise.
2921 (vectorizable_condition): Add assert that it is loop vectorization,
2922 adjust function calls.
2923 (vect_analyze_stmt): Add argument. In case of basic block SLP, check
2924 that it is not reduction, get vector type, call only supported
782dc37a 2925 functions, skip loop specific parts.
a70d6342
IR
2926 (vect_transform_stmt): Check for outer loop only in case of loop
2927 vectorization.
2928 (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
2929 (vect_is_simple_use): Fix comment, add new argument, fix conditions
2930 for external definition.
2931 * passes.c (pass_slp_vectorize): New pass.
2932 * tree-vect-slp.c (find_bb_location): New function.
2933 (vect_get_and_check_slp_defs): Add argument, adjust function calls,
2934 check for patterns only in loops.
2935 (vect_build_slp_tree): Add argument, adjust function calls, fail in
2936 case of multiple types in basic block SLP.
2937 (vect_mark_slp_stmts_relevant): New function.
2938 (vect_supported_load_permutation_p): Fix comment.
2939 (vect_analyze_slp_instance): Add argument. In case of basic block
2940 SLP, take vectorization factor from statement's type, check that
2941 unrolling factor is 1. Adjust function call. Save SLP instance in
2942 either loop or basic block vectorization structure. Return FALSE,
2943 if SLP failed.
2944 (vect_analyze_slp): Add argument. Get strided stores groups from
2945 either loop or basic block vectorization structure. Return FALSE
2946 if basic block SLP failed.
2947 (new_bb_vec_info): New function.
2948 (destroy_bb_vec_info, vect_slp_analyze_node_operations,
2949 vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
2950 (vect_schedule_slp): Add argument. Get SLP instances from either
2951 loop or basic block vectorization structure. Set vectorization factor
2952 to be 1 for basic block SLP.
2953 (vect_slp_transform_bb): New function.
2954 * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
2955
0676c393
MM
29562009-05-23 Mark Mitchell <mark@codesourcery.com>
2957
2958 * final.c (shorten_branches): Do not align labels for jump tables.
2959 (final_scan_insn): Use JUMP_TABLE_DATA_P.
2960
94324dae
EB
29612009-05-23 Eric Botcazou <ebotcazou@adacore.com>
2962
2963 * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
2964 Remove outdated reference to flow.c and fix nits.
2965 * doc/gccint.texi: Tweak RTL description.
2966 * doc/rtl.texi: Likewise.
2967
92bffc14
DC
29682009-05-23 Denis Chertykov <chertykov@gmail.com>
2969
2970 * config/avr/avr.c: Change my email address.
2971 * config/avr/avr.h: Likewise.
2972 * config/avr/avr.md: Likewise.
2973 * config/avr/avr-protos.h: Likewise.
2974 * config/avr/libgcc.S: Likewise.
2975
eec9405e
TS
29762009-05-22 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
2977
2978 * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
2979 (spu_split_load, spu_split_store): Change return type to int.
2980 (spu_split_convert): Declare.
2981 * config/spu/predicates.md (spu_mem_operand): Remove.
2982 (spu_mov_operand): Update.
2983 (spu_dest_operand, shiftrt_operator, extend_operator): Define.
2984 * config/spu/spu.c (regno_aligned_for_load): Remove.
2985 (reg_aligned_for_addr, spu_expand_load): Define.
2986 (spu_expand_extv): Reimplement and handle MEM.
2987 (spu_expand_insv): Handle MEM.
2988 (spu_sched_reorder): Handle insn's with length 0.
2989 (spu_legitimate_address_p): Reimplement.
2990 (store_with_one_insn_p): Return TRUE for any mode with size
2991 larger than 16 bytes.
2992 (address_needs_split): Define.
2993 (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
2994 operands.
2995 (spu_convert_move): Define.
782dc37a 2996 (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
eec9405e
TS
2997 (spu_split_store): Change all MEM's to TImode.
2998 (spu_init_expanders): Preallocate registers that correspond to
2999 LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
3000 mark_reg_pointer.
3001 (spu_split_convert): Define.
3002 * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
3003 (_move<mode>, _movdi, _movti): Update predicate and condition.
3004 (load, store): Change to define_split.
3005 (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
3006 extend<mode>ti2.
3007 (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
3008 (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
3009 define_insn_and_split of lshr<mode>3.
3010 (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
3011 (<v>ashr<mode>3_imm): Define.
3012 (extv, extzv, insv): Allow MEM operands.
3013 (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
3014 shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
3015 sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
3016 (_spu_convert2): Change to define_insn_and_split and remove the
3017 corresponding define_peephole2.
3018 (stack_protect_set, stack_protect_test, stack_protect_test_si):
3019 Change predicates to memory_operand.
3020
7d31a807
MM
30212009-05-22 Mark Mitchell <mark@codesourcery.com>
3022
3023 * config/arm/thumb2.md: Add 16-bit multiply instructions.
7d31a807 3024
d021d274
MM
30252009-05-21 Michael Meissner <meissner@linux.vnet.ibm.com>
3026
3027 PR tree-optimization/40219
3028 * tree.c (iterative_hash_expr): Make sure the builtin function is
3029 a normal builtin function and not a front end or back end builtin
3030 before indexing into the built_in_decls array.
3031
4d7a65ea
RG
30322009-05-22 Richard Guenther <rguenther@suse.de>
3033
3034 PR middle-end/38964
3035 * alias.c (write_dependence_p): Do not use TBAA for answering
3036 anti-dependence or output-dependence.
782dc37a 3037 * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
4d7a65ea
RG
3038 (emit_pointer_definition): Remove.
3039 (emit_alias_warning): Likewise.
3040 (find_what_var_points_to): Remove TBAA pruning code.
3041 (find_what_p_points_to): Likewise. Do not warn about strict-aliasing
3042 violations.
3043 (compute_points_to_sets): Remove code computing the set of
3044 dereferenced pointers.
3045 * tree-data-ref.c (dr_may_alias_p): Properly use the split
3046 oracle for querying anti and output dependencies.
3047 * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
3048 if TBAA may be applied.
3049 (refs_anti_dependent_p): New function.
3050 (refs_output_dependent_p): Likewise.
3051 * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
3052 (refs_output_dependent_p): Likewise.
3053 * doc/tree-ssa.texi (Memory model): New section.
3054 * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
3055 * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
3056 * cfgexpand.c (expand_gimple_basic_block): Do not handle
3057 GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
3058 * expr.c (expand_expr_real_1): Likewise.
3059 * gimple-low.c (lower_stmt): Likewise.
3060 * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
3061 (dump_gimple_cdt): Remove.
3062 * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
3063 (gimple_size): Likewise.
3064 (walk_gimple_op): Likewise.
3065 (is_gimple_stmt): Likewise.
3066 (walk_stmt_load_store_addr_ops): Likewise.
3067 (gimple_build_cdt): Remove.
3068 * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
3069 * gimple.h (gimple_cdt_new_type): Remove.
3070 (gimple_cdt_new_type_ptr): Likewise.
3071 (gimple_cdt_set_new_type): Likewise.
3072 (gimple_cdt_location): Likewise.
3073 (gimple_cdt_location_ptr): Likewise.
3074 (gimple_cdt_set_location): Likewise.
3075 * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
3076 * tree-cfg.c (remove_useless_stmts_1): Do not handle
3077 GIMPLE_CHANGE_DYNAMIC_TYPE.
3078 (verify_types_in_gimple_stmt): Likewise.
3079 * tree-inline.c (estimate_num_insns): Likewise.
3080 (expand_call_inline): Do not copy DECL_NO_TBAA_P.
3081 (copy_decl_to_var): Likewise.
3082 (copy_result_decl_to_var): Likewise.
3083 * tree-pretty-print.c (dump_generic_node): Do not handle
3084 CHANGE_DYNAMIC_TYPE_EXPR.
3085 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
3086 * tree-ssa-operands.c (get_expr_operands): Likewise.
3087 * tree-ssa-structalias.c (struct variable_info): Remove
3088 no_tbaa_pruning member.
3089 (new_var_info): Do not set it based on DECL_NO_TBAA_P.
3090 (unify_nodes): Do not copy it.
3091 (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
3092 (dump_solution_for_var): Do not dump no_tbaa_pruning state.
3093 (set_uids_in_ptset): Do not check it.
3094 (find_what_var_points_to): Likewise.
3095 (compute_tbaa_pruning): Remove.
3096 (compute_points_to_sets): Do not call it.
3097 * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
3098 * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
3099 * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
3100 (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
3101 (DECL_NO_TBAA_P): Likewise.
3102 (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
3103 * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
3104 (expand_omp_atomic_pipeline): Do not set it.
3105 * print-tree.c (print_node): Do not dump it.
3106 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
3107 redundant check.
3108
83a6ac60
VM
31092009-05-22 Vladimir Makarov <vmakarov@redhat.com>
3110
3111 PR target/39856
3112 * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
3113 for clobber.
3114
fe2978fb
MM
31152009-05-22 Mark Mitchell <mark@codesourcery.com>
3116
3117 * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
3118 non-external.
3119
134ef638
BE
31202009-05-22 Ben Elliston <bje@au.ibm.com>
3121
3122 * Makefile.in (bversion.h, s-bversion): New targets.
3123 (TOPLEV_H): Add bversion.h.
3124 * toplev.h: Include "bversion.h".
3125 (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
3126 the __format__ attribute only if compiling with the same version
3127 of GCC as the sources (the "build version").
3128
52fc669d
BE
31292009-05-22 Ben Elliston <bje@au.ibm.com>
3130
3131 * c-format.c (handle_format_attribute): Fix comment typo.
3132
583ca921
SE
31332009-05-21 Steve Ellcey <sje@cup.hp.com>
3134
3135 PR target/37846
3136 * config/ia64/ia64.opt (mfused-madd): New.
3137 * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
3138 * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
3139 * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
3140 madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
3141 nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
3142 msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
3143 nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
3144 * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms
3145 instruction if !TARGET_FUSED_MADD.
3146 (fpma, fpms): Remove colon from name.
3147
150e3929
RG
31482009-05-22 Richard Guenther <rguenther@suse.de>
3149
3150 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
3151 TMR_ORIGINAL. Always either record TMR_SYMBOL or TMR_BASE.
3152 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
3153 TARGET_MEM_REF.
3154 (create_expression_by_pieces): Only convert if necessary.
3155 * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
3156 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
3157
9a2b090c
AN
31582009-05-21 Adam Nemet <anemet@caviumnetworks.com>
3159
3160 * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
3161 regular pattern from a template and rename it ...
3162 (*extzv_truncsi_exts): ... to this.
3163
33b92c9d
RG
31642009-05-21 Richard Guenther <rguenther@suse.de>
3165
3166 * cgraph.h (struct cgraph_node): Remove inline_decl member.
3167 * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
3168 (cgraph_default_inline_p): Likewise.
3169 (cgraph_decide_inlining_incrementally): Likewise.
3170
cabf85c3
L
31712009-05-21 H.J. Lu <hongjiu.lu@intel.com>
3172 Uros Bizjak <ubizjak@gmail.com>
3173
3174 * config/i386/cpuid.h (bit_MOVBE): New.
3175
3176 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
3177
3178 * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
3179 (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
3180 (ix86_handle_option): Handle OPT_mmovbe.
3181 (ix86_target_string): Add -mmovbe.
3182 (pta_flags): Add PTA_MOVBE.
3183 (processor_alias_table): Add PTA_MOVBE to "atom".
3184 (override_options): Handle PTA_MOVBE.
3185
3186 * config/i386/i386.h (TARGET_MOVBE): New.
3187
3188 * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
3189 (*bswapsi_movbe): New.
3190 (*bswapdi_movbe): Likewise.
3191 (bswapdi2): Renamed to ...
3192 (*bswapdi_1): This.
3193 (bswapdi2): New expander.
3194
3195 * config/i386/i386.opt (mmovbe): New.
3196
3197 * doc/invoke.texi: Document -mmovbe.
3198
9fefa0aa
TG
31992009-05-21 Taras Glek <tglek@mozilla.com>
3200
3201 * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
3202 * gcc-plugin.h (plugin_init): Updated signature.
3203 * gcc-plugin.h (plugin_name_args): Moved to this header.
cabf85c3
L
3204 * doc/plugins.texi (plugin_init): Updated documention to reflect
3205 API change.
9fefa0aa
TG
3206 * doc/plugins.texi (plugin_name_args): Added to documention.
3207
1ea9fe56
MM
32082009-05-21 Mark Mitchell <mark@codesourcery.com>
3209
3210 * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
3211 (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
3212
52f84254
SZ
32132009-05-21 Shujing Zhao <pearly.zhao@oracle.com>
3214
3215 * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
3216 JUMP_TABLE_DATA_P predicates where applicable.
3217 * config/i386/predicates.md: Ditto.
3218 * config/i386/sse.md: Ditto.
3219
a952487c
JJ
32202009-05-21 Jakub Jelinek <jakub@redhat.com>
3221
93cac287
JJ
3222 * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
3223 operand2 -128 override length_immediate attribute to 1.
3224 * config/i386/predicates.md (constm128_operand): New predicate.
3225
a952487c
JJ
3226 * config/i386/i386.c (memory_address_length): Handle %r12
3227 the same as %rsp and %r13 the same as %rbp. For %rsp and %rbp
3228 also check REGNO.
3229 (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
3230 mode look through optional ZERO_EXTEND and SUBREG.
3231 * config/i386/i386.md (R12_REG): New define_constant.
3232 (prefix_data16): For sse unit set also for MODE_TI insns.
3233 (prefix_rex): For -m32 always return 0. For TYPE_IMOVX
3234 insns set if operand 1 is ext_QIreg_operand.
3235 (modrm): For TYPE_IMOV clear only if not MODE_DI. For
3236 TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
3237 immediate.
3238 (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
3239 mode from MODE_DI to MODE_SI.
3240 (movdi_1_rex64): Override modrm and length_immediate attributes
3241 only for movabs (TYPE_IMOV, alternative 2).
3242 (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
3243 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
3244 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
3245 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
3246 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
3247 prefix_rex attribute if DImode.
3248 (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
3249 *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
3250 *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
3251 *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
3252 attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
3253 (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
3254 Likewise. For TYPE_IMOV clear length_immediate attribute.
3255 (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
3256 *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
3257 *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
3258 *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
3259 *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
3260 or one operand TYPE_ISHIFT.
3261 (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
3262 *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
3263 *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
3264 *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
3265 *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
3266 *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
3267 *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
3268 *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
3269 *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
3270 *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
3271 *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
3272 *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
3273 *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
3274 *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
3275 *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
3276 *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
3277 *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
3278 set mode attribute, don't override length attribute.
3279 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
3280 to 1.
3281 (return_internal_long): Set length attribute to 2 instead of 1.
3282 (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
3283 *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
3284 prefix_rex attribute.
782dc37a
UB
3285 * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
3286 New predicates.
3287 (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
a952487c 3288
64af62c2
RR
32892009-05-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3290
3291 * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
3292
c166b898
ILT
32932009-05-20 Ian Lance Taylor <iant@google.com>
3294
3295 * tree.c (build_tree_list_vec_stat): New function.
3296 (ctor_to_vec): New function.
3297 (build_nt_call_vec): New function.
3298 (build_call_array): Change args to be a const pointer.
3299 (build_call_vec): New function.
3300 * tree.h (build_nt_call_vec): Declare.
3301 (build_tree_list_vec_stat): Declare.
3302 (build_tree_list_vec): Define.
3303 (build_call_array): Update declaration.
3304 (build_call_vec): Declare.
3305 (ctor_to_vec): Declare.
3306 * c-common.c (tree_vector_cache): New static variable.
3307 (make_tree_vector): New function.
3308 (release_tree_vector): New function.
3309 (make_tree_vector_single): New function.
3310 (make_tree_vector_copy): New function.
3311 * c-common.h (tree_vector_cache, make_tree_vector): Declare.
3312 (make_tree_vector_single, make_tree_vector_copy): Declare.
3313 * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
3314 (c_parser_expr_list): Don't manage cache here, instead call
3315 make_tree_vector.
3316 (c_parser_release_expr_list): Remove static function.
3317 (c_parser_vec_to_tree_list): Remove static function.
3318 (c_parser_attributes): Call build_tree_list_vec instead of
3319 c_parser_vec_to_tree_list. Call release_tree_vector instead of
3320 c_parser_release_expr_list.
3321 (c_parser_postfix_expression_after_primary): Likewise.
3322 (c_parser_objc_keywordexpr): Likewise.
3323
40449a90
SL
33242009-05-20 Sandra Loosemore <sandra@codesourcery.com>
3325
3326 * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
3327 TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
3328 TARGET_CONVERT_TO_TYPE.
3329 * hooks.c (hook_tree_const_tree_null): Define.
3330 * hooks.h (hook_tree_const_tree_null): Declare.
3331 * target.h (struct gcc_target): Add invalid_parameter_type,
3332 invalid_return_type, promoted_type, and convert_to_type fields.
3333 * target-def.h: (TARGET_INVALID_PARAMETER_TYPE): Define.
3334 (TARGET_INVALID_RETURN_TYPE): Define.
3335 (TARGET_PROMOTED_TYPE): Define.
3336 (TARGET_CONVERT_TO_TYPE): Define.
3337 (TARGET_INITIALIZER): Update for new fields.
3338 * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
3339 (grokparms): Check targetm.invalid_parameter_type.
3340 * c-typeck.c (default_conversion): Check targetm.promoted_type.
3341 * c-convert.c (convert): Check targetm.convert_to_type.
3342
642d97ff
AN
33432009-05-20 Adam Nemet <anemet@caviumnetworks.com>
3344
3345 * config/mips/mips.md (*extenddi_truncate<mode>,
3346 *extendsi_truncate<mode>): Emit exts if supported. Add attribute
3347 defintions.
3348 (*extendhi_truncateqi): New define_insn_and_sptit.
3349
776248b8
JJ
33502009-05-20 Jakub Jelinek <jakub@redhat.com>
3351
3352 PR middle-end/40204
3353 * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
782dc37a 3354 recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
776248b8 3355
d98e8686
EB
33562009-05-20 Eric Botcazou <ebotcazou@adacore.com>
3357
3358 * fold-const.c (build_fold_addr_expr_with_type): Take the address of
3359 the operand of VIEW_CONVERT_EXPR.
3360
37c50435
L
33612009-05-20 H.J. Lu <hongjiu.lu@intel.com>
3362
3363 * config/i386/driver-i386.c (host_detect_local_cpu): Check
f3afc8a7 3364 extended family and model for Intel processors. Support Intel Atom.
37c50435 3365
dbb6088f
OH
33662009-05-20 Olivier Hainque <hainque@adacore.com>
3367
3368 * gstab.h (stab_code_type): Define, to be used instead of the
3369 __stab_debug_code enum, made anonymous. Add 2009 to the copyright
3370 notice.
3371 * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
3372 occurrences by stab_code_type.
3373 * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
3374
7ec49257
MJ
33752009-05-20 Martin Jambor <mjambor@suse.cz>
3376
3377 * tree-flow.h (insert_edge_copies_seq): Undeclare.
3378 (sra_insert_before): Likewise.
3379 (sra_insert_after): Likewise.
3380 (sra_init_cache): Likewise.
3381 (sra_type_can_be_decomposed_p): Likewise.
3382 * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
3383 * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
3384 (sra_insert_before): Likewise.
3385 (sra_insert_after): Likewise.
3386 (sra_init_cache): Likewise.
3387 (insert_edge_copies_seq): Made static and moved upwards.
3388
3389 * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
3390 case.
3391
3392 * tree-flow-inline.h (contains_view_convert_expr_p): New function.
3393
3394 * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
3395 (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
3396 simple copies.
3397
0328ae4d
RG
33982009-05-20 Richard Guenther <rguenther@suse.de>
3399
3400 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
3401 with mismatched comparison modes.
3402
a7994a57 34032009-05-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
782dc37a 3404
a7994a57 3405 * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
782dc37a
UB
3406 (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
3407 * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
3408 with shifts for Thumb2.
3409 (orsi_notsi): New for orn.
3410 (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
3411 (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
3412 * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
3413 (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
3414 Don't invert remainder for IOR.
a7994a57 3415
e36dc339
ZD
34162009-05-19 Zdenek Dvorak <ook@ucw.cz>
3417
3418 PR tree-optimization/40087
3419 * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
3420 number_of_iterations_ne): Rename never_infinite argument.
3421 (number_of_iterations_lt_to_ne, number_of_iterations_lt,
3422 number_of_iterations_le): Handle pointer-type ivs when
3423 exit_must_be_taken is false.
3424 (number_of_iterations_cond): Do not always assume that
3425 exit_must_be_taken if the control variable is a pointer.
3426
5cfd5d9b
AP
34272009-05-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
3428
3429 * c-typeck.c (build_binary_op): Allow % on integal vectors.
3430 * doc/extend.texi (Vector Extension): Document that % is allowed too.
3431
2f1c7156
L
34322009-05-19 H.J. Lu <hongjiu.lu@intel.com>
3433
3434 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
3435 ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
3436
7bb27074
MLI
34372009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
3438
3439 PR c/40172
3440 * c.opt (Wlogical-op): Disabled by default.
3441 * c-opt (c_common_post_options): Do not enable Wlogical-op with
3442 Wextra.
3443 * doc/invoke.texi (Wlogical-op): Likewise.
3444
5aefc6a0
EB
34452009-05-19 Eric Botcazou <ebotcazou@adacore.com>
3446
3447 * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
3448 into CASE_CONVERT.
3449 <PLUS_EXPR>: Strip useless type conversions instead of type nops.
3450 Propagate the type of the first operand.
3451 <ASSERT_EXPR>: Simplify.
3452 (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
3453 Rewrite using the RHS code as discriminant.
3454 <NOP_EXPR>: Turn into CASE_CONVERT.
3455 <PLUS_EXPR>: Propagate the type of the first operand.
3456
f3a83111
SE
34572009-05-19 Steve Ellcey <sje@cup.hp.com>
3458
3459 * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
3460 (ia64_dconst_0_375): New.
3461 * config/ia64/ia64.c (ia64_override_options): Remove
3462 -minline-sqrt-min-latency warning.
3463 (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
3464 (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
3465 * config/ia64/ia64.md (*sqrt_approx): Remove.
3466 (sqrtsf2): Remove #if 0.
3467 (sqrtsf2_internal_thr): Rewrite and move to div.md.
3468 (sqrtdf): Remove assert.
3469 (sqrtdf2_internal_thr): Rewrite and move to div.md.
3470 (sqrtxf2): Remove #if 0.
3471 (sqrtxf2_internal_thr): Rewrite and move to div.md.
3472 * div.md (sqrt_approx_rf): New.
3473 (sqrtsf2_internal_thr): New implementation.
3474 (sqrtsf2_internal_lat): New.
3475 (sqrtdf2_internal_thr: New implementation.
3476 (sqrtxf2_internal): New implementation.
3477
1ffc7157
FXC
34782009-05-19 Francois-Xavier Coudert <fxcoudert@gmail.com>
3479 Hans-Peter Nilsson <hp@axis.com>
3480
3481 * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
3482 (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
3483 (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
3484 (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
3485 (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
3486 (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
3487 (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
3488 (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
3489 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
3490 (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
3491 * c-common.c: ...from here.
3492
db91d9ef
MLI
34932009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
3494
f3afc8a7 3495 * c-common.c (warn_logical_operator): Remove unnecessary conditionals.
db91d9ef 3496
bbb9d91f
KG
34972009-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3498
3499 * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
3500
ce883f54
BE
35012009-05-19 Ben Elliston <bje@au.ibm.com>
3502
3503 * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
3504 assignments with memcpy calls.
3505 (add_fdes): Likewise.
3506 (binary_search_unencoded_fdes): Likewise.
3507 (linear_search_fdes): Eliminate type puns.
3508
377f099a
RG
35092009-05-19 Richard Guenther <rguenther@suse.de>
3510
3511 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
3512 not falsely claim to have propagated into all uses.
3513
848bc769
BE
35142009-05-19 Ben Elliston <bje@au.ibm.com>
3515
3516 * doc/invoke.texi (C Dialect Options): Update OpenMP specification
3517 version to v3.0.
3518
1bb99877
KK
35192009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
3520
3521 * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
3522 * config/sh/sh.c (sh_legitimate_address_p): Make static.
3523 (TARGET_LEGITIMATE_ADDRESS_P): New.
3524 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3525 * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
3526
82725547
DS
35272009-05-18 Dodji Seketeli <dodji@redhat.com>
3528
3529 PR debug/40109
3530 * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
3531 child of the containing namespace's DIE.
3532
f6a1e430
AN
35332009-05-18 Adam Nemet <anemet@caviumnetworks.com>
3534
3535 * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
3536 *zero_extendhi_truncqi): Move after the zero_extend patterns.
3537 (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
3538 extend patterns.
3539
6a90d232
L
35402009-05-18 H.J. Lu <hongjiu.lu@intel.com>
3541
3542 PR target/39942
3543 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
3544 gen_align with gen_pad.
3545 (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
3546 #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
3547
3548 * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
3549 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
3550
3551 * config/i386/i386.md (align): Renamed to ...
3552 (pad): This. Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
3553 ASM_OUTPUT_MAX_SKIP_PAD.
3554
c4406f74
AS
35552009-05-18 Andreas Schwab <schwab@linux-m68k.org>
3556
06555043
AS
3557 * config.gcc: Fix variable syntax.
3558
c4406f74
AS
3559 PR target/39531
3560 * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
3561 before calling exact_log2.
3562 (output_iorsi3): Likewise.
3563 (output_xorsi3): Likewise.
3564
99052692
KK
35652009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
3566
3567 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
3568 for the none zero constant operand except for EQ and NE
3569 comprisons even when the first operand is R0.
3570
f4aa3848
AK
35712009-05-18 Andreas Krebbel <krebbel1@de.ibm.com>
3572
3573 * config/s390/2064.md: Remove trailing whitespaces.
3574 * config/s390/2084.md: Likewise.
3575 * config/s390/constraints.md: Likewise.
3576 * config/s390/fixdfdi.h: Likewise.
3577 * config/s390/libgcc-glibc.ver: Likewise.
3578 * config/s390/s390-modes.def: Likewise.
3579 * config/s390/s390-protos.h: Likewise.
3580 * config/s390/s390.c: Likewise.
3581 * config/s390/s390.h: Likewise.
3582 * config/s390/s390.md: Likewise.
3583 * config/s390/tpf-unwind.h: Likewise.
3584
ab7256e4
MK
35852009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
3586
3587 * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
3588
75df395f
MK
35892009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
3590
3591 M68K TLS support.
3592 * configure.ac (m68k-*-*): Check if binutils support TLS.
3593 * configure: Regenerate.
3594 * config/m68k/predicates.md (symbolic_operand): Extend comment.
3595 * config/m68k/constraints.md (Cu): New constraint.
3596 * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
3597 (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
3598 (movsi): Handle TLS symbols.
3599 (addsi3_5200): Handle XTLS symbols, indent.
3600 * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
3601 (m68k_tls_reference_p): Declare.
3602 (m68k_legitimize_address): Declare.
3603 (m68k_unwrap_symbol): Declare.
3604 * config/m68k/m68k.opt (mxtls): New option.
3605 * config/m68k/m68k.c (ggc.h): Include.
3606 (m68k_output_dwarf_dtprel): Implement hook.
3607 (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
3608 (m68k_expand_prologue): Load GOT pointer when function needs it.
3609 (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
3610 (m68k_legitimate_constant_address_p): Same.
3611 (m68k_decompose_address): Handle TLS references.
3612 (m68k_get_gp): New static function.
3613 (enum m68k_reloc): New contants.
3614 (TLS_RELOC_P): New macro.
3615 (m68k_wrap_symbol): New static function.
3616 (m68k_unwrap_symbol): New function.
3617 (m68k_final_prescan_insn_1): New static function.
3618 (m68k_final_prescan_insn): New function.
3619 (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
3620 functions.
3621 (legitimize_pic_address): Handle TLS references..
3622 (m68k_tls_get_addr, m68k_get_tls_get_addr)
3623 (m68k_libcall_value_in_a0_p)
3624 (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
3625 (m68k_call_m68k_read_tp): Helper variables and functions for ...
3626 (m68k_legitimize_tls_address): Handle TLS references.
3627 (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
3628 New functions.
3629 (m68k_legitimize_address): Handle TLS symbols.
3630 (m68k_get_reloc_decoration): New static function.
3631 (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
3632 UNSPEC_RELOC32.
3633 (m68k_output_dwarf_dtprel): Implement hook.
3634 (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
3635 (m68k_libcall_value): Return result in A0 instead of D0 when asked by
3636 m68k_call_* routines.
3637 (sched_attr_op_type): Handle TLS symbols.
3638 (gt-m68k.h): Include.
3639 * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
3640 (LEGITIMATE_PIC_OPERAND_P): Support TLS.
3641
8b75fc9b
MJ
36422009-05-18 Martin Jambor <mjambor@suse.cz>
3643
3644 * ipa-prop.c (ipa_check_stmt_modifications): Removed.
3645 (visit_store_addr_for_mod_analysis): New function.
3646 (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
3647 (determine_cst_member_ptr): Use gimple_assign_single_p.
3648 (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
3649 (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
3650 operands. Don't check number of operands of a NOP_EXPR.
3651
f133d4a2
EF
36522009-05-18 Eric Fisher <joefoxreal@gmail.com>
3653
3654 * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
3655
ae8af500
L
36562009-05-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
3657
3658 PR c/40172
3659 * c-common.c (warn_logical_operator): Don't warn if one of
3660 expression isn't always true or false.
3661
25e8fde8
KT
36622009-05-17 Kai Tietz <kai.tietz@onevision.com>
3663
ae8af500
L
3664 * config/i386/biarch32.h: New file.
3665 * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
25e8fde8 3666
ef67af22
AN
36672009-05-17 Adam Nemet <anemet@caviumnetworks.com>
3668
3669 * config/mips/mips.md (*zero_extend<mode>_trunchi,
3670 *zero_extend<mode>_truncqi): Merge these into ...
3671 (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
3672 Name the pattern following this as *zero_extendhi_truncqi.
3673
e2d87023
BL
36742009-05-16 Brad Lucier <lucier@math.purdue.edu>
3675
3676 PR middle-end/39301
3677 * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
3678 * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
3679 (output_info): Make field HOST_WIDEST_INT.
3680 (print_statistics): Use HOST_WIDEST_INT_PRINT.
3681 (dump_bitmat_statistics): Same.
3682
428ddbf0
FXC
36832009-05-16 Francois-Xavier Coudert <fxcoudert@gmail.com>
3684
3685 * config.gcc (use_gcc_stdint): Set to wrap.
3686 * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
3687 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
3688 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
3689 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
3690 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
3691 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
3692 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
3693 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
3694
1ab8a8c2
JM
36952009-05-16 Joseph Myers <joseph@codesourcery.com>
3696
3697 * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
3698 tune_64.
3699 * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
3700 Move definitions earlier.
3701 (OPT_ARCH64, OPT_ARCH32): Define.
3702 (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
3703 and tune_64.
3704
70544f44
RE
37052009-05-16 Richard Earnshaw <rearnsha@arm.com>
3706
3707 PR target/40153
3708 * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
3709 implies.
3710
6241ded1
RE
37112009-05-16 Richard Earnshaw <rearnsha@arm.com>
3712
3713 * arm.md (movdi2): Copy non-reg values to DImode registers.
3714
a99c6711
JJ
37152009-05-16 Jakub Jelinek <jakub@redhat.com>
3716
40a8f07a
JJ
3717 PR target/39942
3718 * final.c (label_to_max_skip): New function.
3719 (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
3720 CODE_LABEL_NUMBER <= max_labelno.
3721 * output.h (label_to_max_skip): New prototype.
3722 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
3723 (ix86_avoid_jump_mispredicts): ... this. Don't define if
3724 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined. Update comment.
3725 Handle CODE_LABELs with >= 16 byte alignment or with
3726 max_skip == (1 << align) - 1.
3727 (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
3728 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
3729
a99c6711
JJ
3730 PR target/39942
3731 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
3732 .p2align 3 if MAX_SKIP is smaller than 7.
3733 * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
3734
7e5487a2
ILT
37352009-05-15 Ian Lance Taylor <iant@google.com>
3736
3737 * alias.c (struct alias_set_entry_d): Rename from struct
3738 alias_set_entry. Change all uses.
3739 * except.c (struct call_site_record_d): Rename from struct
3740 call_site_record. Change all uses.
3741 * except.h (struct eh_region_d): Rename from struct eh_region.
3742 Change all uses.
3743 * gcse.c (struct hash_table_d): Rename from struct hash_table.
3744 Change all uses.
3745 * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
3746 ivtype_map_elt. Change all uses.
3747 (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
3748 Change all uses.
3749 (struct ifsese_d): Rename fromstruct ifsese. Change all uses.
3750 * graphite.h (struct name_tree_d): Rename from struct name_tree.
3751 Change all uses.
3752 (struct sese_d): Rename from struct sese. Change all uses.
782dc37a
UB
3753 * omega.h (struct eqn_d): Rename from struct eqn. Change all uses.
3754 (struct omega_pb_d): Rename from struct omega_pb. Change all uses.
7e5487a2
ILT
3755 * optabs.h (struct optab_d): Rename from struct optab. Change all
3756 uses.
3757 (struct convert_optab_d): Rename from struct convert_optab.
3758 Change all uses.
3759 * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
3760 ipa_opt_pass. Change all uses.
3761 * tree-predcom.c (struct dref_d): Rename from struct dref. Change
3762 all uses.
3763
3764 * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
3765 defined as a typedef.
3766 (grokdeclarator): If -Wc++-compat, warn if a typedef is already
3767 defined as a tag.
3768
a243fb4a
MLI
37692009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
3770
3771 PR 16302
3772 * fold-const.c (make_range,build_range_check,merge_ranges): Move
3773 declaration to...
3774 (merge_ranges): Returns bool.
3775 * tree.h (make_range): .. to here.
3776 (build_range_check): Likewise.
3777 (merge_ranges): Likewise. Renamed from merge_ranges.
3778 * c-typeck.c (parser_build_binary_op): Update calls to
3779 warn_logical_operator.
3780 * c-common.c (warn_logical_operator): Add new warning.
3781 * c-common.h (warn_logical_operator): Update declaration.
3782
1b53c5f3
MLI
37832009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
3784
782dc37a 3785 * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
1b53c5f3 3786
c128599a
KG
37872009-05-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3788
f9bab007
KG
3789 * doc/install.texi: Document MPC requirements, flags etc.
3790
c128599a
KG
3791 * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
3792 (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
3793 Evaluate constant arguments.
3794 (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
3795 (fold_builtin_1): Likewise, also evaluate constant arguments.
3796 Remove superfluous break.
3797 (do_mpc_ckconv): New.
3798 * real.h: Include mpc.h.
3799 * toplev.c (print_version): Output MPC version info if available.
3800
d33e4b70
SL
38012009-05-15 Sandra Loosemore <sandra@codesourcery.com>
3802
782dc37a 3803 * fold-const.c (fold_convert_const_real_from_real): Check for overflow.
d33e4b70 3804
a02ab464
L
38052009-05-15 H.J. Lu <hongjiu.lu@intel.com>
3806
3807 * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
3808 only once.
3809
796bda22
JH
38102009-05-15 Jan Hubicka <jh@suse.cz>
3811
3812 * doc/invoke.texi (max-early-inliner-iterations): New flag.
3813 * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
3814 (try_inline): Fix return value.
3815 (cgraph_decide_inlining_incrementally): Honor new value.
3816 (cgraph_early_inlining): Handle indirect inlining.
3817 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
3818
d88e5c37
JH
38192009-05-15 Jan Hubicka <jh@suse.cz>
3820
3821 * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
3822 * cgraphunit.c (cgraph_finalize_function): Set it.
3823 (cgraph_expand_function): Use it.
3824
ae63687c
SL
38252009-05-15 Sandra Loosemore <sandra@codesourcery.com>
3826
3827 * real.c (encode_ieee_half): Define.
3828 (decode_ieee_half): Define.
3829 (ieee_half_format): Define.
3830 (arm_half_format): Define.
3831 * real.h (ieee_half_format): Declare.
3832 (arm_half_format): Declare.
3833
1bd74ad9
SL
38342009-05-15 Sandra Loosemore <sandra@codesourcery.com>
3835
3836 * optabs.c (prepare_float_lib_cmp): Test that the comparison,
3837 swapped, and reversed optabs exist before trying to use them.
3838
dc34db56
PB
38392009-05-15 Paul Brook <paul@codesourcery.com>
3840 Sandra Loosemore <sandra@codesourcery.com>
3841
dc34db56
PB
3842 * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
3843 loads. Allow PRE_DEC.
3844 (output_move_neon): Handle PRE_DEC.
3845 (arm_print_operand): Add 'A' for neon structure loads.
3846 * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
3847 * config/arm/neon.md (neon_mov): Update comment.
3848 * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
3849 calls.
3850 (Um): New constraint.
3851
1d405d7b
JH
38522009-05-15 Jan Hubicka <jh@suse.cz>
3853
3854 Revert the following patch until testsuite fallout is fixed:
3855 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
3856 * cgraph.h (struct inline_summary): New filed self_wize,
3857 size_inlining_benefit, self_time and time_inlining_benefit.
3858 (struct cgraph_global_info): Replace insns by time ans size fields.
3859 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
3860 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
3861 (ipcp_update_callgraph): Do not touch function bodies.
3862 * ipa-inline.c: Include except.h
782dc37a 3863 (MAX_TIME): New constant.
1d405d7b
JH
3864 (overall_insns): Remove
3865 (overall_size, max_benefit): New static variables.
3866 (cgraph_estimate_time_after_inlining): New function.
3867 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
3868 (cgraph_clone_inlined_nodes): Update size.
3869 (cgraph_mark_inline_edge): Update size.
3870 (cgraph_estimate_growth): Use size info.
3871 (cgraph_check_inline_limits): Check size.
3872 (cgraph_default_inline_p): Likewise.
3873 (cgraph_edge_badness): Compute badness based on benefit and size cost.
3874 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
3875 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
3876 and times.
1d405d7b 3877 (cgraph_decide_inlining): Likewise.
00c5fa1b
EB
3878 (cgraph_decide_inlining_incrementally): Likewise; honor
3879 PARAM_EARLY_INLINING_INSNS.
1d405d7b
JH
3880 (likely_eliminated_by_inlining_p): New predicate.
3881 (estimate_function_body_sizes): New function.
3882 (compute_inline_parameters): Use it.
3883 * except.c (must_not_throw_labels): New function.
3884 * except.h (must_not_throw_labels): Declare.
3885 * tree-inline.c (init_inline_once): Kill inlining_weigths
3886 * tree-ssa-structalias.c: Avoid uninitialized warning.
3887 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
3888 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
3889 (PARAM_INLINE_CALL_COST): Remove.
3890 (PARAM_EARLY_INLINING_INSNS): New.
3891
7ffa47ca
RG
38922009-05-15 Richard Guenther <rguenther@suse.de>
3893
3894 * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
3895 not TODO_update_ssa.
3896
828552ed
RG
38972009-05-15 Richard Guenther <rguenther@suse.de>
3898
3899 PR tree-optimization/39999
3900 * gimple.h (gimple_expr_type): Use the expression type looking
3901 through useless conversions.
3902 * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
3903 (vn_nary_op_insert_stmt): Likewise.
3904 (simplify_binary_expression): Likewise.
3905
248fc9f3
RG
39062009-05-15 Richard Guenther <rguenther@suse.de>
3907
3908 * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
3909 New options, enabled by default.
3910 * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
3911 Document.
3912 * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
3913 * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
3914 * tree-ssa-structalias.c (gate_tree_pta): New function.
3915 (pass_build_alias): Use it.
3916
16b29cc4
JM
39172009-05-15 Joseph Myers <joseph@codesourcery.com>
3918
3919 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
3920 recurse on an invariant address if a conversion from a pointer
3921 type to a wider integer type is involved.
3922
125cae84
JH
39232009-05-15 Jan Hubicka <jh@suse.cz>
3924
3925 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
3926 * cgraph.h (struct inline_summary): New filed self_wize,
3927 size_inlining_benefit, self_time and time_inlining_benefit.
3928 (struct cgraph_global_info): Replace insns by time ans size fields.
3929 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
3930 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
3931 (ipcp_update_callgraph): Do not touch function bodies.
3932 * ipa-inline.c: Include except.h
782dc37a 3933 (MAX_TIME): New constant.
125cae84
JH
3934 (overall_insns): Remove
3935 (overall_size, max_benefit): New static variables.
3936 (cgraph_estimate_time_after_inlining): New function.
3937 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
3938 (cgraph_clone_inlined_nodes): Update size.
3939 (cgraph_mark_inline_edge): Update size.
3940 (cgraph_estimate_growth): Use size info.
3941 (cgraph_check_inline_limits): Check size.
3942 (cgraph_default_inline_p): Likewise.
3943 (cgraph_edge_badness): Compute badness based on benefit and size cost.
3944 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
3945 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
3946 and times.
125cae84 3947 (cgraph_decide_inlining): Likewise.
00c5fa1b
EB
3948 (cgraph_decide_inlining_incrementally): Likewise; honor
3949 PARAM_EARLY_INLINING_INSNS.
125cae84
JH
3950 (likely_eliminated_by_inlining_p): New predicate.
3951 (estimate_function_body_sizes): New function.
3952 (compute_inline_parameters): Use it.
3953 * except.c (must_not_throw_labels): New function.
3954 * except.h (must_not_throw_labels): Declare.
3955 * tree-inline.c (init_inline_once): Kill inlining_weigths
3956 * tree-ssa-structalias.c: Avoid uninitialized warning.
3957 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
3958 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
3959 (PARAM_INLINE_CALL_COST): Remove.
3960 (PARAM_EARLY_INLINING_INSNS): New.
3961 doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
3962 (inline-call-cost): Remove.
3963 (early-inlining-insns): New.
3964
84fb43a1
EB
39652009-05-15 Eric Botcazou <ebotcazou@adacore.com>
3966
3967 * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters. Use them
3968 for bounds.
3969 (print_int_cst_bounds_in_octal_p): Likewise.
3970 (dbxout_type): Adjust calls to above functions. Be prepared to deal
3971 with subtypes.
3972 * dwarf2out.c (base_type_die): Likewise.
3973 (is_subrange_type): Delete.
3974 (subrange_type_die): Add LOW and HIGH parameters. Use them for bounds.
3975 (modified_type_die): Call subrange_type_for_debug_p on subtypes.
f3afc8a7
UB
3976 * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it
3977 if the destination type is boolean.
84fb43a1
EB
3978 (build_range_check): Do not special-case subtypes.
3979 (fold_sign_changed_comparison): Likewise.
3980 (fold_unary): Likewise.
3981 * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
3982 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
3983 * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
f3afc8a7
UB
3984 * tree.c (subrange_type_for_debug_p): New predicate based on the
3985 former is_subrange_type.
84fb43a1
EB
3986 * tree.h (subrange_type_for_debug_p): Declare.
3987 * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
3988 (convert_affine_scev): Remove call to above function.
3989 (chrec_convert_aggressive): Likewise.
3990 * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
3991 false for conversions involving subtypes.
3992 * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
3993 (vrp_val_min): Likewise.
3994 (needs_overflow_infinity): Likewise.
3995 (extract_range_from_unary_expr): Likewise.
3996
331d9186
PB
39972009-05-15 Paolo Bonzini <bonzini@gnu.org>
3998
e9351712
L
3999 * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
4000 * config/frv/frv.c: Likewise.
4001 * config/s390/s390.c: Likewise.
4002 * config/sparc/sparc.h: Likewise.
4003 * config/i386/i386.h: Likewise.
4004 * config/i386/i386.c: Likewise.
4005 * config/crx/crx.c: Likewise.
4006 * config/m68hc11/m68hc11.h: Likewise.
4007 * config/iq2000/iq2000.c: Likewise.
4008 * config/mn10300/mn10300.h: Likewise.
4009 * config/mn10300/mn10300.c: Likewise.
4010 * config/m68k/m68k.c: Likewise.
4011 * config/rs6000/rs6000.c: Likewise.
4012 * config/rs6000/xcoff.h: Likewise.
4013 * config/rs6000/linux64.h: Likewise.
4014 * config/rs6000/sysv4.h: Likewise.
4015 * config/score/score3.c: Likewise.
4016 * config/score/score7.c: Likewise.
4017 * config/score/score.c: Likewise.
4018 * config/arm/arm.md: Likewise.
4019 * config/mips/mips.c: Likewise.
4020 * config/mips/mips.md: Likewise.
4021 * config/bfin/bfin.h: Likewise.
4022 * config/pa/pa.c: Likewise.
4023 * config/pa/constraints.md: Likewise.
4024
4025 * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
4026 * config/pdp11/pdp11.c (legitimate_address_p): Delete.
4027 * config/pdp11/pdp11.h: Use memory_address_p instead.
331d9186 4028
09639a83
ILT
40292009-05-14 Ian Lance Taylor <iant@google.com>
4030
4031 * passes.c (finish_optimization_passes): Change i to int.
4032 * plugin.c (plugins_active_p): Change event to int.
4033 (dump_active_plugins): Likewise.
4034 * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
4035 Add cast.
4036 * tree.c (tree_range_check_failed): Change c to unsigned int.
4037 (omp_clause_range_check_failed): Likewise.
4038 (build_common_builtin_nodes): Change mode to int. Add cast.
4039 * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
4040 (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
4041
4042 * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
4043 ++ or -- with a variable of enum type.
4044
c04a56bf
SB
40452009-05-14 Steven Bosscher <steven@gcc.gnu.org>
4046
4047 PR driver/40144
4048 * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
4049
237ee620
SB
40502009-05-14 Steven Bosscher <steven@gcc.gnu.org>
4051
4052 * store-motion.c: Do not include params.h
4053 * Makefile.in: Fix dependencies for various files.
4054
1154c4fa
SB
40552009-05-14 Steven Bosscher <steven@gcc.gnu.org>
4056
4057 * auto-inc-dec.c: Fix pass description, remove apparent
4058 accidental duplication.
4059
61c27353
L
40602009-05-14 H.J. Lu <hongjiu.lu@intel.com>
4061
4062 PR middle-end/40147
4063 * ipa-utils.h (memory_identifier_string): Moved to ...
4064 * tree.h (memory_identifier_string): Here. Add GTY(()).
4065
c6c3dba9
PB
40662009-05-14 Paolo Bonzini <bonzini@gnu.org>
4067
4068 * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
4069 in the former documentation of...
4070 (GO_IF_LEGITIMATE_ADDRESS): ... this.
4071 * ira-conflicts.c (get_dup_num): Use address_operand.
4072 * targhooks.c (default_legitimate_address_p): New.
4073 * targhooks.h (default_legitimate_address_p): New.
4074 * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
4075 Call hook.
4076 * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
4077 * target.h (struct target): Add legitimate_address_p.
4078 * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
4079 (TARGET_INITIALIZER): Include it.
4080
4081 * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4082 * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
4083 * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
4084 (TARGET_LEGITIMATE_ADDRESS_P): New.
4085
4086 * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4087 (REG_OK_STRICT_P): Delete.
4088 * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
4089 (frv_legitimate_address_p_1): ... this.
4090 * config/frv/frv.c (frv_legitimate_address_p): Forward to...
4091 (frv_legitimate_address_p_1): ... the renamed old
4092 frv_legitimate_address_p.
4093 * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
4094 (TARGET_LEGITIMATE_ADDRESS_P): New.
4095
4096 * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4097 * config/s390/s390-protos.h (legitimate_address_p): Remove.
4098 * config/s390/s390.c (legitimate_address_p): Rename to...
4099 (s390_legitimate_address_p): ... this, make static.
4100 (legitimize_address): Adjust call.
4101 (TARGET_LEGITIMATE_ADDRESS_P): New.
4102 * config/s390/constraints.md ("e"): Call strict_memory_address_p.
4103
4104 * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4105 * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
4106 * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
4107 (TARGET_LEGITIMATE_ADDRESS_P): New.
4108
4109 * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4110 * config/spu/spu-protos.h (spu_legitimate_address): Remove.
4111 * config/spu/spu.c (spu_legitimate_address): Rename to...
4112 (spu_legitimate_address_p): ... this, make static.
4113 (TARGET_LEGITIMATE_ADDRESS_P): New.
4114
4115 * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4116 * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
4117 * config/sparc/sparc.c (legitimate_address_p): Rename to...
4118 (sparc_legitimate_address_p): ... this, make static and return bool.
4119 (legitimize_address): Adjust call.
4120 (TARGET_LEGITIMATE_ADDRESS_P): New.
4121
4122 * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4123 * config/i386/i386-protos.h (legitimate_address_p): Remove.
4124 * config/i386/i386.c (legitimate_address_p): Rename to...
4125 (ix86_legitimate_address_p): ... this, make static.
4126 (constant_address_p): Move after it, adjust call.
4127 (TARGET_LEGITIMATE_ADDRESS_P): New.
4128
4129 * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4130 * config/avr/avr-protos.h (legitimate_address_p): Remove.
4131 * config/avr/avr.c (legitimate_address_p): Rename to...
4132 (avr_legitimate_address_p): ... this, make static.
4133 (legitimize_address): Adjust call.
4134 (TARGET_LEGITIMATE_ADDRESS_P): New.
4135
4136 * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4137 * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
4138 * config/crx/crx.c (crx_legitimate_address_p): Make static.
4139 (TARGET_LEGITIMATE_ADDRESS_P): New.
4140
4141 * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4142 * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
4143 * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
4144 (TARGET_LEGITIMATE_ADDRESS_P): New.
4145
4146 * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4147 * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
4148 Remove.
4149 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
4150 Make static.
4151 (TARGET_LEGITIMATE_ADDRESS_P): New.
4152
4153 * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4154 * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
4155 Remove.
4156 * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
4157 Rename to...
4158 (m68hc11_legitimate_address_p): ... this, make static.
4159 (go_if_legitimate_address_internal): Rename to...
4160 (m68hc11_legitimate_address_p_1): ... this.
4161 (legitimize_address): Adjust call.
4162 (TARGET_LEGITIMATE_ADDRESS_P): New.
4163
4164 * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
782dc37a
UB
4165 * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
4166 * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
c6c3dba9
PB
4167 (TARGET_LEGITIMATE_ADDRESS_P): New.
4168
4169 * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4170 * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
4171 * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
4172 (mn10300_legitimate_address_p): ... this, make static.
4173 (TARGET_LEGITIMATE_ADDRESS_P): New.
4174
4175 * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4176 * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
4177 * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
4178 (TARGET_LEGITIMATE_ADDRESS_P): New.
4179
4180 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4181 (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
4182 (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
4183 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4184 * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
4185 * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
4186 (rs6000_legitimate_address_p): ... this, make static.
4187 (TARGET_LEGITIMATE_ADDRESS_P): New.
4188 (REG_MODE_OK_FOR_BASE_P): Delete.
4189 (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
4190
4191 * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4192 * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
4193 Delete.
4194 * config/picochip/picochip.c (picochip_legitimate_address_p): Make
4195 static, adjust types.
4196 (TARGET_LEGITIMATE_ADDRESS_P): New.
4197
4198 * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4199 * config/score/score.c (score_address_p): Rename to...
4200 (score_legitimate_address_p): ... this.
4201 (TARGET_LEGITIMATE_ADDRESS_P): New.
4202 * config/score/score3.c (score3_address_p): Rename to...
4203 (score3_legitimate_address_p): ... this.
4204 * config/score/score7.c (score7_address_p): Rename to...
4205 (score7_legitimate_address_p): ... this.
4206
4207 * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
4208 THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
4209 GO_IF_LEGITIMATE_ADDRESS): Delete.
4210 * config/arm/arm-protos.h (thumb1_legitimate_address_p,
4211 thumb2_legitimate_address_p): Delete.
4212 (arm_legitimate_address_p): Rename to...
4213 (arm_legitimate_address_outer_p): ... this.
4214 * config/arm/constraints.md ("Uq"): Adjust call.
4215 * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
f3afc8a7
UB
4216 * config/arm/arm.c (arm_legitimate_address_p): New, rename old one
4217 to...
c6c3dba9 4218 (arm_legitimate_address_outer_p): ... this.
f3afc8a7
UB
4219 (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make
4220 static.
c6c3dba9
PB
4221 (TARGET_LEGITIMATE_ADDRESS_P): New.
4222
4223 * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4224 * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
4225 * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
4226 (TARGET_LEGITIMATE_ADDRESS_P): New.
4227
4228 * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4229 * config/vax/vax-protos.h (legitimate_address_p): Remove.
4230 * config/vax/vax.c (legitimate_address_p): Rename to...
4231 (vax_legitimate_address_p): ... this, make static.
4232 (TARGET_LEGITIMATE_ADDRESS_P): New.
4233
4234 * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4235 * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
4236 * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
4237 (TARGET_LEGITIMATE_ADDRESS_P): New.
4238
4239 * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4240 * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
4241 * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
4242 (mmix_legitimate_address_p): ... this, make static.
4243 (TARGET_LEGITIMATE_ADDRESS_P): New.
4244
4245 * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4246 * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
4247 * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
4248 (TARGET_LEGITIMATE_ADDRESS_P): New.
4249
3bd0d9c8
PB
42502009-05-14 Paolo Bonzini <bonzini@gnu.org>
4251
4252 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
4253 of MODE_COMPLEX_INT.
4254
fe049033
RO
42552009-05-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4256
4257 * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
4258 LCT_NORMAL in function call.
4259 * mips-tdump.c (print_file_desc): Add cast to enum type.
4260 * mips-tfile.c (add_ext_symbol): Add casts to enum types.
4261 (mark_stabs): Add casts to enum types.
4262 (parse_stabs_common): Add casts to enum types.
16f7ad42 4263
b0907a6c
AN
42642009-05-13 Adam Nemet <anemet@caviumnetworks.com>
4265
4266 * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
4267 Check for invalid values of LETTER.
4268
d1c8e08a
TG
42692009-05-13 Taras Glek <tglek@mozilla.com>
4270
f3afc8a7
UB
4271 * attribs.c (register_attribute): moved out attribute registration
4272 into register_attribute.
4273 * doc/plugins.texi: Documented register_attribute and
4274 PLUGIN_ATTRIBUTES.
16f7ad42
TG
4275 * gcc-plugin.h: Added forward decl for register_attribute.
4276 * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
4277 * plugin.c (register_callback, invoke_plugin_callbacks): Added
4278 PLUGIN_ATTRIBUTES boilerplate.
d1c8e08a 4279
4ed7f970
DK
42802009-05-14 Dave Korn <dave.korn.cygwin@gmail.com>
4281
4282 * config/i386/msformat-c.c (ms_printf_length_specs): Use enumeration
4283 values even in sentinel and empty entries.
4284 (ms_printf_flag_specs): Likewise.
4285 (ms_scanf_flag_specs): Likewise.
4286 (ms_strftime_flag_specs): Likewise.
4287 (ms_print_char_table): Likewise.
4288 (ms_scan_char_table): Likewise.
4289 (ms_time_char_table): Likewise.
4290
3d8fa148
DK
42912009-05-13 Doug Kwan <dougkwan@google.com>
4292
4293 * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
4294
f06257d3
AN
42952009-05-13 Adam Nemet <anemet@caviumnetworks.com>
4296
4297 * config/mips/mips.md (store): Add attributes for QI and HI.
4298 Update comment.
4299 (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
4300 (truncdi<mode>2): ... this new pattern.
4301
fb201767
BH
43022009-05-13 Brad Hards <bradh@kde.org>
4303
4304 * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
4305
c7bda60e 43062009-05-14 Jakub Jelinek <jakub@redhat.com>
efc3527a
BE
4307 Ben Elliston <bje@au.ibm.com>
4308
4309 PR middle-end/40035
4310 * dse.c (check_mem_read_rtx): Guard against width == -1.
4311
ce985b43
MM
43122009-05-13 Michael Matz <matz@suse.de>
4313
4314 PR middle-end/39976
4315 * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
4316 (trivially_conflicts_p): New function.
4317 (insert_backedge_copies): Use it.
4318
7de1d221
JJ
43192009-05-13 Janis Johnson <janis187@us.ibm.com>
4320
4321 * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
4322 (handle_stdc_pragma): Use new enum constant names.
4323 (handle_pragma_float_const_decimal64): Ditto.
4324
bfefafc6
ILT
43252009-05-13 Ian Lance Taylor <iant@google.com>
4326
4327 * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
4328 tree.def.
4329
286c4fcb
NS
43302009-05-13 Nathan Sidwell <nathan@codesourcery.com>
4331
4332 * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
4333 * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
4334 multilibs.
4335 * config/m68k/m68k.h (FL_UCLINUX): Define.
4336
ebaa6ea7
JH
43372009-05-13 Jan Hubicka <jh@suse.cz>
4338
4339 * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
4340
2b703e1a
KK
43412009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
4342
4343 * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
4344 unless -fschedule-insns is specified.
4345
c3537723
KK
43462009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
4347
4348 PR target/39561
4349 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
4350 TARGET_EXPAND_CBRANCHDI4.
4351 * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
4352 * config/sh/sh.opt (mexpand-cbranchdi): Remove.
4353 (cmpeqdi): Fix comment.
4354
cdeed45a
KK
43552009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
4356
4357 * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
4358 (sh_legitimate_address_p): Likewise.
4359 * config/sh/sh.c (sh_legitimate_index_p): New.
4360 (sh_legitimate_address_p): Likewise.
4361 * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
4362 (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
4363 (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
4364 (MAYBE_BASE_REGISTER_RTX_P): New macro.
4365 (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
4366 (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
4367 (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
4368 (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
4369 (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
4370
02f0b13a
JH
43712009-05-12 Jan Hubicka <jh@suse.cz>
4372
4373 * tree-inline.c (estimate_operator_cost): Add operands;
4374 when division happens by constant, it is cheap.
4375 (estimate_num_insns): Loads and stores are not having cost of 0;
4376 EH magic stuff is cheap; when computing runtime cost of switch,
4377 use log2 base of amount of its cases; builtin_expect has cost of 0;
4378 compute cost for moving return value of call.
4379 (init_inline_once): Initialize time_based flags.
4380 * tree-inline.h (eni_weights_d): Add time_based flag.
4381
ecb7f6de
PB
43822009-05-12 Paolo Bonzini <bonzini@gnu.org>
4383
4384 * df-core.c: Update head documentation.
4385
c24151ce
MM
43862009-05-12 Michael Meissner <meissner@linux.vnet.ibm.com>
4387
4388 PR bootstrap/40118
4389 * rs6000.c (rs6000_generate_compare): Use op1b instead of
4390 shadowing exisiting variable op1.
4391
fbdf817d
UB
43922009-05-12 Uros Bizjak <ubizjak@gmail.com>
4393
704bf7c8 4394 PR target/37179
fbdf817d
UB
4395 * config/i386/driver-i386.c (processor_signatures): New enum.
4396 (SIG_GEODE): Move from vendor_signatures to processor_signatures.
4397 (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
4398 processor signature to detect geode processor.
4399
5e8d1826
PB
44002009-05-12 Paolo Bonzini <bonzini@gnu.org>
4401
4402 Revert:
4403
4404 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
4405
4406 * optabs.c (prepare_cmp_insn): Temporarily disable test that
4407 causes spurious differences between trunk and cond-optab branch.
4408
f90b7a5a
PB
44092009-05-12 Paolo Bonzini <bonzini@gnu.org>
4410
fbdf817d
UB
4411 * dojump.c (compare_from_rtx): Delete.
4412 * expmed.c (emit_store_flag): Only try cstore_optab. Canonicalize
4413 any MODE_CC mode to the cstorecc4 pattern. Use prepare_operand, fail
f90b7a5a
PB
4414 if the comparison does not satisfy the predicate; test predicates for
4415 operands 2 and 3 of a cstore pattern. Don't try cstore optab
4416 further if one existing pattern fails.
fbdf817d 4417 * expr.h (compare_from_rtx): Delete.
f90b7a5a 4418 (prepare_operand): Declare it.
fbdf817d 4419 * optabs.c: Change "lib call" to "libcall" throughout.
f90b7a5a 4420 (bcc_gen_fctn, setcc_gen_code, trap_rtx,
fbdf817d
UB
4421 HAVE_conditional_trap, emit_cmp_insn): Delete.
4422 (can_compare_p): Delete cmp_optab case.
f90b7a5a 4423 (prepare_float_lib_cmp): Return an rtx and a machine mode.
fbdf817d
UB
4424 Accept other parameters by value.
4425 (prepare_operand): Make non-static.
4426 (prepare_cmp_insn): Return an rtx and a machine mode. Accept
4427 other parameters by value. Try to widen operands here based on
4428 an optab_methods argument and looking at cbranch_optab.
4429 (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
4430 loop. Use cbranch_optab directly.
4431 (emit_cmp_and_jump_insns): Fix comment. Adjust call to
4432 prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
4433 assertion.
4434 (emit_conditional_move, emit_conditional_add): Inline what's needed
4435 of compare_from_rtx, using new prepare_cmp_insn for the rest.
4436 (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
4437 with COMPARE. Move cmov_optab and cstore_optab above
4438 with cbranch_optab, move cmp_optab down with ucmp_optab,
4439 remove tst_otpab. Do not initialize trap_rtx.
4440 (gen_cond_trap): Do it here. Use ctrap_optab. Test predicate
f90b7a5a
PB
4441 for trap code. Do not check HAVE_conditional_trap. Use
4442 prepare_cmp_insn. Accept no predicate for operand 3.
fbdf817d
UB
4443 * optabs.h (OTI_cmp): Mark as used only for libcalls.
4444 (OTI_ctrap, ctrap_optab): New.
4445 (tst_optab): Delete.
4446 (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
4447 * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
4448 with lookup of ctrap_optab.
f3afc8a7
UB
4449 * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn, setcc_gen_code):
4450 Delete.
fbdf817d
UB
4451 (ctrap_optab): New.
4452
4453 * combine.c (combine_simplify_rtx, simplify_set): Do not
4454 special case comparing against zero for cc0 machines.
f90b7a5a
PB
4455 * simplify-rtx.c (simplify_binary_operation_1): Never remove
4456 COMPARE on cc0 machines.
4457 (simplify_relational_operation): Return a new expression when
4458 a COMPARE could be removed.
fbdf817d
UB
4459 * final.c (final_scan_insn): Compare cc_status values
4460 against LHS of a (compare FOO (const_int 0)) cc0 source.
4461 Also check if cc_status.value is the full compare.
f90b7a5a 4462
fbdf817d
UB
4463 * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
4464 (cstoreMM4): Document.
f90b7a5a 4465 (conditional_trap): Document ctrapMM4 instead.
fbdf817d 4466 (sync_compare_and_swapMM): Refer to cbranchcc4.
f90b7a5a
PB
4467 (Dependent Patterns): Eliminate obsolete information referring to
4468 the old jump optimization phase.
fbdf817d 4469 (Canonicalization): Include cbranchcc4 case, omit canonicalization
f90b7a5a
PB
4470 of compares with 0 on cc0 machines.
4471 (Jump Patterns): Refer to MODE_CC jump patterns preferably,
4472 avoiding references to cc0. Remove text about storing operands
4473 in cmpMM.
4474 * doc/tm.texi (Condition Codes): Include blurb on different
4475 condition code representations, separate into subsections for
4476 CC0, MODE_CC and conditional execution.
4477
fbdf817d
UB
4478 * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
4479 alpha_emit_setcc): Accept operands and a machine mode.
4480 * config/alpha/alpha.c (alpha_emit_conditional_branch):
4481 Get code/op0/op1 from operands, use machine mode argument
4482 instead of alpha_compare.fp_p. Emit the branch here.
4483 (alpha_emit_setcc): Likewise, and return boolean.
4484 (alpha_emit_conditional_move): Likewise. Assert that
4485 cmp_op_mode == cmp_mode, and simplify accordingly.
4486 * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
4487 * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
4488 (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
4489 Delete.
4490 (stack probe test): Use cbranchdi4.
4491 * config/alpha/predicates.md (alpha_cbranch_operator): New.
4492
4493 * config/arc/arc.c (gen_compare_reg): Do not emit cmp.
4494 * config/arc/arc.h (movsicc, movsfcc): Use it.
4495 (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
4496 (cbranchsi4, cstoresi4): New.
4497 (cmpsi, bCC and sCC expanders): Remove.
4498
4499 * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
4500 * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
4501 * config/arm/predicates.md (arm_comparison_operator): Only include
4502 floating-point operators if there is a hardware floating-point unit.
4503 * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
4504 deferring to cbranch_cc and cstore_cc respectively.
4505 (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
4506 cbranch_cc, cstore_cc): New.
4507 (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
f90b7a5a 4508 arm_compare_op1.
fbdf817d
UB
4509 (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
4510
4511 * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
4512 * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
4513 as an argument.
4514 (adjust_insn_length): Adjust calls.
4515 (avr_reorg): Handle (compare (foo) (const_int 0)).
4516 * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
4517 (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
4518 (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
4519 (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
4520 (bCC): Remove.
4521 (cbranchqi4, cbranchhi4, cbranchsi4): New.
f90b7a5a
PB
4522 (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
4523
fbdf817d
UB
4524 * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
4525 (cbranchsi4, cstorebi4, cstoresi4): New.
f90b7a5a 4526 (movbisi): This insn is duplicate, split it to zero_extend.
fbdf817d
UB
4527 * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
4528 (bfin_gen_compare): Do not use them. Emit VOIDmode SET, not BImode.
4529 (bfin_optimize_loop): Use cbranch expander.
4530 * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
4531 * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
4532 (bfin_bimode_comparison_operator): ... this.
4533 (bfin_direct_comparison_operator): New.
f90b7a5a 4534
fbdf817d
UB
4535 * config/cris/cris.c (cris_normal_notice_update_cc): Look
4536 inside (compare FOO (const_int 0)).
4537 (cris_rtx_costs): Handle ZERO_EXTRACT.
4538 * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
4539 (*tstdi_non_v32): Fold in *cmpdi_non_v32.
4540 (*tstdi_v32): Delete.
4541 (*cmpdi_non_v32): Add M alternative for operand 1.
4542 (cmpsi, cmp<mode>): Make private.
4543 (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
4544 with COMPARE.
4545 (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
4546
4547 * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
4548 (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
4549 (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
f90b7a5a
PB
4550 (cc_reg_operand): New.
4551 (any_cond): Delete.
fbdf817d
UB
4552 * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
4553 crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
4554 * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
4555 * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
4556 crx_expand_scond): Delete.
4557
4558 * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
4559 (cbranchsi4): New.
4560 * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
4561 * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
4562
4563 * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
4564 cstoresi4, cstoresf4, cstoredf4): New.
4565 (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
4566 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
4567 Receive the entire operands array.
4568 * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
4569 * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
4570 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
4571 Get test/op0/op1 from the operands array.
4572 (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
4573
4574 * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
4575 (h8300_expand_store): New.
4576 * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
4577 (const_int 0)).
4578 (h8300_expand_branch): Emit compare here. Adjust for new arguments.
4579 (h8300_expand_store): New.
4580 * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
4581 or do not try to produce (set (cc0) REG).
4582 (peepholes): Wrap arguments with COMPARE. Add a peephole to
4583 change a compare into a move to a scratch register. Disable some
4584 peepholes when comparing with zero.
4585 (tstsi, tsthi, tstsi, cmpqi): Make private.
4586 (cmphi): Delete.
4587 (bCC, sCC): Delete.
4588 (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
4589 cstoresi4): New.
f90b7a5a
PB
4590
4591 * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
4592 ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
4593 (ix86_emit_i387_log1p): Use gen_cbranchxf4.
4594 (ix86_emit_i387_log1p): Use cbranchxf2.
4595 (ix86_expand_setcc): Return void.
4596 * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
4597 * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
4598 cmp<MODEF>, cmpcc): Remove.
fbdf817d
UB
4599 (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
4600 cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
4601 cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
f90b7a5a
PB
4602 (sCC and bCC expanders): Remove.
4603 (stack_protect_test): Use cbranchcc4.
4604
fbdf817d
UB
4605 * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
4606 Delete.
4607 (ia64_expand_compare): Accept three rtx by reference and return void.
4608 * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
4609 (ia64_expand_compare): Replace op0/op1 with *op0/*op1. Get code
4610 from *expr. Update *expr with the BImode comparison to do.
4611 * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
4612 cmptf, bCC, sCC, conditional_trap): Delete.
4613 (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4,
4614 cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
4615 cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
4616 ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
4617 * config/ia64/predicates.md (ia64_cbranch_operator): New.
4618
4619 * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
4620 type of last argument.
4621 * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
4622 (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
4623 use machine mode argument instead of branch_type. Remove dead
4624 code for floating-point comparisons.
4625 * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
4626 * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
4627 Remove.
4628 (cbranchsi4, cstoresi4): New.
4629 * config/iq2000/predicates.md (reg_or_const_operand): New.
4630
4631 * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
4632 * config/m32c/m32c.md (any_cond, gl_cond): Delete.
4633 (b<code>_op): Rewrite to...
4634 (bcc_op): ... this, using match_operator.
4635 (s<code>_op): Rewrite to...
4636 (scc_op): ... this, using match_operator.
4637 (s<code>_24_op): Rewrite to...
4638 (scc_op_24): ... this, using match_operator.
4639 (s<code>_<mode>): Rewrite to...
4640 (cstore<mode>4): ... this, using match_operator.
4641 (s<code>_<mode>_24): Rewrite to...
4642 (cstore<mode>4_24): ... this, using match_operator.
4643 * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
4644 m32c_unpend_compare, m32c_expand_scc): Delete.
4645 * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
4646 m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
4647 (m32c_expand_movcc): Change NE to EQ if necessary.
4648 (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
4649
4650 * config/m32r/m32r-protos.h (gen_cond_store): New.
4651 * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
4652 (gen_cond_store): New, from sCC patterns.
4653 (m32r_expand_block_move): Use cbranchsi4.
4654 * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
4655 * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
4656 (cbranchsi4, cstoresi4): New.
4657
4658 * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
4659 Delete.
4660 (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
f90b7a5a 4661 (m68hc11_notice_update_cc): Look into a compare with 0.
fbdf817d
UB
4662 * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
4663 Delete.
4664 * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
4665 cmphi, cmpqi, bCC): Delete.
4666 (cbranchsi4, cbranchhi4, cbranchqi4): New.
4667 (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
4668 bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
4669 sets with COMPARE.
4670
4671 * config/m68k/predicates.md (m68k_cstore_comparison_operator,
4672 const0_operand, const1_operand, m68k_subword_comparison_operand): New.
4673 * config/m68k/constraints.md (H): New.
4674 * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
4675 the define_insn below.
4676 (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
4677 (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
4678 *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
4679 patterns): Wrap RHS with COMPARE.
4680 (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
4681 (*cmpdi_internal): Name this pattern.
4682 (cmpdi): Change to define_insn.
4683 (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
4684 cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
4685 (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
4686 predicate.
4687 (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
4688 sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
4689 (conditional_trap): Change to...
4690 (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
4691 (*conditional_trap): Use the ordered_comparison_operator and
4692 const1_operand predicates.
4693 * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
4694 (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
4695 (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
4696 * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
4697
4698 * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
4699 mcore_modify_comparison, mcore_gen_compare_reg): Remove.
4700 (mcore_gen_compare): New.
4701 * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
4702 (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
4703 (mcore_gen_compare): ... this.
4704 * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
4705 (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
4706 (stack probe pattern): Use cbranchsi4.
4707
4708 * config/mips/predicates.md (mips_cstore_operator): New.
4709 * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
4710 * config/mips/mips.md (any_cond): Delete.
4711 (conditional_trap): Rename to ctrap<GPR:mode>4. Adjust predicates,
4712 always succeed.
4713 (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
4714 fixuns_truncsfdi2): Use cbranch patterns.
4715 (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete.
4716 (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
4717 Adjust call to mips_expand_conditional_branch.
4718 (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
4719 cstore<GPR:mode>4.
4720 * config/mips/mips-protos.h (mips_expand_conditional_branch,
4721 mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
4722 * config/mips/mips.c (cmp_operands): Delete.
4723 (mips_emit_compare): Get comparison operands from *op0/*op1.
4724 (mips_expand_scc): Get code/op0/op1/target from operands. Assert
4725 that it succeeds. Use op0/op1 instead of cmp_operands.
4726 (mips_expand_conditional_branch, mips_expand_conditional_move,
4727 mips_expand_conditional_trap): Likewise.
4728 (mips_block_move_loop): Use cbranch patterns.
4729 * config/mips/mips.h (cmp_operands): Delete.
4730
4731 * config/mmix/mmix.c (mmix_valid_comparison): Delete.
4732 (mmix_gen_compare_reg): Just return a register in the right CC mode.
4733 * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
4734 * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
4735 (*cmpcc_folded): Rename to...
4736 (*cmpdi_folded): this.
4737 (*cmpcc): Rename to...
4738 (*cmps): ... this.
4739 (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
4740 (bCC): Remove.
4741 (cbranchdi4): New.
4742 (cbranchdf4): New. Handle invalid comparisons here.
4743 * config/mmix/predicates.md (float_comparison_operator): New.
4744
4745 * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
4746 zero_extract to be cheap in (compare (zero_extract) (const_int 0).
4747 * config/mn10300/mn10300.md (tst): Delete.
4748 (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
4749 Name these patterns and wrap RHS in a compare.
4750 (*cmpsi): Make this pattern private. Include tst.
4751 (*cmpsf): Make this pattern private.
4752 (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
4753 (compare with zero peepholes): Likewise.
4754 (bCC): Remove.
4755 (cbranchsi4, cbranchsf4): New.
4756 (casesi): Use cbranchsi4.
4757
4758 * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
4759 hppa_branch_type): Delete.
4760 (return_addr_rtx): Use cbranchsi4.
4761 (emit_bcond_fp): Accept all operands. Replace CODE with NE.
4762 Emit CCFPmode comparison here.
4763 (gen_cmp_fp): Delete, now part of emit_bcond_fp.
4764 * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
4765 hppa_branch_type): Delete.
4766 * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
4767 (movsicc, movdicc): Remove references to hppa_compare_op0,
4768 hppa_compare_op1 and compare_from_rtx.
4769 (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
4770 (casesi): Use cbranchsi4.
4771
4772 * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
4773 * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
4774 * config/pdp11/pdp11.md (register_or_const0_operand): New.
4775 (cmpdf, cmphi, cmpqi): Make private. Add tst alternatives.
4776 (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
4777 (bCC): Delete.
4778 (cbranchdf4, cbranchhi4, cbranchqi4): New.
4779 (*branch, *branch_inverted): New.
4780
4781 * config/picochip/picochip.md (cbranchhi4): Use
4782 ordered_comparison_operator.
4783 (cmphi, bCC): Remove.
4784
4785 * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
4786 (trap_comparison_operator): Delete.
4787 * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
4788 rs6000_emit_cbranch): Accept mode and operands.
4789 * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
4790 rs6000_compare_fp_p): Delete.
4791 (rs6000_generate_compare): Accept mode and comparison. Extract code
4792 and op0/op1 from there. Replace references to rs6000_compare_op0
4793 and rs6000_compare_op1.
4794 (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
4795 extract result from passed operands.
4796 (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
4797 extract loc from passed operands.
4798 (rs6000_emit_cmove): Likewise.
4799 * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
4800 rs6000_compare_fp_p): Delete.
4801 * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
4802 (cbranch<GPR>4, cbranch<FP>4): New.
4803 (cstore<mode>4): New. Consolidate here all choices about when to use
4804 portable or specialized sCC sequences.
4805 (stack_protect_test): Use cbranchsi4.
4806 (conditional_trap): Replace with ctrap<GPR>4.
4807 (conditional trap insn): Replace trap_comparison_operator with
4808 ordered_comparison_operator.
4809
4810 * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
4811 (s390_emit_prologue): Use ctrap.
4812 * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
4813 * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
4814 New predicates replacing...
4815 * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
4816 (cmp<GPR>, cmp<FP>, cmpcc): Delete.
4817 (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
4818 (add<mode>cc): Do not use s390_compare_op0/op1.
4819 (s<code>): Change to...
4820 (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
4821 (seq): Change to...
4822 (cstorecc4): ... this. Handle EQ or NE equally.
4823 (*sne): Un-privatize for use in cstorecc4.
4824 (b<code>): Change to...
4825 (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
4826 (conditional_trap): Replace with...
4827 (ctrap<GPR>4, ctrap<FP>4): ... these.
4828 (stack_protect): Use cbranchcc4.
4829
4830 * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
4831 * config/score/score-protos.h (score_gen_cmp): Delete.
4832 * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
4833 (score_block_move-loop): Use cbranchsi4.
4834 * config/score/score.md (cbranchsi4): New.
4835 (cmpsi, bCC): Delete.
4836 * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
4837 (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
4838 * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
4839 (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
4840 * config/score/score3.h (score3_gen_cmp): Delete.
4841 * config/score/score7.h (score7_gen_cmp): Delete.
4842
4843 * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
4844 (sh_emit_scc_to_t): ... this. Return void.
4845 (from_compare): Rename to...
4846 (sh_emit_compare_and_branch): ... this.
4847 (sh_emit_compare_and_set): New.
4848 (sh_expand_t_scc): Accept operands.
4849 * config/sh/predicates.md (sh_float_comparison_operator): New.
4850 * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
4851 (prepare_scc_operands): Rename to...
4852 (sh_emit_scc_to_t): ... this. Return void. Get op0/op1 from
4853 arguments.
4854 (sh_emit_cheap_store_flag): New.
f90b7a5a 4855 (sh_emit_set_t_insn): New.
fbdf817d
UB
4856 (from_compare): Rename to...
4857 (sh_emit_compare_and_branch): ... this. Accept mode. Rewrite
4858 handling of TARGET_SH2E floating point to avoid recursive call.
4859 Generate branch here.
4860 (sh_emit_compare_and_set): New.
4861 (sh_expand_t_scc): Get op0/op1 from arguments.
4862 (sh_emit_cheap_store_flag): New.
4863 * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
4864 cases.
f90b7a5a 4865 (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
fbdf817d
UB
4866 (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
4867 (movsicc, movdicc): Do nothing when it recreated operands from
4868 sh_compare_*. Use sh_emit_cheap_store_flag. Adjust call to
4869 prepare_scc_operands (now sh_emit_scc_to_t).
4870 (udivdi3): Use cstoresi4.
4871 (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
4872 bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
4873 (cbranchint4_media, cbranchfp4_media): New.
4874 (casesi): Use cbranchdi4.
4875 (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
4876 Delete.
4877 (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
4878 (movnegt): Remove second operand.
4879 (cbranchsf4, cbranchdf4): New.
4880 (stack_protect): Use cbranchdi4/cbranchsi4.
4881
4882 * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
4883 (gen_compare_reg): Accept comparison, extract part of it to...
4884 (gen_compare_reg_1): ... this.
4885 (gen_compare_operator): Delete.
4886 (gen_v9_scc): Accept separate destination, comparison code and arms.
4887 Do not use sparc_compare_op0/sparc_compare_op1.
4888 (emit_scc_insn, emit_conditional_branch_insn): New.
4889 (emit_v9_brxx): Make static. Remove useless assertion.
4890 (sparc_emit_float_lib_cmp): Return RTL instead of calling
4891 emit_cmp_insn.
4892 (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
4893 * config/sparc/sparc-protos.h (gen_compare_reg,
f90b7a5a
PB
4894 sparc_emit_float_lib_cmp): Adjust prototype.
4895 (emit_scc_insn, emit_conditional_branch_insn): New.
4896 (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
fbdf817d
UB
4897 * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
4898 * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
4899 iterators to the top.
4900 (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
4901 snesi_special_extend, sCC, bCC, seqdi_special_trunc,
f90b7a5a 4902 snedi_special_trunc): Delete.
fbdf817d 4903 (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
f90b7a5a 4904 and snedi_special_trunc.
fbdf817d
UB
4905 (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
4906 cbranchdi4, cbranch<F:mode>4): New.
4907 (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
4908 here. Use gen_compare_reg instead of gen_compare_operator.
4909 (conditional_trap): Replace with...
4910 (ctrapsi4, ctrapdi4): ... this.
4911 (stack_protect_test): Use cbranchcc4.
4912
4913 * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
4914 argument to rtx.
4915 * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove.
4916 (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
4917 Change spu_compare_op0/op1 to op0/op1 throughout. Get target
4918 from operands[0] or operands[3] depending on is_set.
4919 * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
4920 * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
4921 cmpdf, bCC), sCC: Remove.
4922 (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4,
4923 cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
4924 cstoredf4): New.
4925 (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
4926 spu_emit_branch_or_set.
4927
4928 * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
4929 Add two arguments.
4930 * config/stormy16/stormy16.h (xstormy16_compare_op0,
4931 xstormy16_compare_op1): Delete.
4932 * config/stormy16/stormy16.c (xstormy16_compare_op0,
4933 xstormy16_compare_op1): Delete.
4934 (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
4935 Adjust calls.
4936 * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
4937 (cmphi, cmpsi, bCC): Remove.
4938
4939 * config/v850/v850.md (tstsi, cmpsi): Fold into...
4940 (*cmpsi): ... this one.
4941 (cbranchsi4, cstoresi4): New.
4942 (bCC expanders): Delete.
4943 (sCC insns): Fold into...
4944 (*setcc): ... this one.
4945 (casesi): Do not use gen_cmpsi and gen_bgtu.
f90b7a5a
PB
4946 (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
4947 (movsicc): Simplify.
4948 * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
4949
fbdf817d
UB
4950 * config/vax/vax-protos.h (cond_name): New.
4951 (vax_output_conditional_branch): Remove.
4952 * config/vax/vax.c (cond_name): New.
4953 (vax_output_conditional_branch): Remove.
4954 * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
4955 * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
4956 (cmp<VAXint>, cmp<VAXfp>): Privatize. Add constraints for tst.
4957 (bit<VAXint>): Wrap source with (compare).
4958 (b<code> and following unnamed pattern): Rename to *branch and
4959 *branch_reversed. Change macroization to match_operator.
4960 (cbranch<VAXint>4, cbranch<VAXfp>4): New.
4961
4962 * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
4963 * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
4964 Change last argument to machine_mode.
4965 (xtensa_expand_scc): Add machine_mode argument.
4966 * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
4967 (gen_conditional_move, xtensa_expand_conditional_branch,
4968 xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
4969 instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
4970 Adjust operand numbers.
4971 * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
4972 Delete.
4973 * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
4974 (cmpsi, cmpsf, b<code>, s<code>): Delete.
4975 (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
f90b7a5a 4976
16670495
PB
49772009-05-12 Paolo Bonzini <bonzini@gnu.org>
4978
4979 * optabs.c (prepare_cmp_insn): Temporarily disable test that
4980 causes spurious differences between trunk and cond-optab branch.
4981
4a4a4e99
AO
49822009-05-12 Alexandre Oliva <aoliva@redhat.com>
4983
4984 PR target/37137
4985 * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
4986
72b9acff
AO
49872009-05-12 Alexandre Oliva <aoliva@redhat.com>
4988
4989 * tree.c (iterative_hash_pointer): Delete.
4990 (iterative_hash_expr): Short-circuit handling of NULL pointer.
4991 Hash UIDs and versions of SSA names. Don't special-case built-in
4992 function declarations.
4993
b7dd69ac
ILT
49942009-05-11 Ian Lance Taylor <iant@google.com>
4995
4996 PR bootstrap/40103
4997 * graphite.c: Force -Wc++-compat to only be a warning before
4998 #including "cloog/cloog.h".
4999
ed102b70
MJ
50002009-05-11 Martin Jambor <mjambor@suse.cz>
5001
5002 * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
5003
08f1af2e
JH
50042009-05-11 Jan Hubicka <jh@suse.cz>
5005
5006 * tree-ssa-loop-ivcanon.c: Include target.h
5007 (struct loop_size): new structure.
5008 (constant_after_peeling): New predicate.
5009 (tree_estimate_loop_size): New function.
5010 (estimated_unrolled_size): Rewrite for new estimates.
5011 (try_unroll_loop_completely): Use new estimates.
5012 * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
5013
a7d39bd3
AP
50142009-05-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
5015
5016 * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
5017 libcpp interface change.
5018 (spu_macro_to_expand): Likewise.
5019
f5a1f0d0
PB
50202009-05-11 Paolo Bonzini <bonzini@gnu.org>
5021
5022 PR tree-optimization/40026
5023 * gimplify.c (gimplify_init_constructor): Change initial conditional
5024 to assertion. Rewrite TREE_OPERAND (*expr_p, 1) after
5025 optimize_compound_literals_in_ctor.
5026
c260f01f
NS
50272009-05-11 Nathan Sidwell <nathan@codesourcery.com>
5028
5029 * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
5030 New devices.
5031 * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
5032
df398a37
L
50332009-05-11 H.J. Lu <hongjiu.lu@intel.com>
5034
5035 * tree-vect-data-refs.c (vect_analyze_group_access): Use
5036 HOST_WIDE_INT for gap.
5037
4da39468
IR
50382009-05-11 Ira Rosen <irar@il.ibm.com>
5039
5040 PR tree-optimization/40074
5041 * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
5042 account in group size and step comparison.
5043
4effdf02
RG
50442009-05-11 Richard Guenther <rguenther@suse.de>
5045
5046 * passes.c (init_optimization_passes): Strip now incorrect comment.
5047 (execute_function_todo): Do not set PROP_alias.
5048 * tree-pass.h (PROP_alias): Remove.
5049 * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
5050 * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
5051 * tree-nrv.c (pass_return_slot): Likewise.
5052 * tree-object-size.c (pass_object_sizes): Likewise.
5053 * tree-ssa-dom.c (pass_dominator): Likewise.
5054 (pass_phi_only_cprop): Likewise.
5055 * tree-ssa-dse.c (pass_dse): Likewise.
5056 * tree-ssa-phiopt.c (pass_phiopt): Likewise.
5057 (pass_cselim): Likewise.
5058 * tree-ssa-pre.c (pass_pre): Likewise.
5059 (pass_fre): Likewise.
5060 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
5061 * tree-ssa-sink.c (pass_sink_code): Likewise.
5062 * tree-stdarg.c (pass_stdarg): Likewise.
5063 * tree-tailcall.c (pass_tail_calls): Likewise.
5064 * tree-vrp.c (pass_vrp): Likewise.
5065
24b97832
ILT
50662009-05-10 Ian Lance Taylor <iant@google.com>
5067
5068 * basic-block.h (enum profile_status): Break out of struct
5069 control_flow_graph.
5070 * cgraph.h (struct inline_summary): Break out of struct
5071 cgraph_local_info.
5072 * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
5073 of struct cgraph_order_sort.
fbdf817d 5074 * combine.c (enum undo_kind): New enum, broken out of struct undo.
24b97832
ILT
5075 * cse.c (struct branch_path): Break out of struct
5076 cse_basic_block_data.
5077 * except.h (enum eh_region_type): Break out of struct eh_region.
5078 * gcc.c (enum add_del): Break out of struct modify_target.
fbdf817d 5079 * genrecog.c (enum decision_type): Break out of struct decision_test.
24b97832
ILT
5080 * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
5081 ggc_pch_data.
fbdf817d
UB
5082 * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
5083 * regmove.c (enum match_use): New enum, broken out of struct match.
24b97832
ILT
5084 * sched-int.h (enum post_call_group): New enum, broken out of
5085 struct deps.
5086 (struct deps_reg): Break out of struct deps.
5087 * target.h (struct asm_int_op): Break out of struct gcc_target.
5088 * tree-eh.c (struct goto_queue_node): Break out of struct
5089 leh_tf_state.
5090 * tree-inline.h (enum copy_body_cge_which): Break out of
5091 copy_body_data.
5092 * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
5093
5094 * c-decl.c (in_struct, struct_types): New static variables.
5095 (pushtag): Add loc parameter. Change all callers.
5096 (lookup_tag): Add ploc parameter. Change all callers.
5097 (check_compound_literal_type): New function.
5098 (parser_xref_tag): Add loc parameter. Change all callers. If
5099 -Wc++-compat, warn about struct/union/enum types defined within a
5100 struct or union.
5101 (start_struct): Add enclosing_in_struct, enclosing_struct_types,
5102 and loc parameters. Change all callers. Change error calls to
5103 error_at, using loc. For a redefinition, if the location of the
5104 original definition is known, report it. Set in_struct and
fbdf817d 5105 struct_types. If -Wc++-compat warn if in sizeof, typeof, or alignof.
24b97832
ILT
5106 (finish_struct): Add new parameters enclosing_in_struct and
5107 enclosing_struct_types. Change all callers. Set
5108 C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
5109 in the struct. If in a struct, add this struct to struct_types.
5110 (start_enum): Add loc parameter. Change all callers. Use
5111 error_at for errors, using loc. For a redefinition, if the
5112 location of the original definition is known, report it. If in a
5113 struct, add this enum type to struct_types. If -Wc++-compat warn
5114 if in sizeof, typeof, or alignof.
fbdf817d
UB
5115 * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
5116 (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
24b97832
ILT
5117 (c_parser_enum_specifier): Get enum location for start_enum.
5118 (c_parser_struct_or_union_specifier): Get struct location for
5119 start_struct. Save in_struct and struct_types status between
5120 start_struct and finish_struct.
5121 (c_parser_cast_expression): Get location of cast.
5122 (c_parser_alignof_expression): Get location of type.
5123 (c_parser_postfix_expression): Likewise.
5124 (c_parser_postfix_expression_after_paren_type): Add type_loc
fbdf817d
UB
5125 parameter. Change all callers. Call check_compound_literal_type.
5126 Use type_loc for error about variable size type.
5127 * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
5128 of an enum constant from an enum type defined in a struct or union.
24b97832
ILT
5129 (c_cast_expr): Add loc parameter. Change all callers. If
5130 -Wc++-compat, warn about defining a type in a cast.
5131 * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
5132 (start_enum, start_struct, finish_struct): Update declarations.
5133 (parser_xref_tag, c_cast_expr): Update declarations.
5134 (check_compound_literal_type): Declare.
5135
7a2738fa
BE
51362009-05-11 Ben Elliston <bje@au.ibm.com>
5137
5138 * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
5139 for recent libcpp interface change.
5140 (rs6000_macro_to_expand): Likewise.
5141
af618949
MM
51422009-05-10 Michael Matz <matz@suse.de>
5143
5144 PR target/40031
5145 * config/arm/arm.c (require_pic_register): Emit on entry edge,
5146 not at entry of function.
5147
b7d7a473
RG
51482009-05-10 Richard Guenther <rguenther@suse.de>
5149
5150 PR tree-optimization/40081
5151 Revert
5152 * tree-sra.c (instantiate_element): Instantiate scalar replacements
5153 using the main variant of the element type. Do not fiddle with
5154 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
5155
5156 * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
5157 structs with volatile fields.
5158
078c3644
JH
51592009-05-10 Jan Hubicka <jh@suse.cz>
5160
5161 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
fbdf817d
UB
5162 (estimate_move_cost): Assert that it does not get called for
5163 VOID_TYPE_P.
078c3644
JH
5164 (estimate_num_insns): Skip VOID types in argument handling.
5165 (optimize_inline_calls): Delete unreachable blocks and verify that
5166 callgraph is valid.
5167
39ff5a96
JH
51682009-05-10 Jan Hubicka <jh@suse.cz>
5169
5170 * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
5171 * cgraph.c (cgraph_mark_address_taken_node): New function.
5172 (dump_cgraph_node): Dump new flag.
5173 * cgraph.h (struct cgraph_node): Add address_taken.
5174 (cgraph_mark_address_taken_node): New function.
39ff5a96
JH
5175 * ipa.c (cgraph_postorder): Prioritize functions with address taken
5176 since new direct calls can be born.
5177
9a0c6187
JM
51782009-05-10 Joseph Myers <joseph@codesourcery.com>
5179
5180 * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
5181 tok->val.node.node.
5182
4b685e14
JH
51832009-05-10 Jan Hubicka <jh@suse.cz>
5184
5185 PR middle-end/40084
fb0be169
EB
5186 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
5187 argument; rewrite.
4b685e14
JH
5188 (cgraph_update_edges_for_call_stmt): Take old_decl argument.
5189 * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
5190 * tree-inline.c (copy_bb): Set frequency correctly.
fb0be169
EB
5191 (fold_marked_statements): Update call to
5192 cgraph_update_edges_for_call_stmt.
4b685e14 5193
29d08eba
JM
51942009-05-10 Joseph Myers <joseph@codesourcery.com>
5195
5196 * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
5197 identifiers in diagnostics.
5198 * config/arm/arm.c (arm_handle_fndecl_attribute,
5199 arm_handle_isr_attribute): Likewise.
5200 * config/avr/avr.c (avr_handle_progmem_attribute,
782dc37a 5201 avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
29d08eba
JM
5202 * config/bfin/bfin.c (handle_int_attribute,
5203 bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
5204 bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
5205 bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
5206 Likewise.
5207 * config/darwin.c (darwin_handle_kext_attribute,
5208 darwin_handle_weak_import_attribute): Likewise.
5209 * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
5210 h8300_handle_eightbit_data_attribute,
5211 h8300_handle_tiny_data_attribute): Likewise.
5212 * config/i386/i386.c (ix86_handle_cconv_attribute,
782dc37a 5213 ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
29d08eba
JM
5214 * config/i386/winnt.c (ix86_handle_shared_attribute,
5215 ix86_handle_selectany_attribute): Likewise.
5216 * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
5217 * config/m32c/m32c.c (function_vector_handler): Likewise.
5218 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
5219 m68hc11_handle_fntype_attribute): Likewise.
5220 * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
5221 * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
5222 * config/mips/mips.c (mips_insert_attributes,
5223 mips_merge_decl_attributes, mips_expand_builtin): Likewise.
5224 * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
5225 rs6000_handle_struct_attribute): Likewise.
5226 * config/sh/sh.c (sh_insert_attributes,
5227 sh_handle_resbank_handler_attribute,
5228 sh_handle_interrupt_handler_attribute,
5229 sh2a_handle_function_vector_handler_attribute,
5230 sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
5231 Likewise.
5232 * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
5233 * config/spu/spu.c (spu_handle_fndecl_attribute,
5234 spu_handle_vector_attribute): Likewise.
5235 * config/stormy16/stormy16.c
5236 (xstormy16_handle_interrupt_attribute): Likewise.
5237 * config/v850/v850-c.c (ghs_pragma_section): Likewise.
5238 * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
5239
f41c4af3
JM
52402009-05-10 Joseph Myers <joseph@codesourcery.com>
5241
782dc37a 5242 * pretty-print.h (struct pretty_print_info): Add translate_identifiers.
f41c4af3
JM
5243 (pp_translate_identifiers): New.
5244 (pp_identifier): Only conditionally translate identifier to locale
5245 character set.
5246 * pretty-print.c (pp_construct): Set pp_translate_identifiers.
5247 (pp_base_tree_identifier): Only conditionally translate identifier
5248 to locale character set.
5249 * c-pretty-print.c (M_): Define.
5250 (pp_c_type_specifier, pp_c_primary_expression): Mark English
5251 fragments for conditional translation with M_.
5252 * tree-pretty-print.c (maybe_init_pretty_print): Disable
5253 identifier translation.
5254
896d7dbd
RG
52552009-05-10 Richard Guenther <rguenther@suse.de>
5256
5257 PR tree-optimization/40081
5258 * tree-sra.c (instantiate_element): Instantiate scalar replacements
5259 using the main variant of the element type. Do not fiddle with
5260 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
5261
9a23acef
JH
52622009-05-09 Jan Hubicka <jh@suse.cz>
5263
5264 PR middle-end/40080
5265 * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
5266 indirect calls; verify cgraph afterwards.
5267
d563610d
JH
52682009-05-09 Jan Hubicka <jh@suse.cz>
5269
5270 PR bootstrap/40082
5271 * ipa.c (update_inlined_to_pointer): New function.
5272 (cgraph_remove_unreachable_nodes): Use it.
5273
f08a18d0
JH
52742009-05-09 Jan Hubicka <jh@suse.cz>
5275
5276 * tree-eh.c (struct leh_state): Remove prev_try.
5277 (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
5278 not track prev_try.
5279 * except.c (gen_eh_region_cleanup, duplicate_eh_regions,
5280 copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
5281 remove_eh_handler_and_replace, foreach_reachable_handler,
5282 verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
5283 * except.h (struct eh_region): Remove eh_region_u_cleanup.
5284 (gen_eh_region_cleanup): Update prototype.
5285
0afd7219
JH
52862009-05-09 Jan Hubicka <jh@suse.cz>
5287
5288 PR middle-end/40043
5289 * except.c (copy_eh_region): Always set prev_try.
5290 (redirect_eh_edge_to_label): Find outer try.
5291 (foreach_reachable_handler): When looking for prev try
5292 handle case where previous try is not going to be taken.
5293
ad6c0864
MM
52942009-05-07 Michael Meissner <meissner@linux.vnet.ibm.com>
5295
5296 PR tree-optimization/40049
5297 * tree-vect-stmts.c (vectorizable_operation): If the machine has
5298 only vector/vector shifts, convert the type of the constant to the
5299 appropriate type to avoid building incorrect trees, which
5300 eventually have problems with garbage collection.
5301
c94f9067
JM
53022009-05-08 Joseph Myers <joseph@codesourcery.com>
5303
5304 * fold-const.c (fold_binary): Do not fold multiplication by 1 or
5305 -1 for complex floating-point types if honoring signed zeros.
5306
9187e02d
JH
53072009-05-08 Jan Hubicka <jh@suse.cz>
5308
20acb8a2
EB
5309 * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
5310 argument; handle correctly when profile is absent.
9187e02d
JH
5311 (build_cgraph_edges): Update.
5312 (rebuild_cgraph_edges): Update.
20acb8a2
EB
5313 * cgraph.c: Do not include varray.h.
5314 (cgraph_set_call_stmt_including_clones): New function.
5315 (cgraph_create_edge_including_clones): Likewise
5316 (cgraph_update_edges_for_call_stmt_node): New static cfunction.
9187e02d
JH
5317 (cgraph_update_edges_for_call_stmt): Handle clones.
5318 (cgraph_remove_node): Handle clone tree.
5319 (cgraph_remove_node_and_inline_clones): New function.
5320 (dump_cgraph_node): Dump clone tree.
5321 (cgraph_clone_node): Handle clone tree.
20acb8a2 5322 (clone_function_name): Bring here from tree-inline.c.
9187e02d 5323 (cgraph_create_virtual_clone): New function.
20acb8a2
EB
5324 * cgraph.h (ipa_replace_map): Move here from ipa.h.
5325 (cgraph_clone_info): New function.
9187e02d 5326 (strut cgraph_node): Add clone_info and new clone tree pointers.
20acb8a2
EB
5327 (cgraph_remove_node_and_inline_clones,
5328 cgraph_set_call_stmt_including_clones,
5329 cgraph_create_edge_including_clones,
5330 cgraph_create_virtual_clone): Declare.
9187e02d
JH
5331 (cgraph_function_versioning): Use VEC argument.
5332 (compute_call_stmt_bb_frequency): Update prototype.
5333 (cgraph_materialize_all_clones): New function.
5334 * ipa-cp.c (ipcp_update_cloned_node): Remove.
5335 (ipcp_create_replace_map): Update to VECtors.
5336 (ipcp_update_callgraph): Use virtual clones.
5337 (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
5338 (ipcp_update_profiling): Do not update local profiling.
5339 (ipcp_insert_stage): Use VECtors and virtual clones.
5340 * cgraphunit.c (verify_cgraph_node): Verify clone tree.
5341 (clone_of_p): New function.
5342 (cgraph_preserve_function_body_p): Use clone tree.
5343 (cgraph_optimize): Materialize clones.
5344 (cgraph_function_versioning): Update for VECtors.
5345 (save_inline_function_body): Use clone tree.
20acb8a2
EB
5346 (cgraph_materialize_clone): New function.
5347 (cgraph_materialize_all_clones): Likewise.
9187e02d
JH
5348 * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
5349 * ipa.c: Include gimple.h.
5350 (cgraph_remove_unreachable_nodes): Use clone tree.
20acb8a2
EB
5351 * ipa-prop.c (ipa_note_param_call): Update call to
5352 compute_call_stmt_bb_frequencycall.
9187e02d 5353 * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
20acb8a2 5354 * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
9187e02d
JH
5355 (copy_bb): Handle updating of clone tree; add new edge when new call
5356 appears.
5357 (expand_call_inline): Be strict about every call having edge.
5358 (clone_fn_id_num, clone_function_name): Move to cgraph.c.
5359 (delete_unreachable_blocks_update_callgraph): New function.
20acb8a2
EB
5360 (tree_function_versioning): Use VECtors; always remove unreachable
5361 blocks and fold conditionals.
5362 * tree-inline.h: Do not include varray.h.
9187e02d
JH
5363 (tree_function_versioning): Remove.
5364 * Makefile.in (GTFILES): Remove tree-inline.c
5365 * passes.c (do_per_function): Do only functions having body.
20acb8a2
EB
5366 * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
5367 tree.
9187e02d 5368
9b86d6bb
L
53692009-05-08 H.J. Lu <hongjiu.lu@intel.com>
5370 Andrew Morrow <acm@google.com>
5371
5372 PR c/36892
5373 * c-common.c (c_common_attribute_table): Permit deprecated
5374 attribute to take an optional argument.
5375 (handle_deprecated_attribute): If the optional argument to
5376 __attribute__((deprecated)) is not a string ignore the attribute
5377 and emit a warning.
5378
5379 * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
5380 * c-typeck.c (build_component_ref): Likewise.
5381 (build_external_ref): Likewise.
5382
5383 * toplev.c (warn_deprecated_use): Add an attribute argument.
5384 Emit the message associated with __attribute__((deprecated)).
5385
5386 * toplev.h (warn_deprecated_use): Updated.
5387
5388 * doc/extend.texi: Document new optional parameter to
5389 __attribute__((deprecated))
5390
82ad047f
ME
53912009-05-08 Michael Eager <eager@eagercon.com>
5392
5393 * config/rs6000/rs6000.md (*movdf_softfloat32): replace
5394 !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
5395
788d3075
RG
53962009-05-08 Richard Guenther <rguenther@suse.de>
5397
5398 PR tree-optimization/40062
5399 * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
5400 Avoid exponential behavior.
5401
00952e97
PB
54022009-05-08 Paolo Bonzini <bonzini@gnu.org>
5403
5404 PR rtl-optimization/33928
5405 PR 26854
5406 * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
5407 process_uses, build_single_def_use_links): New.
5408 (update_df): Update use_def_ref.
5409 (forward_propagate_into): Use get_def_for_use instead of use-def
5410 chains.
5411 (fwprop_init): Call build_single_def_use_links and let it initialize
5412 dataflow.
5413 (fwprop_done): Free use_def_ref.
5414 (fwprop_addr): Eliminate duplicate call to df_set_flags.
5415 * df-problems.c (df_rd_simulate_artificial_defs_at_top,
5416 df_rd_simulate_one_insn): New.
5417 (df_rd_bb_local_compute_process_def): Update head comment.
5418 (df_chain_create_bb): Use the new RD simulation functions.
5419 * df.h (df_rd_simulate_artificial_defs_at_top,
5420 df_rd_simulate_one_insn): New.
5421 * opts.c (decode_options): Enable fwprop at -O1.
5422 * doc/invoke.texi (-fforward-propagate): Document this.
5423
2ca862e9
JM
54242009-05-08 Joseph Myers <joseph@codesourcery.com>
5425
5426 PR c/24581
5427 * c-typeck.c (build_binary_op): Handle arithmetic between one real
5428 and one complex operand specially.
5429 * tree-complex.c (some_nonzerop): Do not identify a real value as
5430 zero if flag_signed_zeros.
5431
3e807ffc
PB
54322009-05-08 Paolo Bonzini <bonzini@gnu.org>
5433
5434 PR rtl-optimization/33928
7925c06c 5435 * loop-invariant.c (record_use): Fix && vs. || mishap.
3e807ffc 5436
1bfdbb29
PB
54372009-05-08 Paolo Bonzini <bonzini@gnu.org>
5438
5439 PR rtl-optimization/33928
e913423f
EB
5440 * loop-invariant.c (struct use): Add addr_use_p.
5441 (struct def): Add n_addr_uses.
5442 (struct invariant): Add cheap_address.
5443 (create_new_invariant): Set cheap_address.
5444 (record_use): Accept df_ref. Set addr_use_p and update n_addr_uses.
5445 (record_uses): Pass df_ref to record_use.
5446 (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
5447 used only as such.
1bfdbb29 5448
702cb2a0
KK
54492009-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
5450
5451 * config/sh/sh.c: Do not include c-pragma.h.
5452
5e8df753
AP
54532009-05-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
5454
5455 * config/spu/spu.c: Remove include of c-common.h.
5456
6ec637a4
JJ
54572009-05-07 Janis Johnson <janis187@us.ibm.com>
5458
5459 PR c/39037
5460 * c-common.h (mark_valid_location_for_stdc_pragma,
5461 valid_location_for_stdc_pragma_p, set_float_const_decimal64,
5462 clear_float_const_decimal64, float_const_decimal64_p): New.
5463 * c.opt (Wunsuffixed-float-constants): New.
5464 * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
5465 unsuffixed float constant, handle new warning.
5466 * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
5467 * c-decl.c (c_scope): New flag float_const_decimal64.
5468 (set_float_const_decimal64, clear_float_const_decimal64,
5469 float_const_decimal64_p): New.
5470 (push_scope): Set new flag.
5471 * c-parser.c (c_parser_translation_unit): Mark when it's valid
5472 to use STDC pragmas.
5473 (c_parser_external_declaration): Ditto.
5474 (c_parser_compound_statement_nostart): Ditto.
5475 * c-pragma.c (valid_location_for_stdc_pragma,
5476 mark_valid_location_for_stdc_pragma,
5477 valid_location_for_stdc_pragma_p, handle_stdc_pragma,
5478 handle_pragma_float_const_decimal64): New.
5479 (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
5480 * cp/semantics.c (valid_location_for_stdc_pragma_p,
5481 set_float_const_decimal64, clear_float_const_decimal64,
5482 float_const_decimal64_p): New dummy functions.
5483 * doc/extend.texi (Decimal Float): Remove statement that the
5484 pragma, and suffix for double constants, are not supported.
5485 * doc/invoke.texi (Warning Options): List new option.
5486 (-Wunsuffixed-float-constants): New.
5487
45b9b2e9
SB
54882009-05-08 Steven Bosscher <steven@gcc.gnu.org>
5489
5490 * config/i386/i386.c: Do not include c-common.h.
5491
e71da632
MH
54922009-05-07 Mark Heffernan <meheff@google.com>
5493
5494 * doc/invoke.texi (Debugging Options): Document change of debugging
5495 dump location.
e913423f 5496 * opts.c (decode_options): Make dump_base_name relative to
e71da632
MH
5497 aux_base_name directory.
5498
fe4c7bc6
HS
54992009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
5500
5501 * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
5502 * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
5503
3b3e44eb
RAE
55042009-05-07 Rafael Avila de Espindola <espindola@google.com>
5505
5506 * Makefile.in (install-plugin): Simplify a bit.
5507
fac41238
PB
55082009-05-07 Paolo Bonzini <bonzini@gnu.org>
5509
5510 * Makefile.in (OBJS-common): Add regcprop.o.
5511 (regcprop.o): New.
5512 * timevar.def (TV_CPROP_REGISTERS): New.
5513 * regrename.c (regrename_optimize): Return 0.
5514 (rest_of_handle_regrename): Delete.
5515 (pass_rename_registers): Point to regrename_optimize.
5516 (struct value_data_entry, struct value_data,
5517 kill_value_one_regno, kill_value_regno, kill_value,
5518 set_value_regno, init_value_data, kill_clobbered_value,
5519 kill_set_value, kill_autoinc_value, copy_value,
5520 mode_change_ok, maybe_mode_change, find_oldest_value_reg,
5521 replace_oldest_value_reg, replace_oldest_value_addr,
5522 replace_oldest_value_mem, copyprop_hardreg_forward_1,
5523 debug_value_data, validate_value_data): Move...
5524 * regcprop.c: ... here.
5525 (rest_of_handle_cprop): Delete.
5526 (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
5527
472e0df9
JJ
55282009-05-07 Jakub Jelinek <jakub@redhat.com>
5529
5530 PR middle-end/40057
5531 * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
5532 GEN_INT for 1 << bitnum.
5533 (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
5534 build_int_cst_type.
5535
0d50d55a
UB
55362009-05-07 Uros Bizjak <ubizjak@gmail.com>
5537
5538 * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
7925c06c 5539 Remove wrong description of "nand" operation.
0d50d55a 5540
22f597f1
RG
55412009-05-06 Richard Guenther <rguenther@suse.de>
5542 Adam Nemet <anemet@caviumnetworks.com>
5543
5544 * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
5545 comment. Add that if LHS is not a gimple register, then RHS1 has
5546 to be a single object (GIMPLE_SINGLE_RHS).
5547
641cac0b
AN
55482009-05-06 Adam Nemet <anemet@caviumnetworks.com>
5549
5550 * expr.c (get_def_for_expr): Move it up in the file.
5551 (store_field): When expanding a bit-field store, look at the
5552 defining gimple stmt for the masking conversion.
5553
5a5c6435
JJ
55542009-05-06 Janis Johnson <janis187@us.ibm.com>
5555
5556 PR middle-end/39986
5557 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
5558 decode_decimal64, encode_decimal128, decode_decimal128): Avoid
5559 32-bit memcpy into long.
5560
96474f36
JJ
55612009-05-06 Jakub Jelinek <jakub@redhat.com>
5562
5563 * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
5564 (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
5565 new_reg_loc_descr.
5566 (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
5567 instead of appending DW_OP_deref*.
5568
529ff441
MM
55692009-05-06 Michael Matz <matz@suse.de>
5570
5571 PR middle-end/40021
5572 * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
5573 (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
5574
9419a9fd
RAE
55752009-05-06 Rafael Avila de Espindola <espindola@google.com>
5576
5577 * Makefile.in (install-plugin): Fix srcdir handling.
5578
fff1894c
AB
55792009-05-06 Andrey Belevantsev <abel@ispras.ru>
5580
5581 * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
5582 when processing for not_regs_needed bitmap.
5583 * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
5584 handle TARGET_MEM_REF in lhs. Check TMR_BASE for NULL while
5585 handling it for rhs.
5586
700ae70c
L
55872009-05-06 H.J. Lu <hongjiu.lu@intel.com>
5588
ab3426a7 5589 * config/i386/i386.md (unnamed inc/dec peephole): Use
aa016ff7 5590 optimize_insn_for_size_p instead of optimize_size.
700ae70c
L
5591 * config/i386/predicates.md (incdec_operand): Likewise.
5592 (aligned_operand): Likewise.
5593 * config/i386/sse.md (divv8sf3): Likewise.
5594 (sqrtv8sf2): Likewise.
5595
67341fb5
L
55962009-05-06 H.J. Lu <hongjiu.lu@intel.com>
5597
5598 * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
5599
5600 * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
5601
87946f42
L
56022009-05-06 H.J. Lu <hongjiu.lu@intel.com>
5603
5604 * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
5605 ssemodesuffixf2c with avxmodesuffixf2c.
5606
1202aec1
JM
56072009-05-06 Joseph Myers <joseph@codesourcery.com>
5608
5609 PR c/40032
aa016ff7 5610 * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
1202aec1 5611
6e57a01d
JJ
56122009-05-05 Jakub Jelinek <jakub@redhat.com>
5613
5614 * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
5615 (struct tree_base): Adjust spacing for 8 bit boundaries.
5616 (struct tree_decl_common): Add decl_by_reference_flag bit.
5617 (DECL_BY_REFERENCE): Adjust.
5618 * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
5619 print DECL_BY_REFERENCE bit.
5620 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
5621 * dwarf2out.c (loc_by_reference, gen_decl_die): Check
5622 DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
5623 (gen_variable_die): Likewise. Check TREE_PRIVATE/TREE_PROTECTED
5624 unconditionally.
5625
32f579f6
JJ
5626 PR middle-end/39666
5627 * gimplify.c (gimplify_switch_expr): If case labels cover the whole
5628 range of the type, but default label is missing, add it with one
5629 of the existing labels instead of adding a new label for it.
5630
617ab743
JM
56312009-05-05 Joseph Myers <joseph@codesourcery.com>
5632
5633 * dwarf.h: Remove.
5634
bf016de8
RAE
56352009-05-05 Rafael Avila de Espindola <espindola@google.com>
5636
5637 * Makefile.in (enable_plugin, plugin_includedir): New.
5638 (install): Depend on install-plugin.
5639 (PLUGIN_HEADERS): New.
5640 (install-plugin): New.
5641 * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
5642
7f8fdb9f
RG
56432009-05-05 Richard Guenther <rguenther@suse.de>
5644
5645 PR tree-optimization/40022
5646 * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
5647 the only vuse.
5648 (phivn_valid_p): Fix tuplification error, simplify.
5649 (phiprop_insert_phi): Add dumps.
5650 (propagate_with_phi): Simplify.
5651
8d972839
RG
56522009-05-05 Richard Guenther <rguenther@suse.de>
5653
5654 PR middle-end/40023
aa016ff7 5655 * builtins.c (gimplify_va_arg_expr): Properly build the address.
8d972839 5656
66ba9b0b
SZ
56572009-05-05 Shujing Zhao <pearly.zhao@oracle.com>
5658
5659 * tree.h (strip_float_extensions): Remove duplicate declaration.
aa016ff7
UB
5660 (build_low_bits_mask, debug_fold_checksum, expand_function_end,
5661 expand_function_start, stack_protect_prologue, stack_protect_epilogue,
5662 block_ultimate_origin): Rearrange the declarations line to match the
5663 comment that indicates the .c file which the functions are defined.
5664 (dwarf2out_*, set_decl_rtl): Add comment.
5665 (get_base_address): Adjust comment.
5666 (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
5667 declarations line and add comment.
5668 (is_builtin_name): Add blank after function name, for clarity.
66ba9b0b 5669
4f1e4960
JM
56702009-05-04 Joseph Myers <joseph@codesourcery.com>
5671
5672 * attribs.c (decl_attributes): Use %qE for identifiers in
5673 diagnostics.
5674 * cgraphunit.c (verify_cgraph_node): Translate function names to
5675 locale character set in diagnostics.
5676 * coverage.c (get_coverage_counts): Use %qE for identifiers in
5677 diagnostics.
5678 * doc/invoke.texi (-finstrument-functions-exclude-function-list):
5679 Document that functions are named in UTF-8.
5680 * expr.c (expand_expr_real_1): Translate function names to locale
5681 character set in diagnostics.
5682 * gimplify.c (omp_notice_variable, omp_is_private,
5683 gimplify_scan_omp_clauses): Use %qE for identifiers in
5684 diagnostics.
5685 * langhooks.c (lhd_print_error_function): Translate function names
5686 to locale character set.
5687 * langhooks.h (decl_printable_name): Document that return value is
5688 in internal character set.
5689 * stmt.c: Include pretty-print.h
5690 (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
5691 diagnostics.
5692 (resolve_operand_name_1): Translate named operand name to locale
5693 character set.
5694 * stor-layout.c (finalize_record_size): Use %qE for identifiers in
5695 diagnostics.
5696 * toplev.c (announce_function): Translate function names to locale
5697 character set.
5698 (warn_deprecated_use): Use %qE for identifiers in diagnostics.
5699 (default_tree_printer): Use pp_identifier or translate identifiers
5700 to locale character set. Mark "<anonymous>" for translation.
5701 * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
5702 for identifiers in diagnostics.
5703 * tree.c (handle_dll_attribute): Use %qE for identifiers in
5704 diagnostics.
5705 * varasm.c (output_constructor): Use %qE for identifiers in
5706 diagnostics.
5707
40540e68
RAE
57082009-05-04 Rafael Avila de Espindola <espindola@google.com>
5709
5710 * configure.ac: use ` ` instead of $()
5711 * configure: Regenerate.
5712
33fc884c
BE
57132009-05-05 Ben Elliston <bje@au.ibm.com>
5714
5715 * config/pa/linux-atomic.c: Eliminate conditional include of
5716 errno.h on non-LP64 systems to simplify build requirements.
5717
88388a52
JM
57182009-05-04 Joseph Myers <joseph@codesourcery.com>
5719
5720 * c-common.c (handle_mode_attribute): Use %qE for identifiers in
5721 diagnostics.
5722 * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
5723 and pass value to identifier_to_locale.
5724 (warn_variable_length_array): Make name a tree.
5725 (grokdeclarator): Separate diagnostic texts for named and unnamed
5726 declarators. Use %qE for named declarators.
5727 * c-parser.c (c_lex_one_token): Use %qE for identifiers in
5728 diagnostics.
5729 * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
5730 identifiers in diagnostics.
5731 * c-typeck.c (push_member_name, start_init): Pass identifiers to
5732 identifier_to_locale. Mark "anonymous" strings for translation.
5733
960c5c79
ME
57342009-05-04 Michael Eager <eager@eagercon.com>
5735
5736 * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
aa016ff7 5737 address for DImode/DFmode only if double-precision FP regs.
960c5c79 5738
d083fbba
ME
57392009-05-04 Michael Eager <eager@eagercon.com>
5740
5741 * config/rs6000/rs6000.c (rs6000_libcall_value): Add
5742 TARGET_SINGLE_FLOAT check.
5743
c3ba8d32
ME
57442009-05-04 Michael Eager <eager@eagercon.com>
5745
5746 * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
5747
edce9f18
ME
57482009-05-04 Michael Eager <eager@eagercon.com>
5749
5750 * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
5751 * config/rs6000/t-xilinx: New
5752
506d7b68
PB
57532009-05-04 Paolo Bonzini <bonzini@gnu.org>
5754
e913423f 5755 * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
506d7b68
PB
5756 * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
5757 * gcc/explow.c (memory_address): Use target hook.
5758 * gcc/targhooks.c (default_legitimize_address): New.
5759 * gcc/targhooks.h (default_legitimize_address): New.
5760 * gcc/target.h (legitimize_address): New.
5761 * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
5762 (TARGET_INITIALIZER): Include it.
5763 * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
5764
5765 * config/bfin/bfin-protos.h (legitimize_address): Remove.
5766 * config/bfin/bfin.c (legitimize_address): Remove.
5767 * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
aa016ff7
UB
5768 * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
5769 Remove.
506d7b68
PB
5770 * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
5771 * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
5772
5773 * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
5774 THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
5775 * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
5776 * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
5777 * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
5778 * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
5779 * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
5780 * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
5781 * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
5782 * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
5783 * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
5784 * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
5785 * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
5786 * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
5787 * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
5788 * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
5789 * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
5790 * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
5791 * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
5792 * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
5793 * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
5794 * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
5795 * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
5796
5797 * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
5798 * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
5799 * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
5800 * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
5801 * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
5802 * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
5803 * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
5804 * gcc/config/arm/arm-protos.h (arm_legitimize_address,
5805 (thumb_legitimize_address): Delete.
5806 * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
5807 * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
5808 * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
5809 * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
5810 * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
aa016ff7
UB
5811 * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
5812 Delete.
5813 * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
5814 Delete.
506d7b68
PB
5815
5816 * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
5817 * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
5818 * config/m32r/m32r.c (m32r_legitimize_address): New.
5819 * config/m68k/m68k.c (m68k_legitimize_address): New.
5820 * config/score/score.c (score_legitimize_address): Standardize.
5821 * config/score/score3.c (score3_legitimize_address): Standardize.
5822 * config/score/score3.h (score3_legitimize_address): Adjust.
5823 * config/score/score7.c (score7_legitimize_address): Standardize.
5824 * config/score/score7.h (score7_legitimize_address): Adjust.
5825 * config/sh/sh.c (sh_legitimize_address): New.
5826 * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
5827
5828 * gcc/config/s390/s390.c (legitimize_address): Rename to...
5829 (s390_legitimize_address): ... this.
5830 * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
5831 (sparc_legitimize_address): ... this.
5832 * gcc/config/i386/i386.c (legitimize_address): Rename to...
5833 (ix86_legitimize_address): ... this.
5834 * gcc/config/avr/avr.c (legitimize_address): Rename to...
5835 (avr_legitimize_address): ... this.
5836 * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
5837 (mn10300_legitimize_address): ... this.
5838 * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
5839 (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
5840 (alpha_expand_mov): Adjust call.
5841
5842 * config/frv/frv.c (frv_legitimize_address): Return x on failure.
5843 * config/spu/spu.c (spu_legitimize_address): Likewise.
5844 * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
5845 * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
5846
a3af5087
JM
58472009-05-04 Joseph Myers <joseph@codesourcery.com>
5848
5849 * intl.c (locale_encoding, locale_utf8): New.
5850 (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
5851 * intl.h (locale_encoding, locale_utf8): Declare.
5852 * pretty-print.c: Include ggc.h. Include iconv.h if HAVE_ICONV.
5853 (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
5854 New.
5855 * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
5856 argument.
5857 (pp_tree_identifier): Define to call pp_base_tree_identifier.
5858 (pp_base_tree_identifier): Declare as function.
5859 (identifier_to_locale): Declare.
5860 * Makefile.in (pretty-print.o): Update dependencies.
aa016ff7 5861 * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
a3af5087 5862
ea5cd5f1
RG
58632009-05-04 Richard Guenther <rguenther@suse.de>
5864
5865 PR middle-end/40015
5866 * builtins.c (fold_builtin_memory_op): Do not decay to element
5867 type if the size matches the whole array.
5868
ddc2690a
KH
58692009-05-04 Kazu Hirata <kazu@codesourcery.com>
5870
5871 * expmed.c (synth_mult): When trying out a shift, pass the result
5872 of a signed shift.
5873
ef268d34
KH
58742009-05-04 Kazu Hirata <kazu@codesourcery.com>
5875
5876 * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
5877 (shiftsub1_cost): New.
5878 (init_expmed): Compute shiftsub1_cost.
5879 (synth_mult): Optimize multiplications by constants of the form
5880 -(2^^m-1) for some constant positive integer m.
5881
255d3827
RG
58822009-05-03 Richard Guenther <rguenther@suse.de>
5883
5884 PR c/39983
5885 * c-typeck.c (array_to_pointer_conversion): Do not built
5886 ADDR_EXPRs of arrays of pointer-to-element type.
5887 * c-gimplify.c (c_gimplify_expr): Revert change fixing
5888 up wrong ADDR_EXPRs after-the-fact.
5889 * c-common.c (strict_aliasing_warning): Strip pointer
5890 conversions for obtaining the original type.
5891 * builtins.c (fold_builtin_memset): Handle array types.
5892 (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
5893 and array types
5894
16c33770
RG
58952009-05-03 Richard Guenther <rguenther@suse.de>
5896
5897 PR middle-end/23329
5898 * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
5899 Do not lose casts from array types with unknown extent to array
5900 types with known extent.
5901 * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
5902 alias set compatibility.
5903
62a67c94
MLI
59042009-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
5905
5906 * flags.h (extra_warnings): Delete.
5907 * toplev.c (process_options): Handle Wuninitialized here.
5908 * opts.c (extra_warnings): Delete.
5909 (set_Wextra): Delete.
5910 (common_handle_option): -Wextra can be handled automatically.
5911 * c-opts.c (c_common_handle_option): Delete obsolete code.
5912 (c_common_post_options): Simplify comment.
5913 * common.opt (W): Add Var.
5914 (Wextra): Add Var.
5915 (Wuninitialized): Initialize to -1.
5916
8c7926c4
AN
59172009-05-03 Adam Nemet <anemet@caviumnetworks.com>
5918 Richard Guenther <rguenther@suse.de>
5919
5920 * expr.c (get_def_for_expr): New function.
5921 (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
5922 SSA rather than trees.
5923 <MULT_EXPR>: Likewise. Use subexp0 and subexp1 instead of
5924 TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
5925
fa5da7de
JM
59262009-05-03 Joseph Myers <joseph@codesourcery.com>
5927
5928 * c-common.c (reswords): Add _Imaginary.
5929 * c-common.c (enum rid): Add RID_IMAGINARY.
5930
2ddd5020
PB
59312009-05-03 Paolo Bonzini <bonzini@gnu.org>
5932
5933 * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
5934 Patch by Richard Guenther.
5935
aea88c05
AS
59362009-05-03 Anatoly Sokolov <aesok@post.ru>
5937
5938 * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
5939 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
5940 * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
5941 * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
5942 * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
5943 * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
5944 * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
5945 * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
5946 * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
5947 * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
5948 * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
5949 * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
5950 * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
5951 * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
5952 * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
5953 * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
5954 * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
5955 * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
5956
85e59f3a
RG
59572009-05-02 Richard Guenther <rguenther@suse.de>
5958
5959 PR tree-optimization/39940
5960 * tree-ssa-pre.c (eliminate): Make sure we may propagate before
5961 doing so.
5962
4636b850
RG
59632009-05-02 Richard Guenther <rguenther@suse.de>
5964
5965 PR middle-end/40001
5966 * tree-ssa.c (execute_update_addresses_taken): Properly check
5967 if we can mark a variable DECL_GIMPLE_REG_P.
5968 * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
5969 back to the end of the function.
5970 (is_gimple_reg_type): Remove complex type special casing.
5971 * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
5972 if not optimizing.
5973
5e10cb5a
BE
59742009-05-02 Ben Elliston <bje@au.ibm.com>
5975
5976 * doc/collect2.texi (Collect2): Document search path behaviour
5977 when configured with --with-ld.
5978
048bf48b
JH
59792009-05-02 Jan Hubicka <jh@suse.cz>
5980
5981 * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
5982 parameter; update callers.
aa016ff7
UB
5983 (coalesce_cost_edge): EH edges are costier because they needs
5984 splitting even if not critical and even more costier when there are
5985 multiple EH predecestors.
048bf48b 5986
d5c5f9ab
JH
59872009-05-02 Jan Hubicka <jh@suse.cz>
5988
5989 * except.c (remove_eh_handler_and_replace): Handle updating after
5990 removing TRY blocks.
5991
2ed1959a
EB
59922009-05-02 Eric Botcazou <ebotcazou@adacore.com>
5993
5994 * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
5995
d363a7e7
SB
59962009-05-02 Steven Bosscher <steven@gcc.gnu.org>
5997
5998 * varasm.c: Do not include c-pragma.h.
5999 * attribs.c: Do not incude c-common.h.
6000
9c3d55b4
MM
60012009-05-01 Michael Matz <matz@suse.de>
6002
6003 * calls.c (initialize_argument_information): Handle SSA names like
6004 decls with a non MEM_P DECL_RTL.
6005
ea264ca5
SB
60062009-05-01 Steven Bosscher <steven@gcc.gnu.org>
6007
6008 * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
6009 * ipa-utils.c: Likewise.
6010 * ipa-type-escape.c: Likewise.
6011 * cgraphunit.c Do not include c-common.h.
6012 * ipa-pure-const.c: Likewise.
6013 * tree-if-conv.c: Likewise.
6014 * matrix-reorg.c: Do not include c-common.h and c-tree.h.
6015 * ipa-struct-reorg.c: Likewise.
6016 * tree-nomudflap.c: Likewise.
6017 * tree-ssa-structalias.c: Likewise.
6018
6c5d4d1a
SB
60192009-05-01 Steven Bosscher <steven@gcc.gnu.org>
6020
6021 * store-motion.c: Many cleanups to make this pass a first-class
6022 citizen instead of an appendix to gcse load motion. Add TODO list
6023 to make this pass faster/cleaner/better.
6024
6025 (struct ls_expr): Post gcse.c-split cleanups.
6026 Rename to st_expr. Rename "loads" field to "antic_stores". Rename
6027 "stores" field to "avail_stores".
6028 (pre_ldst_mems): Rename to store_motion_mems.
6029 (pre_ldst_table): Rename to store_motion_mems_table.
6030 (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
6031 (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
6032 (ldst_entry): Rename to st_expr_entry, update users.
6033 (free_ldst_entry): Rename to free_st_expr_entry, update users.
6034 (free_ldst_mems): Rename to free_store_motion_mems, update users.
aa016ff7
UB
6035 (enumerate_ldsts): Rename to enumerate_store_motion_mems,
6036 update caller.
6c5d4d1a
SB
6037 (first_ls_expr): Rename to first_st_expr, update users.
6038 (next_ls_expr): Rename to next_st_expr, update users.
6039 (print_ldst_list): Rename to print_store_motion_mems. Print names of
6040 fields properly for store motion instead of names inherited from load
6041 motion in gcse.c.
6042 (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
6043 (LAST_AVAIL_CHECK_FAILURE): Explain what this is. Undefine when we
6044 are done with it.
6045
6046 (ae_kill): Rename to st_kill, update users.
6047 (ae_gen): Rename to st_avloc, update users.
6048 (transp): Rename to st_transp, update users.
6049 (pre_insert_map): Rename to st_insert_map, update users.
6050 (pre_delete_map): Rename to st_delete_map, update users.
6051 (insert_store, build_store_vectors, free_store_memory,
6052 one_store_motion_pass): Update for abovementioned changes.
6053
6054 (gcse_subst_count, gcse_create_count): Remove.
6055 (one_store_motion_pass): New statistics counters "n_stores_deleted"
6056 and "n_stores_created", local variables.
6057
6058 (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
6059 use for_each_rtx.
6060
6061 (regvec, compute_store_table_current_insn): Remove.
6062 (reg_set_info, reg_clear_last_set): Remove.
6063 (compute_store_table): Use DF caches instead of local dataflow
6064 solvers.
6065
b02cec6e
JM
60662009-05-01 Joseph Myers <joseph@codesourcery.com>
6067
6068 * c-objc-common.c (c_tree_printer): Print identifiers with
6069 pp_identifier, not pp_string. Mark "({anonymous})" for
6070 translation.
6071 * c-pretty-print.c (pp_c_ws_string): New.
6072 (pp_c_cv_qualifier, pp_c_type_specifier,
6073 pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
6074 pp_c_storage_class_specifier, pp_c_function_specifier,
6075 pp_c_attributes, pp_c_bool_constant, pp_c_constant,
6076 pp_c_primary_expression, pp_c_postfix_expression,
6077 pp_c_unary_expression, pp_c_shift_expression,
6078 pp_c_relational_expression, pp_c_equality_expression,
6079 pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
6080 use pp_string and pp_c_ws_string in place of pp_identifier and
6081 pp_c_identifier for non-identifiers. Mark English strings for
6082 translation.
6083 * c-pretty-print.h (pp_c_ws_string): Declare.
6084
cd533689
PP
60852009-04-30 Paul Pluzhnikov <ppluzhnikov@google.com>
6086 Roland McGrath <roland@redhat.com>
6087
aa016ff7 6088 * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
cd533689
PP
6089 (ENABLE_LD_BUILDID): New configuration option.
6090 * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
6091 (LINK_BUILDID_SPEC): New macro.
6092 (init_spec): If defined, prepend it between LINK_EH_SPEC and
6093 link_spec.
6094 * doc/install.texi: Document --enable-linker-build-id option.
6095 * configure: Rebuild.
6096 * config.in: Rebuild.
6097
ba6adec4
AN
60982009-04-30 Adam Nemet <anemet@caviumnetworks.com>
6099
6100 * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
6101 MIPS_GP_SAVE_AREA_SIZE): Define new macros.
6102 (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD. Use
6103 MIPS_GP_SAVE_AREA_SIZE.
6104 * config/mips/mips.c (struct mips_frame_info): Update comment
6105 before arg_pointer_offset and hard_frame_pointer_offset.
6106 (mips_compute_frame_info): Update diagram before function: to
6107 correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
6108 indicate the position of frame_pointer_rtx with -fstack-protector and
6109 to show args_size. Don't allocate cprestore area for leaf functions
6110 if FRAME_GROWS_DOWNWARD. Use MIPS_GP_SAVE_AREA_SIZE to set
6111 cprestore_size.
6112 (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
6113
48f5b722
MM
61142009-04-30 Michael Matz <matz@suse.de>
6115
ba6adec4
AN
6116 PR tree-optimization/39955
6117 * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
48f5b722 6118
b65d6744
DK
61192009-04-30 Dave Korn <dave.korn.cygwin@gmail.com>
6120
6121 * ira.c (setup_cover_and_important_classes): Use safe macro
6122 REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
6123 directly.
6124 * genpreds.c (write_tm_preds_h): Output suitable definition of
6125 REG_CLASS_FOR_CONSTRAINT.
6126
f136c8ae
RAE
61272009-04-30 Rafael Avila de Espindola <espindola@google.com>
6128
6129 * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
6130 instead of an int.
6131 * bitmap.c (bitmap_descriptor): Likewise.
6132 * ggc-common.c (loc_descriptor): Likewise.
6133 * varray.c (varray_descriptor): Likewise.
6134 * vec.c (vec_descriptor): Likewise.
6135
43fcece8 61362009-04-30 Eric Botcazou <ebotcazou@adacore.com>
35debead
EB
6137
6138 * Makefile.in (dce.o): Add $(EXCEPT_H).
6139 * dce.c: Include except.h and delete redundant vector definitions.
6140 (deletable_insn_p): Return false for non-call insns that can throw
6141 if DF is running.
6142
df35c271
SB
61432009-04-30 Steven Bosscher <steven@gcc.gnu.org>
6144
6145 * gcse.c (ae_gen): Remove.
6146 (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
6147 and make non-static function to make it available in store-motion.c.
6148 Update call sites with search-and-replace.
6149 (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
6150 extract_mentioned_regs, extract_mentioned_regs_helper,
6151 find_moveable_store, compute_store_table, load_kills_store, find_loads,
6152 store_killed_in_insn, store_killed_after, store_killed_before,
6153 build_store_vectors, insert_insn_start_basic_block, insert-store,
6154 remove_reachable_equiv_notes, replace_store_insn, delete_store,
6155 free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
6156 execute_rtl_store_motion, pass_rtl_store_motion): Move to...
6157 * store-motion.c: ...new file. Also copy data structures from gcse.c
6158 and clean up to remove parts not used by store motion.
6159 * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
6160 * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
6161
f711a87a
RR
61622009-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6163
6164 PR target/38571
6165 * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
6166 when optimizing for size.
6167
fa5ed76e
HPN
61682009-04-30 Hans-Peter Nilsson <hp@axis.com>
6169
6170 * gcse.c (gcse_constant_p): Fix typo in last change.
6171
0acbbdb0
RAE
61722009-04-30 Rafael Avila de Espindola <espindola@google.com>
6173
6174 * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
6175
82f5c05d
AK
61762009-04-30 Andreas Krebbel <krebbel1@de.ibm.com>
6177
6178 * gcse.c (gcse_constant_p): Make sure the constant is sharable.
6179
6d8f135b
JW
61802009-04-29 James E. Wilson <wilson@codesourcery.com>
6181
6182 * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
6183 CONST_HIGH_PART result.
6184
c21ca196
AS
61852009-04-29 Anatoly Sokolov <aesok@post.ru>
6186
6187 * config/avr/avr.c (initial_elimination_offset): Rename to
6188 avr_initial_elimination_offset.
6189 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
6190 change return type to bool.
6191 (avr_can_eliminate): New function.
6192 * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
6193 (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
6194 (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
0d50d55a 6195 * config/avr/avr-protos.h (initial_elimination_offset): Rename to
c21ca196
AS
6196 avr_initial_elimination_offset.
6197 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
6198 (avr_initial_elimination_offset): Define.
6199
2a34bece 62002009-04-29 Eric Botcazou <ebotcazou@adacore.com>
aa016ff7 6201 Steven Bosscher <steven@gcc.gnu.org>
2a34bece
EB
6202
6203 PR rtl-optimization/39938
6204 * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
6205 * cfgrtl.c: Include insn-attr.h.
6206 (rest_of_pass_free_cfg): New function.
6207 (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
6208 * resource.c (init_resource_info): Remove call to df_analyze.
6209
5dc7911e
RG
62102009-04-29 Richard Guenther <rguenther@suse.de>
6211
6212 PR target/39943
6213 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
6214 allow conversion to signed integers.
6215
1fe479fd
RG
62162009-04-29 Richard Guenther <rguenther@suse.de>
6217
6218 * tree-cfg.c (verify_gimple_assign_binary): Allow vector
6219 shifts of floating point vectors if the shift amount is
6220 a constant multiple of the element size.
6221
8e001680
AK
62222009-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
6223 Michael Matz <matz@suse.de>
6224
6225 PR middle-end/39927
6226 PR bootstrap/39929
6227 * tree-outof-ssa.c (emit_partition_copy): New function.
6228 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
6229 insert_part_to_rtx_on_edge): Perform the partition base var
6230 copy using emit_partition_copy.
6231 (insert_value_copy_on_edge): Convert constants to the right mode.
6232 (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
6233 (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
6234
e50e3081
BS
62352009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
6236
6237 * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
6238 scan backwards to try to find a constant to initialize it.
6239
4e5d521b
BS
6240 * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
6241 insn before the loop_end instruction, don't look past labels.
6242
7c90021d
RG
62432009-04-29 Richard Guenther <rguenther@suse.de>
6244
6245 PR middle-end/39937
6246 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
6247 loose type conversions.
6248 (forward_propagate_addr_expr): Fix tuplification bug. Remove
6249 stmts only if there are no uses of its definition.
6250
97a988bc
BS
62512009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
6252
6253 * config/bfin/bfin.h (splitting_loops): Declare.
6254 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
6255 Reorder bit definitions to be ascending.
6256 (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
6257 * config/bfin/bfin.c (splitting_loops): New variable.
6258 (bfin_cpus): Add WA_LOAD_LCREGS as needed.
6259 (struct loop_info): Remove members INIT and LOOP_INIT.
6260 (bfin_optimize_loop): Don't set them. Reorder the code that generates
aa016ff7
UB
6261 the LSETUP sequence. Allow LC to be loaded from any register, but
6262 also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
97a988bc
BS
6263 (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
6264 set to 1.
6265 * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
6266 of reload_completed.
aa016ff7 6267
97a988bc
BS
6268 From Jie Zhang:
6269 * config/bfin/bfin.md (movsi_insn): Refine constraints.
6270
0c463e16
RAE
62712009-04-29 Rafael Avila de Espindola <espindola@google.com>
6272
6273 * Makefile.in (PLUGIN_VERSION_H): New.
6274 (OBJS-common): Remove plugin-version.o.
6275 (plugin.o): Depend on (PLUGIN_VERSION_H).
6276 (plugin-version.o): Remove.
6277 * configure: Regenerate
6278 * configure.ac: Create plugin-version.h.
6279 * gcc-plugin.h (plugin_gcc_version): Remove.
6280 (plugin_default_version_check): Change signature.
6281 * plugin-version.c: Remove.
6282 * plugin.c: Include plugin-version.h.
6283 (str_plugin_gcc_version_name): Remove.
6284 (try_init_one_plugin): Pass gcc version to plugin_init.
6285 (plugin_default_version_check): Both gcc and plugin versions are now
6286 arguments.
6287
307e7eab
BS
62882009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
6289
6290 * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
6291 problematic last insns. Test for TYPE_CALL rather than CALL_P.
aa016ff7
UB
6292 Remove special case testing for last insn of inner loops. Don't fail
6293 if the loop ends with a jump, emit an extra nop instead.
307e7eab 6294
c5d96723
BS
6295 * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
6296 DREGS rather than comparing directly. Remove code that tries to
6297 account for latencies.
6298
de0b4ad5
RG
62992009-04-29 Richard Guenther <rguenther@suse.de>
6300
6301 PR tree-optimization/39941
6302 * tree-ssa-pre.c (eliminate): Schedule update-ssa after
6303 eliminating an indirect call.
6304
3a19701a
RG
63052009-04-29 Richard Guenther <rguenther@suse.de>
6306
6307 * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
6308 parameter. Allow invariants as base if !require_lvalue.
6309 (verify_gimple_assign_single): Adjust.
6310
a0a31d1e
BS
63112009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
6312
6313 * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
6314 (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
aa016ff7
UB
6315 ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
6316 ssubhi3, ssaddhi3_parts and sssubhi3_parts.
a0a31d1e
BS
6317 (flag_mulhi3_parts): Produce a HImode output rather than trying to set
6318 a VEC_SELECT.
aa016ff7
UB
6319 * config/bfin/bfin.c (bfin_expand_builtin,
6320 case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
a0a31d1e 6321
795bd26a
RG
63222009-04-28 Richard Guenther <rguenther@suse.de>
6323
6324 * tree-vect-loop.c (get_initial_def_for_induction): Use
6325 correct types for pointer increment.
6326
04be270f
KG
63272009-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6328
6329 * toplev.c (print_version): Update GMP version string calculation.
6330
e1a3b85c
EB
63312009-04-28 Eric Botcazou <ebotcazou@adacore.com>
6332
6333 PR rtl-optimization/39938
6334 * resource.c (init_resource_info): Add call to df_analyze.
6335
8224166e
UB
63362009-04-28 Uros Bizjak <ubizjak@gmail.com>
6337
6338 * config/alpha/alpha.md (usegp): Cast the result of
6339 alpha_find_lo_sum_using_gp to enum attr_usegp.
6340 * config/alpha/alpha.c (override_options): Remove end-of-structure
6341 marker element from cpu_table. Use array size of cpu_table to handle
6342 -mcpu and -mtune options.
6343 (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
6344
c5f0fe67
JM
63452009-04-28 Joseph Myers <joseph@codesourcery.com>
6346
6347 * config.gcc (powerpc*-*-* | rs6000-*-*): Add
6348 rs6000/option-defaults.h to tm_file. Support cpu_32, cpu_64,
6349 tune_32 and tune_64.
6350 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
6351 support on PowerPC.
6352 * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
6353 * config/rs6000/option-defaults.h: ... here. New file.
6354 (OPT_64, OPT_32): Define.
6355 (MASK_64BIT): Define to 0 if not already defined.
6356 (OPT_ARCH64, OPT_ARCH32): Define.
6357 (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
6358 and tune_64.
6359
0c48a567
RR
63602009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6361
6362 * config/arm/arm.c (arm_override_options): Emit error on using
6363 fpa with AAPCS.
6364
f1028b9d
UB
63652009-04-28 Uros Bizjak <ubizjak@gmail.com>
6366
6367 PR rtl-optimization/39914
6368 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
6369 registers for allocnos created from user-defined variables only
6370 when not optimizing.
6371
e0dd989a
RG
63722009-04-28 Richard Guenther <rguenther@suse.de>
6373
6374 PR middle-end/39937
6375 * fold-const.c (fold_binary): Use distribute_real_division only
6376 on float types.
6377
9a17c91d
SE
63782009-04-28 Steve Ellcey <sje@cup.hp.com>
6379
6380 * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
6381 add hpux-stdint.h to tm_file.
6382 (hppa[12]*-*-hpux11*): Ditto.
6383 (ia64*-*-hpux*): Ditto.
6384 * config/hpux-stdint.h: New.
60839f5d 6385 * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
9a17c91d 6386 __STDC_EXT__ for all compiles.
60839f5d
EB
6387 * config/pa/pa-hpux.h: Ditto.
6388 * config/pa/pa-hpux10.h: Ditto.
6389 * config/pa/pa-hpux11.h: Ditto.
9a17c91d 6390
af04e659
CM
63912009-04-28 Catherine Moore <clm@codesourcery.com>
6392
6393 * debug.h (set_name): Add comment.
6394
04ef80ce
AP
63952009-04-28 Andrew Pinski <pinskia@gmail.com>
6396
6397 PR target/39929
6398 * config/darwin.c (machopic_gen_offset): Check
6399 currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
6400 * config/arm/arm.c (require_pic_register): Likewise.
6401
65ad77af
PB
64022009-04-28 Paolo Bonzini <bonzini@gnu.org>
6403
8224166e
UB
6404 * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
6405 m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
6406 m32c_promote_prototypes): Delete.
65ad77af 6407
1b15a008
MM
64082009-04-28 Michael Matz <matz@suse.de>
6409
6410 PR middle-end/39922
6411 * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
6412 constants.
6413
7569a6cc
RG
64142009-04-28 Richard Guenther <rguenther@suse.de>
6415
f1028b9d 6416 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
7569a6cc 6417
ead204d9
RR
64182009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6419
6420 * config/arm/arm-cores.def: Add support for arm1156t2f-s.
6421 * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
6422 * config/arm/arm-tune.md: Regenerate.
6423
f2c45f08 64242009-04-28 Alexander Monakov <amonakov@ispras.ru>
60839f5d 6425
f2c45f08
AM
6426 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
6427 block if there are complex incoming edges.
6428 (sel_merge_blocks): Remove useless assert.
6429 (sel_redirect_edge_and_branch): Check that edge was redirected.
6430 * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
6431 (sel_find_rgns): Delete declaration.
6432 * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
6433 the region when it is not a preheader.
6434
7a00d767
UB
64352009-04-28 Uros Bizjak <ubizjak@gmail.com>
6436
6437 PR c/39323
6438 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
6439
448ee662
RG
64402009-04-28 Richard Guenther <rguenther@suse.de>
6441
6442 * tree.h (SSA_NAME_VALUE): Remove.
6443 (struct tree_ssa_name): Remove value_handle member.
6444 * tree-vrp.c (execute_vrp): Initialize/free the value-handle
6445 array for jump threading.
6446 * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
6447 SSA_NAME_VALUEs.
6448 * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
6449 * tree-flow.h (threadedge_initialize_values): Declare.
6450 (threadedge_finalize_values): Likewise.
6451 * tree-ssa-threadedge.c (ssa_name_values): New global variable.
6452 (SSA_NAME_VALUE): Define.
6453 (threadedge_initialize_values): New function.
6454 (threadedge_finalize_values): Likewise.
6455 * tree-ssa-dom.c (ssa_name_values): New global variable.
6456 (SSA_NAME_VALUE): Define.
f1028b9d 6457 (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
448ee662 6458
8644a673
IR
64592009-04-28 Ira Rosen <irar@il.ibm.com>
6460
6461 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
6462 Use REPORT_VECTORIZED_LOCATIONS instead
6463 REPORT_VECTORIZED_LOOPS.
6464 * tree-vectorizer.c (vect_verbosity_level): Make static.
6465 (vect_loop_location): Rename to vect_location.
6466 (vect_set_verbosity_level): Update comment.
6467 (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
6468 and vect_location.
6469 (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
6470 and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
6471 instead REPORT_UNVECTORIZED_LOOPS.
fbdf817d
UB
6472 * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
6473 and vect_loop_def to vect_external_def and vect_internal_def.
8644a673 6474 (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
7a00d767 6475 and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and
8644a673
IR
6476 REPORT_UNVECTORIZED_LOCATIONS.
6477 (enum vect_relevant): Update comment. Rename vect_unused_in_loop
6478 and vect_used_in_loop and to vect_unused_in_scope and
6479 vect_used_in_scope.
6480 (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
6481 (vect_verbosity_level): Remove declaration.
6482 (vect_analyze_operations): Likewise.
6483 (vect_analyze_stmt): Declare.
6484 * tree-vect-loop.c (vect_determine_vectorization_factor): Use
6485 REPORT_UNVECTORIZED_LOCATIONS.
6486 (vect_get_loop_niters): Fix indentation.
6487 (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
6488 (vect_analyze_loop_operations): New function.
6489 (vect_analyze_loop): Call vect_analyze_loop_operations instead of
6490 vect_analyze_operations.
6491 (vect_is_simple_reduction): Use new names.
6492 (vectorizable_live_operation, vect_transform_loop): Likewise.
fbdf817d
UB
6493 * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
6494 to specify whether the data references can be a part of interleaving
6495 chain.
8644a673
IR
6496 (vect_analyze_data_ref_dependence): Use new names.
6497 (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
6498 (vect_create_addr_base_for_vector_ref): Remove redundant code.
6499 * tree-vect-patterns.c (widened_name_p): Use new names.
6500 (vect_recog_dot_prod_pattern): Likewise.
6501 * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
6502 (process_use, vect_mark_stmts_to_be_vectorized,
6503 vect_model_simple_cost, vect_model_store_cost,
6504 vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
6505 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
6506 vectorizable_operation, vectorizable_type_demotion,
6507 vectorizable_type_promotion, vectorizable_store, vectorizable_load,
6508 vectorizable_condition): Likewise.
6509 (vect_analyze_operations): Split into vect_analyze_loop_operations
6510 and ...
6511 (vect_analyze_stmt): ... new function.
6512 (new_stmt_vec_info): Use new names.
6513 (vect_is_simple_use): Use new names and fix comment.
6514 * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
6515 (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
6516
b91322f2
UB
65172009-04-28 Uros Bizjak <ubizjak@gmail.com>
6518
6519 PR target/39911
6520 * config/i386/i386.c (print_operand) ['Z']: Handle floating point
6521 and integer modes for x87 operands. Do not ICE for unsupported size,
6522 generate error instead. Generate error for unsupported operand types.
6523 ['z']: Do not handle HImode memory operands specially. Warning
6524 for floating-point operands. Fallthru to 'Z' for unsupported operand
6525 types. Do not ICE for unsupported size, generate error instead.
6526 (output_387_binary_op): Use %Z to output operands.
6527 (output_fp_compare): Ditto.
6528 (output_387_reg_move): Ditto.
6529
b2ed71b6
BE
65302009-04-28 Ben Elliston <bje@au.ibm.com>
6531
6532 PR c++/35652
6533 Revert:
6534
6535 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6536
6537 * builtins.c (c_strlen): Do not warn here.
6538 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
6539 * c-common.c (pointer_int_sum): Take an explicit location.
6540 Warn about offsets out of bounds.
6541 * c-common.h (pointer_int_sum): Adjust declaration.
6542
81f40b79
ILT
65432009-04-27 Ian Lance Taylor <iant@google.com>
6544
6545 * collect2.c (is_ctor_dtor): Change type of ret field in struct
6546 names to symkind.
6547 * dce.c (run_fast_df_dce): Change type of old_flags to int.
6548 * df-core.c (df_set_flags): Change return type to int. Change
6549 type of old_flags to int.
6550 (df_clear_flags): Likewise.
6551 * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
6552 (df_get_conditional_uses): Likewise.
6553 * df.h (df_set_flags, df_clear_flags): Update declarations.
6554 * dwarf2out.c (struct indirect_string_node): Change type of form
6555 field to enum dwarf_form.
6556 (AT_string_form): Change return type to enum dwarf_form.
6557 * fixed-value.c (fixed_compare): Add cast to enum type.
6558 * fwprop.c (update_df): Change 0 to VOIDmode.
6559 * gensupport.c: Change 0 to UNKNOWN.
6560 * gimple.h (gimple_cond_code): Add cast to enum type.
6561 * haifa-sched.c (reemit_notes): Add cast to enum type.
6562 * hooks.c (hook_int_void_no_regs): Remove function.
6563 * hooks.h (hook_int_void_no_regs): Remove declaration.
6564 * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
7a00d767 6565 * predict.c (combine_predictions_for_insn): Add casts to enum type.
81f40b79
ILT
6566 * real.c (real_arithmetic): Add cast to enum type.
6567 (real_compare): Likewise.
6568 * target.h (struct gcc_target): Change return type of
6569 branch_target_register_class to enum reg_class.
6570 * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
6571 default_branch_target_register_class.
7a00d767 6572 * targhooks.c (default_branch_target_register_class): New function.
81f40b79 6573 * targhooks.h (default_branch_target_register_class): Declare.
7a00d767 6574 * tree-data-ref.c (print_direction_vector): Add cast to enum type.
81f40b79
ILT
6575 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
6576 cast to int.
6577 * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
6578 ERROR_MARK.
6579 * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
6580 vect_uninitialized_def. Change 0 to ERROR_MARK.
6581 * tree-vect-stmts.c (supportable_widening_operation): Don't
6582 initialize icode1 and icode2.
7a00d767 6583 * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
81f40b79
ILT
6584 * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
6585 and to STD_C89.
6586 (cmn_err_flag_specs): Change 0 to STD_C89.
6587 (cmn_err_char_table): Likewise.
6588 * config/arm/arm.c (get_arm_condition_code): Change type of code
6589 to enum arm_cond_code.
6590 (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
6591 (IWMMXT_BUILTIN2): Likewise.
6592 (neon_builtin_type_bits): Don't define typedef.
6593 (neon_builtin_datum): Change type of bits field to int.
6594 (arm_expand_neon_args): Add cast to enum type.
6595 * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
6596 TLS_MODEL_NONE.
6597 * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN. Add
6598 casts to enum type.
6599 * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
6600 MIPS_FP_COND_f.
6601 * config/mips/mips.md (jal_macro): Return enum constant.
6602 (single_insn): Likewise.
6603 * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
6604 CODE_FOR_nothing.
6605 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
6606 casts to enum type.
6607 * config/s390/s390.c (s390_tune_flags): Change type to int.
6608 (s390_arch_flags): Likewise.
7a00d767 6609 (s390_handle_arch_option): Change flags field of struct pta to int.
81f40b79
ILT
6610 * config/s390/s390.h (s390_tune_flags): Update declaration.
6611 (s390_arch_flags): Likewise.
6612 * config/sh/sh.c (prepare_move_operands): Compare
6613 tls_symbolic_operand result with enum constant.
6614 (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
6615 (sh_expand_prologue): Add cast to enum type.
6616 (sh_expand_epilogue): Likewise.
6617 (tls_symbolic_operand): Change return type to enum tls_model.
6618 (fpscr_set_from_mem): Add cast to enum type.
6619 (legitimize_pic_address): Compare tls_symbolic_operand result with
6620 enum constant.
6621 (sh_target_reg_class): Change return type to enum reg_class.
6622 * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
6623 PROCESSOR_xxx.
7a00d767
UB
6624 * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
6625 * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
81f40b79
ILT
6626 * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
6627 (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
6628 (delayed_branch, tls_call_delay): Likewise.
6629 (eligible_for_sibcall_delay): Likewise.
6630 (eligible_for_return_delay): Likewise.
6631 * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
6632 (spu_expand_builtin_1): Likewise.
6633
6634 * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
6635 for all types of conversions.
6636 (output_init_element): Issue -Wc++-compat warning if needed when
6637 initializing a bitfield with enum type.
6638 * c-parser.c (c_parser_expression): Set original_type to
6639 original_type of right hand operand of comman operator.
6640
e4ae5e77
RW
66412009-04-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6642
6643 * doc/c-tree.texi (Types, Functions, Expression trees): Fix
6644 grammar nits.
7a00d767 6645 * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
e4ae5e77
RW
6646 * doc/cpp.texi (Standard Predefined Macros)
6647 (Implementation-defined behavior): Likewise.
7a00d767 6648 * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
e4ae5e77
RW
6649 * doc/gimple.texi (GIMPLE Exception Handling)
6650 (@code{GIMPLE_ASSIGN}): Likewise.
7a00d767 6651 * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
e4ae5e77
RW
6652 * doc/invoke.texi (Warning Options, Optimize Options)
6653 (AVR Options, Darwin Options): Likewise.
6654 (Optimize Options): Reformulate -fwhole-program description.
6655 * doc/loop.texi (Lambda): Likewise.
6656 * doc/md.texi (Output Template, Define Constraints)
6657 (Standard Names, Insn Splitting): Likewise.
6658 * doc/options.texi (Option properties): Likewise.
6659 * doc/passes.texi (Tree-SSA passes): Likewise.
6660 * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
6661 * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
6662 (File Names and DBX): Likewise.
6663 * doc/trouble.texi (Incompatibilities): Likewise.
6664
1883802f 66652009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
6e37f6d4
TS
6666
6667 * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
6668 instruction is correct.
6669
1883802f 66702009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
5345cf68
TS
6671
6672 Allow non-constant arguments to conversion intrinsics.
6673 * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
6674 * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
6675 * spu.c (print_operand): Handle 'v' and 'w'.
6676 (exp2_immediate_p, spu_gen_exp2): Define.
6677 * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
6678 spu_convtf_1): Update parameter descriptions.
7a00d767 6679 * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
5345cf68
TS
6680 * constraints.md ('v', 'w'): New.
6681 * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
6682 Remove.
6683 (i2f, I2F): New define_mode_attr.
6684 (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
6685 floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
6686 fixuns_truncv4sfv4si2): Update to use mode attribute.
6687 (float<mode><i2f>2_mul, float<mode><i2f>2_div,
6688 fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
6689 floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
6690 patterns for combine.
6691
5f39ad47
SB
66922009-04-27 Steven Bosscher <steven@gcc.gnu.org>
6693
6694 * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
6695 (cprop, hoist, pre, store_motion): New debug counters.
6696 * tree-pass.h (pass_tracer): Move to list of gimple passes, it
6697 is not an RTL pass anymore.
6698 (pass_profiling): Remove extern decl for pass removed in 2005.
6699 (pass_gcse, pass_jump_bypass): Remove.
6700 * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
6701 to 0 for clean state.
6702 * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
6703 * cse.c (gate_handle_cse_after_global_opts,
6704 rest_of_handle_cse_after_global_opts): New functions.
6705 (pass_cse_after_global_opts): New pass, does local CSE.
6706 * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
6707 (TV_CPROP): New timevar.
6708 * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
6709 (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
6710 (gcse_main, recompute_all_luids): Remove.
6711 (compute_hash_table_work): Call max_reg_num instead of reading
6712 max_gcse_regno.
6713 (cprop_jump): Don't set run_jump_opt_after_gcse.
6714 (constprop_register): Always allow to alter jumps.
6715 (cprop_insn): Likewise.
6716 (do_local_cprop): Likewise.
6717 (local_cprop_pass): Likewise. Return non-zero if something changed.
6718 (cprop): Remove function, fold interesting bits into one_cprop_pass.
6719 (find_implicit_sets): Add note about missed optimization opportunity.
6720 (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
6721 pass_rtl_cprop execute function.
6722 Don't bother tracking the pass number, each pass gets its own dumpfile
6723 now anyway.
6724 Always allow to alter jumpsand bypass jumps.
6725 (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
6726 will just find no suitable set.
6727 (pre_edge_insert): Fix dumping, this function is for PRE only.
6728 (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
6729 pass_rtl_pre execute function.
6730 (hoist_code): Return non-zero if something changed. Keep track of
6731 substitutions and insertions for statistics gathering similar to PRE.
6732 (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
6733 called from the pass_rtl_hoist execute function. Show pass statistics.
6734 (compute_store_table): Use max_reg_num directly instead of using the
6735 formerly global max_gcse_regno.
6736 (build_store_vectors): Likewise.
6737 (replace_store_insn): Fix dumping.
6738 (store_motion): Rename to ...
6739 (one_store_motion_pass): ... this. Rewrite to be "the" STORE_MOTION
6740 pass, called from the pass_rtl_store_motion execute function. Keep
6741 track of substitutions and insertions for statistics gathering similar
6742 to PRE.
6743 (bypass_jumps): Remove, fold interesting bits into ...
6744 (one_cprop_pass): ... this. Rewrite to be "the" CPROP pass, called
6745 from the pass_rtl_cprop execute function.
6746 (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
6747 pass_jump_bypass): Remove.
6748 (gate_handle_gcse, rest_of_handle_gcse): Remove.
6749 (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
6750 (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
6751 (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
6752 (gate_rtl_store_motion, execute_rtl_store_motion,
6753 pass_rtl_store_motion): New.
6754 * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
6755 make it clear that -fcse-skip-blocks is a no-op for backward compat.
6756 * passes.c (init_optimization_passes): Remove pass_gcse and
6757 pass_jump_bypass. Schedule cprop, pre, hoist, cprop, store_motion,
6758 and cse_after_global_opts in place of pass_gcse. Schedule cprop
6759 instead of pass_jump_bypass.
6760
c685de4a
RG
67612009-04-27 Richard Guenther <rguenther@suse.de>
6762
6763 PR middle-end/39928
6764 * gimplify.c (gimplify_expr): If we are required to create
6765 a temporary make sure it ends up as register.
6766
72d41f29
L
67672009-04-27 H.J. Lu <hongjiu.lu@intel.com>
6768
6769 PR target/39903
6770 * config/i386/i386.c (construct_container): Don't call
6771 gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
6772 X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
6773
e97809c6
MM
67742009-04-27 Michael Matz <matz@suse.de>
6775
6776 * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
6777 (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
6778 * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
6779 (dump_replaceable_exprs): Take a bitmap.
6780 * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
6781 array.
6782 (expand_gimple_basic_block): Likewise.
6783 * tree-ssa-ter.c (struct temp_expr_table_d): Make
6784 replaceable_expressions member a bitmap.
6785 (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
6786 (mark_replaceable): Likewise.
6787 (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
6788 * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
6789
211ca15c
RG
67902009-04-27 Richard Guenther <rguenther@suse.de>
6791
6792 * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
6793 (verify_stmts): Dispatch to gimple/type verification code.
6794 * tree-inline.c (remap_gimple_op_r): Work around C++ FE
6795 issue with call argument types.
6796
fca5f3d1
MM
67972009-04-27 Michael Matz <matz@suse.de>
6798
6799 * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
6800 (init_update_ssa, delete_update_ssa, update_ssa): Remove references
6801 to above.
6802
a1fa3e79 68032009-04-27 Richard Sandiford <rdsandiford@googlemail.com>
8224166e 6804 Eric Botcazou <ebotcazou@adacore.com>
a1fa3e79
EB
6805
6806 * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
6807 a label's basic block.
6808 (mark_target_live_regs): Tidy and rework obsolete comments.
6809 Change back DF problem to LIVE. If a label starts a basic block,
6810 assume that all registers that used to be live then still are.
6811 (init_resource_info): If a label starts a basic block, set its
6812 BLOCK_FOR_INSN accordingly.
6813 (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
6814
33b223c0
RG
68152009-04-27 Richard Guenther <rguenther@suse.de>
6816
6817 * tree-flow-inline.h (function_ann): Remove.
6818 (get_function_ann): Likewise.
6819 * tree-dfa.c (create_function_ann): Remove.
6820 * tree-flow.h (struct static_var_ann_d): Remove.
6821 (struct function_ann_d): Likewise.
6822 (union tree_ann_d): Remove fdecl member.
6823 (function_ann_t): Remove.
6824 (function_ann, get_function_ann, create_function_ann): Remove
6825 declarations.
6826
e3136fa2
UB
68272009-04-27 Uros Bizjak <ubizjak@gmail.com>
6828
6829 * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
6830
f87c9042
JH
68312009-04-27 Jan Hubicka <jh@suse.cz>
6832
6833 * ipa-pure-const.c (struct funct_state_d): New fields
6834 state_previously_known, looping_previously_known; remove
6835 state_set_in_source.
6836 (analyze_function): Use new fields.
6837 (propagate): Avoid assumption that state_set_in_source imply
6838 nonlooping.
6839
6840 * tree-ssa-loop-niter.c (finite_loop_p): New function.
6841 * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
6842 * cfgloop.h (finite_loop_p): Declare.
6843
33abd718
MM
68442009-04-26 Michael Matz <matz@suse.de>
6845
e3136fa2 6846 * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
33abd718 6847
ddc34084
MM
68482009-04-26 Michael Matz <matz@suse.de>
6849
6850 * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
6851 pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
6852 * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
6853 pass_mark_used_blocks): Remove.
6854 * tree-optimize.c (pass_free_datastructures,
6855 execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
6856 * passes.c (init_optimization_passes): Don't call
6857 pass_mark_used_blocks, remove dead code.
6858
1fec7ed4
L
68592009-04-26 H.J. Lu <hongjiu.lu@intel.com>
6860
6861 * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
6862 * tree-ssa-live.h (register_ssa_partition): Likewise.
6863
4e3825db
MM
68642009-04-26 Michael Matz <matz@suse.de>
6865
6866 Expand from SSA.
6867 * builtins.c (fold_builtin_next_arg): Handle SSA names.
6868 * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
6869 * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
6870 SSA names.
6871 (compare_pairs): Swap cost comparison.
6872 (coalesce_ssa_name): Don't use change_partition_var.
6873 * tree-nrv.c (struct nrv_data): Add modified member.
6874 (finalize_nrv_r): Set it.
6875 (tree_nrv): Use it to update statements.
6876 (pass_nrv): Require PROP_ssa.
6877 * tree-mudflap.c (mf_decl_cache_locals,
6878 mf_build_check_statement_for): Use make_rename_temp.
6879 (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
6880 * alias.c (find_base_decl): Handle SSA names.
6881 * emit-rtl (set_reg_attrs_for_parm): Make non-static.
6882 (component_ref_for_mem_expr): Don't leak SSA names into RTL.
6883 * rtl.h (set_reg_attrs_for_parm): Declare.
6884 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
6885 to "optimized", remove unused locals at finish.
6886 (execute_free_datastructures): Make global, call
6887 delete_tree_cfg_annotations.
6888 (execute_free_cfg_annotations): Don't call
6889 delete_tree_cfg_annotations.
6890
6891 * ssaexpand.h: New file.
6892 * expr.c (toplevel): Include ssaexpand.h.
e3136fa2 6893 (expand_assignment): Handle SSA names the same as register variables.
4e3825db
MM
6894 (expand_expr_real_1): Expand SSA names.
6895 * cfgexpand.c (toplevel): Include ssaexpand.h.
6896 (SA): New global variable.
6897 (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
6898 (SSAVAR): New macro.
6899 (set_rtl): New helper function.
6900 (add_stack_var): Deal with SSA names, use set_rtl.
6901 (expand_one_stack_var_at): Likewise.
6902 (expand_one_stack_var): Deal with SSA names.
6903 (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
6904 before unique numbers.
6905 (expand_stack_vars): Use set_rtl.
6906 (expand_one_var): Accept SSA names, add asserts for them, feed them
6907 to above subroutines.
6908 (expand_used_vars): Expand all partitions (without default defs),
6909 then only the local decls (ignoring those expanded already).
6910 (expand_gimple_cond): Remove edges when jumpif() expands an
6911 unconditional jump.
6912 (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
6913 or remove abnormal edges. Ignore insns setting the LHS of a TERed
6914 SSA name.
6915 (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
6916 members of SA; deal with PARM_DECL partitions here; expand
6917 all PHI nodes, free tree datastructures and SA. Commit instructions
6918 on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
6919 (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
6920 info and statements at start, collect garbage at finish.
6921 * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
6922 (VAR_ANN_PARTITION) Remove.
6923 (change_partition_var): Don't declare.
6924 (partition_to_var): Always return SSA names.
6925 (var_to_partition): Only accept SSA names.
6926 (register_ssa_partition): Only check argument.
6927 * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
6928 member.
6929 (delete_var_map): Don't free it.
6930 (var_union): Only accept SSA names, simplify.
6931 (partition_view_init): Mark only useful SSA names as used.
6932 (partition_view_fini): Only deal with SSA names.
6933 (change_partition_var): Remove.
6934 (dump_var_map): Use ssa_name instead of partition_to_var member.
6935 * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
6936 basic blocks.
6937 * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
6938 (struct _elim_graph): New member const_dests; nodes member vector of
6939 ints.
6940 (set_location_for_edge): New static helper.
6941 (create_temp): Remove.
6942 (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
e3136fa2 6943 insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
4e3825db
MM
6944 (new_elim_graph): Allocate const_dests member.
6945 (clean_elim_graph): Truncate const_dests member.
6946 (delete_elim_graph): Free const_dests member.
6947 (elim_graph_size): Adapt to new type of nodes member.
6948 (elim_graph_add_node): Likewise.
6949 (eliminate_name): Likewise.
6950 (eliminate_build): Don't take basic block argument, deal only with
6951 partition numbers, not variables.
6952 (get_temp_reg): New static helper.
6953 (elim_create): Use it, deal with RTL temporaries instead of trees.
6954 (eliminate_phi): Adjust all calls to new signature.
6955 (assign_vars, replace_use_variable, replace_def_variable): Remove.
6956 (rewrite_trees): Only do checking.
6957 (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
6958 (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
6959 init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
6960 contains_tree_r, MAX_STMTS_IN_LATCH,
6961 process_single_block_loop_latch, analyze_edges_for_bb,
6962 perform_edge_inserts): Remove.
6963 (expand_phi_nodes): New global function.
6964 (remove_ssa_form): Take ssaexpand parameter. Don't call removed
6965 functions, initialize new parameter, remember partitions having a
6966 default def.
6967 (finish_out_of_ssa): New global function.
6968 (rewrite_out_of_ssa): Make global. Adjust call to remove_ssa_form,
6969 don't reset in_ssa_p here, don't disable TER when mudflap.
6970 (pass_del_ssa): Remove.
6971 * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
6972 partition members.
6973 (execute_free_datastructures): Declare.
6974 * Makefile.in (SSAEXPAND_H): New variable.
6975 (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
6976 * basic-block.h (commit_one_edge_insertion): Declare.
6977 * passes.c (init_optimization_passes): Move pass_nrv and
6978 pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
6979 pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
6980 * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
6981 (redirect_branch_edge): Deal with super block when expanding, split
6982 out jump patching itself into ...
6983 (patch_jump_insn): ... here, new static helper.
6984
17c665a9
MM
69852009-04-26 Michael Matz <matz@suse.de>
6986
6987 * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
6988 beyond num_ssa_names.
6989 * tree-ssa-ter.c (free_temp_expr_table): Likewise.
6990 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
6991
92061771
JJ
69922009-04-26 Jakub Jelinek <jakub@redhat.com>
6993
ce372372
JJ
6994 PR inline-asm/39543
6995 * fwprop.c (forward_propagate_asm): New function.
6996 (forward_propagate_and_simplify): Propagate also into __asm, if it
6997 doesn't increase the number of referenced registers.
6998
92061771
JJ
6999 PR c/39889
7000 * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
7001
70022009-04-26 Jakub Jelinek <jakub@redhat.com>
77f2a970
JJ
7003
7004 * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
7005 note_nonlocal_vla_type for nonlocal VLAs.
7006 (note_nonlocal_vla_type, note_nonlocal_block_vlas,
7007 contains_remapped_vars, remap_vla_decls): New functions.
7008 (convert_nonlocal_reference_stmt): If not optimizing, call
7009 note_nonlocal_block_vlas on GIMPLE_BIND block vars.
7010 (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
7011 if it wasn't found in var_map.
7012 (finalize_nesting_tree_1): Call remap_vla_decls. If outermost
7013 GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
7014 to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
7015 declare_vars.
7016 * gimplify.c (nonlocal_vlas): New variable.
7017 (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
7018 referenced VLAs.
7019 (gimplify_body): Create and destroy nonlocal_vlas.
a9548ddf 7020
4561e242
JJ
7021 * dwarf2out.c (loc_descr_plus_const): New function.
7022 (build_cfa_aligned_loc, tls_mem_loc_descriptor,
7023 mem_loc_descriptor, loc_descriptor_from_tree_1,
7024 descr_info_loc, gen_variable_die): Use it.
7025
a9548ddf
JJ
7026 * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
7027 !TREE_STATIC VAR_DECLs.
7028 * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
7029 DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
7030 (gen_variable_die): Likewise. Don't look at TREE_PRIVATE if
7031 DECL_BY_REFERENCE is valid.
7032 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
7033 for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
7034 * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
7035 Copy DECL_BY_REFERENCE.
7036 (struct nesting_copy_body_data): New type.
7037 (nesting_copy_decl): New function.
7038 (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
7039 if they have variable length.
7040
10555d08
MM
70412009-04-26 Michael Matz <matz@suse.de>
7042
7043 * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
7044 mark new temporaries for renaming.
7045
e11187cc
JM
70462009-04-26 Joseph Myers <joseph@codesourcery.com>
7047
7048 PR c/39581
7049 * c-decl.c (global_bindings_p): Return negative value.
7050 (c_variable_size): New. Based on variable_size from
7051 stor-layout.c.
7052 (grokdeclarator): Call c_variable_size not variable_size.
7053
f6a51d31
UB
70542009-04-26 Uros Bizjak <ubizjak@gmail.com>
7055
7056 * config/i386/i386.c (print_operand) ['z']: Fix typo.
7057
4b97723d
KT
70582009-04-26 Kai Tietz <kai.tietz@onevision.com>
7059
7060 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
7061 Redefine it to just use mingw/include.
7062 (ASM_SPEC): Rules for -m32 and -m64.
7063 (LINK_SPEC): Use Likewise.
7064 (SPEC_32): New define.
7065 (SPEC_64): Likewise.
7066 (SUB_LINK_SPEC): Likewise.
7067 (MULTILIB_DEFAULTS): New define.
7068 * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
7069 Add multilib options.
7070 (MULTILIB_DIRNAMES): Likewise.
7071 (MULTILIB_OSDIRNAMES): Likewise.
7072 (LIBGCC): Likewise.
7073 (INSTALL_LIBGCC): Likewise.
7074
991d6621
JM
70752009-04-26 Joseph Myers <joseph@codesourcery.com>
7076
7077 PR c/39556
7078 * c-tree.h (enum c_inline_static_type): New.
7079 (record_inline_static): Declare.
7080 * c-decl.c (struct c_inline_static, c_inline_statics,
7081 record_inline_static, check_inline_statics): New.
7082 (pop_file_scope): Call check_inline_statics.
7083 (start_decl): Call record_inline_static instead of pedwarning
7084 directly for static in inline function.
7085 * c-typeck.c (build_external_ref): Call record_inline_static
7086 instead of pedwarning directly for static referenced in inline
7087 function.
7088
4a81774c
SB
70892009-04-26 Steven Bosscher <steven@gcc.gnu.org>
7090
7091 * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
7092 not new but only being rescanned.
7093 * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
7094 reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
7095 alloc_reg_set_mem, free_reg_set_mem, record_one_set,
7096 record_set_info, compute_set, grealloc): Remove.
7097 (recompute_all_luids): New function.
7098 (gcse_main): Don't compute sets, and don't do related memory
7099 allocations/free-ing. If something changed before the end of the
7100 pass, update LUIDs using recompute_all_luids.
7101 (alloc_gcse_mem): Don't compute LUIDs. Don't allocate reg_set memory.
7102 (free_gcse_mem): Don't free it either.
7103 (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
7104 Use the df insn LUIDs.
7105 (load_killed_in_block): Likewise.
7106 (compute_hash_table_work): Don't compute reg_set_in_block.
7107 (compute_transp): Use DF_REG_DEF_CHAINs.
7108 (local_cprop_pass): Don't use compute_sets and related functions.
7109 (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
7110 Use get_max_uid() instead of max_cuid.
7111 (insert_insn_end_basic_block, pre_insert_copy_insn,
7112 update_ld_motion_stores): Don't try to
7113 keep reg_set tables up to date.
7114 (pre_insert_copies): Use df insn LUIDs.
7115 (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
7116 (reg_set_info): Don't use extra bitmap argument.
7117 (compute_store_table): Don't compute reg_set_in_block. Use DF scan
7118 information to compute regs_set_in_block.
7119 (free_store_memory, store_motion): Don't nullify reg_set_in_block.
7120 (bypass_jumps): Don't use compute_sets and friends.
7121
e8f99a9d
RW
71222009-04-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7123
7124 PR testsuite/39710
7125 * opts.c (undocumented_msg): Do not leave blank even with
7126 ENABLE_CHECKING.
7127
6895bac8
JM
71282009-04-25 Joseph Myers <joseph@codesourcery.com>
7129
7130 * c-decl.c (build_enumerator): Allow values folding to integer
7131 constants but not integer constant expressions with a pedwarn if
7132 pedantic.
7133
24070fcb
JM
71342009-04-25 Joseph Myers <joseph@codesourcery.com>
7135
7136 PR c/39582
7137 * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
7138 with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
7139 type is an integer constant.
7140
d6d89aa1
UB
71412009-04-25 Uros Bizjak <ubizjak@gmail.com>
7142
7143 PR target/39897
7144 * config/i386/i386.c (print_operand) ['z']: Revert handling of
7145 HImode operands.
7146
92f6fd0b
JM
71472009-04-25 Joseph Myers <joseph@codesourcery.com>
7148
7149 PR c/39564
7150 * c-decl.c (grokdeclarator): Diagnose declarations of functions
7151 with variably modified return type and no storage class
7152 specifiers, except for the case of nested functions. Distinguish
7153 extern declarations of functions with variably modified return
7154 types from those of objects with variably modified types.
7155
a3710436
JH
71562009-04-25 Jan Hubicka <jh@suse.cz>
7157
7158 * tree.c (list_equal_p): New function.
7159 * tree.h (list_equal_p): Declare.
7160 * coretypes.h (edge_def, edge, const_edge, basic_block_def
7161 basic_block_def, basic_block, const_basic_block): New.
7162 * tree-eh.c (make_eh_edge): EH edges are not abnormal.
7163 (redirect_eh_edge): New function.
7164 (make_eh_edge_update_phi): EH edges are not abnormal.
7165 * except.c: Include tree-flow.h.
7166 (list_match): New function.
7167 (eh_region_replaceable_by_p): New function.
7168 (replace_region): New function.
7169 (hash_type_list): New function.
7170 (hash_eh_region): New function.
7171 (eh_regions_equal_p): New function.
7172 (merge_peers): New function.
7173 (remove_unreachable_regions): Verify EH tree when checking;
7174 merge peers.
7175 (copy_eh_region_1): New function.
7176 (copy_eh_region): New function.
7177 (push_reachable_handler): New function.
7178 (build_post_landing_pads, dw2_build_landing_pads): Be ready for
7179 regions without label but with live RESX.
7180 * except.h (redirect_eh_edge_to_label): New.
7181 * tree-flow.h (redirect_eh_edge): New.
7182 * coretypes.h (edge_def, edge, const_edge, basic_block_def
7183 basic_block_def, basic_block, const_basic_block): Remove.
7184 * Makefile.in (except.o): Add dependency on tree-flow.h
7185 * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
7186 * basic-block.h (edge, const_edge, basic_block, const_basic_block):
7187 Remove.
7188
3764d512
EB
71892009-04-25 Eric Botcazou <ebotcazou@adacore.com>
7190
7191 PR bootstrap/39645
7192 * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
7193 on the destination of memcpy.
7194
1c62e8f2
PB
71952009-04-25 Paolo Bonzini <bonzini@gnu.org>
7196
7197 * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
7198 REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
7199 REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
7200
496a4ef5
JH
72012009-04-25 Jan Hubicka <jh@suse.cz>
7202
7203 * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
7204 (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
7205 to be reached by different label than left.
7206 (update_eh_edges): Update comment; remove edge_to_remove if possible
7207 and return true if suceeded.
7208 (cleanup_empty_eh): Accept sharing map; handle shared regions.
7209 (cleanup_eh): Compute sharing map.
7210 * except.c (remove_eh_handler_and_replace): Add argument if we should
7211 update regions.
7212 (remove_unreachable_regions): Update for label sharing.
7213 (label_to_region_map): Likewise.
7214 (get_next_region_sharing_label): New function.
7215 (remove_eh_handler_and_replace): Add update_catch_try parameter; update
7216 prev_try pointers.
7217 (remove_eh_handler): Update.
7218 (remove_eh_region_and_replace_by_outer_of): New function.
7219 * except.h (struct eh_region): Add next_region_sharing_label.
7220 (remove_eh_region_and_replace_by_outer_of,
7221 get_next_region_sharing_label): Declare.
7222 * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
7223
72242009-04-25 Jan Hubicka <jh@suse.cz>
7225
7226 * tree-cfg.c (split_critical_edges): Split also edges where we can't
7227 insert code even if they are not critical.
7228
72292009-04-25 Jan Hubicka <jh@suse.cz>
7230
7231 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
7232 (gimple_can_remove_branch_p): EH edges won't remove branch by
7233 redirection.
7234 * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
7235 updating of non-abnormal EH edges.
7236 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
7237 (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
7238 (split_critical_edges): Split also edges where emitting code on them
7239 will lead to splitting later.
7240
a3a5e3d1
UB
72412009-04-25 Uros Bizjak <ubizjak@gmail.com>
7242 H.J. Lu <hongjiu.lu@intel.com>
7243
7244 PR target/39590
7245 * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
7246 the configured assembler supports fildq and fistpq mnemonics.
7247 (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
7248 * configure: Regenerated.
7249 * config.in: Ditto.
7250
7251 * config/i386/i386.c (print_operand): Handle 'Z'.
7252 ['z']: Remove handling of special fild/fist suffixes.
7253 (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
7254 * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
7255 suffix of fild insn.
7256 (*floatsi<mode>2_vector_mixed): Ditto.
7257 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
7258 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
7259 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
7260 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
7261 * config/i386/gas.h (GAS_MNEMONICS): Remove.
7262
23750d7f
BE
72632009-04-25 Ben Elliston <bje@au.ibm.com>
7264
7265 * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
7266 the source of a set operation.
7267
e6ff3083
AS
72682009-04-25 Anatoly Sokolov <aesok@post.ru>
7269
7270 * target.h (struct gcc_target): Add case_values_threshold field.
7271 * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
7272 (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
7273 * targhooks.c (default_case_values_threshold): New function.
7274 * targhooks.h (default_case_values_threshold): Declare function.
7275 * stmt.c (expand_case): Use case_values_threshold target hook.
7276 * expr.h (case_values_threshold): Remove declartation.
7277 * expr.c (case_values_threshold): Remove function.
7278 * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
7279
7280 * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
7281 * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
7282 (avr_case_values_threshold): Declare as static.
7283 * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
7284
7285 * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
7286 * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
7287 (mn10300_case_values_threshold): New function.
7288
569c72fc
L
72892009-04-24 H.J. Lu <hongjiu.lu@intel.com>
7290
7291 * ira.c (setup_cover_and_important_classes): Add enum cast.
7292
ff3cb468
VM
72932009-04-24 Vladimir Makarov <vmakarov@redhat.com>
7294
7295 * genpreds.c (write_enum_constraint_num): Output definition of
7296 CONSTRAINT_NUM_DEFINED_P macro.
7297 * ira.c (setup_cover_and_important_classes): Use
7298 CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
7299
4f7be849
DD
73002009-04-24 DJ Delorie <dj@redhat.com>
7301
7302 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
7303 __SH2A_SINGLE_ONLY__ also.
7304
735b94a7
SE
73052009-04-24 Steve Ellcey <sje@cup.hp.com>
7306
7307 * config/ia64/ia64.md (movfs_internal): Allow flt constants.
7308 (movdf_internal): Ditto.
7309 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
7310 SFmode and DFmode constants.
7311 (ia64_print_operand): Add 'G' format for printing
7312 floating point constants.
7313
77a30264
RG
73142009-04-24 Richard Guenther <rguenther@suse.de>
7315
7316 * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
7317 from unsigned additions.
7318
2b6da65c
JM
73192009-04-24 Joseph Myers <joseph@codesourcery.com>
7320
7321 * c-typeck.c (set_init_index): Allow array designators that are
7322 not integer constant expressions with a pedwarn if pedantic.
7323
f5a17c43
BS
73242009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
7325
7326 * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
7327 zero if no overlap in nonzero bits between the operands.
7328
32e8bb8e
ILT
73292009-04-24 Ian Lance Taylor <iant@google.com>
7330
7331 * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
7332 (record_dead_and_set_regs): Likewise.
7333 * df.h (struct df_mw_hardreg): Change flags field to int.
7334 (struct df_base_ref): Likewise.
7335 (struct df): Change changeable_flags field to int.
7336 * df-scan.c (df_defs_record): Change clobber_flags to int.
7337 * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
7338 constants rather than #define macros.
7339 (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
7340 (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
7341 (enum dwarf_calling_convention): Likewise.
7342 (enum dwarf_line_number_x_ops): Likewise.
7343 (enum dwarf_call_frame_info): Likewise.
7344 (enum dwarf_source_language): Likewise.
7345 * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
7346 (add_calling_convention_attribute): Likewise.
a3a5e3d1
UB
7347 * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
7348 (combine_comparisons): Change compcode to int. Add cast to enum type.
32e8bb8e
ILT
7349 * genrecog.c (maybe_both_true_2): Change c to int.
7350 (write_switch): Likewise. Add cast to enum type.
7351 * gimplify.c (gimplify_omp_for): Handle return values from
7352 gimplify_expr using MIN rather than bitwise or.
7353 (gimplify_expr): Add cast to enum type.
7354 * ipa-prop.c (update_jump_functions_after_inlining): Change
7355 IPA_BOTTOM to IPA_JF_UNKNOWN.
a3a5e3d1
UB
7356 * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
7357 Add casts to enum type.
32e8bb8e
ILT
7358 (setup_cover_and_important_classes): Change cl to int. Add casts
7359 to enum type.
7360 (setup_class_translate): Change cl and mode to int.
7361 (ira_init_once): Change mode to int.
7362 (free_register_move_costs): Likewise.
7363 (setup_prohibited_mode_move_regs): Add casts to enum type.
7364 * langhooks.c (add_builtin_function_common): Rework assertion that
7365 value fits bitfield.
7366 * mcf.c (add_fixup_edge): Change type parameter to edge_type.
7367 * omega.c (omega_do_elimination): Avoid math on enum types.
7368 * optabs.c (expand_vec_shift_expr): Remove casts to int.
7369 * opts.c (set_debug_level): Change 2 to enum constant. Use new
7370 int local to handle integral_argment value.
7371 * regmove.c (try_auto_increment): Change PUT_MODE to
7372 PUT_REG_NOTE_KIND.
7373 * reload.c (push_secondary_reload): Add casts to enum type.
7374 (secondary_reload_class, find_valid_class): Likewise.
7375 * reload1.c (emit_input_reload_insns): Likewise.
7376 * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
7377 * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
7378 * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
7379 constant.
7380 * tree.c (build_common_builtin_nodes): Add casts to enum type.
7381 * tree-complex.c (complex_lattice_t): Typedef to int rather than
7382 enum type.
7383 (expand_complex_libcall): Add casts to enum type.
7384 * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
7385 * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
7386 with ERROR_MARK, not NUM_TREE_CODES.
7387 (vect_create_epilog_for_reduction): Likewise.
7388 (vectorizable_reduction): Don't initialize epiloc_reduc_code.
a3a5e3d1 7389 When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
32e8bb8e
ILT
7390 * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
7391 enum machine_mode.
7392 * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
7393 vect_unused_in_loop. Change 0 to loop_vect.
a3a5e3d1 7394 * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
32e8bb8e
ILT
7395 * var-tracking.c (get_init_value): Change return type to enum
7396 var_init_status.
7397 * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
7398 * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
7399 arm_fp_model.
7400 (arm_override_options): Add casts to enum type.
7401 (arm_emit_tls_decoration): Likewise.
7402 * config/i386/i386.c (ix86_function_specific_restore): Add casts
7403 to enum type.
7404 * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
7405 * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
7406 * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
7407 enum type.
7408 * config/s390/s390.c (code_for_builtin_64): Change to array of
7409 enum insn_code.
7410 (code_for_builtin_31): Likewise.
7411 (s390_expand_builtin): Change code_for_builtin to enum insn_code
7412 const *.
7413 * config/sparc/sparc.c (sparc_override_options): Change value
7414 field in struct code_model to enum cmodel. In initializer change
7415 0 to NULL and add cast to enum type.
7416
7417 * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
7418 Change all callers. Issue a -Wc++-compat warning using
7419 lhs_origtype if necessary.
7420 (convert_for_assignment): Issue -Wc++-compat warnings about
7421 invalid conversions to enum type on assignment.
7422 * c-common.h (build_modify_expr): Update declaration.
7423
ac4fc08a
NC
74242009-04-24 Nick Clifton <nickc@redhat.com>
7425
7426 * config/iq2000/iq2000.c (function_arg): Handle TImode values.
7427 (function_arg_advance): Likewise.
7428 * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
7429 5th alternative.
7430
f22e891a
AK
74312009-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
7432
7433 * config/s390/constraints.md ('I', 'J'): Fix condition.
7434
ad58aabe
DN
74352009-04-24 Diego Novillo <dnovillo@google.com>
7436
7437 * gengtype-parse.c (parse_error): Add newline after message.
7438
879a4a01
L
74392009-04-24 H.J. Lu <hongjiu.lu@intel.com>
7440
7441 * config/i386/sse.md (avxmodesuffixs): Removed.
7442 (*avx_pinsr<avxmodesuffixs>): Renamed to ...
7443 (*avx_pinsr<ssevecsize>): This.
7444
f63426af
BS
74452009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
7446
7447 * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
7448 follow chains of regs with a single definition, and allow expressions
7449 that are function_invariant_p.
ce72fe6c 7450 (simple_rhs_p): Allow expressions that are function_invariant_p.
f63426af 7451
30349c74
PB
74522009-04-24 Paolo Bonzini <bonzini@gnu.org>
7453
7454 PR middle-end/39867
7455 * fold-const.c (fold_cond_expr_with_comparison): When folding
7456 > and >= to MAX, make sure the MAX uses the same type as the
7457 comparison's operands.
7458
8d8256c1
NC
74592009-04-24 Nick Clifton <nickc@redhat.com>
7460
7461 * config/frv/frv.c (frv_frame_access): Do not use reg+reg
7462 addressing for DImode accesses.
7463 (frv_print_operand_address): Handle PLUS case.
a3a5e3d1 7464 * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
8d8256c1 7465
6216f94e
JJ
74662009-04-24 Jakub Jelinek <jakub@redhat.com>
7467
7468 PR rtl-optimization/39794
7469 * alias.c (canon_true_dependence): Add x_addr argument.
7470 * rtl.h (canon_true_dependence): Adjust prototype.
7471 * cse.c (check_dependence): Adjust canon_true_dependence callers.
7472 * cselib.c (cselib_invalidate_mem): Likewise.
7473 * gcse.c (compute_transp): Likewise.
7474 * dse.c (scan_reads_nospill): Likewise.
7475 (record_store, check_mem_read_rtx): Likewise. For non-const-or-frame
7476 addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
7477 canon_base_addr of the group, plus optional offset.
7478 (struct group_info): Rename canon_base_mem to
7479 canon_base_addr.
7480 (get_group_info): Set canon_base_addr to canon_rtx of base, not
7481 canon_rtx of base_mem.
7482
6de7a512
PB
74832009-04-23 Paolo Bonzini <bonzini@gnu.org>
7484
7485 * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
7486 Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
7487
4a3a2376
UW
74882009-04-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7489
7490 * config/spu/spu-builtins.h: Delete file.
7491
7492 * config/spu/spu.h (enum spu_builtin_type): Move here from
7493 spu-builtins.h.
7494 (struct spu_builtin_description): Likewise. Add GTY marker.
7495 Do not use enum spu_function_code or enum insn_code.
7496 (spu_builtins): Add extern declaration.
7497
7498 * config/spu/spu.c: Do not include "spu-builtins.h".
7499 (enum spu_function_code, enum spu_builtin_type_index,
7500 V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
7501 V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
7502 unsigned_V8HI_type_node, unsigned_V4SI_type_node,
7503 unsigned_V2DI_type_node): Move here from spu-builtins.h.
7504 (spu_builtin_types): Make static. Add GTY marker.
7505 (spu_builtins): Add extern declaration with GTY marker.
7506 Include "gt-spu.h".
7507
7508 * config/spu/spu-c.c: Do not include "spu-builtins.h".
7509 (spu_resolve_overloaded_builtin): Do not use spu_function_code.
7510 Check programmatically whether all parameters are scalar.
7511
7512 * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
7513
bbaba73f
EB
75142009-04-23 Eric Botcazou <ebotcazou@adacore.com>
7515
7516 * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
7517 assignment from the constructor either if the target is volatile.
7518
ee93c1c6
DJ
75192009-04-23 Daniel Jacobowitz <dan@codesourcery.com>
7520
7521 * config/arm/arm.md (insv): Do not share operands[0].
7522
b2f21330
NS
75232009-04-23 Nathan Sidwell <nathan@codesourcery.com>
7524
7525 * config/vxlib-tls.c (active_tls_threads): Delete.
7526 (delete_hook_installed): New.
7527 (tls_delete_hook): Don't delete the delete hook.
7528 (tls_destructor): Delete it here.
7529 (__gthread_set_specific): Adjust installing the delete hook.
7530 (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
7531 __gthread_leave_tsd_dtor_context.
7532
4782dfa7
RAE
75332009-04-23 Rafael Avila de Espindola <espindola@google.com>
7534
7535 * c-format.c (gcc_tdiag_char_table): Add support for %E.
7536
bf758008
UB
75372009-04-23 Uros Bizjak <ubizjak@gmail.com>
7538
7539 * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
7540 enum type.
7541 (alpha_rtx_costs): Ditto.
7542 (emit_unlikely_jump): Use add_reg_note.
7543 (emit_frame_store_1): Ditto.
7544 (alpha_expand_prologue): Ditto.
7545 (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
7546 * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
7547
7323a100
NC
75482009-04-23 Nick Clifton <nickc@redhat.com>
7549
7550 * config/v850/v850.md (epilogue): Remove suppressed code.
7551 (return): Rename to return_simple and remove test of frame size.
7552 * config/v850/v850.c (expand_epilogue): Rename call to gen_return
7553 to gen_return_simple.
7554
360032ba
JY
75552009-04-22 Jing Yu <jingyu@google.com>
7556
7557 PR testsuite/39781
7558 * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
7559
53650abe
AP
75602009-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
7561
7562 PR C/31499
7563 * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
7564 and RECORD_TYPE/UNION_TYPE. When outputing the actual element and the
7565 value is a VECTOR_CST, the element type is the element type of the
7566 vector.
7567
89043e8a
DD
75682009-04-22 DJ Delorie <dj@redhat.com>
7569
7570 * config/m32c/m32c.h: Update GTY annotations to new syntax.
7571
023f059b
JJ
75722009-04-22 Jakub Jelinek <jakub@redhat.com>
7573
7574 * alias.c (find_base_term): Move around LO_SUM case, so that
7575 CONST falls through into PLUS/MINUS handling.
7576
2c0eba5a
JJ
7577 PR c/39855
7578 * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
7579 into 0, use omit_one_operand.
7580
9a461028
BE
75812009-04-23 Ben Elliston <bje@au.ibm.com>
7582
7583 * config/rs6000/linux-unwind.h (get_regs): Remove type
7584 puns. Change the type of `pc' to an array of unsigned ints and
7585 update all users. Constify frame24.
7586
653e2568
DD
75872009-04-22 DJ Delorie <dj@redhat.com>
7588
7589 * config/m32c/m32c.c (m32c_special_page_vector_p): Move
7590 declarations before code.
7591 (current_function_special_page_vector): Likewise.
7592 (m32c_expand_insv): Silence a warning.
7593
60839f5d 75942009-04-21 Taras Glek <tglek@mozilla.com>
d1b38208
TG
7595
7596 * alias.c: Update GTY annotations to new syntax.
7597 * basic-block.h: Likewise.
7598 * bitmap.h: Likewise.
7599 * c-common.h: Likewise.
7600 * c-decl.c: Likewise.
7601 * c-parser.c: Likewise.
7602 * c-pragma.c: Likewise.
7603 * c-tree.h: Likewise.
7604 * cfgloop.h: Likewise.
7605 * cgraph.h: Likewise.
7606 * config/alpha/alpha.c: Likewise.
7607 * config/arm/arm.h: Likewise.
7608 * config/avr/avr.h: Likewise.
7609 * config/bfin/bfin.c: Likewise.
7610 * config/cris/cris.c: Likewise.
7611 * config/darwin.c: Likewise.
7612 * config/frv/frv.c: Likewise.
7613 * config/i386/i386.c: Likewise.
7614 * config/i386/i386.h: Likewise.
7615 * config/i386/winnt.c: Likewise.
7616 * config/ia64/ia64.h: Likewise.
7617 * config/iq2000/iq2000.c: Likewise.
7618 * config/mips/mips.c: Likewise.
7619 * config/mmix/mmix.h: Likewise.
7620 * config/pa/pa.c: Likewise.
7621 * config/pa/pa.h: Likewise.
7622 * config/rs6000/rs6000.c: Likewise.
7623 * config/s390/s390.c: Likewise.
7624 * config/sparc/sparc.c: Likewise.
7625 * config/xtensa/xtensa.c: Likewise.
7626 * cselib.h: Likewise.
7627 * dbxout.c: Likewise.
7628 * dwarf2out.c: Likewise.
7629 * except.c: Likewise.
7630 * except.h: Likewise.
7631 * fixed-value.h: Likewise.
7632 * function.c: Likewise.
7633 * function.h: Likewise.
7634 * gimple.h: Likewise.
7635 * integrate.c: Likewise.
7636 * optabs.c: Likewise.
7637 * output.h: Likewise.
7638 * real.h: Likewise.
7639 * rtl.h: Likewise.
7640 * stringpool.c: Likewise.
7641 * tree-data-ref.c: Likewise.
7642 * tree-flow.h: Likewise.
7643 * tree-scalar-evolution.c: Likewise.
7644 * tree-ssa-address.c: Likewise.
7645 * tree-ssa-alias.h: Likewise.
7646 * tree-ssa-operands.h: Likewise.
7647 * tree.c: Likewise.
7648 * tree.h: Likewise.
7649 * varasm.c: Likewise.
7650 * varray.h: Likewise.
7651 * vec.h: Likewise.
bf758008 7652 * coretypes.h: Do not define GTY macro if it is already defined.
d1b38208
TG
7653 * doc/gty.texi: Update GTY documentation to new syntax.
7654 * gengtype-lex.l: Enforce attribute-like syntax for GTY
7655 annotations on structs.
7656 * gengtype-parse.c: Likewise.
7657
a123d175
MH
76582009-04-22 Mark Heffernan <meheff@google.com>
7659
bf758008 7660 * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
a123d175 7661
4c7c486a
KH
76622009-04-22 Kazu Hirata <kazu@codesourcery.com>
7663
7664 * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
7665 where appropriate.
7666
6e782a29
KH
76672009-04-22 Kazu Hirata <kazu@codesourcery.com>
7668
7669 * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
7670 the same as a PLUS without a shift. Increase the cost of a
7671 CONST_INT in MULT.
7672
38d2336a
MLI
76732009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7674
7675 * Makefile.in: Update dependencies.
bf758008 7676 * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
38d2336a
MLI
7677 * errors.h: Remove bogus comment about compatibility.
7678 (warning): Update declaration.
7679 * genautomata.c: Update all calls to warning.
7680 * gimple.c: Do not include errors.h. Include toplev.h.
7681 * tree-ssa-structalias.c: Do not include errors.h.
7682 * omega.c: Likewise.
7683 * tree-ssa-reassoc.c: Likewise.
7684 * config/spu/spu-c.c: Likewise.
7685 * config/spu/t-spu-elf: Update dependencies.
7686
aea4deba
RG
76872009-04-22 Richard Guenther <rguenther@suse.de>
7688
7689 PR tree-optimization/39824
7690 * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
7691 make sure the types are compatible.
7692
cfc93532
MLI
76932009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7694
7695 PR c++/14875
7696 * c-common.c (c_parse_error): Take a token_flags parameter.
7697 Use token_type for the token type instead.
7698 Pass token_flags to cpp_type2name.
7699 * c-common.h (c_parse_error): Update declaration.
7700 * c-parser.c (c_parser_error): Pass 0 as token flags.
7701
8632d02a
AB
77022009-04-22 Andrey Belevantsev <abel@ispras.ru>
7703
7704 PR rtl-optimization/39580
7705 * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert.
7706
4c33221c
UW
77072009-04-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7708
7709 * function.c (expand_function_end): Do not emit a jump to the "naked"
7710 return label for fall-through returns.
7711 * except.c (sjlj_emit_function_exit): Always place the call to the
7712 unregister function at the location installed by expand_function_end.
7713
9925bce0
RG
77142009-04-22 Richard Guenther <rguenther@suse.de>
7715
7716 PR tree-optimization/39845
7717 * tree-switch-conversion.c (build_arrays): Add new referenced vars.
7718 (gen_inbound_check): Likewise.
7719
24a40b35
NS
77202009-04-22 Nathan Sidwell <nathan@codesourcery.com>
7721
7722 * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
7723 padding for PPC.
7724 (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
7725 * config/vxlib.c (__gthread_once): Add race guard for PPC.
7726
6c34a092
PB
77272009-04-22 Paolo Bonzini <bonzini@gnu.org>
7728
7729 * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
7730 sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
7731 shift counts to avoid out-of-bounds array accesses.
7732
baa48dfa
PB
77332009-04-22 Paolo Bonzini <bonzini@gnu.org>
7734
7735 * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
7736 (Pmode): Move above.
7737
7d83f4f5
UB
77382009-04-22 Uros Bizjak <ubizjak@gmail.com>
7739
7740 * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
7741 NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
7742 GET_CODE macro. Use IN_RANGE macro where appropriate.
7743 * config/alpha/alpha.h: Ditto.
7744 * config/alpha/alpha.md: Ditto.
7745 * config/alpha/constraints.md: Ditto.
7746 * config/alpha/predicates.md: Ditto.
7747
3ad606bc
PB
77482009-04-22 Paolo Bonzini <bonzini@gnu.org>
7749
7750 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
7751 * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7752 * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7753 * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7754 * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7755 * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7756 * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7757 * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7758 * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7759 * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7760 * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7761 * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7762 * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7763 * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7764 * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7765 * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7766 * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7767 * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7768 * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7769 * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7770 * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7771 * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7772 * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7773 * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7774 * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7775 * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7776 * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7777
3cabd6d1
LB
77782009-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
7779
7780 * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
7781 references from comments.
7782 * cfgbuild.c: (count_basic_blocks): Delete.
7783 (find_basic_blocks_1): Delete.
7784 (find_basic_blocks): Delete.
7785 * except.c (finish_eh_generation): Make static. Move comment from
7d83f4f5 7786 except.h here. Remove find_basic_blocks references from comments.
3cabd6d1
LB
7787 * except.h (finish_eh_generation): Delete.
7788 * basic-block.h (find_basic_blocks): Delete.
7789 * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
7790
270d1bcd
DK
77912009-04-22 Dave Korn <dave.korn.cygwin@gmail.com>
7792
7793 * sdbout.c (sdbout_symbol): Pass VOIDmode to eliminate_regs.
7794 (sdbout_parms): Likewise.
7795
b757d36f
KK
77962009-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
7797
7798 * config/sh/sh.c (prepare_cbranch_operands): Use
7799 LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
7800 (expand_cbranchdi4): Likewise.
7801 (from_compare): Add cast to enum type.
7802 (expand_cbranchsi4): Use add_reg_note.
7803 (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
7804 (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
7805 (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
7806 (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
7807 * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
7808 instead of CODE_FOR_nothing.
7809 (cbranchdi4): Likewise. Fix the order of arguments for
7810 gen_rtx_fmt_ee.
7811 (push_fpscr): Use add_reg_note.
7812 (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
7813 reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
7814
ad41bd84
JM
78152009-04-21 Joseph Myers <joseph@codesourcery.com>
7816
7817 * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
7818 ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
7819 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
7820 ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
7821 ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
7822 FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
7823 config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
7824 config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
7825 config/alpha/x-vms, config/arc/t-arc,
7826 config/arm/README-interworking, config/arm/arm-c.c,
7827 config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
7828 config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
7829 config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
7830 config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
7831 config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
7832 config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
7833 config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
7834 config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
7835 config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
7836 config/cris/t-elfmulti, config/crx/t-crx,
7837 config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
7838 config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
7839 config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
7840 config/h8300/t-h8300, config/i386/athlon.md,
7841 config/i386/darwin-libgcc.10.4.ver,
7842 config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
7843 config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
7844 config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
7845 config/i386/t-linux64, config/i386/t-nwld,
7846 config/i386/t-rtems-i386, config/i386/t-sol2-10,
7847 config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
7848 config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
7849 config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
7850 config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
7851 config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
7852 config/iq2000/t-iq2000, config/libgcc-glibc.ver,
7853 config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
7854 config/m32r/t-m32r, config/m68hc11/t-m68hc11,
7855 config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
7856 config/m68k/t-uclinux, config/mcore/t-mcore,
7857 config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
7858 config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
7859 config/mips/crtn.asm, config/mips/irix-crti.asm,
7860 config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
7861 config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
7862 config/mips/mips-fixed.md, config/mips/sb1.md,
7863 config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
7864 config/mips/t-iris6, config/mips/t-isa3264,
7865 config/mips/t-libgcc-mips16, config/mips/t-linux64,
7866 config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
7867 config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
7868 config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
7869 config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
7870 config/mn10300/t-linux, config/mn10300/t-mn10300,
7871 config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
7872 config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
7873 config/picochip/libgccExtras/clzsi2.asm,
7874 config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
7875 config/rs6000/darwin-libgcc.10.4.ver,
7876 config/rs6000/darwin-libgcc.10.5.ver,
7877 config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
7878 config/rs6000/t-aix43, config/rs6000/t-aix52,
7879 config/rs6000/t-darwin, config/rs6000/t-fprules,
7880 config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
7881 config/rs6000/t-lynx, config/rs6000/t-netbsd,
7882 config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
7883 config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
7884 config/rs6000/t-rtems, config/rs6000/t-spe,
7885 config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
7886 config/score/t-score-elf, config/sh/divcost-analysis,
7887 config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
7888 config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
7889 config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
7890 config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
7891 config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
7892 config/stormy16/stormy-abi, config/stormy16/t-stormy16,
7893 config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
7894 config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
7895 config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
7896 config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
7897 config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
7898 gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
7899 java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
7900 limitx.h, version.c, xcoff.h: Add copyright and license notices.
7901 * config/h8300/genmova.sh: Include copyright and license notices
7902 in generated output.
7903 * config/h8300/mova.md: Regenerate.
7904 * doc/install.texi2html: Include word "Copyright" in copyright
7905 notice and use name "Free Software Foundation, Inc.".
7906 * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
7907 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
7908 ChangeLog-2007, ChangeLog-2008: Correct dates.
7909
ca80e52b
EB
79102009-04-21 Eric Botcazou <ebotcazou@adacore.com>
7911
7912 * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
7913 NE_EXPR operations as well.
7914 * c-parser.c (c_parser_condition): Do not set location information on
7915 the condition.
7916 (c_parser_conditional_expression): Likewise.
7917 (c_parser_binary_expression): Set location information on operators.
7918 * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
7919 TRUTH_NOT_EXPR has been folded.
7920 * fold-const.c (fold_truth_not_expr): Copy location information from
7921 the incoming expression to the outgoing one.
7922 * gimplify.c (shortcut_cond_r): Add locus parameter. Pass it to
7923 recursive calls on the LHS of the operator but pass that of the
7924 operator to recursive calls on the RHS of the operator. Set it
7925 on the COND_EXPR.
7926 (shortcut_cond_expr): Set the locus of the operator on the second
7927 COND_EXPR and that of the expression on the first in degenerate cases.
7928 Pass the locus of the expression to calls to shortcut_cond_r.
7929 Set the locus of the 'then' block on the associated jump, if any.
7930 (gimplify_boolean_expr): Add locus parameter. Set it on the COND_EXPR.
7931 (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
7932 expression to call to gimplify_boolean_expr.
7933
35091630
KT
79342009-04-21 Kai Tietz <kai.tietz@onevision.com>
7935
7936 * config.gcc: Add additional configuration for
7937 i686-w64-mingw* and x86_64-w64-mingw* triplet.
7938 * config/i386/mingw-w64.h: New mingw-w64 specific header.
7939 (CPP_SPEC): Redefine for allowing -municode option.
7940 (STARTFILE_SPEC): Likewise.
7941 * config/i386/t-mingw-w64: New.
7942 * config/i386/mingw-w64.opt: New.
7943 (municode): Add new target option.
7944 * doc/invoke.texi (municode): Add documentation for new option.
7945
0267afc4
ILT
79462009-04-21 Ian Lance Taylor <iant@google.com>
7947
7948 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
7949 Correct test for number of arguments.
7950 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
7951
2ba9daa7
AS
79522009-04-21 Andreas Schwab <schwab@linux-m68k.org>
7953
7954 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
7955 argument of emit_library_call.
7956
ad8a1ac0
RG
79572009-04-21 Richard Guenther <rguenther@suse.de>
7958
7959 PR middle-end/39829
7960 * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
7961 inside VIEW_CONVERT_EXPRs.
7962
7156c8ab
MJ
79632009-04-21 Martin Jambor <mjambor@suse.cz>
7964
7965 * tree-switch-conversion.c (build_constructors): Split a long line.
7966 (constructor_contains_same_values_p): New function.
7d83f4f5
UB
7967 (build_one_array): Create assigns of constants if possible, do not
7968 call mark_sym_for_renaming, call update_stmt.
7156c8ab
MJ
7969 (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
7970 make_rename_temp. Do not call mark_symbols_for_renaming, call
7971 update_stmt.
7972 (gen_def_assigns): Do not call mark_symbols_for_renaming or
7973 find_new_referenced_vars, call update_stmt.
7974 (gen_inbound_check): Use create_tmp_var and create ssa names manually
7975 instead of calling make_rename_temp. Do not call
7976 find_new_referenced_vars or mark_symbols_for_renaming, call
7977 update_stmt.
7978
2970ccb3
RG
79792009-04-21 Richard Guenther <rguenther@suse.de>
7980
7981 PR tree-optimization/39827
7d83f4f5 7982 * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
2970ccb3
RG
7983 (tree_ssa_phiprop): Pass the correct array size.
7984
47f402d1
UB
79852009-04-21 Uros Bizjak <ubizjak@gmail.com>
7986
7987 * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
7988
1e4ae551
MLI
79892009-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
7990
7991 PR 16202
7992 * c-typeck.c (lvalue_p): Move declaration ...
7993 * c-common.h (lvalue_p): ... to here.
7994 * c-common.c (candidate_equal_p): New.
7995 (add_tlist): Use it.
7996 (merge_tlist): Use it.
7997 (warn_for_collisions_1): Likewise.
7998 (warning_candidate_p): Accept more candidates.
7999 (verify_tree): A warning candidate can be an expression. Use
8000 candidate_equal_p.
8001
244609a6
BE
80022009-04-21 Ben Elliston <bje@au.ibm.com>
8003
8004 PR target/5267
8005 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
8006 for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
8007 options. Remove -mcall-solaris documentation.
8008
9c650d90
MLI
80092009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8010
8011 PR c++/13358
8012 * doc/invoke.texi (-Wlong-long): Update description.
8013 * c-lex (interpret_integer): Only warn if there was no previous
8014 overflow and -Wlong-long is enabled.
8015 * c-decl.c (declspecs_add_type): Drop redundant flags.
8016 * c.opt (Wlong-long): Init to -1.
8017 * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
8018 and front-end warn_long_long. Wlong-long only depends on other
8019 flags if it is uninitialized.
8020 * c-parser.c (disable_extension_diagnostics): warn_long_long is
8021 the same for CPP and FE.
8022 (restore_extension_diagnostics): Likewise.
8023
bbbbb16a
ILT
80242009-04-20 Ian Lance Taylor <iant@google.com>
8025
8026 Fix enum conversions which are invalid in C++:
47f402d1
UB
8027 * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
8028 * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
8029 * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
8030 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
47f402d1 8031 * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
bbbbb16a 8032 (dbxout_parms): Likewise.
47f402d1 8033 * df-core.c (df_set_flags): Change changeable_flags parameter to int.
bbbbb16a
ILT
8034 (df_clear_flags): Likewise.
8035 * df-problems.c (df_rd_bb_local_compute_process_def): Change
8036 top_flag parameter to int.
8037 (df_chain_create_bb_process_use): Likewise.
47f402d1
UB
8038 (df_chain_add_problem): Change chain_flags parameter to unsigned int.
8039 Remove cast.
bbbbb16a
ILT
8040 * df-scan.c (df_ref_create): Change ref_flags parameter to int.
8041 (df_ref_create_structure, df_def_record_1): Likewise.
8042 (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
8043 (df_notes_rescan): Change 0 to VOIDmode in function call.
8044 (df_get_call_refs, df_insn_refs_collect): Likewise.
8045 (df_bb_regs_collect): Likewise.
8046 (df_entry_block_defs_collect): Likewise.
8047 (df_exit_block_uses_collect): Likewise.
8048 * df.h: Update declarations.
8049 * double-int.c (double_int_divmod): Add cast to enum type.
8050 * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
8051 * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
8052 (based_loc_descr): Likewise.
8053 (loc_descriptor_from_tree_1): Change first_op and second_op to
8054 enum dwarf_location_atom. Add cast to enum type.
8055 * expmed.c (init_expmed): Change 0 to SET in function call.
47f402d1 8056 * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
8057 (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
8058 (do_store_flag): Likewise.
8059 * fixed-value.h (struct fixed_value): Change mode to enum
8060 machine_mode.
47f402d1 8061 * function.c (assign_parms): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
8062 * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
8063 function call.
8064 (insert_insn_decl, insert_decl, insert_state): Likewise.
8065 (automata_list_finish): Likewise.
8066 * genrecog.c (process_define_predicate): Add cast to enum type.
8067 * gensupport.c (init_predicate_table): Add cast to enum type.
8068 * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
8069 function call.
8070 (gimple_build_call_1, gimple_build_label): Likewise.
8071 (gimple_build_goto, gimple_build_asm_1): Likewise.
8072 (gimple_build_switch_1, gimple_build_cdt): Likewise.
47f402d1 8073 * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
bbbbb16a
ILT
8074 (enum fallback): Rename from enum fallback_t.
8075 (fallback_t): Typedef as int.
8076 * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
8077 GSI_SAME_STMT in function call.
8078 * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
8079 enum type.
8080 (setup_reg_class_relations): Likewise.
47f402d1 8081 (setup_reg_class_nregs): Change cl to int. Add casts to enum type.
bbbbb16a
ILT
8082 (setup_prohibited_class_mode_regs): Add cast to enum type.
8083 (setup_prohibited_mode_move_regs): Likewise.
47f402d1 8084 * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
bbbbb16a
ILT
8085 (record_address_regs): Change i to enum reg_class.
8086 * lists.c (alloc_EXPR_LIST): Add cast to enum type.
8087 * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
8088 (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
8089 (GET_MODE_2XWIDER_MODE): Likewise.
8090 (GET_CLASS_NARROWEST_MODE): Likewise.
8091 * omp-low.c (expand_omp_for): Add cast to enum type.
8092 * optabs.c (debug_optab_libfuncs): Add casts to enum type.
8093 * opts.c (enable_warning_as_error): Change kind to diagostic_t.
8094 * postreload.c (reload_cse_simplify_operands): Change rclass local
8095 to enum reg_class.
8096 * predict.c (combine_predictions_for_insn): Change best_predictor
8097 and predictor to enum br_predictor.
8098 (combine_predictions_for_bb): Likewise.
8099 (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
8100 use SET_PREDICT_EXPR_OUTCOME.
47f402d1 8101 * real.c (real_arithmetic): Change icode to code in function call.
bbbbb16a
ILT
8102 * reginfo.c (init_move_cost): Add casts to enum type.
8103 (init_reg_sets_1, init_fake_stack_mems): Likewise.
8104 * regmove.c (regclass_compatible_p): Change class0 and class1 to
8105 enum reg_class.
8106 * reload.c (find_valid_class): Add casts to enum type.
8107 (push_reload): Change 0 to NO_REGS in function call.
8108 (find_reloads): Change this_alternative to array of enum
8109 reg_class. Remove some now-unnecessary casts.
8110 (make_memloc): Change 0 to VOIDmode in function call.
8111 * reload1.c (reload): Change 0 to VOIDmode in function call.
8112 (eliminate_regs_1, elimination_effects): Likewise.
8113 (eliminate_regs_in_insn): Likewise.
8114 (emit_input_reload_insns): Add cast to enum type.
8115 (delete_output_reload): Change 0 to VOIDmode in function call.
8116 * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
8117 to enum type in function call.
8118 * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
8119 (SET_PREDICT_EXPR_OUTCOME): Define.
47f402d1 8120 * tree-dump.c (get_dump_file_info): Change phase parameter to int.
bbbbb16a
ILT
8121 (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
8122 (dump_initialized_p, dump_flag_name, dump_end): Likewise.
8123 (dump_function): Likewise.
8124 * tree-dump.h: Update declarations.
8125 * tree-pass.h: Update declarations.
8126 * varasm.c (assemble_integer): Change mclass to enum mode_class.
8127 * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
8128 enum type.
8129 (arm_rtx_costs_1): Correct parenthesization.
8130 (arm_rtx_costs): Add casts to enum type.
8131 (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
8132 (vfp_emit_fstmd): Use add_rg_note.
8133 (emit_multi_reg_push, emit_sfm): Likewise.
8134 (thumb_set_frame_pointer): Likewise.
8135 (arm_expand_prologue): Likewise.
8136 (arm_regno_class): Change return type to enum reg_class.
8137 (thumb1_expand_prologue): Use add_reg_note.
8138 * config/arm/arm-protos.h (arm_regno_class): Update declaration.
8139 * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
8140 in function call.
8141 * config/arm/gentune.sh: Add cast to enum type.
8142 * config/arm/arm-tune.md: Rebuild.
8143 * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
8144 (ix86_split_fp_branch, predict_jump): Likewise.
8145 (ix86_expand_multi_arg_builtin): Change sub_code from enum
8146 insn_code to enum rtx_code.
8147 (ix86_builtin_vectorized_function): Add cast to enum type.
8148 * config/i386/i386.md (truncdfsf2): Change slot to enum
8149 ix86_stack_slot.
8150 (truncxf<mode>2, isinf<mode>2): Likewise.
8151 * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
8152 enum type.
8153 * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
8154 (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
8155 (insert_bundle_state): Change 1 to INSERT in function call.
8156 (ia64_add_bundle_selector_before): Likewise.
8157 * config/ia64/ia64.md (cpu attr): Add cast to enum type.
8158 (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
8159 (restore_stack_nonlocal): Likewise.
8160 * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
8161 function call.
8162 * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
8163 function call.
8164 (mips_rtx_costs): Likewise.
8165 (mips_override_options): Add casts to enum type.
8166 * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
8167 in function call.
8168 * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
8169 (store_reg, set_reg_plus_d): Likewise.
8170 (hppa_expand_prologue, hppa_profile_hook): Likewise.
8171 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
8172 cast to enum type.
8173 (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
8174 function call.
8175 (emit_unlikely_jump): Use add_reg_note.
8176 (rs6000_emit_allocate_stack): Likewise.
8177 (rs6000_frame_related, rs6000_emit_prologue): Likewise.
8178 (output_toc): Change 1 to INSERT in function call.
8179 (output_profile_hook): Change 0 to LCT_NORMAL in function call.
8180 (rs6000_initialize_trampoline): Likewise.
8181 (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
8182 function call.
8183 * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
8184 (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
8185 (s390_expand_setmem, s390_expand_cmpmem): Likewise.
8186 (save_gprs): Use add_reg_note.
8187 (s390_emit_prologue): Likewise.
47f402d1 8188 (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
8189 * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
8190 (sparc_fold_builtin): Add cast to enum type.
8191 * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
8192 enum insn_code.
8193 (spu_expand_prologue): Use add_reg_note.
47f402d1 8194 (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
8195
81962009-04-20 Ian Lance Taylor <iant@google.com>
8197
8198 * c-parser.c (c_parser_attributes): Change VEC back to tree list.
8199 (c_parser_postfix_expression_after_primary): Get VEC for list of
8200 arguments. Get original types of arguments. Call
8201 build_function_call_vec.
8202 (cached_expr_list_1, cached_expr_list_2): New static variables.
8203 (c_parser_expr_list): Change return type to VEC *. Add
8204 p_orig_types parameter. Change all callers.
8205 (c_parser_release_expr): New static function.
8206 (c_parser_vec_to_tree_list): New static function.
8207 * c-typeck.c (build_function_call): Rewrite to build a VEC and
8208 call build_function_call_vec.
8209 (build_function_call_vec): New function, based on old
8210 build_function_call.
8211 (convert_arguments): Remove nargs and argarray parameters. Change
8212 values to a VEC. Add origtypes parameter.
47f402d1 8213 (build_modify_expr): Add rhs_origtype parameter. Change all callers.
bbbbb16a
ILT
8214 (convert_for_assignment): Add origtype parameter. Change all
8215 callers. If warn_cxx_compat, check for conversion to an enum
8216 type when calling a function.
8217 (store_init_value): Add origtype parameter. Change all callers.
8218 (digest_init): Likewise.
8219 (struct init_node): Add origtype field.
8220 (add_pending_init): Add origtype parameter. Change all callers.
8221 (output_init_element): Likewise.
8222 (output_pending_init_elements): Pass origtype from init_node to
8223 output_init_element.
f28a61ab 8224 (process_init_element): Pass origtype from c_expr to
bbbbb16a
ILT
8225 output_init_element.
8226 (c_finish_return): Add origtype parameter. Change all callers.
8227 * c-common.c (sync_resolve_size): Change params to VEC *. Change
8228 caller.
8229 (sync_resolve_params): Likewise.
47f402d1 8230 (sync_resolve_return): Change params to first_param. Change caller.
bbbbb16a 8231 (resolve_overloaded_builtins): Change params to VEC *. Change
47f402d1 8232 callers. Save first parameter around call to build_function_call_vec.
bbbbb16a
ILT
8233 * c-decl.c (finish_decl): Add origtype parameter. Change all
8234 callers. Call build_function_call_vec rather than
8235 build_function_call for cleanup.
8236 * c-tree.h: Update declarations.
8237 * c-common.h: Update declarations.
8238 * stub-objc.c (objc_rewrite_function_call): Change parameter from
8239 params to first_param.
8240 * target.h (struct gcc_target): Change resolve_overloaded_builtin
8241 params parameter from tree to void *.
8242 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
8243 Change arglist parameter to have type void *, and to be a pointer
8244 to a VEC.
8245 * config/rs6000/rs6000-protos.h
8246 (altivec_resolve_overloaded_builtin): Update declaration.
8247 * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
8248 fnargs parameter to have type void *, and to be a pointer to a
8249 VEC. Call build_function_call_vec instead of
8250 build_function_call.
47f402d1 8251 * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
bbbbb16a 8252
6ff078d4 82532009-04-20 Joey Ye <joey.ye@intel.com>
60839f5d 8254 Xuepeng Guo <xuepeng.guo@intel.com>
6ff078d4
JY
8255 H.J. Lu <hongjiu.lu@intel.com>
8256
8257 * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
8258
8259 * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
8260 (IX86_LEA_PRIORITY): Likewise.
8261 (distance_non_agu_define): New function.
8262 (distance_agu_use): Likewise.
8263 (ix86_lea_for_add_ok): Likewise.
8264 (ix86_dep_by_shift_count): Likewise.
8265
8266 * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
8267 should split for LEA.
8268
8269 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
8270 function.
8271 (ix86_dep_by_shift_count): Likewise.
8272
87a5b4cc
RG
82732009-04-20 Richard Guenther <rguenther@suse.de>
8274
8275 * expr.c (handled_component_p): Move ...
8276 * tree.h (handled_component_p): ... here.
8277 * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
8278 ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
8279 and REALPART_EXPR to be in one group.
8280
438c239d
RG
82812009-04-20 Richard Guenther <rguenther@suse.de>
8282
8283 * basic-block.h (get_all_dominated_blocks): Declare.
8284 * dominance.c (get_all_dominated_blocks): New function.
8285 * tree-cfg.c (get_all_dominated_blocks): Remove.
8286 (remove_edge_and_dominated_blocks): Adjust.
8287 * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
8288 (tree_ssa_phiprop): ... here. Use get_all_dominated_blocks
8289 instead of recursing.
8290
fed5ae11
DK
82912009-04-20 Doug Kwan <dougkwan@google.com>
8292
8293 * cgraph.h (cgraph_node_ptr): New type for vector functions.
8294 (struct cgraph_node_set_def): New type.
8295 (cgraph_node_set) New type. Also declare vector functions.
8296 (struct cgraph_node_set_element_def): New type.
8297 (cgraph_node_set_element): Ditto.
8298 (cgraph_node_set_iterator): New iterator type.
8299 (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
8300 cgraph_node_set_remove, dump_cgraph_node_set,
8301 debug_cgraph_node_set): New prototypes.
8302 (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
8303 cgraph_node_set_size): New inlines.
8304 * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
8305 including cgraph.h.
8306 (struct ipa_opt_pass): Add struct cgraph_node_set_def
8307 argument to function 'write_summary'.
8308 * ipa.c: Include ggc.h.
8309 (hash_cgraph_node_set_element,
8310 eq_cgraph_node_set_element, cgraph_node_set_new,
8311 cgraph_node_set_add, cgraph_node_set_remove,
8312 cgraph_node_set_find, dump_cgraph_node_set,
8313 debug_cgraph_node_set): New functions.
8314 * Makefile.in (ipa.o): Add dependency on GGC_H.
8315
c4551b28
IR
83162009-04-20 Ira Rosen <irar@il.ibm.com>
8317
8318 PR tree-optimization/39675
2ba9daa7 8319 * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
47f402d1
UB
8320 check of the return code of vect_schedule_slp. Check that
8321 stmt_vec_info still exists for the statement, before checking its
8322 vectorization type.
c4551b28 8323
21a495fb
MM
83242009-04-20 Michael Matz <matz@suse.de>
8325
8326 * Makefile.in (generated_files): Take out $(simple_generated_c).
8327
8e208874
DK
83282009-04-19 Dave Korn <dave.korn.cygwin@gmail.com>
8329
8330 * config/i386/cygwin-stdint.h (INTPTR_TYPE): Remove "long".
8331 (UINTPTR_TYPE): Likewise.
8332
a45e580b
JM
83332009-04-19 Joseph Myers <joseph@codesourcery.com>
8334
8335 PR c/37481
8336 * c-typeck.c (digest_init): Check for initializing an array with a
8337 string literal.
8338
20845d35
JM
83392009-04-19 Joseph Myers <joseph@codesourcery.com>
8340
8341 PR c/19771
8342 * c-semantics.c (pop_stmt_list): Propagate
8343 STATEMENT_LIST_HAS_LABEL to parent statement list.
8344
28143fdd
AN
83452009-04-19 Adam Nemet <anemet@caviumnetworks.com>
8346
8347 * config/mips/mips.h (mips_tune_attr): New macro.
8348 * config/mips/mips.md (cpu): Use it.
8349
da377db9
JM
83502009-04-19 Joseph Myers <joseph@codesourcery.com>
8351
8352 PR c/38243
8353 * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
8354 declaring a tag.
8355
3baf459d
DN
83562009-04-19 Diego Novillo <dnovillo@google.com>
8357
8358 * toplev.c (compile_file): Move call to coverage_finish ...
8359 * cgraphunit.c (ipa_passes): ... here.
8360 Call cgraph_process_new_functions.
8361 * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
8362 * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
8363
b6fa5b01
JH
83642009-04-19 Jan Hubicka <jh@suse.cz>
8365
47f402d1
UB
8366 * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
8367 cfun.
b6fa5b01
JH
8368 (dump_cgraph_node): Dump can throw external flag.
8369 * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
8370
ca409efd
MLI
83712009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
8372
8373 PR c/32061
8374 PR c++/36954
8375 * doc/invoke.texi: Add -Wlogical-op to -Wextra.
8376 * common.opt (Wlogical-op): Move from here...
8377 * c.opt (Wlogical-op): ... to here.
8378 * c-typeck.c (parser_build_binary_op): Update call to
8379 warn_logical_operator.
8380 * c-opts.c (c_common_post_options): Enable warn_logical_op with
8381 extra_warnings.
8382 * c-common.c (warn_logical_op): Update.
8383 * c-common.h (warn_logical_op): Update declaration.
8384
9db4cdd3
EB
83852009-04-19 Eric Botcazou <ebotcazou@adacore.com>
8386
8387 * tree.c (protected_set_expr_location): Fix formatting.
8388
f37acdf9
JM
83892009-04-18 Joseph Myers <joseph@codesourcery.com>
8390
8391 PR c/27676
8392 * c-typeck.c (readonly_warning): new.
8393 (build_unary_op, build_modify_expr): Use readonly_warning for
8394 storing into something readonly but not const-qualified.
8395
2b4b7036
JM
83962009-04-18 Joseph Myers <joseph@codesourcery.com>
8397
8398 PR c/22367
8399 * c-typeck.c (build_unary_op): Check for taking address of
8400 expression of type void.
8401
3ce62965
JM
84022009-04-18 Joseph Myers <joseph@codesourcery.com>
8403
8404 PR c/35210
8405 * c-typeck.c (build_function_call): Check for calling a function
8406 with qualified void return types. Call require_complete_type when
8407 generating a trap.
8408
2505c5ed
JH
84092009-04-18 Jan Hubicka <jh@suse.cz>
8410
8411 * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
8412 Set nothrow flag.
8413 * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
8414 can_throw_external flag.
8415 * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
8416 * ipa-pure-const.c (ignore_edge): New function.
8417 (propagate): Compute order for NOTHROW computation; set NOTHROWs
8418 only over can_throw_external edges.
8419 (local_pure_const): Add nothrow flag.
8420 * ipa-utils.c (searchc): Add ignore_edge callback.
8421 (ipa_utils_reduced_inorder): Add ignore_edge callback.
8422 * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
8423 (set_nothrow_function_flags): Update cgraph.
8424 * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
8425
2586ba4b
RG
84262009-04-18 Richard Guenther <rguenther@suse.de>
8427
8428 PR middle-end/39804
8429 * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
8430 (fold_stmt): ... this and ...
8431 (fold_stmt_inplace): ... this.
8432 (fold_stmt_1): Fold references in calls and asms.
8433 * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
8434
1eefab17
KH
84352009-04-18 Kazu Hirata <kazu@codesourcery.com>
8436
8437 * tree-vrp.c (ssa_name_nonzero_p): Remove.
8438 * tree.h: Remove the prototype for ssa_name_nonzero_p.
8439
aa424b01
KH
84402009-04-18 Kazu Hirata <kazu@codesourcery.com>
8441
8442 * tree.c (function_args_count): Remove.
8443 * tree.h: Remove the prototype for function_args_count.
8444
613a896b
KH
84452009-04-18 Kazu Hirata <kazu@codesourcery.com>
8446
8447 * tree-iterator.c (expr_only): Remove.
8448 * tree.h: Remove the prototype for expr_only.
8449
579e694c
KH
84502009-04-18 Kazu Hirata <kazu@codesourcery.com>
8451
8452 * reginfo.c (cannot_change_mode_set_regs): Remove.
8453 * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
8454
ee7e3ad3
AS
84552009-04-08 Anatoly Sokolov <aesok@post.ru>
8456
8457 * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
8458 whether operands 0 and 1 overlaps.
8459
92ef7fb1
MLI
84602009-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
8461
8462 PR middle-end/36902
8463 * tree-vrp.c (check_array_ref): Pass a location_t instead of a
8464 pointer. Use warning_at instead of warning.
8465 (search_for_addr_array): Likewise.
8466 (check_array_bounds): Likewise.
8467 (check_all_array_refs): Check that the incoming edge is not in the
8468 list of edges to be removed.
8469 (check_all_array_refs): Avoid the temporal pointer.
8470 (vrp_visit_cond_stmt): Fix typo.
8471 (simplify_switch_using_ranges): Handle the case where the switch
8472 index is an integer constant.
8473
0e097268
AN
84742009-04-18 Adam Nemet <anemet@caviumnetworks.com>
8475
8476 * config/mips/mips.c (mips_final_postscan_insn): Make it static.
8477
c782f1dd
KH
84782009-04-18 Kazu Hirata <kazu@codesourcery.com>
8479
8480 * doc/extend.texi, doc/invoke.texi: Fix typos.
8481
668fb0e8
CC
84822009-04-17 Cary Coutant <ccoutant@google.com>
8483
8484 * tree-flow-inline.h (get_lineno): Fix inverted test.
8485
4d4014c1
DN
84862009-04-17 Diego Novillo <dnovillo@google.com>
8487
8488 * tree-ssa-pre.c (create_expression_by_pieces): Remove
8489 assertion for AVAIL_OUT.
8490
2984e1b6
MF
84912009-04-17 Mike Frysinger <vapier@gentoo.org>
8492
8493 PR target/38627
8494 * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
8495 * config/sh/linux-atomic.asm: Likewise.
8496
9994a182
DN
84972009-04-17 Diego Novillo <dnovillo@google.com>
8498
8499 * except.c (debug_eh_tree): New.
8500 (struct eh_region, struct eh_status): Move ...
8501 * except.h: ... here.
8502 (add_type_for_runtime): Declare extern.
8503 (lookup_type_for_runtime): Likewise.
8504 (debug_eh_tree): Declare.
8505 * Makefile.in (GTFILES): List except.h before except.c
8506
07485407
DN
85072009-04-17 Diego Novillo <dnovillo@google.com>
8508
47f402d1 8509 * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
07485407
DN
8510 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
8511 * tree-dfa.c (find_referenced_vars_in): Factor out of ...
8512 (find_vars_r): ... here.
8513 * tree-flow.h (find_referenced_vars_in): Declare.
8514 * tree-ssa-pre.c (create_expression_by_pieces): Assert
8515 that AVAIL_OUT exists for BLOCK.
8516 * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
8517 (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
8518 (tree-parloops.o): Likewise.
8519
4e53d196
SB
85202009-04-17 Simon Baldwin <simonb@google.com>
8521
8522 * toplev.c (default_tree_printer): Add handling for %E format.
8523
413d3aa8
DN
85242009-04-17 Diego Novillo <dnovillo@google.com>
8525
47f402d1
UB
8526 * tree-pretty-print.c (dump_generic_node): Add break after
8527 TREE_BINFO handler. Handle COMPLEX_TYPE, REAL_TYPE and
8528 FIXED_POINT_TYPE. Handle NULL TREE_TYPEs. Handle METHOD_TYPE and
8529 FUNCTION_TYPE together. Call print_struct_decl when printing
8530 structures and TDF_SLIM is not given.
413d3aa8
DN
8531 (print_struct_decl): Fix logic for detecting recursion.
8532
5a691e98
RAE
85332009-04-17 Rafael Avila de Espindola <espindola@google.com>
8534
8535 PR 31567
8536 * gcc.c (create_at_file): New.
8537 (compile_input_file_p): New.
8538 (do_spec_1): Use @args files for %i. Use create_at_file for %o.
8539 * main.c (main): Update call to toplev_main.
8540 * toplev.c (toplev_main): Change signature. Call expandargv.
8541 * toplev.h (toplev_main): Change signature.
8542
9eacf7a6
EB
85432009-04-17 Eric Botcazou <ebotcazou@adacore.com>
8544
8545 * dwarf2out.c (field_byte_offset): Use the type size as the field size
8546 if the latter is not constant.
8547
58298177
DE
85482009-04-17 David Edelsohn <edelsohn@gnu.org>
8549
8550 * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
8551
5b4c43d7
EB
85522009-04-17 Eric Botcazou <ebotcazou@adacore.com>
8553
8554 * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
8555 * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
8556
b51605c4
RG
85572009-04-17 Richard Guenther <rguenther@suse.de>
8558
8559 * tree-ssa-structalias.c (get_constraint_for_component_ref):
8560 Handle component references view-converting an invariant address.
8561
9e3be889
AN
85622009-04-17 Adam Nemet <anemet@caviumnetworks.com>
8563
8564 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
8565 TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
8566 TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
8567 TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
8568 Use @deftypevr rather than @deftypevar.
8569
7c3e9dc3
RG
85702009-04-17 Richard Guenther <rguenther@suse.de>
8571
47f402d1 8572 * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
7c3e9dc3
RG
8573 (get_prop_source_stmt): Likewise.
8574 (can_propagate_from): Likewise.
8575
aca600aa
AS
85762009-04-17 Andrew Stubbs <ams@codesourcery.com>
8577
8578 * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
8579 TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
8580 (--with-multilib-list): Add default value.
8581 * configure: Regenerate.
8582 * Makefile.in (TM_ENDIAN_CONFIG): Define.
8583 (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
8584 * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
8585 TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
8586 Don't add default cpu to multilib list unnecessarily, but do enable
8587 the relevant compiler option..
8588 Add support for --with-multilib-list=<blank> and
8589 --with-multilib-list=!<somelib> to supress unwanted multilibs.
8590 * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
8591 (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
8592 (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
8593 TM_MULTILIB_CONFIG.
8594 (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
8595 (MULTILIB_OSDIRNAMES): New variable.
8596 * config/sh/t-1e: Delete file.
8597 * config/sh/t-mlib-sh1: Delete file.
8598 * config/sh/t-mlib-sh2: Delete file.
8599 * config/sh/t-mlib-sh2a: Delete file.
8600 * config/sh/t-mlib-sh2a-nofpu: Delete file.
8601 * config/sh/t-mlib-sh2a-single: Delete file.
8602 * config/sh/t-mlib-sh2a-single-only: Delete file.
8603 * config/sh/t-mlib-sh2e: Delete file.
8604 * config/sh/t-mlib-sh3e: Delete file.
8605 * config/sh/t-mlib-sh4: Delete file.
8606 * config/sh/t-mlib-sh4-nofpu: Delete file.
8607 * config/sh/t-mlib-sh4-single: Delete file.
8608 * config/sh/t-mlib-sh4-single-only: Delete file.
8609 * config/sh/t-mlib-sh4a: Delete file.
8610 * config/sh/t-mlib-sh4a-nofpu: Delete file.
8611 * config/sh/t-mlib-sh4a-single: Delete file.
8612 * config/sh/t-mlib-sh4a-single-only: Delete file.
8613 * config/sh/t-mlib-sh4al: Delete file.
8614 * config/sh/t-mlib-sh5-32media: Delete file.
8615 * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
8616 * config/sh/t-mlib-sh5-64media: Delete file.
8617 * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
8618 * config/sh/t-mlib-sh5-compact: Delete file.
8619 * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
8620 * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
8621 * doc/install.texi (Options specification): Add
8622 --with-multilib-list and --with-endian.
8623
cf8aba7f
RAE
86242009-04-17 Rafael Avila de Espindola <espindola@google.com>
8625
8626 * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
8627 REVISION_c.
8628 (OBJS-common): Add plugin-version.o.
8629 (plugin-version.o): New.
8630 * gcc-plugin.h (plugin_gcc_version): New.
8631 (plugin_default_version_check): New.
8632 (plugin_init_func, plugin_init): Add version argument.
8633 * plugin-version.c: New.
8634 * plugin.c (str_plugin_gcc_version_name): New.
8635 (try_init_one_plugin): Read plugin_gcc_version from the plugin and
8636 pass it to the init function.
8637 (plugin_default_version_check): New.
8638
61e20b90
RG
86392009-04-17 Richard Guenther <rguenther@suse.de>
8640
8641 * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
8642 for decl-vs-decl disambiguation.
8643
90c6fd8a
AK
86442009-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
8645
8646 * config/s390/s390.h (s390_tune_attr): New macro definition.
8647 * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
8648
9fe9fe04
RG
86492009-04-17 Richard Guenther <rguenther@suse.de>
8650
8651 * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
8652 (fold_stmt_r): Likewise.
8653 (maybe_fold_reference): New function.
8654 (fold_gimple_assign): Handle cases fold_stmt_r did.
8655 (fold_stmt): Do not use fold_stmt_r.
8656 (fold_stmt_inplace): Likewise.
8657
7e673273
RG
86582009-04-17 Richard Guenther <rguenther@suse.de>
8659
8660 * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
8661 (record_equivalences_from_stmt): Remove useless checks and
8662 simplifications.
8663 * tree-ssa-pre.c (eliminate): Avoid converting a constant if
8664 the type is already suitable.
8665
fabf2749
PB
86662009-04-17 Paolo Bonzini <bonzini@gnu.org>
8667
8668 * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
8669
68f7b061
UB
86702009-04-17 Uros Bizjak <ubizjak@gmail.com>
8671
8672 * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
8673 (CMPtype): Define as __gcc_CMPtype.
8674
532bfb0a
AJ
86752009-04-17 Aurelien Jarno <aurelien@aurel32.net>
8676
8677 * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
8678 for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
8679
e3ac77ff
RG
86802009-04-17 Richard Guenther <rguenther@suse.de>
8681
8682 PR tree-optimization/39746
8683 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
8684 special-casing for builtins and static variable use/def.
8685 (call_may_clobber_ref_p_1): Likewise.
8686
7072a650
ILT
86872009-04-16 Ian Lance Taylor <iant@google.com>
8688
8689 * df.h: Include "timevar.h".
8690 (struct df_problem): Change tv_id field to timevar_id_t.
8691 * tree-pass.h: Include "timevar.h".
8692 (struct opt_pass): Change tv_id field to timevar_id_t.
8693 * timevar.h (timevar_id_t): Define TV_NONE.
8694 * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
8695 TV_NONE rather than tv_id != 0.
8696 (execute_one_pass): Likewise.
8697 * Makefile.in (DF_H): Add $(TIMEVAR_H).
8698 (TREE_PASS_H): Define. Change all instances of tree-pass.h in
8699 dependencies to $(TREE_PASS_H).
8700 * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
8701 to TV_NONE.
8702 (pass_branch_target_load_optimize2): Likewise.
8703 * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
8704 (pass_outof_cfg_layout_mode): Likewise.
8705 * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
8706 (pass_rebuild_cgraph_edges): Likewise.
8707 (pass_remove_cgraph_callee_edges): Likewise.
8708 * df-core.c (pass_df_initialize_opt): Likewise.
8709 (pass_df_initialize_no_opt): Likewise.
8710 (pass_df_finish): Likewise.
8711 * emit-rtl.c (pass_unshare_all_rtl): Likewise.
8712 * except.c (pass_set_nothrow_function_flags): Likewise.
8713 (pass_convert_to_eh_region_ranges): Likewise.
8714 * final.c (pass_compute_alignments): Likewise.
8715 * function.c (pass_instantiate_virtual_regs): Likewise.
8716 (pass_init_function): Likewise.
8717 (pass_leaf_regs): Likewise.
8718 (pass_match_asm_constraints): Likewise.
8719 * gimple-low.c (pass_lower_cf): Likewise.
8720 (pass_mark_used_blocks): Likewise.
8721 * init-regs.c (pass_initialize_regs): Likewise.
8722 * integrate.c (pass_initial_value_sets): Likewise.
8723 * ira.c (pass_ira): Likewise.
8724 * jump.c (pass_cleanup_barriers): Likewise.
8725 * omp-low.c (pass_expand_omp): Likewise.
8726 (pass_lower_omp): Likewise.
8727 * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
8728 * recog.c (pass_split_all_insns): Likewise.
8729 (pass_split_after_reload): Likewise.
8730 (pass_split_before_regstack): Likewise.
8731 (pass_split_before_sched2): Likewise.
8732 (pass_split_for_shorten_branches): Likewise.
8733 * reginfo.c (pass_reginfo_init): Likewise.
8734 (pass_subregs_of_mode_init): Likewise.
8735 (pass_subregs_of_mode_finish): Likewise.
8736 * passes.c (pass_postreload): Likewise.
8737 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
8738 * tree-cfg.c (pass_remove_useless_stmts): Likewise.
8739 (pass_warn_function_return): Likewise.
8740 (pass_warn_function_noreturn): Likewise.
8741 * tree-complex.c (pass_lower_complex): Likewise.
8742 (pass_lower_complex_O0): Likewise.
8743 * tree-if-conv.c (pass_if_conversion): Likewise.
8744 * tree-into-ssa.c (pass_build_ssa): Likewise.
8745 * tree-mudflap.c (pass_mudflap_1): Likewise.
8746 (pass_mudflap_2): Likewise.
8747 * tree-nomudflap.c (pass_mudflap_1): Likewise.
8748 (pass_mudflap_2): Likewise.
8749 * tree-nrv.c (pass_return_slot): Likewise.
8750 * tree-object-size.c (pass_object_sizes): Likewise.
8751 * tree-optimize.c (pass_all_optimizations): Likewise.
8752 (pass_early_local_passes): Likewise.
8753 (pass_all_early_optimizations): Likewise.
8754 (pass_cleanup_cfg): Likewise.
8755 (pass_cleanup_cfg_post_optimizing): Likewise.
8756 (pass_free_datastructures): Likewise.
8757 (pass_free_cfg_annotations): Likewise.
8758 (pass_fixup_cfg): Likewise.
8759 (pass_init_datastructures): Likewise.
8760 * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
8761 (pass_late_warn_uninitialized): Likewise.
8762 (pass_update_address_taken): Likewise.
8763 * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
8764 * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
8765 (pass_cse_sincos): Likewise.
8766 (pass_convert_to_rsqrt): Likewise.
8767 * tree-ssa-structalias.c (pass_build_alias): Likewise.
8768 * tree-stdarg.c (pass_stdarg): Likewise.
8769 * tree-tailcall.c (pass_tail_recursion): Likewise.
8770 (pass_tail_calls): Likewise.
8771 * tree-vect-generic.c (pass_lower_vector): Likewise.
8772 (pass_lower_vector_ssa): Likewise.
8773 * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
8774
0051ef59
JM
87752009-04-16 Joseph Myers <joseph@codesourcery.com>
8776
8777 * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
8778 XLR entry.
8779 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
8780 Handle -march=xlr.
8781 * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
8782 logical and signext.
8783
b3f8558a
KK
87842009-04-16 Kaz Kojima <kkojima@gcc.gnu.org>
8785
8786 PR target/39767
8787 * config/sh/predicates.md (arith_operand): Check if the operand
8788 of TRUNCATE is a REG.
8789
f57597d9
KH
87902009-04-16 Kazu Hirata <kazu@codesourcery.com>
8791
8792 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
8793 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
8794
b172d063
KH
87952009-04-16 Kazu Hirata <kazu@codesourcery.com>
8796
8797 * tree-iterator.c (tsi_split_statement_list_after,
8798 tsi_split_statement_list_before): Remove.
8799 * tree-iterator.h: Remove the prototypes for
532bfb0a 8800 tsi_split_statement_list_after and tsi_split_statement_list_before.
b172d063 8801
78fe4f1f
KH
88022009-04-16 Kazu Hirata <kazu@codesourcery.com>
8803
8804 * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
8805 * tree-ssa-propagate.h: Remove the prototype for
8806 stmt_makes_single_load.
8807
43dd3201
KH
88082009-04-16 Kazu Hirata <kazu@codesourcery.com>
8809
8810 * emit-rtl.c (set_mem_attrs_from_reg): Remove.
8811 * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
8812
4252a4aa
KH
88132009-04-16 Kazu Hirata <kazu@codesourcery.com>
8814
8815 * tree-iterator.c (EXPR_LAST_BODY): Remove.
8816
bfb69968
KH
88172009-04-16 Kazu Hirata <kazu@codesourcery.com>
8818
8819 * except.c (eh_region_outer_p): Remove.
8820 * except.h: Remove the prototype for eh_region_outer_p.
8821
c7db7fa5
KH
88222009-04-16 Kazu Hirata <kazu@codesourcery.com>
8823
8824 * function.c (current_function_assembler_name): Remove.
8825 * function.h: Remove the prototype for
8826 current_function_assembler_name.
8827
efc0b2bd
ILT
88282009-04-16 Ian Lance Taylor <iant@google.com>
8829
532bfb0a 8830 * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
efc0b2bd
ILT
8831 (add_reg_note): Call alloc_reg_note.
8832 * rtl.h (alloc_reg_note): Declare.
8833 * combine.c (try_combine): Use alloc_reg_note.
8834 (recog_for_combine, move_deaths): Likewise.
8835 (distribute_notes): Use alloc_reg_note and add_reg_note.
8836 * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
8837 * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
8838 * reload1.c (eliminate_regs_1): Use alloc_reg_note.
8839
6080348f
VM
88402009-04-16 Vladimir Makarov <vmakarov@redhat.com>
8841
8842 PR rtl-optimization/39762
8843 * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
8844 ira_may_move_out_cost): Add comments about way of their usage.
532bfb0a 8845 (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
2ba9daa7 8846
6080348f
VM
8847 * ira-conflicts.c (process_regs_for_copy): Use function
8848 ira_get_register_move_cost instead of global
8849 ira_register_move_cost.
8850
8851 * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
8852 color_pass, move_spill_restore, update_curr_costs): Ditto.
8853
8854 * ira-lives.c (process_single_reg_class_operands): Ditto.
8855
8856 * ira-emit.c (emit_move_list): Ditto.
8857
8858 * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
8859 (record_reg_classes): Ditto. Use functions
8860 ira_get_register_move_cost and ira_get_may_move_cost instead of
8861 global vars ira_register_move_cost, ira_may_move_out_cost and
8862 ira_may_move_in_cost.
8863 (record_address_regs): Don't call ira_init_register_move_cost.
8864 Use function ira_get_may_move_cost instead of global
8865 ira_may_move_in_cost.
8866 (process_bb_node_for_hard_reg_moves): Use function
532bfb0a 8867 ira_get_register_move_cost instead of global ira_register_move_cost.
6080348f 8868 (ira_costs): Don't call ira_init_register_move_cost.
2ba9daa7 8869
646bea10
RG
88702009-04-16 Richard Guenther <rguenther@suse.de>
8871
8872 * tree-cfg.c (verify_gimple_assign_binary):
8873 Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
8874 * ipa-struct-reorg.c (gen_size): Fold the built expressions.
8875 (create_general_new_stmt): Note that this function is broken.
8876
02e819ff
RAE
88772009-04-16 Rafael Avila de Espindola <espindola@google.com>
8878
8879 * common.opt (fhelp): Add Var(help_flag).
8880 * gcc-plugin.h (plugin_info): Add help.
8881 * plugin.c (plugin_name_args): Add help.
8882 (register_plugin_info): Set plugin->help.
8883 (print_help_one_plugin): New.
8884 (print_plugins_help): New.
8885 * plugin.h (print_plugins_help): New.
8886 * toplev.c (toplev_main): Call print_plugins_help if needed.
8887
ccacdf06
RG
88882009-04-16 Richard Guenther <rguenther@suse.de>
8889
8890 * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
8891 (gimple_ior_addresses_taken_1): New function.
8892 (gimple_ior_addresses_taken): Likewise.
8893 * gimple.h (struct gimple_statement_with_ops_base): Remove
8894 addresses_taken member.
8895 (gimple_ior_addresses_taken): Declare.
8896 (gimple_addresses_taken, gimple_addresses_taken_ptr,
8897 gimple_set_addresses_taken): Remove.
8898 * ipa-reference.c (mark_address): New function.
8899 (scan_stmt_for_static_refs): Use it for marking addresses taken.
8900 * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
8901 (mark_address_taken): ... this. Just set TREE_ADDRESSABLE.
8902 (gimple_add_to_addresses_taken): Remove.
8903 (get_tmr_operands): Call mark_address_taken.
8904 (get_asm_expr_operands): Likewise.
8905 (get_expr_operands): Likewise.
8906 (build_ssa_operands): Do not clear the addresses_taken bitmap.
8907 (free_stmt_operands): Do not free it.
8908 * tree-ssa.c (delete_tree_ssa): Likewise.
8909 (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
8910
346ef3fa
RG
89112009-04-16 Richard Guenther <rguenther@suse.de>
8912
8913 * gimple.h (walk_stmt_load_store_addr_ops): Declare.
8914 (walk_stmt_load_store_ops): Likewise.
8915 * gimple.c (get_base_loadstore): New function.
8916 (walk_stmt_load_store_addr_ops): Likewise.
8917 (walk_stmt_load_store_ops): Likewise.
8918 * ipa-pure-const.c (check_op): Simplify.
8919 (check_load, check_store): New functions.
8920 (check_stmt): Use walk_stmt_load_store_ops.
8921 * ipa-reference.c (mark_load): Adjust signature.
8922 (mark_store): Likewise.
8923 (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
8924
44e9f006
RAE
89252009-04-16 Rafael Avila de Espindola <espindola@google.com>
8926
8927 * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
8928 (plugin_info): New.
8929 * opts.c (common_handle_option): Don't call print_version.
8930 * plugin.c (plugin_name_args): Add version.
8931 (register_plugin_info): New.
8932 (register_callback): Handle PLUGIN_INFO.
8933 (try_init_one_plugin): New.
8934 (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
8935 if failed to init.
8936 (finalize_one_plugin): New.
8937 (finalize_plugins): New.
8938 (print_one_plugin): New.
8939 (print_plugins_versions): New.
8940 * plugin.h (print_plugins_versions): New.
8941 (finalize_plugins): New.
8942 * toplev.c (compile_file): Don't call initialize_plugins.
8943 (print_version): Call print_plugins_versions.
8944 (toplev_main): Call initialize_plugins. Print version if needed.
8945 Call finalize_plugins.
8946
41fd0f9b
RAE
89472009-04-16 Rafael Avila de Espindola <espindola@google.com>
8948
8949 * common.opt (fversion): New.
8950 * gcc.c (print_version): New.
8951 (process_command): Don't print the version. Just set print_version.
8952 (main): Print version. Call subprocesses if print_version and
8953 verbose_flag are set.
8954 * opts.c (common_handle_option): Handle OPT_fversion.
8955
550918ca 89562009-04-16 Richard Guenther <rguenther@suse.de>
532bfb0a 8957 Ira Rosen <irar@il.ibm.com>
550918ca
RG
8958
8959 PR tree-optimization/39698
8960 * tree-vect-loop.c (get_initial_def_for_reduction): Use the
8961 type of the reduction variable. Only generate the def if
8962 it is needed.
8963
8964 * omp-low.c (expand_omp_for_generic): When converting to a pointer
8965 make sure to first convert to an integer of the same precision.
8966 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
8967 the type of the evolution correctly in computing the new
8968 induction variable base.
8969
54634841
RG
89702009-04-16 Richard Guenther <rguenther@suse.de>
8971
8972 PR middle-end/39625
8973 * tree-cfg.c (make_blocks): Split statements with to-be
8974 abnormal SSA names on the lhs.
8975
b6fc2cdb
PB
89762009-04-16 Paolo Bonzini <bonzini@gnu.org>
8977
8978 * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
8979 Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
8980 * c-typeck.c (really_start_incremental_init): Likewise.
8981 * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
8982 (TARGET_INITIALIZER): Remove it.
8983 * target.h (struct target): Remove vector_opaque_p.
8984 * tree.c (build_opaque_vector_type): New.
8985 * tree.h (TYPE_VECTOR_OPAQUE): New.
8986 (build_opaque_vector_type): Declare.
8987 * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
8988 * config/rs6000/rs6000.c (build_opaque_vector_type,
8989 rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
8990 (rs6000_init_builtins): Use build_opaque_vector_type for
8991 opaque_V4SI_type_node.
8992
a417cdd9
CM
89932009-04-15 Catherine Moore <clm@codesourcery.com>
8994
532bfb0a
AJ
8995 * debug.h (set_name): Declare.
8996 * dwarf2out.c (dwarf2out_set_name): Declare.
8997 (dwarf2_debug_hooks): Add set_name.
8998 (find_AT_string): New.
8999 (add_AT_string): Call find_AT_string.
9000 (dwarf2out_set_name): New.
9001 * cp/decl.c (grokdeclarator): Call set_name.
9002 * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
9003 * debug.c (do_nothing_debug_hooks): Likewise.
9004 * dbxout.c (dbx_debug_hooks): Likewise.
9005 * sdbout.c (sdb_debug_hooks): Likewise.
a417cdd9 9006
60839f5d 90072009-04-15 Michael Eager <eager@eagercon.com>
2c5cac98 9008
532bfb0a
AJ
9009 * config/rs6000/rs6000.c (rs6000_function_value): Set function return
9010 reg for single-precision FPU.
9011 * config/rs6000/rs6000.md (movsi_internal1): Only for
9012 !TARGET_SINGLE_FPU.
9013 (movsi_internal1_single): New. Add pattern to move SI values to/from
2c5cac98
ME
9014 single-precision FP regs.
9015
ada39f0b
RG
90162009-04-15 Richard Guenther <rguenther@suse.de>
9017
9018 * omp-low.c (lower_rec_input_clauses): Build correct address
9019 expressions.
9020 (expand_omp_for_generic): Fix multiplication type.
532bfb0a 9021 * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
ada39f0b
RG
9022 (generate_memset_zero): Fix types.
9023 * tree-profile.c (prepare_instrumented_value): Correctly
9024 widen a pointer.
9025
6866c6e8
ILT
90262009-04-15 Ian Lance Taylor <iant@google.com>
9027
9028 * c.opt (Wenum-compare): Enable for C and Objc. Initialize to -1.
9029 * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
9030 for -Wall and for -Wc++-compat.
9031 (c_common_post_options): For C++, set warn_enum_compare if not
9032 already set.
9033 * c-tree.h (struct c_expr): Add field original_type.
9034 (build_external_ref): Update declaration.
9035 * c-parser.c (c_parser_braced_init): Set original_type.
9036 (c_parser_initelt): Likewise.
9037 (c_parser_expr_no_commas): Likewise.
9038 (c_parser_conditional_expression): Likewise.
9039 (c_parser_cast_expression): Likewise.
9040 (c_parser_unary_expression): Likewise. Pull setting of
9041 original_code to top of function.
9042 (c_parser_sizeof_expression): Set original_type.
9043 (c_parser_alignof_expression): Likewise.
9044 (c_parser_postfix_expression): Likewise. Pull setting of
9045 original_code to top of function.
532bfb0a 9046 (c_parser_postfix_expression_after_paren_type): Set original_type.
6866c6e8
ILT
9047 (c_parser_postfix_expression_after_primary): Likewise.
9048 (c_parser_expression): Likewise.
9049 * c-typeck.c (build_external_ref): Add type parameter. Change all
9050 callers.
9051 (c_expr_sizeof_expr): Set original_type field.
9052 (parser_build_unary_op): Likewise.
9053 (parser_build_binary_op): Likewise. Optionally warn about
9054 comparisons of enums of different types.
9055 (digest_init): Set original_type field.
9056 (really_start_incremental_init): Likewise.
9057 (push_init_level, pop_init_level): Likewise.
9058 * doc/invoke.texi (Warning Options): -Wenum-compare now
9059 supported in C.
9060
f116fecf
RG
90612009-04-15 Richard Guenther <rguenther@suse.de>
9062
9063 * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
9064 out a necessary conversion.
9065 * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
9066 names we didn't value number.
9067 * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
9068
25e20805
RG
90692009-04-15 Richard Guenther <rguenther@suse.de>
9070
9071 PR tree-optimization/39764
9072 * tree-ssa-ccp.c (get_value): Canonicalize value with
9073 canonicalize_float_value.
9074
90cc3676
JH
90752009-04-15 Jan Hubicka <jh@suse.cz>
9076
9077 * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
9078 Wrong version of patch.
9079
6d14c006
JH
90802009-04-15 Jan Hubicka <jh@suse.cz>
9081
9082 * builtins.def (va_start, va_end, va_copy): Mark nothrow.
9083
5afaa917
NS
90842009-04-15 Nathan Sidwell <nathan@codesourcery.com>
9085
9086 * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
9087 our distinct integral and vector types.
9088
3b482fca
RAE
90892009-04-15 Rafael Avila de Espindola <espindola@google.com>
9090
9091 * class.c (build_vtbl_ref_1): Remove call to assemble_external.
9092 * init.c (build_vtbl_address): Remove call to assemble_external.
9093
6cd1d2e2
DJ
90942009-04-14 Daniel Jacobowitz <dan@codesourcery.com>
9095
9096 * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
9097 output for other floating point modes.
9098
dab71827
DN
90992009-04-14 Diego Novillo <dnovillo@google.com>
9100
9101 * diagnostic.c (diagnostic_report_diagnostic): Do not
9102 warn about loaded plugins for DK_ERROR and DK_WARNING.
9103 * c-decl.c (declspecs_add_type): Move call to
9104 invoke_plugin_callbacks ...
9105 * c-parser.c (c_parser_declspecs): ... here.
9106 * plugin.c (dump_active_plugins): Tidy output.
9107
68a607d8
DN
91082009-04-14 Diego Novillo <dnovillo@google.com>
9109 Le-Chun Wu <lcwu@google.com>
9110
9111 * configure.ac: Add --enable-plugin support.
9112 Define ENABLE_PLUGIN and PLUGINLIBS when specified.
9113 * Makefile.in (PLUGIN_H): Define.
9114 Export ENABLE_PLUGIN and GMPINC to site.exp.
9115 Add PLUGINLIBS to link command.
9116 Add/modify dependencies for plugin.o and files including plugin.h.
9117 (plugin.o): New.
9118 * config.in: Regenerate.
2ba9daa7 9119
68a607d8
DN
9120 * opts.c (common_handle_option): Handle OPT_fplugin_ and
9121 OPT_fplugin_arg_.
9122
91232009-04-14 Le-Chun Wu <lcwu@google.com>
9124
9125 * tree-pass.h (register_one_dump_file): Add a prototype for
9126 register_one_dump_file.
9127 * toplev.c (compile_file): Call initialize_plugins.
9128 (do_compile): Call invoke_plugin_callbacks.
9129 (toplev_main): Call invoke_plugin_callbacks.
9130 * common.opt: Add -fplugin= and -fplugin-arg-.
9131 * gcc-plugin.h: New public header file for plugins to include.
9132 * plugin.c: New source file.
9133 * plugin.h: New internal header file.
9134 * passes.c (register_one_dump_file): Make it external.
2ba9daa7 9135
68a607d8
DN
9136 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
9137
91382009-04-14 Diego Novillo <dnovillo@google.com>
9139
9140 * doc/plugins.texi: New.
9141 * doc/gccint.texi: Add reference to Plugins chapter.
9142 * doc/invoke.texi: Document -fplugin and -fplugin-arg
9143 * diagnostic.c (diagnostic_report_diagnostic): Warn about
9144 loaded plugins, if any.
9145 * timevar.def (TV_PLUGIN_INIT): Define.
9146 (TV_PLUGIN_RUN): Define.
9147 * plugin.c: Include timevar.h
9148 (plugins_active_p): New.
9149 (dump_active_plugins): New.
9150 (debug_active_plugins): New.
9151
50617257
JM
91522009-04-14 Joseph Myers <joseph@codesourcery.com>
9153
9154 * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
9155 library paths.
9156 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
9157
b32f6fff
KH
91582009-04-14 Kazu Hirata <kazu@codesourcery.com>
9159
9160 * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
9161 the same as a minus without a shift.
9162
85d04fa2
NC
91632009-04-14 Nick Clifton <nickc@redhat.com>
9164
9165 * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
9166 comparisons with small integers will always produce a short
9167 branch.
9168
e495a0c8
RAE
91692009-04-14 Rafael Avila de Espindola <espindola@google.com>
9170
9171 Merge:
e495a0c8
RAE
9172 2008-12-19 Diego Novillo <dnovillo@google.com>
9173
532bfb0a 9174 * cgraph.c (dump_cgraph_node): Show memory address of NODE.
e495a0c8 9175
ad41bd84 91762009-04-14 Richard Guenther <rguenther@suse.de>
587aa063
RG
9177
9178 * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
9179 verification.
9180 (verify_gimple_assign_binary): Likewise. Handle shifts and
9181 rotates correctly.
9182 (verify_gimple_phi): Print the mismatched argument position.
9183 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
9184 Fix types.
9185 (vect_update_init_of_dr): Likewise.
9186 * matrix-reorg.c (transform_access_sites): Do what the
9187 comment suggests.
9188 * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
9189
60839f5d 91902009-04-13 Michael Eager <eager@eagercon.com>
9eca1774
ME
9191
9192 * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
9193 _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
9194 * config/rs6000/xilinx.h: New. Spec for powerpc-xilinx-eabi
2ba9daa7 9195 * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
9eca1774
ME
9196 remove duplicate config
9197
b0e2d008
DR
91982009-04-13 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
9199
9200 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
9201 file_name:line_number type locator of the call site.
2ba9daa7 9202
1244a8b7
VM
92032009-04-13 Vladimir Makarov <vmakarov@redhat.com>
9204
9205 * genautomata.c: Put blank after comma.
9206 (automaton_decls): New.
9207 (struct unit_usage): Add comments to member next.
9208 (store_alt_unit_usage): Keep the list ordered.
9209 (unit_present_on_list_p, equal_alternatives_p): New.
9210 (check_regexp_units_distribution): Check units distribution
9211 correctness correctly.
9212 (main): Don't write automata if error is found. Return correct
9213 exit code.
2ba9daa7 9214
1244a8b7
VM
9215 * config/m68k/cf.md (cfv4_ds): Remove.
9216 (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
9217 cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
9218
9219 * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
9220 power4-load-ext, power4-store, power4-store-update,
9221 power4-fpstore, power4-fpstore-update, power4-two, power4-three,
9222 power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
9223 power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
9224 power4-sqrt, power4-isync): Modify reservation to make correct
9225 unit distribution to automata.
9226
9227 * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
9228 power5-store-update, power5-two, power5-three, power5-lmul,
9229 power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
2ba9daa7 9230
f7dd1864
AN
92312009-04-13 Adam Nemet <anemet@caviumnetworks.com>
9232
9233 * except.c (pass_set_nothrow_function_flags): Set name and add
9234 TODO_dump_func.
9235 (set_nothrow_function_flags): Mention in the dump file when
9236 changing a function to nothrow.
9237
59a1171f
OS
92382009-04-13 Ozkan Sezer <sezeroz@gmail.com>
9239
9240 PR/39066
9241 * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
9242 instead of unsigned long.
9243
934c2060
RR
92442009-04-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9245
f7dd1864
AN
9246 * config/arm/arm.c (return_used_this_function): Remove.
9247 (arm_output_function_prologue): Remove use of
934c2060 9248 return_used_this_function.
f7dd1864 9249 (output_return_instruction): Replace use of
934c2060
RR
9250 return_used_this_function
9251 by cfun->machine->return_used_this_function.
f7dd1864
AN
9252 (arm_output_epilogue): Likewise.
9253 (arm_output_function_epilogue): Likewise.
9254 (thumb_unexpanded_epilogue): Likewise.
9255 * config/arm/arm.h (struct machine_function):
934c2060 9256 New member return_used_this_function.
f7dd1864 9257
ae5cc016
MM
92582009-04-12 Mark Mitchell <mark@codesourcery.com>
9259
9260 * doc/install.texi: Correct description of default directory for
9261 --with-gxx-include-dir.
9262
a0ce68df 92632009-04-12 Eric Botcazou <ebotcazou@adacore.com>
849d624b
EB
9264
9265 * fold-const.c (build_range_check): Properly deal with enumeral and
9266 boolean base types.
9267
3906a4a1
SB
92682009-04-12 Steven Bosscher <steven@gcc.gnu.org>
9269
9270 * doc/invoke.texi (max_gcse_passes): Remove documentation.
9271 * params.def (PARAM_MAX_GCSE_PASSES): Remove.
9272 * params.h (MAX_GCSE_PASSES): Remove.
9273 * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
9274 in sequence. Remove ability to run multiple passes.
9275 (bypass_jumps): Report run as third CPROP pass.
9276
efaadb93
AN
92772009-04-12 Adam Nemet <anemet@caviumnetworks.com>
9278
9279 PR middle-end/39651
9280 * except.c (can_throw_external): Look at each insn in a SEQUENCE
9281 when deciding whether the whole SEQUENCE can throw.
9282
4c48007b
UB
92832009-04-12 Uros Bizjak <ubizjak@gmail.com>
9284
9285 PR target/39740
9286 * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
9287 offseted label references.
9288
b4104018
JH
92892009-04-11 Jan Hubicka <jh@suse.cz>
9290
9291 * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
9292
32848948
RG
92932009-04-11 Richard Guenther <rguenther@suse.de>
9294
9295 PR middle-end/39732
9296 * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
9297 return variables as TREE_ADDRESSABLE.
9298
8810712e
RG
92992009-04-11 Richard Guenther <rguenther@suse.de>
9300
9301 PR tree-optimization/39713
9302 * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
9303 reference trees have SSA_NAME operands.
9304
fa78c0c1
RG
93052009-04-11 Richard Guenther <rguenther@suse.de>
9306
9307 PR c/39712
9308 * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
9309 address expressions.
9310
4d722130
DK
93112009-04-11 Dave Korn <dave.korn.cygwin@gmail.com>
9312
9313 * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE): Update to
9314 match changes in Cygwin 1.7
9315 (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
9316 UINT_FAST16_TYPE, UINT_FAST32_TYPE): Likewise.
9317
567a90f5
PB
93182009-04-10 Paolo Bonzini <bonzini@gnu.org>
9319
9320 PR tree-optimization/39701
9321 * doc/invoke.texi (Optimization Options): Document change in
9322 meaning and initialization of -fdelete-null-pointer-checks.
9323
1ad2f450
L
93242009-04-10 H.J. Lu <hongjiu.lu@intel.com>
9325
9326 PR middle-end/39701
9327 * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
9328
9329 * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
9330 here.
9331
9332 * doc/invoke.texi: Update -fdelete-null-pointer-checks.
9333
1afc5373
CF
93342009-04-10 Chao-ying Fu <fu@mips.com>
9335
9336 * doc/tm.texi (Instruction Output): Document
9337 TARGET_ASM_FINAL_POSTSCAN_INSN.
9338 * target.h (final_postscan_insn): New field in asm_out.
9339 * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
9340 (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
9341 * final.c (final_scan_insn): Call
9342 targetm.asm_out.final_postscan_insn after outputting
9343 an asm macro and a normal instruction.
9344
9345 * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
9346 * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
9347 * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
9348 (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
9349 (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
9350
4d35e75c
PB
93512009-04-10 Paolo Bonzini <bonzini@gnu.org>
9352
9353 PR middle-end/39701
1ad2f450
L
9354 * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
9355 variables as non-NULL even with -fdelete-null-pointer-checks.
4d35e75c 9356
62c49b83
L
93572009-04-10 H.J. Lu <hongjiu.lu@intel.com>
9358
9359 * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
9360
80558628
L
93612009-04-09 H.J. Lu <hongjiu.lu@intel.com>
9362
9363 PR target/39678
9364 * config/i386/i386.c (classify_argument): Handle SCmode with
9365 (bit_offset % 64) != 0.
9366
8c70d28b
SL
93672009-04-09 Sandra Loosemore <sandra@codesourcery.com>
9368
9369 * doc/invoke.texi (Optimize Options): Add cross-reference to
9370 -Q --help=optimizers examples.
9371
e1ff19bf
BE
93722009-04-10 Ben Elliston <bje@au.ibm.com>
9373
9374 PR target/36800
9375 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
9376 regalign for the reg == fpr and TDmode case.
9377
52daca75
DA
93782009-04-09 David Ayers <ayers@fsfe.org>
9379
9380 PR objc/29200
9381 * objc/objc-act.c (warn_with_method): Remove helper function.
9382 (check_duplicates): Call warning and inform directly.
9383 (really_start_method): Likewise.
9384
b45f0e58
PB
93852009-04-09 Paolo Bonzini <bonzini@gnu.org>
9386
9387 * expmed.c (expand_divmod): Always use a comparison for a division
9388 by a large unsigned integer.
9389
1ad2f450
L
9390 * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
9391 for things others than variables or functions as nonzero.
b45f0e58 9392
748086b7
JJ
93932009-04-09 Nick Clifton <nickc@redhat.com>
9394
9395 * unwind-compat.c: Change copyright header to refer to version
9396 3 of the GNU General Public License with version 3.1 of the
9397 GCC Runtime Library Exception and to point readers at the
7a715bba 9398 COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
748086b7
JJ
9399 * config/alpha/crtfastmath.c: Likewise.
9400 * config/alpha/linux-unwind.h: Likewise.
9401 * config/alpha/qrnnd.asm: Likewise.
9402 * config/alpha/vms-crt0-64.c: Likewise.
9403 * config/alpha/vms-crt0.c: Likewise.
9404 * config/alpha/vms-dwarf2.asm: Likewise.
9405 * config/alpha/vms-dwarf2eh.asm: Likewise.
9406 * config/alpha/vms-psxcrt0-64.c: Likewise.
9407 * config/alpha/vms-psxcrt0.c: Likewise.
9408 * config/alpha/vms_tramp.asm: Likewise.
9409 * config/arc/initfini.c: Likewise.
9410 * config/arc/lib1funcs.asm: Likewise.
9411 * config/arm/bpabi-v6m.S: Likewise.
9412 * config/arm/bpabi.S: Likewise.
9413 * config/arm/bpabi.c: Likewise.
9414 * config/arm/crti.asm: Likewise.
9415 * config/arm/crtn.asm: Likewise.
9416 * config/arm/ieee754-df.S: Likewise.
9417 * config/arm/ieee754-sf.S: Likewise.
9418 * config/arm/lib1funcs.asm: Likewise.
9419 * config/arm/libunwind.S: Likewise.
9420 * config/arm/linux-atomic.c: Likewise.
9421 * config/arm/mmintrin.h: Likewise.
9422 * config/arm/pr-support.c: Likewise.
9423 * config/arm/unaligned-funcs.c: Likewise.
9424 * config/arm/unwind-arm.c: Likewise.
9425 * config/arm/unwind-arm.h: Likewise.
9426 * config/avr/libgcc.S: Likewise.
9427 * config/bfin/crti.s: Likewise.
9428 * config/bfin/crtlibid.s: Likewise.
9429 * config/bfin/crtn.s: Likewise.
9430 * config/bfin/lib1funcs.asm: Likewise.
9431 * config/bfin/linux-unwind.h: Likewise.
9432 * config/cris/arit.c: Likewise.
9433 * config/cris/cris_abi_symbol.c: Likewise.
9434 * config/darwin-64.c: Likewise.
9435 * config/darwin-crt2.c: Likewise.
9436 * config/darwin-crt3.c: Likewise.
9437 * config/darwin.h: Likewise.
9438 * config/dbxelf.h: Likewise.
9439 * config/dfp-bit.c: Likewise.
9440 * config/dfp-bit.h: Likewise.
9441 * config/elfos.h: Likewise.
9442 * config/fixed-bit.c: Likewise.
9443 * config/fixed-bit.h: Likewise.
9444 * config/fp-bit.c: Likewise.
9445 * config/fp-bit.h: Likewise.
9446 * config/fr30/crti.asm: Likewise.
9447 * config/fr30/crtn.asm: Likewise.
9448 * config/fr30/lib1funcs.asm: Likewise.
9449 * config/freebsd-spec.h: Likewise.
9450 * config/frv/cmovd.c: Likewise.
9451 * config/frv/cmovh.c: Likewise.
9452 * config/frv/cmovw.c: Likewise.
9453 * config/frv/frvbegin.c: Likewise.
9454 * config/frv/frvend.c: Likewise.
9455 * config/frv/lib1funcs.asm: Likewise.
9456 * config/glibc-stdint.h: Likewise.
9457 * config/h8300/clzhi2.c: Likewise.
9458 * config/h8300/crti.asm: Likewise.
9459 * config/h8300/crtn.asm: Likewise.
9460 * config/h8300/ctzhi2.c: Likewise.
9461 * config/h8300/fixunssfsi.c: Likewise.
9462 * config/h8300/lib1funcs.asm: Likewise.
9463 * config/h8300/parityhi2.c: Likewise.
9464 * config/h8300/popcounthi2.c: Likewise.
9465 * config/i386/ammintrin.h: Likewise.
9466 * config/i386/att.h: Likewise.
9467 * config/i386/avxintrin.h: Likewise.
9468 * config/i386/biarch64.h: Likewise.
9469 * config/i386/bmmintrin.h: Likewise.
9470 * config/i386/cpuid.h: Likewise.
9471 * config/i386/cross-stdarg.h: Likewise.
9472 * config/i386/crtfastmath.c: Likewise.
9473 * config/i386/crtprec.c: Likewise.
9474 * config/i386/cygming-crtbegin.c: Likewise.
9475 * config/i386/cygming-crtend.c: Likewise.
9476 * config/i386/cygwin.asm: Likewise.
9477 * config/i386/emmintrin.h: Likewise.
9478 * config/i386/gmm_malloc.h: Likewise.
9479 * config/i386/gthr-win32.c: Likewise.
9480 * config/i386/i386.h: Likewise.
9481 * config/i386/immintrin.h: Likewise.
9482 * config/i386/linux-unwind.h: Likewise.
9483 * config/i386/linux64.h: Likewise.
9484 * config/i386/mm3dnow.h: Likewise.
9485 * config/i386/mmintrin-common.h: Likewise.
9486 * config/i386/mmintrin.h: Likewise.
9487 * config/i386/nmmintrin.h: Likewise.
9488 * config/i386/pmm_malloc.h: Likewise.
9489 * config/i386/pmmintrin.h: Likewise.
9490 * config/i386/smmintrin.h: Likewise.
9491 * config/i386/sol2-c1.asm: Likewise.
9492 * config/i386/sol2-ci.asm: Likewise.
9493 * config/i386/sol2-cn.asm: Likewise.
9494 * config/i386/sol2-gc1.asm: Likewise.
9495 * config/i386/tmmintrin.h: Likewise.
9496 * config/i386/unix.h: Likewise.
9497 * config/i386/w32-unwind.h: Likewise.
9498 * config/i386/wmmintrin.h: Likewise.
9499 * config/i386/x86-64.h: Likewise.
9500 * config/i386/x86intrin.h: Likewise.
9501 * config/i386/xmmintrin.h: Likewise.
9502 * config/ia64/crtbegin.asm: Likewise.
9503 * config/ia64/crtend.asm: Likewise.
9504 * config/ia64/crtfastmath.c: Likewise.
9505 * config/ia64/crti.asm: Likewise.
9506 * config/ia64/crtn.asm: Likewise.
9507 * config/ia64/fde-glibc.c: Likewise.
9508 * config/ia64/lib1funcs.asm: Likewise.
9509 * config/ia64/linux-unwind.h: Likewise.
9510 * config/ia64/quadlib.c: Likewise.
9511 * config/ia64/unwind-ia64.c: Likewise.
9512 * config/linux.h: Likewise.
9513 * config/m32c/m32c-lib1.S: Likewise.
9514 * config/m32c/m32c-lib2-trapv.c: Likewise.
9515 * config/m32c/m32c-lib2.c: Likewise.
9516 * config/m32r/initfini.c: Likewise.
9517 * config/m68hc11/larith.asm: Likewise.
9518 * config/m68hc11/m68hc11-crt0.S: Likewise.
9519 * config/m68k/cf.md: Likewise.
9520 * config/m68k/crti.s: Likewise.
9521 * config/m68k/crtn.s: Likewise.
9522 * config/m68k/lb1sf68.asm: Likewise.
9523 * config/m68k/linux-unwind.h: Likewise.
9524 * config/mcore/crti.asm: Likewise.
9525 * config/mcore/crtn.asm: Likewise.
9526 * config/mcore/lib1.asm: Likewise.
9527 * config/mips/linux-unwind.h: Likewise.
9528 * config/mips/loongson.h: Likewise.
9529 * config/mips/mips16.S: Likewise.
9530 * config/mmix/crti.asm: Likewise.
9531 * config/mmix/crtn.asm: Likewise.
9532 * config/pa/fptr.c: Likewise.
9533 * config/pa/hpux-unwind.h: Likewise.
9534 * config/pa/lib2funcs.asm: Likewise.
9535 * config/pa/linux-atomic.c: Likewise.
9536 * config/pa/linux-unwind.h: Likewise.
9537 * config/pa/milli64.S: Likewise.
9538 * config/pa/quadlib.c: Likewise.
9539 * config/pa/stublib.c: Likewise.
9540 * config/picochip/libgccExtras/adddi3.asm: Likewise.
9541 * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
9542 * config/picochip/libgccExtras/ashlsi3.c: Likewise.
9543 * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
9544 * config/picochip/libgccExtras/ashrsi3.c: Likewise.
9545 * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
9546 * config/picochip/libgccExtras/divmod15.asm: Likewise.
9547 * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
9548 * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
9549 * config/picochip/libgccExtras/longjmp.asm: Likewise.
9550 * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
9551 * config/picochip/libgccExtras/lshrsi3.c: Likewise.
9552 * config/picochip/libgccExtras/parityhi2.asm: Likewise.
9553 * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
9554 * config/picochip/libgccExtras/setjmp.asm: Likewise.
9555 * config/picochip/libgccExtras/subdi3.asm: Likewise.
9556 * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
9557 * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
9558 * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
9559 * config/rs6000/750cl.h: Likewise.
9560 * config/rs6000/altivec.h: Likewise.
9561 * config/rs6000/biarch64.h: Likewise.
9562 * config/rs6000/crtresfpr.asm: Likewise.
9563 * config/rs6000/crtresgpr.asm: Likewise.
9564 * config/rs6000/crtresxfpr.asm: Likewise.
9565 * config/rs6000/crtresxgpr.asm: Likewise.
9566 * config/rs6000/crtsavfpr.asm: Likewise.
9567 * config/rs6000/crtsavgpr.asm: Likewise.
9568 * config/rs6000/darwin-asm.h: Likewise.
9569 * config/rs6000/darwin-fallback.c: Likewise.
9570 * config/rs6000/darwin-fpsave.asm: Likewise.
9571 * config/rs6000/darwin-ldouble.c: Likewise.
9572 * config/rs6000/darwin-tramp.asm: Likewise.
9573 * config/rs6000/darwin-unwind.h: Likewise.
9574 * config/rs6000/darwin-vecsave.asm: Likewise.
9575 * config/rs6000/darwin-world.asm: Likewise.
9576 * config/rs6000/e500crtres32gpr.asm: Likewise.
9577 * config/rs6000/e500crtres64gpr.asm: Likewise.
9578 * config/rs6000/e500crtres64gprctr.asm: Likewise.
9579 * config/rs6000/e500crtrest32gpr.asm: Likewise.
9580 * config/rs6000/e500crtrest64gpr.asm: Likewise.
9581 * config/rs6000/e500crtresx32gpr.asm: Likewise.
9582 * config/rs6000/e500crtresx64gpr.asm: Likewise.
9583 * config/rs6000/e500crtsav32gpr.asm: Likewise.
9584 * config/rs6000/e500crtsav64gpr.asm: Likewise.
9585 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
9586 * config/rs6000/e500crtsavg32gpr.asm: Likewise.
9587 * config/rs6000/e500crtsavg64gpr.asm: Likewise.
9588 * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
9589 * config/rs6000/eabi-ci.asm: Likewise.
9590 * config/rs6000/eabi-cn.asm: Likewise.
9591 * config/rs6000/eabi.asm: Likewise.
9592 * config/rs6000/linux-unwind.h: Likewise.
9593 * config/rs6000/linux64.h: Likewise.
9594 * config/rs6000/paired.h: Likewise.
9595 * config/rs6000/paired.md: Likewise.
9596 * config/rs6000/ppc64-fp.c: Likewise.
9597 * config/rs6000/ppu_intrinsics.h: Likewise.
9598 * config/rs6000/rs6000.h: Likewise.
9599 * config/rs6000/si2vmx.h: Likewise.
9600 * config/rs6000/sol-ci.asm: Likewise.
9601 * config/rs6000/sol-cn.asm: Likewise.
9602 * config/rs6000/spe.h: Likewise.
9603 * config/rs6000/spu2vmx.h: Likewise.
9604 * config/rs6000/sysv4.h: Likewise.
9605 * config/rs6000/tramp.asm: Likewise.
9606 * config/rs6000/vec_types.h: Likewise.
9607 * config/s390/linux-unwind.h: Likewise.
9608 * config/s390/tpf-unwind.h: Likewise.
9609 * config/score/crti.asm: Likewise.
9610 * config/score/crtn.asm: Likewise.
9611 * config/sh/crt1.asm: Likewise.
9612 * config/sh/crti.asm: Likewise.
9613 * config/sh/crtn.asm: Likewise.
9614 * config/sh/divtab-sh4-300.c: Likewise.
9615 * config/sh/divtab-sh4.c: Likewise.
9616 * config/sh/divtab.c: Likewise.
9617 * config/sh/lib1funcs-4-300.asm: Likewise.
9618 * config/sh/lib1funcs-Os-4-200.asm: Likewise.
9619 * config/sh/lib1funcs.asm: Likewise.
9620 * config/sh/lib1funcs.h: Likewise.
9621 * config/sh/linux-atomic.asm: Likewise.
9622 * config/sh/linux-unwind.h: Likewise.
9623 * config/sh/shmedia.h: Likewise.
9624 * config/sh/sshmedia.h: Likewise.
9625 * config/sh/ushmedia.h: Likewise.
9626 * config/sparc/crtfastmath.c: Likewise.
9627 * config/sparc/linux-unwind.h: Likewise.
9628 * config/sparc/sol2-c1.asm: Likewise.
9629 * config/sparc/sol2-ci.asm: Likewise.
9630 * config/sparc/sol2-cn.asm: Likewise.
9631 * config/spu/divmodti4.c: Likewise.
9632 * config/spu/divv2df3.c: Likewise.
9633 * config/spu/float_disf.c: Likewise.
9634 * config/spu/float_unsdidf.c: Likewise.
9635 * config/spu/float_unsdisf.c: Likewise.
9636 * config/spu/float_unssidf.c: Likewise.
9637 * config/spu/mfc_multi_tag_release.c: Likewise.
9638 * config/spu/mfc_multi_tag_reserve.c: Likewise.
9639 * config/spu/mfc_tag_release.c: Likewise.
9640 * config/spu/mfc_tag_reserve.c: Likewise.
9641 * config/spu/mfc_tag_table.c: Likewise.
9642 * config/spu/multi3.c: Likewise.
9643 * config/spu/spu_internals.h: Likewise.
9644 * config/spu/spu_intrinsics.h: Likewise.
9645 * config/spu/spu_mfcio.h: Likewise.
9646 * config/spu/vec_types.h: Likewise.
9647 * config/spu/vmx2spu.h: Likewise.
9648 * config/stormy16/stormy16-lib2.c: Likewise.
9649 * config/svr4.h: Likewise.
9650 * config/sync.c: Likewise.
9651 * config/v850/lib1funcs.asm: Likewise.
9652 * config/vxlib-tls.c: Likewise.
9653 * config/vxlib.c: Likewise.
9654 * config/vxworks-dummy.h: Likewise.
9655 * config/xtensa/crti.asm: Likewise.
9656 * config/xtensa/crtn.asm: Likewise.
9657 * config/xtensa/ieee754-df.S: Likewise.
9658 * config/xtensa/ieee754-sf.S: Likewise.
9659 * config/xtensa/lib1funcs.asm: Likewise.
9660 * config/xtensa/lib2funcs.S: Likewise.
9661 * config/xtensa/linux-unwind.h: Likewise.
9662 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
9663 * config/xtensa/unwind-dw2-xtensa.h: Likewise.
9664 * coretypes.h: Likewise.
9665 * crtstuff.c: Likewise.
9666 * defaults.h: Likewise.
9667 * dwarf2.h: Likewise.
9668 * emutls.c: Likewise.
9669 * gbl-ctors.h: Likewise.
9670 * gcov-io.h: Likewise.
9671 * ginclude/float.h: Likewise.
9672 * ginclude/iso646.h: Likewise.
9673 * ginclude/stdarg.h: Likewise.
9674 * ginclude/stdbool.h: Likewise.
9675 * ginclude/stddef.h: Likewise.
9676 * ginclude/stdfix.h: Likewise.
9677 * ginclude/stdint-gcc.h: Likewise.
9678 * ginclude/tgmath.h: Likewise.
9679 * gthr-aix.h: Likewise.
9680 * gthr-dce.h: Likewise.
9681 * gthr-gnat.c: Likewise.
9682 * gthr-gnat.h: Likewise.
9683 * gthr-lynx.h: Likewise.
9684 * gthr-mipssde.h: Likewise.
9685 * gthr-nks.h: Likewise.
9686 * gthr-posix.c: Likewise.
9687 * gthr-posix.h: Likewise.
9688 * gthr-posix95.h: Likewise.
9689 * gthr-rtems.h: Likewise.
9690 * gthr-single.h: Likewise.
9691 * gthr-solaris.h: Likewise.
9692 * gthr-tpf.h: Likewise.
9693 * gthr-vxworks.h: Likewise.
9694 * gthr-win32.h: Likewise.
9695 * gthr.h: Likewise.
9696 * libgcc2.c: Likewise.
9697 * libgcc2.h: Likewise.
9698 * libgcov.c: Likewise.
9699 * tsystem.h: Likewise.
9700 * typeclass.h: Likewise.
9701 * unwind-c.c: Likewise.
9702 * unwind-compat.h: Likewise.
9703 * unwind-dw2-fde-compat.c: Likewise.
9704 * unwind-dw2-fde-darwin.c: Likewise.
9705 * unwind-dw2-fde-glibc.c: Likewise.
9706 * unwind-dw2-fde.c: Likewise.
9707 * unwind-dw2-fde.h: Likewise.
9708 * unwind-dw2.c: Likewise.
9709 * unwind-dw2.h: Likewise.
9710 * unwind-generic.h: Likewise.
9711 * unwind-pe.h: Likewise.
9712 * unwind-sjlj.c: Likewise.
9713 * unwind.inc: Likewise.
9714 * config/arm/neon-gen.ml: Change generated copyright header to
9715 refer to version 3 of the GNU General Public License with
9716 version 3.1 of the GCC Runtime Library Exception and to point
9717 readers at the COPYING3 and COPYING3.RUNTIME files and the
9718 FSF's license web page.
9719 * config/arm/arm_neon.h: Regenerate.
9720
97212009-04-09 Jakub Jelinek <jakub@redhat.com>
9722
9723 * config/cris/cris.md: Change copyright header to refer to version
9724 3 of the GNU General Public License.
9725 * doc/install.texi2html: Change copyright header to refer to version
9726 3 of the GNU General Public License and to point readers at the
9727 COPYING3 file and the FSF's license web page.
9728 * config/vax/linux.h: Likewise.
9729
4a77c72b
PB
97302009-04-09 Paolo Bonzini <bonzini@gnu.org>
9731
1ad2f450
L
9732 * config/i386/i386.md (cmpcc): New.
9733 * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
9734 (sync_compare_and_swap_cc*): Delete.
9735
9736 * config/s390/s390.c (s390_compare_emitted): Remove.
9737 (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
9738 s390_compare_emitted used to be handled. Assert that modes match.
9739 (s390_emit_compare_and_swap): Use s390_emit_compare, do not
9740 refer to sync_compare_and_swap_ccsi.
9741 * config/s390/s390.h (s390_compare_emitted): Remove.
9742 * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
9743 instead of s390_compare_emitted.
9744 (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
9745 instead of s390_compare_emitted.
9746 * config/s390/s390.md (cmpcc): New.
9747 (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
9748 CC_REGNUM, do not pretend it's set.
9749 (sync_compare_and_swap_cc*): Delete.
9750 * config/s390/predicates.md (cc_reg_operand): New.
9751
9752 * expr.c (sync_compare_and_swap_cc): Delete.
9753 * optabs.h (sync_compare_and_swap_cc): Delete.
9754 * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
9755 is being used with can_compare_p.
9756 (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
9757 (find_cc_set): New.
9758 (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
9759 look for a MODE_CC set instead. Use emit_store_flag.
9760 (expand_compare_and_swap_loop): Likewise, with some additional
9761 complication to avoid a force_reg when useless. Use
9762 emit_cmp_and_jump_insns.
9763 * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
9764 * doc/md.texi (sync_compare_and_swap_cc): Merge with
9765 sync_compare_and_swap documentation.
4a77c72b 9766
0c0efb33
JH
97672009-04-09 Jan Hubicka <jh@suse.cz>
9768
9769 * except.c (find_prev_try): Break out from ....
9770 (duplicate_eh_regions): ... here; properly update prev_try pointers
9771 when duplication part of tree.
9772 (dump_eh_tree): Improve dumping.
9773 (verify_eh_region): New.
9774 (verify_eh_tree): Use it.
9775
22a65a54
RG
97762009-04-06 Richard Guenther <rguenther@suse.de>
9777
9778 * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
9779 &ARRAY addresses by adjusting their types and prepending
9780 a conversion.
9781 * tree-cfg.c (verify_gimple_assign_single): Verify that
9782 addresses are correct.
9783
f76968e6
RG
97842009-04-09 Richard Guenther <rguenther@suse.de>
9785
9786 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
9787 indices into an array reference if possible.
9788 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
9789 Fold POINTER_PLUS_EXPR statements with invariant address.
9790
c90c5fb5
AM
97912009-04-09 Alan Modra <amodra@bigpond.net.au>
9792
9793 PR target/39634
9794 * config.gcc (powerpc64-*-linux*): Always build biarch.
9795
17cede2e
JM
97962009-04-09 Joseph Myers <joseph@codesourcery.com>
9797
9798 PR c/39613
9799 * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
9800 it and pedwarn if this results in an INTEGER_CST.
9801
a3337ea2
KG
98022009-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9803
9804 * doc/install.texi: Update minimum GMP version. Remove obsolete
9805 text in MPFR section.
9806
ce9ba79b
JJ
98072009-04-08 Jakub Jelinek <jakub@redhat.com>
9808
9809 * dwarf2out.c (class_scope_p): New static inline.
9810 (class_or_namespace_scope_p): Use it.
9811 (gen_variable_die): Use DW_TAG_member tag for static data member
9812 declarations instead of DW_TAG_variable.
9813
4f0ae266
JJ
9814 PR middle-end/39573
9815 * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
9816 variables.
9817
d27f0ddc
RG
98182009-04-08 Richard Guenther <rguenther@suse.de>
9819
9820 * tree-ssa-sccvn.c (valueize_refs): Do not continue to
9821 valueize random data.
9822
557cc596
DE
98232009-04-08 David Edelsohn <edelsohn@gnu.org>
9824
9825 * config.gcc (aix tm_file): Add aix-stdint.h.
9826 (aix tm clause use_gcc_stdint): Set to wrap.
9827 * config/rs6000/aix-stdint.h: New file.
2ba9daa7 9828
75ccc1e7
RG
98292009-04-08 Richard Guenther <rguenther@suse.de>
9830
9831 PR middle-end/36291
9832 * tree-dfa.c (add_referenced_var): Do not recurse into
9833 global initializers.
9834 * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
9835 exposed variables.
9836 (fold_const_aggregate_ref): Likewise.
9837
c6963675
PB
98382009-04-08 Paolo Bonzini <bonzini@gnu.org>
9839
6c44cf79
L
9840 * recog.c (ordered_comparison_operator): New.
9841 * gensupport.c (std_preds): Add it.
c6963675
PB
9842 * doc/md.texi (Machine-Independent Predicates): Document it.
9843
6d07ad98
JH
98442009-04-08 Jan Hubicka <jh@suse.cz>
9845
9846 * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
9847 * function.h (rtl_eh): Remove exception_handler_label_map.
9848 * except.c (ehl_hash, ehl_eq, add_ehl_entry,
9849 remove_exception_handler_label, for_each_eh_label_1): Remove.
9850 (rtl_remove_unreachable_regions): Remove.
9851 (convert_from_eh_region_ranges): Do not remove unreachable regions.
9852 (find_exception_handler_labels): Don't build the hashtable.
9853 (maybe_remove_eh_handler): Remove.
9854 (for_each_eh_label): Rewrite to walk the tree.
9855 (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
9856 * except.h (maybe_remove_eh_handler): Remove.
9857 * passes.c (init_optimization_passes): Schedule second EH cleanup
9858 before out-of-ssa.
9859 * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
9860 cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
9861
7ddf71e3
PB
98622009-04-08 Paolo Bonzini <bonzini@gnu.org>
9863
9864 * genoutput.c (validate_optab_operands): New.
9865 (gen_insn, gen_expand): Call it.
9866
9867 * genflags.c (gen_insn): Detect misused iterators.
9868 (main): Pass line_no to gen_insn, exit with status 1 on error.
9869
9870 * genextract.c (line_no): Make global.
9871 (VEC_safe_set_locstr): Change assertion to error message.
9872 (main): Exit with status 1 on error.
9873
4d84fe7c
JM
98742009-04-08 Joseph Myers <joseph@codesourcery.com>
9875
9876 PR c/39614
9877 PR c/39673
9878 * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
9879 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
9880 EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
9881 * c-convert.c (convert): Do not call fold on results of conversion
9882 functions when the result is a C_MAYBE_CONST_EXPR.
9883 * c-parser.c (c_parser_postfix_expression): Do not fold condition
9884 of __builtin_choose_expr.
9885 * c-typeck.c (remove_c_maybe_const_expr): New.
9886 (build_unary_op, build_conditional_expr, build_compound_expr,
9887 build_binary_op, c_objc_common_truthvalue_conversion): Call
9888 remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
9889 integer operands.
9890
60839f5d 98912009-04-08 Bingfeng Mei <bmei@broadcom.com>
d1d1c602 9892
2ba9daa7 9893 * fold-const.c (const_binop): Combine two VECTOR_CST under operation
6c44cf79 9894 CODE to produce a new one. Add a prototype to use fold_convert_const
d1d1c602 9895
8e481a2c
DS
98962009-04-08 Danny Smith <dannysmith@users.sourceforge.net>
9897
9898 PR bootstrap/39660
9899 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
9900 mix declarations and code.
9901
ee618c17
BE
99022009-04-08 Ben Elliston <bje@au.ibm.com>
9903
9904 * gcc.c: Replace `CC' with `GCC' throughout.
9905
f2a758a2
L
99062009-04-07 H.J. Lu <hongjiu.lu@intel.com>
9907
9908 * doc/invoke.texi: Document Atom support.
9909
6ea2bd47
JM
99102009-04-07 Jason Merrill <jason@redhat.com>
9911
9912 PR c++/25185
9913 * c-common.h, c-common.c: Add flag_pretty_templates.
9914 * c-opts.c (c_common_handle_option): Set it.
9915 * c.opt: Add -fno-pretty-templates.
9916 * doc/invoke.texi (C++ Dialect Options): Likewise.
9917
fcb82ab0
UB
99182009-04-07 Uros Bizjak <ubizjak@gmail.com>
9919
9920 * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
9921 (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
9922 (ia64_expand_builtin): Likewise.
9923
dc5e7298
MJ
99242009-04-07 Martin Jambor <mjambor@suse.cz>
9925
9926 * tree-ssa-alias.c (refs_may_alias_p_1): Check for
9927 is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
9928 ADDR_EXPRS are include too.
9929
0609b355
RG
99302009-04-07 Richard Guenther <rguenther@suse.de>
9931
9932 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
9933 decls are only used if passes as parameters or if they are
9934 local statics and the call is not to a builtin.
9935 (call_may_clobber_ref_p_1): Likewise.
9936
d8e535fa
PB
99372009-04-07 Paolo Bonzini <bonzini@gnu.org>
9938
9939 * expr.c (do_store_flag): Remove last argument. Simplify code
9940 to avoid duplication of tests already done by can_compare_p.
9941 (expand_expr_real_1): Adjust caller.
9942
c3c64f50
PB
99432009-04-07 Paolo Bonzini <bonzini@gnu.org>
9944
fcb82ab0
UB
9945 * optabs.c (can_compare_p): Test the predicate of a
9946 cbranch and cstore pattern.
c3c64f50 9947
9a53bc17
PB
99482009-04-07 Paolo Bonzini <bonzini@gnu.org>
9949
fcb82ab0
UB
9950 * expr.c (convert_move): Use emit_store_flag instead of
9951 "emulating" it.
9a53bc17 9952
67b8f1c1
PB
99532009-04-07 Paolo Bonzini <bonzini@gnu.org>
9954
fcb82ab0
UB
9955 * config/i386/i386.c (ix86_compare_emitted): Remove.
9956 (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
9957 ix86_compare_op0 like ix86_compare_emitted used to be handled.
9958 * config/i386/i386.h (ix86_compare_emitted): Remove.
9959 * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
9960 instead of ix86_compare_emitted.
9961 * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
67b8f1c1 9962
44509946
AS
99632009-04-07 Andrew Stubbs <ams@codesourcery.com>
9964
9965 * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
9966 Add t-sysroot-suffix to tmake_file.
9967 * config/print-sysroot-suffix.sh: New file.
9968 * config/t-sysroot-suffix: New file.
9969
ca22d882
BE
99702009-04-07 Ben Elliston <bje@au.ibm.com>
9971
9972 * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
9973 as the latter produces a warning when the target does not support
9974 infinity.
9975
95aac11b
BE
99762009-04-07 Ben Elliston <bje@au.ibm.com>
9977
9978 * dfp.c: Replace type punning assignments with memcpy throughout.
9979 * Makefile.in (dfp.o-warn): Remove.
2ba9daa7 9980
633dd061
AM
99812009-04-07 Alan Modra <amodra@bigpond.net.au>
9982
9983 PR target/39634
9984 * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
9985 Include soft-fp/t-softfp after rs6000/t-linux64.
9986
fe0a25ec
EB
99872009-04-06 Eric Botcazou <ebotcazou@adacore.com>
9988
9989 * stor-layout.c (set_sizetype): Use the full precision of their
9990 machine mode for bitsize types.
9991
0c011bc3
L
99922009-04-06 H.J. Lu <hongjiu.lu@intel.com>
9993
9994 * config/i386/i386.md: Revert 2 accidental checkins.
9995
b6837b94 99962009-04-06 Joey Ye <joey.ye@intel.com>
60839f5d 9997 Xuepeng Guo <xuepeng.guo@intel.com>
b6837b94
JY
9998 H.J. Lu <hongjiu.lu@intel.com>
9999
10000 Atom pipeline model, tuning and insn selection.
10001 * config.gcc (atom): Add atom config options and target.
10002
10003 * config/i386/atom.md: New.
10004
10005 * config/i386/i386.c (atom_cost): New cost.
10006 (m_ATOM): New macro flag.
10007 (initial_ix86_tune_features): Set m_ATOM.
10008 (x86_accumulate_outgoing_args): Likewise.
10009 (x86_arch_always_fancy_math_387): Likewise.
10010 (processor_target): Add Atom cost.
10011 (cpu_names): Add Atom cpu name.
10012 (override_options): Set Atom ISA.
10013 (ix86_issue_rate): New case PROCESSOR_ATOM.
10014 (ix86_adjust_cost): Likewise.
10015
10016 * config/i386/i386.h (TARGET_ATOM): New target macro.
10017 (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
10018 (TARGET_OPT_AGU): New target option.
10019 (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
10020 (processor_type): Add PROCESSOR_ATOM.
10021
10022 * config/i386/i386.md (cpu): Add new value "atom".
10023 (use_carry, movu): New attr.
10024 (atom.md): Include atom.md.
10025 (adddi3_carry_rex64): Set attr "use_carry".
10026 (addqi3_carry): Likewise.
10027 (addhi3_carry): Likewise.
10028 (addsi3_carry): Likewise.
10029 (*addsi3_carry_zext): Likewise.
10030 (subdi3_carry_rex64): Likewise.
10031 (subqi3_carry): Likewise.
10032 (subhi3_carry): Likewise.
10033 (subsi3_carry): Likewise.
10034 (x86_movdicc_0_m1_rex64): Likewise.
10035 (*x86_movdicc_0_m1_se): Likewise.
10036 (x86_movsicc_0_m1): Likewise.
10037 (*x86_movsicc_0_m1_se): Likewise.
10038 (*adddi_1_rex64): Emit add insn as much as possible.
10039 (*addsi_1): Likewise.
10040 (return_internal): Set atom_unit.
10041 (return_internal_long): Likewise.
10042 (return_pop_internal): Likewise.
10043 (*rcpsf2_sse): Set atom_sse_attr attr.
10044 (*qrt<mode>2_sse): Likewise.
10045 (*prefetch_sse): Likewise.
10046
10047 * config/i386/i386-c.c (ix86_target_macros_internal): New case
10048 PROCESSOR_ATOM.
10049 (ix86_target_macros_internal): Likewise.
10050
10051 * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
10052 (*prefetch_sse_rex): Likewise.
10053 (sse_rcpv4sf2): Likewise.
10054 (sse_vmrcpv4sf2): Likewise.
10055 (sse_sqrtv4sf2): Likewise.
10056 (<sse>_vmsqrt<mode>2): Likewise.
10057 (sse_ldmxcsr): Likewise.
10058 (sse_stmxcsr): Likewise.
10059 (*sse_sfence): Likewise.
10060 (sse2_clflush): Likewise.
10061 (*sse2_mfence): Likewise.
10062 (*sse2_lfence): Likewise.
10063 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
10064 (<sse>_movup<ssemodesuffixf2c>): Likewise.
10065 (avx_movdqu<avxmodesuffix>): Likewise.
10066 (avx_lddqu<avxmodesuffix>): Likewise.
10067 (sse2_movntv2di): Change attr "type" to "ssemov".
10068 (sse2_movntsi): Likewise.
10069 (rsqrtv8sf2): Change attr "type" to "sseadd".
10070 (sse3_addsubv2df3): Set attr "atom_unit".
10071 (sse3_h<plusminus_insn>v4sf3): Likewise.
10072 (*sse2_pmaddwd): Likewise.
10073 (*vec_extractv2di_1_rex64): Likewise.
10074 (*vec_extractv2di_1_avx): Likewise.
10075 (sse2_psadbw): Likewise.
10076 (ssse3_phaddwv8hi3): Likewise.
10077 (ssse3_phaddwv4hi3): Likewise.
10078 (ssse3_phadddv4si3): Likewise.
10079 (ssse3_phadddv2si3): Likewise.
10080 (ssse3_phaddswv8hi3): Likewise.
10081 (ssse3_phaddswv4hi3): Likewise.
10082 (ssse3_phsubwv8hi3): Likewise.
10083 (ssse3_phsubwv4hi3): Likewise.
10084 (ssse3_phsubdv4si3): Likewise.
10085 (ssse3_phsubdv2si3): Likewise.
10086 (ssse3_phsubswv8hi3): Likewise.
10087 (ssse3_phsubswv4hi3): Likewise.
10088 (ssse3_pmaddubsw128): Likewise.
10089 (sse3_pmaddubsw: Likewise.
10090 (ssse3_palignrti): Likewise.
10091 (ssse3_palignrdi): Likewise.
10092
53e350d3
GP
100932009-04-06 Gerald Pfeifer <gerald@pfeifer.com>
10094
10095 * doc/install.texi (Specific): Fix two cross-references to MinGW.
10096
439ef907
RG
100972009-04-06 Richard Guenther <rguenther@suse.de>
10098
10099 PR tree-optimization/28868
10100 * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
10101 of which PHI results we inserted.
10102 (insert_into_preds_of_block): Record inserted PHIs.
10103 (eliminate): Eliminate redundant PHI nodes.
10104 (init_pre): Init inserted_phi_names.
10105
4bad83f5
RG
101062009-04-06 Richard Guenther <rguenther@suse.de>
10107
10108 PR tree-optimization/39643
10109 * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
10110 IMAGPART_EXPRs of complex constants.
10111 (execute_fold_all_builtins): If we folded a call queue
10112 TODO_update_address_taken.
10113
570c4247
JH
101142009-04-06 Jan Hubicka <jh@suse.cz>
10115
10116 PR middle-end/39659
10117 * except.c (remove_unreachable_regions): Propagate may_contain_throw
10118 flag.
10119
a460d7a1
AS
101202009-04-06 Andrew Stubbs <ams@codesourcery.com>
10121
10122 * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
10123 delay slot.
10124 (ic_invalidate_array): Likewise.
10125
60839f5d 101262009-04-06 Hariharan Sandanagobalane <hariharan@picochip.com>
6bdf8c2e
HS
10127
10128 * calls.c (emit_library_call_value_1): Fix a problem with parameter
10129 alignment for library calls.
10130
7d253f6e
DS
101312009-04-06 Danny Smith <dannysmith@users.sourceforge.net>
10132
10133 * config.gcc (mingw32 tm_file): Add mingw-stdint.h.
10134 (mingw32 tm clause use_gcc_stdint): Set to wrap.
10135 * config/i386/mingw-stdint.h: New file.
10136
941c3614
RB
101372009-04-05 Richard Guenther <rguenther@suse.de>
10138
10139 PR tree-optimization/39648
10140 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
10141 our &A vs. &A[0] IL deficiencies.
10142
12633413
JH
101432009-04-04 Jan Hubicka <jh@suse.cz>
10144
941c3614
RB
10145 * except.c (sjlj_find_directly_reachable_regions): Be ready for
10146 removed toplevel regions.
12633413
JH
10147 (sjlj_mark_call_sites): Likewise.
10148
bb2aaded
DK
101492009-04-04 Dave Korn <dave.korn.cygwin@gmail.com>
10150
10151 * config.gcc (cygwin tm_file): Add cygwin-stdint.h.
10152 (cygwin tm clause use_gcc_stdint): Set to wrap.
10153 * config/i386/cygwin-stdint.h: New file.
10154
86290011
RG
101552009-04-04 Richard Guenther <rguenther@suse.de>
10156
10157 * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
10158 * tree-ssa-copy.c (init_copy_prop): Do not propagate through
10159 single-argument PHIs if we are in loop-closed SSA form.
10160 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
10161 for the pre-condition.
10162 (slpeel_tree_peel_loop_to_edge): Likewise.
10163 (vect_build_loop_niters): Take an optional sequence to append stmts.
10164 (vect_generate_tmps_on_preheader): Likewise.
10165 (vect_do_peeling_for_loop_bound): Take extra guards for the
10166 pre-condition.
10167 (vect_do_peeling_for_alignment): Adjust. Unconditionally apply
10168 the cost model check.
10169 (vect_loop_versioning): Take stmt and stmt list to put pre-condition
7a715bba 10170 guards if we are going to peel. Do not apply versioning in that case.
86290011
RG
10171 * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
10172 (vect_do_peeling_for_loop_bound): Likewise.
10173 * tree-vect-loop.c (vect_transform_loop): If we are peeling for
10174 loop bound only record extra pre-conditions, do not apply loop
10175 versioning.
10176
5eeeac64
RG
101772009-04-04 Richard Guenther <rguenther@suse.de>
10178
10179 * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
10180 renaming code.
10181
1ff7d06b
JH
101822009-04-04 Jan Hubicka <jh@suse.cz>
10183
10184 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
10185 last_basic_block for size of bb->index indexed array.
10186 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
10187 compute_out, link_btr_uses, build_btr_def_use_webs,
10188 build_btr_def_use_webs, migrate_btr_defs): Likewise.
10189
14925fcd
JH
101902009-04-04 Jan Hubicka <jh@suse.cz>
10191
10192 * except.c (remove_eh_handler_and_replace): Break out from ...
10193 (remove_eh_handler): ... here.
10194 (bring_to_root): New function.
10195 (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
10196 handled ones, bring others to root of tree.
10197
4e6d1743
JH
101982009-04-04 Jan Hubicka <jh@suse.cz>
10199
4cb735f7
JH
10200 * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
10201 (all_phis_safe_to_merge): New function.
10202 (update_info): New structure.
10203 (make_eh_edge_and_update_phi, update_eh_edges): New functions.
10204 (cleanup_empty_eh): Update SSA if possible.
4e6d1743 10205
c6803d43
RG
102062009-04-04 Richard Guenther <rguenther@suse.de>
10207
10208 * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
10209 * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
10210 (append_vuse): Likewise.
10211
54f5943c
JJ
102122009-04-04 Jakub Jelinek <jakub@redhat.com>
10213
10214 * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
10215 * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
10216 instead of REG_UNSAVED for DW_CFA_undefined.
10217 (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
10218 (uw_update_context): If RA column is REG_UNDEFINED, mark it as
10219 outermost frame.
10220
aad2bccb
RE
102212009-04-04 Richard Earnshaw <rearnsha@arm.com>
10222
10223 PR target/39501
10224 * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
10225 * testsuite/gcc.c-torture/execute/pr39501.c: New file.
10226 * testsuite/gcc.c-torture/execute/pr39501.x: New file.
10227
aa7069aa
RG
102282009-04-04 Richard Guenther <rguenther@suse.de>
10229
10230 PR tree-optimization/8781
10231 PR tree-optimization/37892
10232 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
10233 * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
10234 (valueize_refs): Call it for *& valueizations.
10235 (shared_reference_ops_from_ref): Rename to ...
10236 (valueize_shared_reference_ops_from_ref): ... this and valueize.
10237 (shared_reference_ops_from_call): Rename to ...
10238 (valueize_shared_reference_ops_from_call): ... this and valueize.
10239 (vn_reference_lookup): Update.
10240 (visit_reference_op_call): Likewise.
10241 * tree-ssa-pre.c (phi_translate_1): Fold *&.
10242 (eliminate): Value-replace the call address in call statements.
10243
cd15ad3e
RG
102442009-04-04 Richard Guenther <rguenther@suse.de>
10245
10246 PR tree-optimization/39636
10247 * tree-ssa-forwprop.c
10248 (forward_propagate_addr_into_variable_array_index): Check for
10249 GIMPLE_ASSIGN before accessing the rhs code.
10250
462f3262
JM
102512009-04-03 Jason Merrill <jason@redhat.com>
10252
10253 * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
10254
6adb807e
SE
102552009-04-03 Steve Ellcey <sje@cup.hp.com>
10256
10257 * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
10258 truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
10259 fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
10260 floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
10261 fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
10262 smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
10263 divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
10264 umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
10265 *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
10266 *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
10267 adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
10268 smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
10269 *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
10270 *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
10271 sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
10272 Use fr_reg_or_fp01_operand instead of fr_register_operand
10273
10274 * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
10275 recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
10276 divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
10277
174b3107
VM
102782009-04-03 Vladimir Makarov <vmakarov@redhat.com>
10279
b844e5d8
L
10280 PR rtl-optimization/39607
10281 PR rtl-optimization/39631
7a715bba
UB
10282
10283 Revert:
2ba9daa7 10284
174b3107
VM
10285 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
10286 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
10287 instead of DF_LR_OUT.
10288 * ira-lives.c (process_bb_node_lives): Ditto.
10289 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
10290 instead of DF_LR_{OUT,IN}.
10291 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
10292 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
10293
535b544a
SB
102942009-04-03 Steven Bosscher <steven@gcc.gnu.org>
10295
10296 * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
10297 (execute_lower_omp): Always run but take the short way out if -fopenmp
10298 is not given.
10299 (gate_lower_omp): Remove, forcing the pass manager to always run the
10300 pass and always set PROP_gimple_lomp.
10301 (pass_lower_omp): Remove gate function.
10302 * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
10303 PROP_trees. Instead, require it.
10304 * ipa-cp.c (pass_ipa_cp): Likewise.
10305 * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
10306 (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
10307 * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
10308 and PROP_gimple_leh.
10309
5006671f
RG
103102009-04-03 Richard Guenther <rguenther@suse.de>
10311
10312 PR middle-end/13146
10313 PR tree-optimization/23940
10314 PR tree-optimization/33237
10315 PR middle-end/33974
10316 PR middle-end/34093
10317 PR tree-optimization/36201
10318 PR tree-optimization/36230
10319 PR tree-optimization/38049
10320 PR tree-optimization/38207
10321 PR tree-optimization/38230
10322 PR tree-optimization/38301
10323 PR tree-optimization/38585
10324 PR middle-end/38895
10325 PR tree-optimization/38985
10326 PR tree-optimization/39299
10327 * tree-ssa-structalias.h: Remove.
10328 * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
10329 (NULL_DEF_OPERAND_P): Make of type def_operand_p.
10330 (struct vuse_element_d): Remove.
10331 (struct vuse_vec_d): Likewise.
10332 (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
10333 VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
10334 SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
10335 VUSE_ELEMENT_VAR): Likewise.
10336 (struct voptype_d): Likewise.
10337 (NUM_VOP_FREE_BUCKETS): Likewise.
10338 (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
10339 (struct stmt_operands_d): Remove.
10340 (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
10341 VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
10342 VDEF_NUM, VDEF_VECT): Likewise.
10343 (copy_virtual_operands): Remove.
10344 (operand_build_cmp): Likewise.
10345 (create_ssa_artificial_load_stmt): Likewise.
10346 (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
10347 (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
10348 vuse_index and mayuse_index members. Pack and move done and iter_type
10349 members to the front.
10350 (SSA_OP_VMAYUSE): Remove.
10351 (SSA_OP_VIRTUAL_USES): Adjust.
10352 (FOR_EACH_SSA_VDEF_OPERAND): Remove.
10353 (unlink_stmt_vdef): Declare.
10354 (add_to_addressable_set): Remove.
10355 * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
10356 (vrp_visit_stmt): Likewise.
10357 * doc/tree-ssa.texi (Alias analysis): Update.
10358 * doc/invoke.texi (max-aliased-vops): Remove docs.
10359 (avg-aliased-vops): Likewise.
10360 * tree-into-ssa.c (syms_to_rename): Remove.
10361 (need_to_update_vops_p): Likewise.
10362 (need_to_initialize_update_ssa_p): Rename to ...
10363 (update_ssa_initialized_fn): ... this. Track function we are
10364 initialized for.
10365 (symbol_marked_for_renaming): Simplify.
10366 (add_new_name_mapping): Do not set need_to_update_vops_p.
10367 (dump_currdefs): Use SYMS_TO_RENAME.
10368 (rewrite_update_stmt): Always walk all uses/defs.
10369 (dump_update_ssa): Adjust.
10370 (init_update_ssa): Take function argument. Track what we are
10371 initialized for.
10372 (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
10373 (create_new_def_for): Initialize for cfun, assert we are initialized
10374 for cfun.
10375 (mark_sym_for_renaming): Simplify.
10376 (mark_set_for_renaming): Do not initialize update-ssa.
10377 (need_ssa_update_p): Simplify. Take function argument.
10378 (name_mappings_registered_p): Assert we ask for the correct function.
10379 (name_registered_for_update_p): Likewise.
10380 (ssa_names_to_replace): Likewise.
10381 (release_ssa_name_after_update_ssa): Likewise.
10382 (update_ssa): Likewise. Use SYMS_TO_RENAME.
10383 (dump_decl_set): Do not print a newline.
10384 (debug_decl_set): Do it here.
10385 (dump_update_ssa): And here.
10386 * tree-ssa-loop-im.c (move_computations): Adjust.
10387 (movement_possibility): Likewise.
10388 (determine_max_movement): Likewise.
10389 (gather_mem_refs_stmt): Likewise.
10390 * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
10391 or NAME_MEMORY_TAG.
10392 * tree-complex.c (update_all_vops): Remove.
10393 (expand_complex_move): Adjust.
10394 * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
10395 Simplify test for memory referencing statement. Exclude
10396 non-invariant ADDR_EXPRs.
10397 * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
10398 * tree-loop-distribution.c (generate_memset_zero): Adjust.
10399 (rdg_flag_uses): Likewise.
10400 * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
10401 related code.
10402 (tree_optimize_tail_calls_1): Also split the
10403 edge from the entry block if we have degenerate PHI nodes in
10404 the first basic block.
10405 * tree.c (init_ttree): Remove memory-tag related code.
10406 (tree_code_size): Likewise.
10407 (tree_node_structure): Likewise.
10408 (build7_stat): Re-write to be build6_stat.
10409 * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
10410 (SSA_VAR_P): Adjust.
10411 (struct tree_memory_tag): Remove.
10412 (struct tree_memory_partition_tag): Likewise.
10413 (union tree_node): Adjust.
10414 (build7): Re-write to be build6.
10415 * tree-pass.h (pass_reset_cc_flags): Remove.
10416 (TODO_update_address_taken): New flag.
10417 (pass_simple_dse): Remove.
10418 * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
10419 * params.h (MAX_ALIASED_VOPS): Remove.
10420 (AVG_ALIASED_VOPS): Likewise.
10421 * omp-low.c (expand_omp_taskreg): Update SSA form.
10422 * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
10423 aliases the lhs in a copy stmt.
10424 * tree-ssa-dse.c (struct address_walk_data): Remove.
10425 (memory_ssa_name_same): Likewise.
10426 (memory_address_same): Likewise.
10427 (get_kill_of_stmt_lhs): Likewise.
10428 (dse_possible_dead_store_p): Simplify, use the oracle. Handle
10429 unused stores. Look through PHI nodes into post-dominated regions.
10430 (dse_optimize_stmt): Simplify. Properly remove stores.
10431 (tree_ssa_dse): Compute dominators.
10432 (execute_simple_dse): Remove.
10433 (pass_simple_dse): Likewise.
10434 * ipa-reference.c (scan_stmt_for_static_refs): Open-code
10435 gimple_loaded_syms and gimple_stored_syms computation.
10436 * toplev.c (dump_memory_report): Dump alias and pta stats.
10437 * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
10438 (vn_reference_eq): Likewise.
10439 (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
10440 copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
10441 valueize_vuses): Remove.
10442 (get_def_ref_stmt_vuses): Simplify. Rename to ...
10443 (get_def_ref_stmt_vuse): ... this.
10444 (vn_reference_lookup_2): New function.
10445 (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
10446 walking equivalent vuses. Simplify.
10447 (vn_reference_lookup): Likewise.
10448 (vn_reference_insert): Likewise.
10449 (vn_reference_insert_pieces): Likewise.
10450 (visit_reference_op_call): Simplify.
10451 (visit_reference_op_load): Likewise.
10452 (visit_reference_op_store): Likewise.
10453 (init_scc_vn): Remove shared_lookup_vuses initialization.
10454 (free_scc_vn): Remove shared_lookup_vuses freeing.
10455 (sort_vuses, sort_vuses_heap): Remove.
10456 (get_ref_from_reference_ops): Export.
10457 * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
10458 vector with single vuse pointer.
10459 (vn_reference_lookup_pieces, vn_reference_lookup,
10460 vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
10461 (shared_vuses_from_stmt): Remove.
10462 (get_ref_from_reference_ops): Declare.
10463 * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
10464 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
10465 memory-tag related code.
10466 * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
10467 (likely_value): Add comment, skip static-chain of call statements.
10468 (surely_varying_stmt_p): Adjust.
10469 (gimplify_and_update_call_from_tree): Likewise.
10470 (execute_fold_all_builtins): Do not rebuild alias info.
10471 (gimplify_and_update_call_from_tree): Properly update VOPs.
10472 * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
10473 (copy_ref_info): Remove memory-tag related code.
10474 * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
10475 * ipa-pure-const.c (check_decl): Remove memory-tag related code.
10476 (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
10477 computation.
10478 * tree-ssa-dom.c (gimple_p): Remove typedef.
10479 (eliminate_redundant_computations): Adjust.
10480 (record_equivalences_from_stmt): Likewise.
10481 (avail_expr_hash): Likewise.
10482 (avail_expr_eq): Likewise.
7a715bba 10483 * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
5006671f
RG
10484 (stmt_makes_single_load): Likewise.
10485 (stmt_makes_single_store): Likewise.
10486 * tree-ssa-alias.c: Rewrite completely.
10487 (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
10488 debug_mem_sym_stats, dump_mem_sym_stats_for_var,
10489 debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
10490 delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
10491 dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
10492 Remove public functions.
10493 (pass_reset_cc_flags): Remove.
10494 (pass_build_alias): Move ...
10495 * tree-ssa-structalias.c (pass_build_alias): ... here.
10496 * tree-ssa-alias.c (may_be_aliased): Move ...
10497 * tree-flow-inline.h (may_be_aliased): ... here.
10498 tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
10499 count_uses_and_derefs): Move ...
10500 * gimple.c: ... here.
10501 * gimple.h (count_uses_and_derefs): Declare.
10502 * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
10503 ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
10504 same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
10505 indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
10506 ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
10507 call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
10508 get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
10509 New functions.
10510 * tree-dfa.c (refs_may_alias_p): Move ...
10511 * tree-ssa-alias.c (refs_may_alias_p): ... here. Extend.
10512 * tree-ssa-alias.h: New file.
10513 * tree-ssa-sink.c (is_hidden_global_store): Adjust.
10514 (statement_sink_location): Likewise.
10515 * opts.c (decode_options): Do not adjust max-aliased-vops or
10516 avg-aliased-vops values.
10517 * timevar.def (TV_TREE_MAY_ALIAS): Remove.
10518 (TV_CALL_CLOBBER): Likewise.
10519 (TV_FLOW_SENSITIVE): Likewise.
10520 (TV_FLOW_INSENSITIVE): Likewise.
10521 (TV_MEMORY_PARTITIONING): Likewise.
10522 (TV_ALIAS_STMT_WALK): New timevar.
10523 * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
10524 * tree-ssa-address.c (create_mem_ref_raw): Use build6.
10525 (get_address_description): Remove memory-tag related code.
10526 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
10527 * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
10528 * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
10529 and immediate uses in statements. Document.
10530 * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
10531 (dump_symbols): Remove.
10532 (dump_gimple_mem_ops): Do not dump loaded or stored syms.
10533 * alias.c (get_deref_alias_set): New function split out from ...
10534 (get_alias_set): ... here.
10535 * alias.h (get_deref_alias_set): Declare.
10536 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
10537 type parameter. Remove restrict pointer handling. Create a
10538 ref-all pointer in case type-based alias sets do not conflict.
10539 (vect_analyze_data_refs): Remove SMT related code.
10540 * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
10541 (vectorizable_load): Likewise.
10542 * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
10543 (DR_SYMBOL_TAG, DR_VOPS): Remove.
10544 * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
10545 Ignore vops and SMTs.
10546 (dr_analyze_alias): Likewise..
10547 (free_data_ref): Likewise.
10548 (create_data_ref): Likewise.
10549 (analyze_all_data_dependences): Likewise.
10550 (get_references_in_stmt): Adjust.
10551 * tree-flow-inline.h (gimple_aliases_computed_p,
10552 gimple_addressable_vars, gimple_call_clobbered_vars,
10553 gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
10554 factoring_name_p, mark_call_clobbered, clear_call_clobbered,
10555 compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
10556 gimple_mem_ref_stats): Remove.
10557 (gimple_vop): New function.
10558 (op_iter_next_use): Remove vuses and mayuses cases.
10559 (op_iter_next_def): Remove vdefs case.
10560 (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
10561 (clear_and_done_ssa_iter): Do not set removed fields.
10562 (op_iter_init): Likewise. Skip vuse and/or vdef if requested.
10563 Assert we are not iterating over vuses or vdefs if not also
10564 iterating over uses or defs.
10565 (op_iter_init_use): Likewise.
10566 (op_iter_init_def): Likewise.
10567 (op_iter_next_vdef): Remove.
10568 (op_iter_next_mustdef): Likewise.
10569 (op_iter_init_vdef): Likewise.
10570 (compare_ssa_operands_equal): Likewise.
10571 (link_use_stmts_after): Handle vuse operand.
10572 (is_call_used): Use is_call_clobbered.
10573 (is_call_clobbered): Global variables are always call clobbered,
10574 query the call-clobbers bitmap.
10575 (mark_call_clobbered): Ignore global variables.
10576 (clear_call_clobbered): Likewise.
10577 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
10578 virtual operands sanity check.
10579 * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
10580 Remove.
10581 (TARGET_MEM_REF): Remove TMR_TAG operand.
10582 * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
10583 Remove call-clobber related code.
10584 (remove_referenced_var): Likewise. Do not clear mpt or symbol_mem_tag.
10585 (dump_variable): Do not dump SMTs, memory stats, may-aliases or
10586 partitions or escape reason.
10587 (get_single_def_stmt, get_single_def_stmt_from_phi,
10588 get_single_def_stmt_with_phi): Remove.
10589 (dump_referenced_vars): Tidy.
10590 (get_ref_base_and_extent): Allow bare decls.
10591 (collect_dfa_stats): Adjust.
10592 * graphite.c (rename_variables_in_stmt): Adjust.
10593 (graphite_copy_stmts_from_block): Likewise.
10594 (translate_clast): Likewise.
10595 * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
10596 (EXPR_DIES): New.
10597 (translate_vuse_through_block): Use the oracle.
10598 (phi_translate_1): Adjust.
10599 (value_dies_in_block_x): Use the oracle. Cache the outcome
10600 in EXPR_DIES.
10601 (valid_in_sets): Check if the VUSE for
10602 a REFERENCE is available.
10603 (eliminate): Do not remove stmts during elimination,
10604 instead queue and remove them afterwards.
10605 (do_pre): Do not rebuild alias info.
10606 (pass_pre): Run TODO_rebuild_alias before PRE.
10607 * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
10608 * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
10609 (mark_all_v_defs_stmt): Remove.
10610 (mark_all_v_defs_seq): Adjust.
10611 (sra_replace): Likewise.
10612 (scalarize_use): Likewise.
10613 (scalarize_copy): Likewise.
10614 (scalarize_init): Likewise.
10615 (scalarize_ldst): Likewise.
10616 (todoflags): Remove.
10617 (tree_sra): Do not rebuild alias info.
10618 (tree_sra_early): Adjust.
10619 (pass_sra): Run TODO_update_address_taken before SRA.
10620 * tree-predcom.c (set_alias_info): Remove.
10621 (prepare_initializers_chain): Do not call it.
10622 (mark_virtual_ops_for_renaming): Adjust.
10623 (mark_virtual_ops_for_renaming_list): Remove.
10624 (initialize_root_vars): Adjust.
10625 (initialize_root_vars_lm): Likewise.
10626 (prepare_initializers_chain): Likewise.
10627 * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
10628 (may_propagate_copy_into_stmt): Likewise.
10629 (merge_alias_info): Do nothing for now.
10630 (propagate_tree_value_into_stmt): Adjust.
10631 (stmt_may_generate_copy): Likewise.
10632 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
10633 not mark symbols for renaming.
10634 (forward_propagate_addr_expr): Match up push/pop_stmt_changes
10635 with the same statement, make sure to update the new pointed-to one.
10636 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
10637 call statements, do not mark symbols for renaming.
10638 (mark_operand_necessary): Dump something.
10639 (ref_may_be_aliased): New function.
10640 (mark_aliased_reaching_defs_necessary_1): New helper function.
10641 (mark_aliased_reaching_defs_necessary): Likewise.
10642 (mark_all_reaching_defs_necessary_1): Likewise.
10643 (mark_all_reaching_defs_necessary): Likewise.
10644 (propagate_necessity): Do not process virtual PHIs. For
10645 non-aliased loads mark all reaching definitions as necessary.
10646 For aliased loads and stores mark the immediate dominating
10647 aliased clobbers as necessary.
10648 (visited): New global static.
10649 (perform_tree_ssa_dce): Free visited bitmap after propagating
10650 necessity.
10651 (remove_dead_phis): Perform simple dead virtual PHI removal.
10652 (remove_dead_stmt): Properly unlink virtual operands when
10653 removing stores.
10654 (eliminate_unnecessary_stmts): Schedule PHI removal after
10655 stmt removal.
10656 * tree-ssa-ter.c (is_replaceable_p): Adjust.
10657 (process_replaceable): Likewise.
10658 (find_replaceable_in_bb): Likewise.
10659 * tree-ssa.c (verify_ssa_name): Verify all VOPs are
10660 based on the single gimple vop.
10661 (verify_flow_insensitive_alias_info): Remove.
10662 (verify_flow_sensitive_alias_info): Likewise.
10663 (verify_call_clobbering): Likewise.
10664 (verify_memory_partitions): Likewise.
10665 (verify_alias_info): Likewise.
10666 (verify_ssa): Adjust..
10667 (execute_update_addresses_taken): Export. Update SSA
10668 manually. Optimize only when optimizing. Use a local bitmap.
10669 (pass_update_address_taken): Remove TODO_update_ssa, add
10670 TODO_dump_func.
10671 (pass_update_address_taken): Just use TODO_update_address_taken.
10672 (init_tree_ssa): Do not initialize addressable_vars.
10673 (verify_ssa): Verify new VUSE / VDEF properties.
10674 Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
10675 Do not call verify_alias_info.
10676 (delete_tree_ssa): Clear the VUSE, VDEF operands.
10677 Do not free the loaded and stored syms bitmaps. Reset the escaped
10678 and callused solutions. Do not free addressable_vars.
10679 Remove memory-tag related code.
10680 (warn_uninitialized_var): Aliases are always available.
10681 * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
10682 * lambda-code.c (can_put_in_inner_loop): Adjust.
10683 (can_put_after_inner_loop): Likewise.
10684 (perfect_nestify): Likewise.
10685 * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
10686 (vect_gen_widened_results_half): Remove CALL_EXPR handling.
10687 (vectorizable_conversion): Do not mark symbols for renaming.
10688 * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
10689 (expand_call_inline): Unlink the calls virtual operands before
10690 replacing it.
10691 (tree_function_versioning): Do not call update_ssa if we are not
10692 updating clones. Simplify.
10693 * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
10694 (propagate_with_phi): Likewise..
10695 * tree-outof-ssa.c (create_temp): Remove memory tag and call
10696 clobber code. Assert we are not aliased or global.
10697 * tree-flow.h: Include tree-ssa-alias.h
10698 (enum escape_type): Remove.
10699 (struct mem_sym_stats_d): Likewise.
10700 (struct mem_ref_stats_d): Likewise.
10701 (struct gimple_df): Add vop member. Remove global_var,
10702 call_clobbered_vars, call_used_vars, addressable_vars,
10703 aliases_compted_p and mem_ref_stats members. Add syms_to_rename,
10704 escaped and callused members.
10705 (struct ptr_info_def): Remove all members, add points-to solution
10706 member pt.
10707 (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
10708 call_clobbered, escape_mask, mpt and symbol_mem_tag members.
10709 * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
10710 (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
10711 (tree-ssa-alias.o): Likewise.
10712 (toplev.o): Add tree-ssa-alias.h
10713 (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
10714 * gimple.c (gimple_set_bb): Fix off-by-one error.
10715 (is_gimple_reg): Do not handle memory tags.
10716 (gimple_copy): Also copy virtual operands.
10717 Delay updating the statement. Do not reset loaded and stored syms.
10718 (gimple_set_stored_syms): Remove.
10719 (gimple_set_loaded_syms): Likewise.
10720 (gimple_call_copy_skip_args): Copy the virtual operands
10721 and mark the new statement modified.
10722 * tree-ssa-structalias.c (may_alias_p): Remove.
10723 (set_uids_in_ptset): Take the alias set to prune with as
10724 parameter. Fold in the alias test of may_alias_p.
10725 (compute_points_to_sets): Compute whether a ptr is dereferenced
10726 in a local sbitmap.
10727 (process_constraint): Deal with &ANYTHING on the lhs, reject all
10728 other ADDRESSOF constraints on the lhs.
10729 (get_constraint_for_component_ref): Assert that we don't get
10730 ADDRESSOF constraints from the base of the reference.
10731 Properly generate UNKNOWN_OFFSET for DEREF if needed.
10732 (struct variable_info): Remove collapsed_to member.
10733 (get_varinfo_fc): Remove.
10734 (new_var_info): Do not set collapsed_to.
10735 (dump_constraint): Do not follow cycles.
10736 (dump_constraint_graph): Likewise.
10737 (build_pred_graph): Likewise.
10738 (build_succ_graph): Likewise.
10739 (rewrite_constraints): Likewise.
10740 (do_simple_structure_copy): Remove.
10741 (do_rhs_deref_structure_copy): Remove.
10742 (do_lhs_deref_structure_copy): Remove.
10743 (collapse_rest_of_var): Remove.
10744 (do_structure_copy): Re-implement.
10745 (pta_stats): New global variable.
10746 (dump_pta_stats): New function.
10747 (struct constraint_expr): Make offset signed.
10748 (UNKNOWN_OFFSET): Define special value.
10749 (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
10750 (solution_set_expand): New helper function split out from ...
10751 (do_sd_constraint): ... here.
10752 (solution_set_add): Handle UNKNOWN_OFFSET. Handle negative offsets.
10753 (do_ds_constraint): Likewise.
10754 (do_sd_constraint): Likewise. Do not special-case ESCAPED = *ESCAPED
10755 and CALLUSED = *CALLUSED.
10756 (set_union_with_increment): Make inc argument signed.
10757 (type_safe): Remove.
10758 (get_constraint_for_ptr_offset): Handle unknown and negative
10759 constant offsets.
10760 (first_vi_for_offset): Handle offsets before start. Bail
10761 out early for offsets beyond the variable extent.
10762 (first_or_preceding_vi_for_offset): New function.
10763 (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
10764 Together with ESCAPED = *ESCAPED this properly computes reachability.
10765 (find_what_var_points_to): New function.
10766 (find_what_p_points_to): Implement in terms of find_what_var_points_to.
10767 (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
10768 pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
10769 pt_solutions_intersect): New functions.
10770 (compute_call_used_vars): Remove.
10771 (compute_may_aliases): New main entry into PTA computation.
10772 * gimple.h (gimple_p): New typedef.
10773 (struct gimple_statement_base): Remove references_memory_p.
10774 (struct gimple_statement_with_memory_ops_base): Remove
10775 vdef_ops, vuse_ops, stores and loads members. Add vdef and vuse
10776 members.
10777 (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
10778 gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
10779 gimple_set_references_memory): Remove.
10780 (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
10781 gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
10782 New functions.
10783 * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
10784 (verify_expr): Allow RESULT_DECL.
10785 (gimple_duplicate_bb): Do not copy virtual operands.
10786 (gimple_duplicate_sese_region): Adjust.
10787 (gimple_duplicate_sese_tail): Likewise.
10788 (mark_virtual_ops_in_region): Remove.
10789 (move_sese_region_to_fn): Do not call it.
10790 * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
10791 and pass_simple_dse.
10792 (execute_function_todo): Handle TODO_update_address_taken,
10793 call execute_update_addresses_taken for TODO_rebuild_alias.
10794 (execute_todo): Adjust.
10795 (execute_one_pass): Init dump files early.
10796 * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
10797 call-clobbered.
10798 (create_general_new_stmt): Clear vops.
10799 * tree-ssa-reassoc.c (get_rank): Adjust.
10800 * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
10801 symbols for renaming.
10802 * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
10803 (PARAM_AVG_ALIASED_VOPS): Likewise.
10804 * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
10805 (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
7a715bba 10806 * tree-ssa-operands.c: Simplify for new virtual operand representation.
5006671f
RG
10807 (operand_build_cmp, copy_virtual_operands,
10808 create_ssa_artificial_load_stmt, add_to_addressable_set,
10809 gimple_add_to_addresses_taken): Remove public functions.
10810 (unlink_stmt_vdef): New function.
10811
457d1d00
AM
108122009-04-03 Alan Modra <amodra@bigpond.net.au>
10813
10814 * config.gcc (powerpc-*-linux*): Merge variants.
10815
e19da24c 108162009-04-02 Chao-ying Fu <fu@mips.com>
60839f5d 10817 James Grosbach <james.grosbach@microchip.com>
e19da24c
CF
10818
10819 * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
10820 num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
10821 cop0_sp_offset.
10822 (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
10823 keep_interrupts_masked_p, use_debug_exception_return_p.
10824 (mips_attribute_table): Add interrupt, use_shadow_register_set,
10825 keep_interrupts_masked, use_debug_exception_return.
10826 (mips_interrupt_type_p, mips_use_shadow_register_set_p,
10827 mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
10828 New functions.
10829 (mips_function_ok_for_sibcall): Return false for interrupt handlers.
10830 (mips_print_operand): Process COP0 registers to print $0 .. $31
10831 correctly for GAS to process.
10832 (mips_interrupt_extra_call_saved_reg_p): New function.
10833 (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
10834 extra registers.
10835 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
10836 (mips_compute_frame_info): Add supports for interrupt context that
10837 includes doubleword accumulators and COP0 registers.
10838 (mips_for_each_saved_acc): New function.
10839 (mips_for_each_saved_gpr_and_fpr): Change the function name from
10840 mips_for_each_saved_reg.
10841 (mips_save_reg): Save accumulators.
10842 (mips_kernel_reg_p): A new for_each_rtx callback.
10843 (mips_expand_prologue): Support interrupt handlers.
10844 (mips_restore_reg): Restore accumulators.
10845 (mips_expand_epilogue): Support interrupt handlers.
10846 (mips_can_use_return_insn): Return false for interrupt handlers.
10847 (mips_epilogue_uses): New function.
10848 * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
10849 UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
10850 (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
10851 cop0_move): New instructions.
10852 * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
10853 * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
10854 defines.
10855 (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
10856 New defines.
10857 (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
10858 (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
10859 interrupt handlers, we use K0 as the temporary register.
10860 (EPILOGUE_USES): Change to a function call.
10861 * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
10862 handlers, we use K0 as the temporary register.
2ba9daa7 10863
e19da24c
CF
10864 * doc/extend.texi (Function Attributes): Document interrupt,
10865 use_shadow_register_set, keep_interrupts_masked,
10866 use_debug_exception_return for MIPS attributes.
10867
aa1ca044
AM
108682009-04-03 Alan Modra <amodra@bigpond.net.au>
10869
10870 * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
10871 Remove a number of t-files from tmake_file.
10872 * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
10873 * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
10874 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
10875 target_prototype, not TARGET_PROTOTYPE.
10876 (LINK_OS_GNU_SPEC): Define.
10877 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
10878 and darwin-ldoubdle.c.
10879
14fdc613
MM
108802009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
10881
10882 PR driver/39293
10883 * gcc.c (save_temps_flag): Add support for -save-temps=obj.
10884 (cpp_options): Ditto.
10885 (default_compilers): Ditto.
10886 (display_help): Ditto.
10887 (process_command): Ditto.
10888 (do_spec_1): Ditto.
10889 (set_input): Use lbasename instead of duplicate code.
10890 (save_temps_prefix): New static for -save-temps=obj.
10891 (save_temps_length): Ditto.
2ba9daa7 10892
14fdc613
MM
10893 * doc/invoke.texi (-save-temps=obj): Document new variant to
10894 -save-temps switch.
10895
d3aa398e
JL
108962009-04-02 Jeff Law <law@redhat.com>
10897
10898 * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
10899 variable.
10900
83f0ccb8
L
109012009-04-02 H.J. Lu <hongjiu.lu@intel.com>
10902
10903 * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
10904 * configure: Regenerated.
10905
dcb6e951
RAE
109062009-04-02 Rafael Avila de Espindola <espindola@google.com>
10907
10908 * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
10909 share the argument list.
10910
d85478c2
RAE
109112009-04-02 Rafael Avila de Espindola <espindola@google.com>
10912
10913 Merge
10914
10915 2009-02-12 Diego Novillo <dnovillo@google.com>
10916
83f0ccb8
L
10917 * varpool.c (debug_varpool): New.
10918 * cgraph.h (debug_varpool): Declare.
d85478c2 10919
34f42a49
JH
109202009-04-02 Jan Hubicka <jh@suse.cz>
10921
10922 * passes.c (init_optimization_passes): Remove two copies of ehcleanup
10923 pass.
10924
a4747b4a
L
109252009-04-02 H.J. Lu <hongjiu.lu@intel.com>
10926
10927 * config/i386/i386.c (ix86_abi): Move initialization to ...
10928 (override_options): Here.
10929
63a9de54
CB
109302009-04-02 Christian Bruel <christian.bruel@st.com>
10931
10932 * config/sh/sh.c (sh_dwarf_register_span): New function.
10933 (TARGET_DWARF_REGISTER_SPAN): Define.
10934 * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
2ba9daa7 10935
2f0fa28e
IR
109362009-04-02 Ira Rosen <irar@il.ibm.com>
10937
10938 PR tree-optimization/39595
2ba9daa7 10939 * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
2f0fa28e
IR
10940 interleaved loads group is not greater than the SLP group size.
10941
bbf7ce11
RAE
109422009-04-02 Rafael Avila de Espindola <espindola@google.com>
10943
10944 * builtins.c (is_builtin_name): New.
10945 (called_as_built_in): Use is_builtin_name.
10946 * tree.h (is_builtin_name): New.
10947 * varasm.c (incorporeal_function_p): Use is_builtin_name
10948
47e4dfcf
AS
109492009-04-02 Andrew Stubbs <ams@codesourcery.com>
10950
10951 * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
10952
d0940d56
DS
109532009-04-02 Dodji Seketeli <dodji@redhat.com>
10954
10955 PR c++/26693
532bfb0a 10956 * c-decl.c (clone_underlying_type): Move this ...
d0940d56
DS
10957 * c-common.c (set_underlying_type): ... here.
10958 Also, make sure the function properly sets TYPE_STUB_DECL() on
10959 the newly created typedef variant type.
10960 * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
7a715bba
UB
10961 * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
10962 points.
d0940d56 10963
bf1cbdc6
RG
109642009-04-02 Richard Guenther <rguenther@suse.de>
10965
10966 PR tree-optimization/37221
10967 * tree-flow.h (degenerate_phi_result): Declare.
10968 * tree-ssa-dom.c (degenerate_phi_result): Export.
10969 * tree-scalar-evolution.c (analyze_initial_condition): If
10970 the initial condition is defined by a degenerate PHI node
10971 use the degenerate value.
10972
87cfb32c
EB
109732009-04-01 Eric Botcazou <ebotcazou@adacore.com>
10974
10975 PR rtl-optimization/39588
10976 * combine.c (merge_outer_ops): Do not set the constant when this
10977 is not necessary.
10978 (simplify_shift_const_1): Do not modify it either in this case.
10979
bbb6eae8
SB
109802009-04-01 Steven Bosscher <steven@gcc.gnu.org>
10981
10982 * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
10983 tuning is deprecated if -mtune value is set to an Itanium1 variant.
10984
839a3b8a
JJ
109852009-04-01 Janis Johnson <janis187@us.ibm.com>
10986
10987 PR c/29027
10988 * c-lex.c (interpret_float): Default (no suffix) is double.
10989
667e8acb
XDL
109902009-04-1 Xinliang David Li <davidxl@google.com>
10991
10992 * config/i386/i386.c (legitimate_constant_p): Recognize
10993 all one vector constant.
10994
60839f5d 109952009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 10996
60839f5d 10997 * config/vax/vax.c: Add #includes to silence warnings.
c4e75102
MT
10998 Change #include order to silence two warnings.
10999
60839f5d 110002009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11001
60839f5d 11002 * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
c4e75102
MT
11003 (ASM_SPEC): Pass -k to the assembler for PIC code.
11004
60839f5d 110052009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11006
60839f5d
EB
11007 * config.gcc: Add vax-*-linux* to the switch.
11008 * config/vax/linux.h: New file. (TARGET_VERSION,
c4e75102
MT
11009 TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
11010
60839f5d 110112009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11012
60839f5d 11013 * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
c4e75102 11014 Use predicate macros instead of GET_CODE() == foo.
60839f5d 11015 * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
c4e75102
MT
11016 ashlsi3, rotrsi3, <unnamed>): Likewise.
11017
60839f5d 110182009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11019
60839f5d 11020 * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
c4e75102 11021 jbbccihi, jbbccisi): Remova trailing whitespace.
60839f5d
EB
11022 * config/vax/constraints.md: Likewise.
11023 * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
11024 * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
11025 * config/vax/predicates.md: Likewise.
11026 * config/vax/vax.c (print_operand_address, vax_output_int_move,
c4e75102 11027 vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
60839f5d
EB
11028 * config/vax/vax.h: Likewise.
11029 * config/vax/vax.md (nonlocal_goto): Likewise.
c4e75102 11030
60839f5d 110312009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11032
60839f5d 11033 * config/vax/vax.c (vax_float_literal, vax_output_int_move)
c4e75102
MT
11034 (indirectable_address_p, adjacent_operands_p): Add spaces around
11035 braces.
60839f5d 11036 * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
c4e75102 11037
60839f5d 110382009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11039
60839f5d 11040 * config/vax/vax.c (legitimate_constant_address_p,
c4e75102
MT
11041 legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
11042 index_term_p, reg_plus_index_p, legitimate_address_p,
11043 vax_mode_dependent_address_p): Update comments to match functions
11044 modified by the recent int->bool conversion.
11045
60839f5d 110462009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11047
60839f5d
EB
11048 * config/vax/builtins.md: Update copyright message.
11049 * config/vax/constraints.md: Likewise.
11050 * config/vax/netbsd-elf.h: Likewise.
11051 * config/vax/predicates.md: Likewise.
11052 * config/vax/vax-protos.h: Likewise.
11053 * config/vax/vax.c: Likewise.
11054 * config/vax/vax.h: Likewise.
11055 * config/vax/vax.md: Likewise.
11056 * config/vax/vax.opt: Likewise.
c4e75102 11057
60839f5d 110582009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11059
60839f5d 11060 * config/vax/builtins.md (ffssi2, ffssi2_internal,
c4e75102 11061 sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
60839f5d
EB
11062 * config/vax/constraints.md (B, R): Likewise.
11063 * config/vax/predicates.md (external_memory_operand,
c4e75102 11064 nonimmediate_addsub_di_operand): Likewise.
60839f5d
EB
11065 * config/vax/vax.c (vax_output_int_add): Likewise.
11066 * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
c4e75102
MT
11067 untyped_call): Likewise.
11068
60839f5d 110692009-04-01 Matt Thomas <matt@3am-software.com>
c4e75102 11070
7a715bba
UB
11071 * config/vax/predicates.md: New file.
11072 (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
c4e75102
MT
11073 external_const_operand, nonsymbolic_operand, external_memory_operand,
11074 indirect_memory_operand, indexed_memory_operand,
11075 illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
11076 nonimmediate_addsub_di_operand, general_addsub_di_operand): New
11077 predicate.
7a715bba
UB
11078 * config/vax/constraints.md: New file.
11079 (Z0, U06, U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
11080 New constraint.
11081 * config/vax/builtins.md: New file.
11082 (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
11083 jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
11084 jbbccisi): Define.
c4e75102
MT
11085 * config/vax/vax.opt (mqmath): Add option.
11086 * config/vax/vax.md (isfx): Extend with DI.
11087 (VAXintQH, VAXintQHSD): Define.
11088 (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
11089 mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
11090 and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
11091 one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
11092 (movdi): Update constraints and use vax_output_int_move().
11093 (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
11094 movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
11095 pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
11096 nonlocal_goto): New.
11097 (mov<mode>): Extend accepted operand types.
11098 (subdi3_old): Rename from subdi3, change update constraints and use
11099 a new implementation.
60839f5d 11100 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
c4e75102
MT
11101 (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
11102 MOVE_RATIO, CLEAR_RATIO): Define.
11103 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
11104 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
11105 (PRINT_OPERAND): Redefine using a function instead of inlined code.
60839f5d 11106 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
c4e75102
MT
11107 (split_quadword_operands): Make static and really allow variable
11108 splitting.
11109 (print_operand_address): Update for PIC generation.
11110 (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
11111 indexable_address_p, fixup_mathdi_operand,
11112 vax_expand_addsub_di_operands, adjacent_operands_p): New.
11113 (vax_float_literal, legitimate_constant_p,
11114 indirectable_constant_address_p, index_term_p,
11115 reg_plus_index_p): Return bool instead of int.
11116 (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
11117 where needed.
11118 (vax_output_int_move, vax_output_int_add): Extend to allow PIC
11119 generation.
11120 (vax_output_conditional_branch): Indent.
11121 (legitimate_constant_address_p, indirectable_constant_address_p,
11122 indirectable_address_p, nonindexed_address_p, legitimate_address_p,
11123 vax_mode_dependent_address_p): Return bool instead of int, update for
11124 PIC generation.
11125 * config/vax/vax-protos.h (legitimate_constant_address_p,
11126 legitimate_constant_p, legitimate_address_p,
11127 vax_mode_dependent_address_p): Change declaration to bool.
11128 (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
11129 vax_expand_addsub_di_operands, vax_output_int_subtract,
11130 vax_output_movmemsi): Declare.
11131 (split_quadword_operands, vax_float_literal): Delete declaration.
11132 * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
11133 * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
11134 VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
11135 ASM_OUTPUT_DWARF_PCREL): Define.
11136 (ASM_SPEC): Change definition to allow PIC generation.
11137
9332c6eb
L
111382009-04-01 Steve Ellcey <sje@cup.hp.com>
11139
11140 * doc/sourcebuild.texi: Update front-end requirements.
11141
d93e052c
JJ
111422009-04-01 Jakub Jelinek <jakub@redhat.com>
11143
11144 PR target/39226
11145 * config/rs6000/rs6000.md (andsi3_internal5_nomc,
11146 anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
11147 (booldi3_internal3): Use boolean_or_operator instead of
11148 boolean_operator.
11149
6ccb2a4a
JM
111502009-04-01 Joseph Myers <joseph@codesourcery.com>
11151
11152 PR c/39605
11153 * c-decl.c (grokdeclarator): Pedwarn for file-scope array
11154 declarator whose size is not an integer constant expression but
11155 folds to an integer constant, then treat it as a constant
11156 subsequently.
11157
299b87f8
RG
111582009-04-01 Richard Guenther <rguenther@suse.de>
11159
11160 * fold-const.c (fold_plusminus_mult_expr): Do not fold
11161 i * 4 + 2 to (i * 2 + 1) * 2.
11162
b85eb797
JJ
111632009-04-01 Jakub Jelinek <jakub@redhat.com>
11164
11165 PR c/37772
11166 * c-parser.c (c_parser_asm_statement): Skip until close paren and
11167 return if c_parser_asm_string_literal returned NULL.
11168
235e1fe8
NC
111692009-04-01 Nick Clifton <nickc@redhat.com>
11170
11171 * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
11172 already defined.
11173 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
11174 * config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the
11175 other typedefs to avoid conflicts with libgcc2.c. Define labels
11176 to gain 16-bit bit-manipulation functions from libgcc2.c and then
11177 include it.
11178 * config/m32c/m32c-lib2-trapv.c: New file. Define labels
11179 to gain 16-bit trapping arithmetic functions from libgcc2.c and
11180 then include it.
11181
d6868399
RAE
111822009-04-01 Rafael Avila de Espindola <espindola@google.com>
11183
7a715bba
UB
11184 * varasm.c (default_function_rodata_section): Declare DOT as
11185 const char*.
d6868399 11186
73d21f56 111872009-04-01 Kai Tietz <kai.tietz@onevision.com>
60839f5d 11188 Andrey Galkin <agalkin@hypercom.com>
73d21f56
KT
11189
11190 PR/39492
11191 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
11192 Make object_name unique for each process.
11193
03742a9b
JJ
111942009-04-01 Jakub Jelinek <jakub@redhat.com>
11195
11196 PR other/39591
11197 * omp-low.c (remove_exit_barrier): Don't optimize if there are any
11198 addressable variables in the parallel that could go out of scope while
11199 running queued tasks.
11200
4223ff5f
AS
112012009-04-01 Anatoly Sokolov <aesok@post.ru>
11202
11203 * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
11204 (CASE_VALUES_THRESHOLD): Redefine.
11205 * config/avr/avr.c (avr_override_options): Remove initialization of
11206 avr_case_values_threshold variable.
11207 (avr_case_values_threshold): Remove variable. Add new function.
11208 * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
11209 * config/avr/avr.opt (mno-tablejump): Remove option.
11210 * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
11211
e893f6f3
DD
112122009-04-01 DJ Delorie <dj@redhat.com>
11213
11214 * varasm.c (default_function_rodata_section): Don't assume
11215 anything about where the first '.' in the section name is.
11216
b246d100
AM
112172009-04-01 Alan Modra <amodra@bigpond.net.au>
11218
11219 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
11220 rs6000_emit_stack_tie.
11221
d3e37a9e
ILT
112222009-03-31 Ian Lance Taylor <iant@google.com>
11223
11224 * tree-eh.c (tree_remove_unreachable_handlers): Compare
11225 gimple_code with GIMPLE_RESX, not RESX.
11226
c1b61fca
JM
112272009-03-31 Joseph Myers <joseph@codesourcery.com>
11228
11229 * c-common.c (c_get_ident): New.
7a715bba 11230 (c_common_nodes_and_builtins): Call it for type names that may be NULL.
c1b61fca 11231
c2d2ad48
BE
112322009-04-01 Ben Elliston <bje@au.ibm.com>
11233
11234 * config/rs6000/sysv4.opt (msdata): Improve option description.
11235
13d1a6e7
SE
112362009-03-31 Steve Ellcey <sje@cup.hp.com>
11237
11238 * config/ia64/ia64.md (divsf3_internal_lat): Remove.
11239 (divdf3_internal_lat): Remove.
11240 (divxf3_internal_lat): Remove.
11241 (divxf3_internal_thr): Remove.
11242 (divxf): Use divxf3_internal.
11243 * config/ia64/div.md (divsf3_internal_lat): New.
11244 (divdf3_internal_lat): New.
11245 (divxf3_internal): New.
11246
207bf79d
JM
112472009-03-31 Joseph Myers <joseph@codesourcery.com>
11248
11249 PR c/448
11250 * Makefile.in (USE_GCC_STDINT): Define.
11251 (stmp-int-hdrs): Install stdint.h if applicable.
11252 * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
11253 if known.
11254 (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
11255 (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
11256 UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
11257 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
11258 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
11259 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
11260 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
11261 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
11262 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
11263 (c_common_nodes_and_builtins): Initialize
11264 underlying_wchar_type_node. Do not initialize
11265 signed_wchar_type_node or unsigned_wchar_type_node. Initialize
11266 nodes for new types.
11267 (c_stddef_cpp_builtins): Define macros for new types.
11268 * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
11269 Remove.
11270 (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
11271 CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
11272 CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
11273 CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
11274 CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
11275 CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
11276 CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
11277 CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
11278 CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
11279 (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
11280 (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
11281 int16_type_node, int32_type_node, int64_type_node,
11282 uint8_type_node, uint16_type_node, c_uint32_type_node,
11283 c_uint64_type_node, int_least8_type_node, int_least16_type_node,
11284 int_least32_type_node, int_least64_type_node,
11285 uint_least8_type_node, uint_least16_type_node,
11286 uint_least32_type_node, uint_least64_type_node,
11287 int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
11288 int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
11289 uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
11290 uintptr_type_node): Define.
11291 * c-cppbuiltin.c (builtin_define_constants,
11292 builtin_define_type_minmax): New.
11293 (builtin_define_stdint_macros): Define more macros.
11294 (c_cpp_builtins): Define more limit macros.
11295 (type_suffix): New.
11296 (builtin_define_type_max): Define in terms of
11297 builtin_define_type_minmax. Remove is_long parameter. All
11298 callers changed.
11299 * config.gcc (use_gcc_stdint): Define.
11300 (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
11301 Add newlib-stdint.h for generic targets.
11302 * config/glibc-stdint.h, config/newlib-stdint.h,
11303 ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
11304 * config/m32c/m32c.h (UINTPTR_TYPE): Define.
11305 * config/score/score.h (UINTPTR_TYPE): Define.
11306 * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
11307 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
11308 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
11309 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
11310 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
11311 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
11312 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
11313 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
11314 * config/spu/spu.h (STDINT_LONG32): Define.
11315 * configure.ac (use_gcc_stdint): Substitute.
11316 * configure: Regenerate.
11317 * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
11318 __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
11319 __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
11320 __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
11321 __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
11322 __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
11323 __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
11324 __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
11325 __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
11326 __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
11327 __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
11328 __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
11329 __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
11330 __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
11331 __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
11332 __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
11333 __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
11334 __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
11335 __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
11336 __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
11337 __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
11338 * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
11339 INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
11340 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
11341 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
11342 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
11343 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
11344 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
11345 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
11346
ed853664
BS
113472009-03-31 Bernd Schmidt <bernd.schmidt@analog.com>
11348
11349 * loop-iv.c (suitable_set_for_replacement): Renamed from
11350 simplify_using_assignment; changed to return bool and to accept new
11351 args DEST and SRC. Return true iff we find a source/destination pair
11352 that can be used to make a replacement, and fill SRC and DEST if so.
11353 Remove arg ALTERED. Don't deal with altered regs here. All callers
11354 changed.
11355 (simplify_using_initial_values): Deal with altered regs here and track
11356 more precisely the effect they have on the validity of our expression.
11357
1569e190
BS
11358 * loop-iv.c (simplify_using_condition): A condition of the form
11359 (EQ REG CONST) can be used to simply make a substitution.
11360 (simplify_using_initial_values): Keep track of conditions we have seen
11361 and keep using them to simplify new expressions, while applying the
11362 same substitutions to them as to the expression.
11363
1d1eb80c
BS
11364 * simplify-rtx.c (simplify_relational_operation_1): Simplify
11365 (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
11366 GEU/LTU reversed.
11367
28af33b0
BS
11368 * loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers
11369 changed. Use this when trying to improve the upper bound.
11370 Generate the comparison by using simplify_gen_relational.
11371
b30321cd
BS
11372 * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
11373
60081874
BS
11374 * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
11375 functions.
2ba9daa7 11376 (simplify_using_assignment, simplify_using_initial_values): Call
60081874
BS
11377 replace_in_expr to make replacements. Call replace_single_def_regs
11378 once on the initial version of the expression.
11379
bebc6e07
RR
113802009-03-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11381
fcb82ab0 11382 PR target/27237
bebc6e07 11383 * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
2ba9daa7 11384
6b12efe9
RG
113852009-03-31 Richard Guenther <rguenther@suse.de>
11386
11387 PR middle-end/31029
11388 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
11389 equality comparisons. Fold C - X CMP X if C % 2 == 1.
11390
108f6c2f
RG
113912009-03-31 Richard Guenther <rguenther@suse.de>
11392
11393 * tree.h (div_if_zero_remainder): Declare.
11394 * fold-const.c (div_if_zero_remainder): Export.
11395 * tree-ssa-forwprop.c
11396 (forward_propagate_addr_into_variable_array_index): Handle
11397 constant array index addition outside of the variable index.
11398
8f612190
JM
113992009-03-31 Joseph Myers <joseph@codesourcery.com>
11400
11401 PR target/39592
11402 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
11403 define_splits, floatunssi<mode>2): Require x87 conversions from
11404 DImode to be permitted.
11405
47580d22
JM
114062009-03-31 Joseph Myers <joseph@codesourcery.com>
11407
11408 PR preprocessor/15638
11409 * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
11410
ba4d8f9d
RG
114112009-03-31 Richard Guenther <rguenther@suse.de>
11412
11413 PR middle-end/23401
11414 PR middle-end/27810
11415 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
11416 (struct tree_decl_with_vis): Remove gimple_formal_temp member.
11417 * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
11418 a separate statement.
11419 * gimplify.c (pop_gimplify_context): Remove formal temp handling.
11420 (lookup_tmp_var): Likewise.
11421 (is_gimple_formal_tmp_or_call_rhs): Remove.
11422 (is_gimple_reg_or_call_rhs): Rename to ...
11423 (is_gimple_reg_rhs_or_call): ... this.
11424 (is_gimple_mem_or_call_rhs): Rename to ...
11425 (is_gimple_mem_rhs_or_call): ... this.
11426 (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set
11427 DECL_GIMPLE_REG_P only if is_formal is true.
11428 (gimplify_compound_lval): Use is_gimple_reg. Remove workaround
11429 for non-proper post-modify expression gimplification.
11430 (gimplify_self_mod_expr): For post-modify expressions gimplify
11431 the lvalue to a minimal lvalue.
11432 (rhs_predicate_for): Remove formal temp case.
11433 (gimplify_modify_expr_rhs): Likewise.
11434 (gimplify_addr_expr): Use is_gimple_reg.
11435 (gimplify_expr): Remove formal temp cases.
11436 (gimple_regimplify_operands): Likewise.
11437 * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
11438 and FILTER_EXPR like constants.
11439 * gimple.c (walk_gimple_op): Fix val_only initialization, use
11440 is_gimple_reg.
11441 (is_gimple_formal_tmp_rhs): Remove.
11442 (is_gimple_reg_rhs): Remove special casing.
11443 (is_gimple_mem_rhs): Fix.
11444 (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
11445 (is_gimple_formal_tmp_var): Remove.
11446 (is_gimple_formal_tmp_reg): Likewise.
11447 (is_gimple_min_lval): Allow invariant component ref parts.
11448 * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
11449 is_gimple_formal_tmp_reg): Remove declarations.
11450 * tree-cfg.c (verify_expr): Verify that variables with address
11451 taken do not have DECL_GIMPLE_REG_P set.
11452 * tree-mudflap.c (mf_build_check_statement_for): Use
11453 force_gimple_operand instead of gimplify_expr.
11454
8de9b877
AZ
114552009-03-31 Ayal Zaks <zaks@il.ibm.com>
11456
11457 * modulo-sched.c (sms_schedule_by_order): Pass the actual
11458 schedulable rows to compute_split_row.
11459
b5e3caf2
BE
114602009-03-31 Ben Elliston <bje@au.ibm.com>
11461
11462 PR target/31635
11463 * config/rs6000/rs6000.c (rs6000_handle_option): Handle
11464 OPT_mvrsave.
11465
9752c4ad
AM
114662009-03-31 Alan Modra <amodra@bigpond.net.au>
11467
11468 * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
11469 * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
11470 * configure: Regenerate.
11471 * config.in: Regenerate.
11472 * config/rs6000/rs6000.opt (mtls-markers): Add.
11473 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
11474 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
11475 (tls_ld_aix, tls_ld_sysv): Likewise.
11476 (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
11477 (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
11478
b597d1b6
AM
114792009-03-31 Alan Modra <amodra@bigpond.net.au>
11480
11481 * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
11482
a203a221
JH
114832009-03-30 Jan Hubicka <jh@suse.cz>
11484
b597d1b6
AM
11485 * tree-eh.c (make_eh_edges): Set probability 100% to first edge
11486 out of RESX.
11487 (tree_remove_unreachable_handlers): Cleanup EH predecestor
11488 detection and label handling.
a203a221 11489
5b0c0b2c
VM
114902009-03-30 Vladimir Makarov <vmakarov@redhat.com>
11491
11492 * ira-int.h (ira_allocno): Rename left_conflicts_num to
11493 left_conflicts_size.
11494 (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
11495 ALLOCNO_LEFT_CONFLICTS_SIZE.
11496
11497 * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
11498 remove_allocno_from_bucket_and_push,
11499 allocno_spill_priority_compare, push_allocnos_to_stack,
11500 setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
11501 instead of ALLOCNO_LEFT_CONFLICTS_NUM.
11502 (setup_allocno_left_conflicts_num): Ditto. Rename to
11503 setup_allocno_left_conflicts_size.
11504 (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
11505 instead of ALLOCNO_LEFT_CONFLICTS_NUM and
11506 setup_allocno_left_conflicts_size instead of
11507 setup_allocno_left_conflicts_num.
11508
11509 * ira-build.c (ira_create_allocno): Use
11510 ALLOCNO_LEFT_CONFLICTS_SIZE instead of
11511 ALLOCNO_LEFT_CONFLICTS_NUM.
2ba9daa7 11512
9a48a93f
VM
115132009-03-30 Vladimir Makarov <vmakarov@redhat.com>
11514
11515 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
11516 instead of DF_LR_OUT.
11517
11518 * ira-lives.c (process_bb_node_lives): Ditto.
11519
11520 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
11521 instead of DF_LR_{OUT,IN}.
11522
11523 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
11524
11525 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
11526
4c936d4f
JH
115272009-03-30 Jan Hubicka <jh@suse.cz>
11528
11529 * except.c (label_to_region_map): Fix thinko.
11530
f4d9f129
SE
115312009-03-30 Steve Ellcey <sje@cup.hp.com>
11532
11533 PR middle-end/38237
11534 * tree.h (tree_find_value): New declaration.
11535 * tree.c (tree_find_value): New function.
11536 * varasm.c (assemble_external): Avoid duplicate entries on lists.
11537
b3f27c15
JJ
115382009-03-30 Jakub Jelinek <jakub@redhat.com>
11539
11540 PR debug/39563
11541 * c-decl.c (struct c_binding): Add locus field.
11542 (bind): Add locus argument, set locus field from it.
11543 (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
11544 add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
11545 (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
11546 implicitly_declare, undeclared_variable, lookup_label,
11547 declare_label, c_make_fname_decl, c_builtin_function,
11548 c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
11549 bind callers.
11550
ad41bd84 115512009-03-30 H.J. Lu <hongjiu.lu@intel.com>
680e8a00
L
11552
11553 PR target/38781
11554 * config/i386/i386.c (classify_argument): Check total size of
11555 structure.
11556
133f9369
MJ
115572009-03-30 Martin Jambor <mjambor@suse.cz>
11558
11559 * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
11560 IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
11561 IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
11562 respectively.
11563
11564 * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
11565 seen_variable_array_ref while also traversing a union.
11566
11567 * tree-inline.c (optimize_inline_calls): Do not call
11568 cgraph_node_remove_callees.
11569 * cgraphbuild.c (remove_cgraph_callee_edges): New function.
11570 (pass_remove_cgraph_callee_edges): New variable.
11571 * passes.c (init_optimization_passes): Add
11572 pass_remove_cgraph_callee_edges after early inlining and before all
11573 late intraprocedural passes.
11574
11575 * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
11576
1190f2eb
PB
115772009-03-30 Paolo Bonzini <bonzini@gnu.org>
11578
11579 * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
11580 Fix typos in names.
11581
fedc1775
PB
115822009-03-30 Paolo Bonzini <bonzini@gnu.org>
11583
fcb82ab0
UB
11584 * combine.c (simplify_comparison): Use have_insn_for.
11585 * dojump.c (do_jump): Likewise.
fedc1775 11586
65c5ae8b
PB
115872009-03-30 Paolo Bonzini <bonzini@gnu.org>
11588
11589 * config/sparc/sparc.c (sparc_compare_emitted): Remove.
11590 (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
11591 sparc_compare_op0 like sparc_compare_emitted used to be handled.
11592 (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
11593 instead of sparc_compare_emitted.
11594 * config/sparc/sparc.h (sparc_compare_emitted): Remove.
11595 * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
11596 instead of sparc_compare_emitted.
11597
d25aa7ab
PB
115982009-03-30 Paolo Bonzini <bonzini@gnu.org>
11599
11600 * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
11601 enter/exit cfglayout mode.
11602 (pass_partition_block): Require it.
11603 * combine.c (find_single_use, reg_dead_at_p): Use CFG.
11604 (combine_instructions): Track basic blocks instead of labels.
11605 (update_cfg_for_uncondjump): New.
11606 (try_combine): Use it. Update jumps after rescanning.
11607 (pass_combine): Require PROP_cfglayout.
11608 * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
11609
9c9e26f5
PB
116102009-03-30 Paolo Bonzini <bonzini@gnu.org>
11611
fcb82ab0
UB
11612 * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
11613 Provide/destroy PROP_cfglayout respectively.
11614 * gcse.c (pass_jump_bypass, pass_gcse): Require it.
11615 * tree-pass.h (PROP_cfglayout): New.
9c9e26f5 11616
28ddeea1
PB
116172009-03-30 Paolo Bonzini <bonzini@gnu.org>
11618
11619 * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
11620 fold_convert_const_fixed_from_fixed,
11621 fold_convert_const_fixed_from_int,
11622 fold_convert_const_fixed_from_real, fold_negate_const): Do not
11623 set TREE_CONSTANT_OVERFLOW.
11624 * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
11625 * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
11626
ebfd146a
IR
116272009-03-30 Ira Rosen <irar@il.ibm.com>
11628
11629 * tree-vect-loop-manip.c: New file.
11630 * tree-vectorizer.c: Update documentation and included files.
11631 (vect_loop_location): Make extern.
11632 (rename_use_op): Move to tree-vect-loop-manip.c
2ba9daa7
AS
11633 (rename_variables_in_bb, rename_variables_in_loop,
11634 slpeel_update_phis_for_duplicate_loop,
ebfd146a
IR
11635 slpeel_update_phi_nodes_for_guard1,
11636 slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
11637 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
11638 slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
2ba9daa7 11639 set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
ebfd146a
IR
11640 find_loop_location): Likewise.
11641 (new_stmt_vec_info): Move to tree-vect-stmts.c.
11642 (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
11643 get_vectype_for_scalar_type, vect_is_simple_use,
11644 supportable_widening_operation, supportable_narrowing_operation):
11645 Likewise.
11646 (bb_in_loop_p): Move to tree-vect-loop.c.
2ba9daa7
AS
11647 (new_loop_vec_info, destroy_loop_vec_info,
11648 reduction_code_for_scalar_code, report_vect_op,
ebfd146a
IR
11649 vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
11650 (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
11651 (vect_supportable_dr_alignment): Likewise.
11652 * tree-vectorizer.h (tree-data-ref.h): Include.
11653 (vect_loop_location): Declare.
11654 Reorganize function declarations according to the new file structure.
11655 * tree-vect-loop.c: New file.
2ba9daa7 11656 * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
ebfd146a
IR
11657 tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
11658 * tree-vect-data-refs.c: New file.
11659 * tree-vect-patterns.c (timevar.h): Don't include.
11660 * tree-vect-stmts.c: New file.
2ba9daa7 11661 * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
ebfd146a 11662 tree-vect-slp.c, tree-vect-loop.c.
2ba9daa7
AS
11663 * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
11664 tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
ebfd146a
IR
11665 tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
11666 (tree-vect-analyze.o): Remove.
11667 (tree-vect-transform.o): Likewise.
11668 (tree-vect-data-refs.o): Add rule.
2ba9daa7 11669 (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
ebfd146a
IR
11670 tree-vect-slp.o): Likewise.
11671 (tree-vect-patterns.o): Remove redundant dependencies.
11672 (tree-vectorizer.o): Likewise.
11673 * tree-vect-slp.c: New file.
11674
40a1cfba
RW
116752009-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11676
11677 * optc-gen.awk: Warn if an option flag has multiple different
11678 help strings.
11679
a9a7a9a2
SP
116802009-03-30 Sebastian Pop <sebastian.pop@amd.com>
11681
11682 * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
11683 -floop-block): Document dependences on PPL, CLooG and Graphite.
11684
8ce94e44
JM
116852009-03-30 Joseph Myers <joseph@codesourcery.com>
11686
11687 PR rtl-optimization/323
11688 * c-common.c (c_fully_fold, convert_and_check,
11689 c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
11690 (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
11691 * c-common.def (EXCESS_PRECISION_EXPR): New.
11692 * c-cppbuiltin.c (builtin_define_float_constants): Define
11693 constants with enough digits for long double.
11694 * c-lex.c (interpret_float): Interpret constant with excess
11695 precision where appropriate.
11696 * c-opts.c (c_common_post_options): Set
11697 flag_excess_precision_cmdline. Give an error for
11698 -fexcess-precision=standard for C++ for processors where the
11699 option is significant.
11700 * c-parser.c (c_parser_conditional_expression): Handle excess
11701 precision in condition.
11702 * c-typeck.c (convert_arguments): Handle arguments with excess
11703 precision.
11704 (build_unary_op): Move excess precision outside operation.
11705 (build_conditional_expr): Likewise.
11706 (build_compound_expr): Likewise.
11707 (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
11708 (build_modify_expr): Handle excess precision in RHS.
11709 (convert_for_assignment): Handle excess precision in converted
11710 value.
11711 (digest_init, output_init_element, process_init_element): Handle
11712 excess precision in initializer.
11713 (c_finish_return): Handle excess precision in return value.
11714 (build_binary_op): Handle excess precision in operands and add
11715 excess precision as needed for operation.
11716 * common.opt (-fexcess-precision=): New option.
11717 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
11718 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
11719 For standard excess precision, output explicit conversion to and
11720 truncation from XFmode.
11721 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
11722 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
11723 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
11724 define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
11725 define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
11726 floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
11727 divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
11728 *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
11729 *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
11730 define_splits, sqrt<mode>2): Disable where appropriate for
11731 standard excess precision.
11732 * convert.c (convert_to_real): Do not shorten arithmetic to type
11733 for which excess precision would be used.
11734 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
11735 * doc/invoke.texi (-fexcess-precision=): Document option.
11736 (-mfpmath=): Correct index entry.
11737 * flags.h (enum excess_precision, flag_excess_precision_cmdline,
11738 flag_excess_precision): New.
11739 * langhooks.c (lhd_post_options): Set
11740 flag_excess_precision_cmdline.
11741 * opts.c (common_handle_option): Handle -fexcess-precision=.
11742 * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
11743 init_excess_precision): New.
11744 (lang_dependent_init_target): Call init_excess_precision.
11745 * tree.c (excess_precision_type): New.
11746 * tree.h (excess_precision_type): Declare.
11747
1e57bf47
JM
117482009-03-30 Joseph Myers <joseph@codesourcery.com>
11749
11750 PR c/35235
11751 * c-typeck.c (build_component_ref): Do not copy qualifiers from
11752 non-lvalue to component.
11753
148e4216
JM
117542009-03-29 Joseph Myers <joseph@codesourcery.com>
11755
11756 PR preprocessor/34695
11757 * Makefile.in (c-opts.o): Depend on c-tree.h.
11758 * c-common.c: Move down include of diagnostic.h.
11759 (done_lexing, c_cpp_error): New.
11760 * c-common.h (done_lexing): Declare.
11761 * c-decl.c (c_write_global_declarations): Don't check cpp_errors
11762 (parse_in).
11763 * c-opts.c: Include c-tree.h.
11764 (c_common_init_options): Set preprocessor error callback.
11765 (c_common_handle_option): Do not set preprocessor
11766 inhibit_warnings, warnings_are_errors, warn_system_headers,
11767 pedantic_errors or inhibit_warnings flags.
11768 (c_common_post_options): Do not check cpp_errors (parse_in).
11769 (c_common_finish): Do not output dependencies if there were
11770 errors. Do not check return value of cpp_finish.
11771 * c-ppoutput.c (pp_file_change): Set input_location.
11772 * c-tree.h (c_cpp_error): Declare.
11773 * diagnostic.c (diagnostic_set_info_translated): Also initialize
11774 override_column.
11775 (diagnostic_build_prefix): Check override_column.
11776 * diagnostic.h (diagnostic_info): Add override_column field.
11777 (diagnostic_override_column): Define.
11778
2ec5deb5
PB
117792009-03-28 Paolo Bonzini <bonzini@gnu.org>
11780
ba20e309
UB
11781 * c-common.c (c_expand_expr, c_staticp): Remove.
11782 * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
11783 * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
11784 COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
11785 * c-gimplify.c (gimplify_compound_literal_expr,
11786 optimize_compound_literals_in_ctor): Remove.
11787 (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
11788 * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
11789 * c-semantics.c (emit_local_var): Remove.
11790
11791 * langhooks-def.h (lhd_expand_expr): Remove.
11792 * langhooks.c (lhd_expand_expr): Remove.
11793 * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
11794
11795 * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
11796 handling from c-semantics.c; don't call into langhook.
11797 (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
11798 * gimplify.c (gimplify_compound_literal_expr,
11799 optimize_compound_literals_in_ctor): Move from c-gimplify.c.
11800 (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
11801 (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
11802 as was done in c-gimplify.c.
11803 * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
11804 * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
11805 Move from c-common.h.
11806 * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
2ec5deb5
PB
11807
11808 * tree.c (staticp): Do not call langhook.
11809 * langhooks.c (lhd_staticp): Delete.
11810 * langhooks-def.h (lhd_staticp): Delete prototype.
11811 (LANG_HOOKS_STATICP): Delete.
11812 (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
11813
ba20e309
UB
11814 * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
11815 instead of DECL_STMTs.
2ec5deb5 11816
928c19bb
JM
118172009-03-29 Joseph Myers <joseph@codesourcery.com>
11818
11819 PR c/456
11820 PR c/5675
11821 PR c/19976
11822 PR c/29116
11823 PR c/31871
11824 PR c/35198
11825 * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
11826 void_type_node.
11827 (fold_call_expr): Return a NOP_EXPR from folding rather than the
11828 contained expression.
ba20e309 11829 * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
928c19bb
JM
11830 (c_common_truthvalue_conversion): Use c_save_expr. Do not fold
11831 conditional expressions for C.
11832 (decl_constant_value_for_optimization): Move from
ba20e309 11833 decl_constant_value_for_broken_optimization in c-typeck.c. Check
928c19bb
JM
11834 whether optimizing and that the expression is a VAR_DECL not of
11835 array type instead of doing such checks in the caller. Do not
11836 check pedantic. Call gcc_unreachable for C++.
11837 * c-common.def (C_MAYBE_CONST_EXPR): New.
11838 * c-common.h (c_fully_fold, c_save_expr,
11839 decl_constant_value_for_optimization): New prototypes.
11840 (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
11841 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
11842 EXPR_INT_CONST_OPERANDS): Define.
11843 * c-convert.c (convert): Strip nops from expression.
11844 * c-decl.c (groktypename): Take extra parameters expr and
11845 expr_const_operands. Update call to grokdeclarator.
11846 (start_decl): Update call to grokdeclarator. Add statement for
11847 expressions used in type of decl.
11848 (grokparm): Update call to grokdeclarator.
11849 (push_parm_decl): Update call to grokdeclarator.
11850 (build_compound_literal): Add parameter non_const and build a
11851 C_MAYBE_COSNT_EXPR if applicable.
11852 (grokdeclarator): Take extra parameters expr and
11853 expr_const_operands. Track expressions used in declaration
11854 specifiers and declarators. Fold array sizes and track whether
11855 they are constant expressions and whether they are integer
11856 constant expressions.
11857 (parser_xref_tag): Set expr and expr_const_operands fields in
11858 return value.
11859 (grokfield): Update call to grokdeclarator.
11860 (start_function): Update call to grokdeclarator.
11861 (build_null_declspecs): Set expr and expr_const_operands fields in
11862 return value.
11863 (declspecs_add_type): Handle expressions in typeof specifiers.
11864 * c-parser.c (c_parser_declspecs): Set expr and
11865 expr_const_operands fields for declaration specifiers.
11866 (c_parser_enum_specifier): Likewise.
11867 (c_parser_struct_or_union_specifier): Likewise.
11868 (c_parser_typeof_specifier): Likewise. Update call to
11869 groktypename. Fold expression as needed. Return expressions with
11870 type instead of adding statements.
11871 (c_parser_attributes): Update calls to c_parser_expr_list.
11872 (c_parser_statement_after_labels): Fold expression before passing
11873 to objc_build_throw_stmt.
11874 (c_parser_condition): Fold expression.
11875 (c_parser_asm_operands): Fold expression.
11876 (c_parser_conditional_expression): Use c_save_expr. Update call
11877 to build_conditional_expr.
11878 (c_parser_alignof_expression): Update call to groktypename.
11879 (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
11880 original_code. Fold expression argument of va_arg. Create
11881 C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
11882 argument to va_arg. Update calls to groktypename. Fold array
11883 index for offsetof. Verify that first argument to
11884 __builtin_choose_expr has integer type.
11885 (c_parser_postfix_expression_after_paren_type): Update calls to
11886 groktypename and build_compound_literal. Handle expressions with
11887 side effects in type name.
11888 (c_parser_postfix_expression_after_primary): Update call to
11889 c_parser_expr_list. Set original_code for calls to
11890 __builtin_constant_p.
11891 (c_parser_expr_list): Take extra parameter fold_p. Fold
11892 expressions if requested.
11893 (c_parser_objc_type_name): Update call to groktypename.
11894 (c_parser_objc_synchronized_statement): Fold expression.
11895 (c_parser_objc_receiver): Fold expression.
11896 (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
11897 (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
11898 c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
11899 * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
11900 (struct c_typespec): Add elements expr and expr_const_operands.
11901 (struct c_declspecs): Add elements expr and expr_const_operands.
11902 (groktypename, build_conditional_expr, build_compound_literal):
11903 Update prototypes.
11904 (in_late_binary_op): Declare.
11905 * c-typeck.c (note_integer_operands): New function.
11906 (in_late_binary_op): New variable.
11907 (decl_constant_value_for_broken_optimization): Move to c-common.c
11908 and rename to decl_constant_value_for_optimization.
11909 (default_function_array_conversion): Do not strip nops.
11910 (default_conversion): Do not call
11911 decl_constant_value_for_broken_optimization.
11912 (build_array_ref): Do not fold result.
11913 (c_expr_sizeof_expr): Fold operand. Use C_MAYBE_CONST_EXPR for
11914 result when operand is a VLA.
11915 (c_expr_sizeof_type): Update call to groktypename. Handle
11916 expressions included in type name. Use C_MAYBE_CONST_EXPR for
11917 result when operand names a VLA type.
11918 (build_function_call): Update call to build_compound_literal.
11919 Only fold result for calls to __builtin_* functions. Strip
11920 NOP_EXPR from INTEGER_CST returned from such functions. Fold
11921 the function designator.
11922 (convert_arguments): Fold arguments. Update call to
11923 convert_for_assignment.
11924 (build_unary_op): Handle increment and decrement of
11925 C_MAYBE_CONST_EXPR. Move lvalue checks for increment and
11926 decrement earlier. Fold operand of increment and decrement.
11927 Handle address of C_MAYBE_CONST_EXPR. Only fold expression being
11928 built for integer operand. Wrap returns that are INTEGER_CSTs
11929 without being integer constant expressions or that have integer
11930 constant operands without being INTEGER_CSTs.
11931 (lvalue_p): Handle C_MAYBE_CONST_EXPR.
11932 (build_conditional_expr): Add operand ifexp_bcp. Track whether
11933 result is an integer constant expression or can be used in
11934 unevaluated parts of one and avoid folding and wrap as
11935 appropriate. Fold operands before possibly doing -Wsign-compare
11936 warnings.
11937 (build_compound_expr): Wrap result for C99 if operands can be used
11938 in integer constant expressions.
11939 (build_c_cast): Update call to digest_init. Do not ignore
11940 overflow from casting floating-point constants to integers. Wrap
11941 results that could be confused with integer constant expressions,
11942 null pointer constants or floating-point constants.
11943 (c_cast_expr): Update call to groktypename. Handle expressions
11944 included in type name.
11945 (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR. Fold
11946 lhs inside possible SAVE_EXPR. Fold RHS before assignment.
11947 Update calls to convert_for_assignment.
11948 (convert_for_assignment): Take new parameter
11949 null_pointer_constant. Do not strip nops or call
11950 decl_constant_value_for_broken_optimization. Set
11951 in_late_binary_op for conversions to boolean.
11952 (store_init_value): Update call to digest_init.
11953 (digest_init): Take new parameter null_pointer_constant. Do not
11954 call decl_constant_value_for_broken_optimization. pedwarn for
11955 initializers not constant expressions. Update calls to
11956 convert_for_assignment.
11957 (constructor_nonconst): New.
11958 (struct constructor_stack): Add nonconst element.
11959 (really_start_incremental_init, push_init_level, pop_init_level):
11960 Handle constructor_nonconst and nonconst element.
11961 (set_init_index): Call constant_expression_warning for array
11962 designators.
11963 (output_init_element): Fold value. Set constructor_nonconst as
11964 applicable. pedwarn for initializers not constant expressions.
11965 Update call to digest_init. Call constant_expression_warning
11966 where constant initializers are required.
11967 (process_init_element): Use c_save_expr.
11968 (c_finish_goto_ptr): Fold expression.
11969 (c_finish_return): Fold return value. Update call to
11970 convert_for_assignment.
11971 (c_start_case): Fold switch expression.
11972 (c_process_expr_stmt): Fold expression.
11973 (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
ba20e309 11974 ensure statement expression is not evaluated in constant expression.
928c19bb
JM
11975 (build_binary_op): Track whether results are integer constant
11976 expressions or may occur in such, disable folding and wrap results
11977 as applicable. Fold operands for -Wsign-compare warnings unless
11978 in_late_binary_op.
11979 (c_objc_common_truthvalue_conversion): Handle results folded to
11980 integer constants that are not integer constant expressions.
11981 * doc/extend.texi: Document when typeof operands are evaluated,
11982 that condition of __builtin_choose_expr is an integer constant
11983 expression, and more about use of __builtin_constant_p in
11984 initializers.
11985
5babbcc0
RG
119862009-03-29 Richard Guenther <rguenther@suse.de>
11987
11988 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
11989 propagate addresses of array references.
11990
0340f2ba
SB
119912009-03-29 Steven Bosscher <steven@gcc.gnu.org>
11992
11993 * regmove.c (perhaps_ends_bb_p): Remove.
11994 (optimize_reg_copy_1): Don't call perhaps_ends_bb_p. Get basic block
11995 from INSN and check that the main loop stays within that basic block.
11996 (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
11997 (regmove_forward_pass): Split out from regmove_optimize. Use
11998 FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
11999 (regmove_backward_pass): Split out from regmove_optimize. Use
12000 FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
12001 (regmove_optimize): Simplify.
12002
eeae74a1
L
120032009-03-29 H.J. Lu <hongjiu.lu@intel.com>
12004
12005 PR target/39545
12006 * config/i386/i386.c (classify_argument): Ignore flexible array
12007 member in struct and warn ABI change.
12008
a24078b2
L
120092009-03-29 H.J. Lu <hongjiu.lu@intel.com>
12010
12011 * config/i386/i386-protos.h (ix86_agi_dependent): New.
12012
12013 * config/i386/i386.c (ix86_agi_dependent): Rewrite.
12014 (ix86_adjust_cost): Updated.
12015
a8da523f
JH
120162009-03-29 Jan Hubicka <jh@suse.cz>
12017
12018 PR middle-end/28850
12019 * tree-pass.h (pass_cleanup_eh): New function.
12020 (remove_unreachable_regions): Break code handling RTL
12021 to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
12022 that can not be reached by runtime.
12023 (can_be_reached_by_runtime): New function.
12024 (label_to_region_map): New function.
12025 (num_eh_regions): New function.
12026 (rtl_remove_unreachable_regions): New function.
12027 (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
12028 (remove_eh_region): New function.
12029 * except.h: Include sbitmap and vecprim.
12030 (remove_eh_region, remove_unreachable_regions, label_to_region_map,
12031 num_eh_regions): Declare.
12032 * passes.c (init_optimization_passes): Schedule cleanup_eh.
ba20e309 12033 * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
a8da523f
JH
12034 * tree-eh.c (tree_remove_unreachable_handlers): New function.
12035 (tree_empty_eh_handler_p): New function.
12036 (cleanup_empty_eh): New function.
12037 (cleanup_eh): New function.
12038 (pass_cleanup_eh): New function.
12039
98f358e5
JH
120402009-03-29 Jan Hubicka <jh@suse.cz>
12041
12042 * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
12043 for removed regions.
12044
13a9fa44
JH
120452009-03-29 Jan Hubicka <jh@suse.cz>
12046
12047 * except.c (dump_eh_tree): Dump all datastructures.
12048
e38cf733
JH
120492009-03-29 Jan Hubicka <jh@suse.cz>
12050
12051 * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
12052 (duplicate_eh_regions_1): Likewise.
12053 (duplicate_eh_regions): Likewise; cleanup code gorwing the region
12054 vector; call EH verification.
12055 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
12056 Be ready for region being removed.
12057
12802c2b
JH
120582009-03-29 Jan Hubicka <jh@suse.cz>
12059
12060 * bitmap.c (bitmap_last_set_bit): New function.
12061 * bitmap.h (bitmap_last_set_bit): Declare.
12062
4ea80a41
DA
120632009-03-29 David Ayers <ayers@fsfe.org>
12064
12065 PR objc/27377
12066 * c-typeck.c (build_conditional_expr): Emit ObjC warnings
12067 by calling objc_compare_types and surpress warnings about
12068 incompatible C pointers that are compatible ObjC pointers.
2ba9daa7 12069
4ea80a41 120702009-03-29 Adam Nemet <anemet@caviumnetworks.com>
3dc9eaa6
AN
12071
12072 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
12073 call initialize_inline_failed.
12074 (initialize_inline_failed): Move it from here ...
12075 * cgraph.c (initialize_inline_failed): ... to here.
12076 (cgraph_create_edge): Call initialize_inline_failed rather than
12077 setting inline_failed directly.
12078
7fb0ee07
BE
120792009-03-29 Ben Elliston <bje@au.ibm.com>
12080
12081 PR target/32542
12082 * sysv4.opt (msdata): Improve comment.
12083 * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
12084 * sysv4.h (SVR4_ASM_SPEC): Likewise.
12085
0be77bf2
BE
120862009-03-29 Ben Elliston <bje@au.ibm.com>
12087
12088 PR target/30451
12089 * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
12090 load and store attributes.
12091
593812b6
BE
120922009-03-29 Ben Elliston <bje@au.ibm.com>
12093
12094 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
12095 (ix86_init_builtins): Add built-in function __builtin_huge_valq.
12096 (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
12097 * doc/extend.texi (X86 Built-in Functions): Add index entries for
12098 __builtin_infq and __builtin_huge_valq.
12099
8272d11d
AS
121002009-03-28 Anatoly Sokolov <aesok@post.ru>
12101
12102 * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
12103 atmega8m1 devices.
12104 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
12105 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
12106
74fe548b
XDL
121072009-03-28 Xinliang David Li <davidxl@google.com>
12108
2ba9daa7 12109 * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
74fe548b
XDL
12110 (do_dbg_cnt): New function.
12111
33977f81
JH
121122009-03-28 Jan Hubicka <jh@suse.cz>
12113
12114 Merge from pretty-ipa:
12115
12116 2009-03-27 Jan Hubicka <jh@suse.cz>
ba20e309 12117
33977f81
JH
12118 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
12119 * tree-pass.h (function_called_by_processed_nodes_p): Declare.
12120 * passes.c (function_called_by_processed_nodes_p): New.
12121 * ipa-pure-const.c (check_call): Fix handling of operands.
12122 (analyze_function): Dump debug output for skipped bodies.
12123 (local_pure_const): Use function_called_by_processed_nodes_p.
12124 * dwarf2out.c (reference_to_unused): Use output.
12125 * passes.c (do_per_function_toporder): Likewise.
12126
12127 2008-11-12 Jan Hubicka <jh@suse.cz>
12128
12129 * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
12130 * ipa-pure-const.c (funct_state_d): Add can throw field; make
12131 state_set_in_source enum
12132 (check_decl): Ignore memory tags; do not set fake looping flags;
12133 dump diagnostics.
12134 (check_operand, check_tree, check_rhs_var, check_lhs_var,
12135 get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
12136 (check_call, analyze_function): Rewrite.
12137 (check_stmt): New.
12138 (add_new_function): Update call of analyze_function.
12139 (generate_summary): Add call of analyze_function.
12140 (propagate): Propagate can_throw; handle state_set_in_source correctly.
12141 (local_pure_const): New function.
12142 (pass_local_pure_const): New pass.
12143 * ipa-inline.c (inline_transform): Set after_inlining.
12144 * tree-eh.c (stmt_can_throw_external): New.
12145 * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
12146 work with aliasing built.
12147 * tree-flow.h (stmt_can_throw_external): New.
12148 * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
12149 and local pure/const pass in early and late optimization queue.
ba20e309 12150
617f3897
MJ
121512009-03-28 Martin Jambor <mjambor@suse.cz>
12152
12153 * fold-const.c (get_pointer_modulus_and_residue): New parameter
12154 allow_func_align.
12155 (fold_binary): Allow function decl aligment consideration is the
12156 second argument is integer constant one.
12157 * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
12158 (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
12159 with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
12160
fe89fbc5
JH
121612009-03-28 Jan Hubicka <jh@suse.cz>
12162
12163 * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
12164 * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
12165 * function.h (rtl_data): Add nothrow flag.
12166 * except.c (set_nothrow_function_flags): Use crtl->nothrow;
12167 set DECL_NOTHROW for AVAILABLE functions.
12168
574872ff
JJ
121692009-03-28 Jakub Jelinek <jakub@redhat.com>
12170
b3bf8855
JJ
12171 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
12172 following vector keyword has expansion starting with pixel or bool
12173 keyword, expand vector to __vector and pixel or bool to __pixel or
12174 __bool.
12175
574872ff
JJ
12176 PR c++/39554
12177 * opts.c (warning_disallowed_functions, warn_disallowed_functions,
12178 warn_if_disallowed_function_p): Removed.
12179 (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
12180 * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
12181 warning_if_disallowed_function_p.
12182 * flags.h (warn_if_disallowed_function_p,
12183 warn_disallowed_functions): Removed.
12184 * common.opt (Wdisallowed-function-list=): Removed.
12185 * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
12186
b005da11
RG
121872009-03-28 Richard Guenther <rguenther@suse.de>
12188
12189 PR tree-optimization/38723
12190 * tree-ssa-pre.c (compute_avail): Add all default definitions to
12191 the entry block.
12192
1de812a6
JH
121932009-03-28 Jan Hubicka <jh@suse.cz>
12194
12195 * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
12196 test introduced by my previous patch.
12197
fbb789d4
RG
121982009-03-28 Richard Guenther <rguenther@suse.de>
12199
12200 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
12201 the PHIs value undefined.
12202
6f1873a1
JH
122032009-03-28 Jan Hubicka <jh@suse.cz>
12204
12205 * tree-pass.h (pass_fixup_cfg): New pass.
12206 * ipa-inline.c (inline_transform): Set
12207 always_inline_functions_inlined/after_inlining.
12208 * tree-optimize.c (execute_fixup_cfg): Do not set them here.
12209 (pass_fixup_cfg): New pass.
12210 * passes.c (init_optimization_passes): Add fixup_cfg.
12211
17021bc8
RG
122122009-03-28 Richard Guenther <rguenther@suse.de>
12213
12214 PR tree-optimization/38458
12215 * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
12216 argument use the arguments copy-of value.
12217
e8114fba
RG
122182009-03-28 Richard Guenther <rguenther@suse.de>
12219
12220 PR tree-optimization/38180
12221 * tree-ssa-ccp.c (get_default_value): Simplify.
12222 (likely_value): Likewise.
12223 (surely_varying_stmt_p): Properly handle VOP case.
12224 (ccp_initialize): Likewise.
12225 (ccp_fold): Handle propagating through *&.
12226 (fold_const_aggregate_ref): Also handle decls.
12227
257eb6e3
JH
122282009-03-28 Jan Hubicka <jh@suse.cz>
12229
12230 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
12231 * cgraph.h (cgraph_node): Likewise.
12232 * cgraphunit.c (cgraph_process_new_functions): Set process flag.
12233 (cgraph_reset_node): Use process flag.
12234 (cgraph_mark_functions_to_output): Likewise.
12235 (cgraph_expand_function): Likewise.
12236 (cgraph_expand_all_functions): Likewise.
12237 (cgraph_output_in_order): Likewise.
12238 * dwarf2out.c (reference_to_unused): Likewise.
12239 * passes.c do_per_function_toporder): Likewise.
12240
61a05df1
JH
122412009-03-28 Jan Hubicka <jh@suse.cz>
12242
12243 Bring from lto-branch:
ba20e309 12244
61a05df1
JH
12245 2008-09-03 Doug Kwan <dougkwan@google.com>
12246
12247 * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
12248 enums instead of reason strings.
12249 * cgraph.c (cgraph_create_edge): Same.
12250 (cgraph_inline_failed_string): New function.
12251 * cgraph.h (cgraph_inline_failed_t): New enum type.
12252 (cgraph_inline_failed_string): New prototype.
12253 (struct cgraph_edge): Change type of INLINED_FAILED from constant
12254 char pointer to cgraph_inline_failed_t.
12255 (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
12256 (cgraph_default_inline_p): Ditto.
60839f5d 12257 * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
61a05df1
JH
12258 to cgraph_inline_failed_t pointer.
12259 * cif-code.def: New file.
12260 * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
12261 reason string.
12262 (cgraph_check_inline_limits): Change type of REASON to pointer to
12263 cgraph_inline_failed_t. Replace reason strings with enums.
12264 (cgraph_default_inline_p): Ditto.
12265 (cgraph_recursive_inlining_p): Ditto.
12266 (update_caller_keys): Change type of FAILED_REASON to
12267 cgraph_inline_failed_t.
12268 (cgraph_set_inline_failed): Change type of REASON to pointer to
12269 cgraph_inline_failed_t. Call cgraph_inline_failed_string to
12270 convert enums to strings for text output.
12271 (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
12272 to be of type cgraph_inline_failed_t. Replace reason strings with
12273 enums. Call cgraph_inline_failed_string to covert enums
12274 to strings for text output.
12275 (cgraph_decide_inlining): Replace reason strings with enums.
12276 (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
12277 to cgraph_inline_failed_t type. Call cgraph_inline_failed_string
12278 for text output.
12279 * tree-inline.c (expand_call_inline): Change type of REASON
12280 to cgraph_inline_failed_t. Replace reason strings with enums.
12281 Call cgraph_inline_failed_string for text output.
12282 * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
12283 (cgraph.o): Ditto.
12284
144e8aac
JH
122852009-03-28 Jan Hubicka <jh@suse.cz>
12286
12287 * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
12288 cgraph_clone_node): Remove master clone handling.
12289 (cgraph_is_master_clone, cgraph_master_clone): Remove.
12290 * cgraph.h (master_clone): Remove.
12291 (cgraph_is_master_clone, cgraph_master_clone): Remove.
12292 * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
12293 (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
12294
4a371c8d
JH
122952009-03-28 Jan Hubicka <jh@suse.cz>
12296
12297 * cgraph.c (cgraph_function_body_availability): Functions declared
12298 inline are always safe to assume that it is not going to be replaced.
12299
6cdb0ee3
RG
123002009-03-28 Richard Guenther <rguenther@suse.de>
12301
12302 PR tree-optimization/38513
12303 * tree-ssa-pre.c (eliminate): Remove redundant stores.
12304 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
12305 EXC_PTR_EXPR and FILTER_EXPR.
12306 (get_ref_from_reference_ops): Likewise.
12307
8ca1fd76
RG
123082009-03-28 Richard Guenther <rguenther@suse.de>
12309
12310 PR tree-optimization/38968
12311 * tree-vect-analyze.c (vect_compute_data_ref_alignment):
12312 Use FLOOR_MOD_EXPR to compute misalignment.
12313
a254e44d
RG
123142009-03-28 Richard Guenther <rguenther@suse.de>
12315
12316 PR tree-optimization/37795
12317 * tree.h (combine_comparisons): Declare.
12318 * fold-const.c (combine_comparisons): Export.
12319 * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
12320 comparisons.
12321 (ifcombine_iforif): Use combine_comparisons.
12322
a8ee227c
JH
123232009-03-28 Jan Hubicka <jh@suse.cz>
12324
12325 * tree-eh.c (inlinable_call_p): New function.
12326 (make_eh_edges): Use it.
12327 (verify_eh_edges): Use it.
12328 (stmt_can_throw_external, stmt_can_throw_internal): Use it.
12329 * except.c (reachable_next_level): Add inlinable_function argument
12330 (sjlj_find_directly_reachable_regions): Update.
12331 (add_reachable_handler): Do not set saw_any_handlers.
12332 (reachable_next_level): Handle MUST_NOT_THROW more curefully.
12333 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
12334 Add new inlinable call parameter.
12335 (can_throw_internal, can_throw_external): Update.
12336 * except.h (can_throw_internal_1, can_throw_external_1,
12337 foreach_reachable_handler): Update declaration.
12338
52c0e446
JM
123392009-03-28 Joseph Myers <joseph@codesourcery.com>
12340
12341 * config/arm/t-arm-coff, config/h8300/coff.h,
12342 config/i386/i386-aout.h, config/i386/i386-coff.h,
12343 config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
12344 config/pdp11/2bsd.h, config/rs6000/aix41.h,
12345 config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
12346 fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
12347 scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
12348 sys-types.h: Remove.
12349 * Makefile.in: Remove protoize and fixproto support and references
12350 in comments.
12351 (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
12352 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
12353 Remove.
12354 (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
12355 (MOSTLYCLEANFILES): Remove protoize$(exeext) and
12356 unprotoize$(exeext).
12357 (rest.encap): Don't depend on $(STMP_FIXPROTO)
12358 (.PHONY): Don't depend on proto.
12359 (libgcc-support): Don't depend on $(STMP_FIXPROTO).
12360 (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
12361 protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
12362 deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
12363 build/gen-protos.o, build/scan.o, xsys-protos.h,
12364 build/fix-header$(build_exeext), build/fix-header.o,
12365 build/scan-decls.o, fixhdr.ready, stmp-fixproto,
12366 stmp-install-fixproto): Remove.
12367 (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
12368 SYSCALLS.c or fixproto files.
12369 (install-common): Don't install protoize.
12370 (install-headers-tar, install-headers-cpio, install-headers-cp):
12371 Don't depend on $(STMP_FIXPROTO).
12372 (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't
12373 install fixproto files or write out fixproto settings.
12374 (uninstall): Don't uninstall protoize.
12375 * config.gcc (use_fixproto): Remove.
12376 (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
12377 i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
12378 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
12379 * config/m32r/t-linux (STMP_FIXPROTO): Remove.
12380 * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
12381 * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
12382 * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
12383 * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
12384 * config/t-svr4 (FIXPROTO_DEFINES): Remove.
12385 * config/t-vxworks (STMP_FIXPROTO): Remove.
12386 * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
12387 STMP_FIXPROTO): Remove.
12388 * config.in, configure: Regenerate.
12389 * crtstuff.c (gid_t, uid_t): Don't undefine.
12390 * doc/install.texi: Change m68k-coff to m68k-elf in example.
12391 (arm-*-coff, arm-*-aout: Remove target entries.
12392 (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
12393 Remove mention of AIX 4.1.
12394 (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
12395 * doc/invoke.texi (Running Protoize): Remove.
12396 * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
12397 (Protoize Caveats): Remove.
12398 * tsystem.h: Update comments on headers assumed to exist.
12399
20a07f44
VM
124002009-03-27 Vladimir Makarov <vmakarov@redhat.com>
12401
12402 * genautomata.c: Add a new year to the copyright. Add a new
12403 reference.
12404 (struct insn_reserv_decl): Add comments for member bypass_list.
12405 (find_bypass): Remove.
12406 (insert_bypass): New.
12407 (process_decls): Use insert_bypass.
12408 (output_internal_insn_latency_func): Output all bypasses with the
12409 same input insn in one switch case.
12410
12411 * rtl.def (define_bypass): Describe bypass choice.
12412 * doc/md.texi (define_bypass): Ditto.
12413
3a0d06c1
RB
124142009-03-27 Richard Guenther <rguenther@suse.de>
12415
12416 * gimplify.c (mark_addressable): Export.
12417 * tree-flow.h (mark_addressable): Declare.
12418 * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
12419 * tree-ssa.c (verify_phi_args): Verify that address taken
12420 variables have TREE_ADDRESSABLE set.
12421
124222009-03-27 Richard Guenther <rguenther@suse.de>
12423
12424 * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
12425 (build_fold_addr_expr_with_type): ... this. Remove in_fold handling.
12426 Do not mark decls TREE_ADDRESSABLE.
12427 (build_fold_addr_expr): Adjust.
12428 (fold_addr_expr): Remove.
12429 (fold_unary): Use build_fold_addr_expr.
12430 (fold_comparison): Likewise.
12431 (split_address_to_core_and_offset): Likewise.
12432 * coverage.c (tree_coverage_counter_addr): Mark the array decl
12433 TREE_ADDRESSABLE.
12434 * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
12435 (gimplify_modify_expr_to_memcpy): Mark source and destination
12436 addressable.
12437 * omp-low.c (create_omp_child_function): Mark the object decl
12438 TREE_ADDRESSABLE.
12439 (lower_rec_input_clauses): Mark the var we take the address of
12440 TREE_ADDRESSABLE.
12441 (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
12442
2ac26e15
L
124432009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12444
12445 PR middle-end/39315
12446 * cfgexpand.c (expand_one_stack_var_at): Change alignment
12447 limit to MAX_SUPPORTED_STACK_ALIGNMENT.
12448
472c7fbd
RG
124492009-03-27 Richard Guenther <rguenther@suse.de>
12450
12451 PR tree-optimization/39120
12452 * tree-ssa-structalias.c (handle_rhs_call): Fill out return
12453 constraints.
12454 (handle_lhs_call): Process return constraints. Add escape
12455 constraints if necessary.
12456 (handle_const_call): Fill out return constraints. Make nested
12457 case more precise. Avoid consttmp if possible.
12458 (handle_pure_call): Fill out return constraints. Avoid
12459 callused if possible.
12460 (find_func_aliases): Simplify call handling.
12461
124622009-03-27 Richard Guenther <rguenther@suse.de>
12463
12464 PR tree-optimization/39120
12465 * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
12466 as a representative.
12467 (solve_graph): Do propagate CALLUSED.
12468 (handle_pure_call): Use a scalar constraint from CALLUSED for
12469 the return value.
12470 (find_what_p_points_to): CALLUSED shall not appear in poins-to
12471 solutions.
12472
d9223014
L
124732009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12474
12475 PR c/39323
12476 * c-common.c (handle_aligned_attribute): Properly check alignment
12477 overflow. Use (1U << i) instead of (1 << i).
12478
ba20e309 12479 * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
d9223014
L
12480
12481 * expr.h (get_mem_align_offset): Updated.
12482
12483 * tree.h (tree_decl_common): Change align to "unsigned int" and
12484 move it before pointer_alias_set.
12485
689b689c
L
124862009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12487 Jakub Jelinek <jakub@redhat.com>
12488
12489 PR target/38034
12490 * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
12491 gr_register_operand with gr_reg_or_0_operand.
12492 (cmpxchg_rel_di): Likewise.
12493 (sync_lock_test_and_set<mode>): Likewise.
12494
c619e982
L
124952009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12496
12497 * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
12498 (true_regnum): Likewise.
12499
12500 * rtlanal.c (subreg_info): Moved to ...
12501 * rtl.h (subreg_info): Here. New.
12502 (subreg_get_info): New.
12503
12504 * rtlanal.c (subreg_get_info): Make it extern.
12505
51212b32
L
125062009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12507
12508 PR target/39472
12509 * config/i386/i386.c (ix86_abi): New.
12510 (override_options): Handle -mabi=.
ba20e309 12511 (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
51212b32
L
12512 (ix86_call_abi_override): Likewise.
12513 (init_cumulative_args): Likewise.
12514 (function_arg_advance): Likewise.
12515 (function_arg_64): Likewise.
12516 (function_arg): Likewise.
12517 (ix86_pass_by_reference): Likewise.
12518 (ix86_function_value_regno_p): Likewise.
12519 (ix86_build_builtin_va_list_abi): Likewise.
12520 (setup_incoming_varargs_64): Likewise.
12521 (is_va_list_char_pointer): Likewise.
12522 (ix86_init_machine_status): Likewise.
ba20e309 12523 (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
51212b32
L
12524 (ix86_function_type_abi): Return enum calling_abi. Rewrite
12525 for 64bit. Replace DEFAULT_ABI with ix86_abi.
ba20e309 12526 (ix86_function_abi): Make it static and return enum calling_abi.
51212b32
L
12527 (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI
12528 with ix86_abi.
12529 (ix86_fn_abi_va_list): Updated.
12530
12531 * config/i386/i386.h (ix86_abi): New.
12532 (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
12533 (CONDITIONAL_REGISTER_USAGE): Likewise.
12534 (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
12535 (machine_function): Likewise.
12536
12537 * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
12538 with ix86_abi.
12539 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
12540 (STACK_BOUNDARY): Likewise.
12541 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
12542
12543 * config/i386/i386.opt (mabi=): New.
12544
12545 * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
12546 return enum calling_abi.
12547 (ix86_function_type_abi): Likewise.
12548 (ix86_function_abi): Removed.
12549
12550 * doc/invoke.texi: Document -mabi= option for x86.
12551
7338ea63
KG
125522009-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12553
12554 * builtins.c (real_dconstp): Delete.
12555 (fold_builtin_logarithm): Remove inaccurate log(e) special case.
12556
68599f33
DS
125572009-03-27 Dodji Seketeli <dodji@redhat.com>
12558 Jakub Jelinek <jakub@redhat.com>
12559
12560 PR debug/37959
12561 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
12562 (gen_subprogram_die): When a function is explicit, generate the
12563 DW_AT_explicit attribute.
12564 * langhooks.h (struct lang_hooks_for_decls): Add
12565 function_decl_explicit_p langhook.
12566 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
12567 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
12568
9f5e9983
JJ
125692009-03-27 Jakub Jelinek <jakub@redhat.com>
12570
64d7685c
JJ
12571 * builtins.c (fold_builtin_memory_op): Optimize memmove
12572 into memcpy if we can prove source and destination don't overlap.
12573
9f5e9983
JJ
12574 * tree-inline.c: Include gt-tree-inline.h.
12575 (clone_fn_id_num): New variable.
12576 (clone_function_name): New function.
12577 (tree_function_versioning): Use it.
12578 * Makefile.in (GTFILES): Add tree-inline.c.
12579
e54d52a8
MM
125802009-03-27 Mark Mitchell <mark@codesourcery.com>
12581
12582 * BASE-VER: Change to 4.5.0.
12583
e9d51dc6
XDL
125842009-03-27 Xinliang David Li <davidxl@google.com>
12585
12586 PR tree-optimization/39557
12587 * tree-ssa.c (warn_uninitialized_vars): free postdom info.
12588
4577cea1
XDL
125892009-03-27 Xinliang David Li <davidxl@google.com>
12590
12591 PR tree-optimization/39548
2ba9daa7 12592 * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
4577cea1
XDL
12593 candidate check.
12594
0f7464f4
L
125952009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12596
12597 * c-common.c (pointer_int_sum): Use %wd on return from
12598 tree_low_cst.
12599
a8847a7f
L
126002009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12601
12602 * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
12603 on return from tree_low_cst.
12604
b0957daf
AP
126052009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com>
12606
12607 PR c++/36799
ba20e309
UB
12608 * ginclude/stdarg.h (va_copy): Define also for
12609 __GXX_EXPERIMENTAL_CXX0X__.
b0957daf 12610
a5f805df
MLI
126112009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
12612
12613 PR c++/35652
12614 * builtins.h (c_strlen): Do not warn here.
12615 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
12616 * c-common.c (pointer_int_sum): Take an explicit location.
12617 Warn about offsets out of bounds.
12618 * c-common.h (pointer_int_sum): Adjust declaration.
12619
6f401211
RW
126202009-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12621
a5f805df
MLI
12622 * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
12623 markup glitch.
6f401211 12624
5a59b39e
JJ
126252009-03-26 Jakub Jelinek <jakub@redhat.com>
12626
12627 PR c++/39554
12628 * opts.c (warn_if_disallowed_function_p): Don't assume
12629 get_callee_fndecl must return non-NULL.
12630
d5f89b53
VM
126312009-03-26 Vladimir Makarov <vmakarov@redhat.com>
12632
12633 PR rtl-optimization/39522
12634 * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
12635 when reg_reloaded_valid is set.
12636
61238a79
UW
126372009-03-26 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12638
12639 * config/spu/divv2df3.c: New file.
12640 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
12641 (DPBIT_FUNCS): Filter out _div_df.
12642
03f8829b
BS
126432009-03-26 Bernd Schmidt <bernd.schmidt@analog.com>
12644
12645 * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
12646 a jump insn, count that jump in the distance to the loop start.
12647
9fdcdc74
KK
126482009-03-25 Kaz Kojima <kkojima@gcc.gnu.org>
12649
12650 PR target/39523
12651 * config/sh/sh.c (calc_live_regs): Fix condition for global
12652 registers except PIC_OFFSET_TABLE_REGNUM.
12653
46994828
KT
126542009-03-25 Kai Tietz <kai.tietz@onevision.com>
12655
12656 PR/39518
12657 * doc/invoke.texi (-mconsole): New.
12658 (-mcygwin): New.
12659 (-mno-cygwin): New.
12660 (-mdll): New.
12661 (-mnop-fun-dllimport): New.
12662 (-mthread): New.
12663 (-mwin32): New.
12664 (-mwindows): New.
12665 (sub section "i386 and x86-64 Windows Options"): New.
12666
60839f5d 126672009-03-25 Ralf Corsépius <ralf.corsepius@rtems.org>
370017b4
RC
12668
12669 * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
12670 * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
12671
ae560440
RG
126722009-03-25 Richard Guenther <rguenther@suse.de>
12673
12674 PR middle-end/39497
12675 * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
12676 of -Wno-error.
12677
cd510f15
AM
126782009-03-25 Andrey Belevantsev <abel@ispras.ru>
12679
12680 * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
12681 neither of haifa/selective schedulers are working.
12682
44ab0f0e
RW
126832009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12684
12685 * doc/invoke.texi (Debugging Options): Fix description of
12686 -fno-merge-debug-strings.
12687
ad9646c7
HPN
126882009-03-24 Hans-Peter Nilsson <hp@axis.com>
12689
e6142656
HPN
12690 * config/cris/libgcc.ver: New version-script.
12691 * config/cris/t-linux (SHLIB_MAPFILES): Use it.
12692
ad9646c7
HPN
12693 * configure.ac <GAS features, nop mnemonic>: Add pattern
12694 crisv32-*-* for "nop".
ba20e309 12695 <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
ad9646c7
HPN
12696 * configure: Regenerate.
12697
09ac4473
IR
126982009-03-24 Ira Rosen <irar@il.ibm.com>
12699
12700 PR tree-optimization/39529
12701 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
12702 mark_sym_for_renaming for the tag copied to the new vector
12703 pointer.
12704
d94a427e
AL
127052009-03-24 Arthur Loiret <aloiret@debian.org>
12706
ba20e309 12707 * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
d94a427e
AL
12708 * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
12709 EXTRA_SPEC_FUNCTIONS.
12710 (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
12711 * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
12712 * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
12713 -march and -mtune options.
12714
60839f5d 127152009-03-24 Ralf Corsépius <ralf.corsepius@rtems.org>
722d07aa
RC
12716
12717 * config/m68k/t-rtems: Add m5329 multilib.
12718
603f5959
DS
127192009-03-24 Dodji Seketeli <dodji@redhat.com>
12720 Jakub Jelinek <jakub@redhat.com>
12721
12722 PR debug/39524
12723 * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
12724 nodes.
12725
c5cdb03f
JJ
127262009-03-23 Jakub Jelinek <jakub@redhat.com>
12727
12728 PR c/39495
12729 * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
12730 instead of c_parser_expression_conv, if original_code isn't one of the
12731 4 allowed comparison codes, fail.
12732
3691626c
RG
127332009-03-23 Richard Guenther <rguenther@suse.de>
12734
12735 * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
12736 * tree.h (struct tree_type): Likewise.
12737 * reload.h (struct insn_chain): Likewise.
12738 * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
12739 * function.h (struct function): Likewise.
12740 * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
12741
88ccb72a
JJ
127422009-03-23 Jakub Jelinek <jakub@redhat.com>
12743
12744 PR tree-optimization/39516
12745 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
12746
60839f5d 127472009-03-23 Bingfeng Mei <bmei@broadcom.com>
a583a67e 12748
2ba9daa7 12749 * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
a583a67e
BM
12750 should be set true if BITS_PER_WORD of target is bigger than 32
12751
f82162f8
HPN
127522009-03-22 Hans-Peter Nilsson <hp@axis.com>
12753
12754 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
12755 Translate -B-options to -rpath-link. Correct existing
12756 rpath-link and conditionalize on !nostdlib.
12757
048fd785
RW
127582009-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12759
12760 * doc/extend.texi (Function Attributes, Variable Attributes):
12761 Fix typos.
12762 * doc/invoke.texi (Debugging Options, Optimize Options)
12763 (i386 and x86-64 Options, MCore Options): Likewise.
12764
6e75c1a9
JJ
127652009-03-20 Jakub Jelinek <jakub@redhat.com>
12766
12767 PR debug/37890
12768 * dwarf2out.c (gen_namespace_die): Add context_die argument and use
12769 it for block local namespace aliases.
12770 (gen_decl_die): Pass context_die to gen_namespace_die.
12771
ea1199ee
JJ
127722009-03-19 Jakub Jelinek <jakub@redhat.com>
12773
12774 PR c/39495
12775 * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
12776 minimum or maximum value.
12777
58929c10
AO
127782009-03-19 Alexandre Oliva <aoliva@redhat.com>
12779
12780 * reginfo.c (globalize_reg): Recompute derived reg sets.
12781
60839f5d 127822009-03-19 Ozkan Sezer <sezeroz@gmail.com>
234952b3
OS
12783
12784 PR target/39063
12785 * libgcc2.c (mprotect): Do not use signed arguments for
12786 VirtualProtect, use DWORD arguments. Also fix the 'may
12787 be used uninitialized' warning for the np variable.
12788
f57c2f04
JJ
127892009-03-19 Jakub Jelinek <jakub@redhat.com>
12790
12791 PR target/39496
12792 * config/i386/i386.c (ix86_function_regparm): Don't optimize local
12793 functions using regparm calling conventions when not optimizing.
12794 (ix86_function_sseregparm): Similarly for sseregparm calling
12795 conventions.
12796
9e517d61
LF
127972009-03-19 Li Feng <nemokingdom@gmail.com>
12798
12799 PR middle-end/39500
12800 * tree-data-ref.c (analyze_subscript_affine_affine): There is no
12801 dependence if the first conflict is after niter iterations.
12802
8ef20026
HPN
128032009-03-19 Hans-Peter Nilsson <hp@axis.com>
12804
12805 PR middle-end/38609
12806 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
12807 functions with dynamic stack-pointer adjustments.
12808
64e4a1a6
BE
128092009-03-19 Ben Elliston <bje@au.ibm.com>
12810
12811 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
12812 option; change to -msdata=data.
12813
9a0f3e86
RW
128142009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12815
12816 * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
12817 and -fopenmp.
12818
09bc5979
EB
128192009-03-18 Eric Botcazou <ebotcazou@adacore.com>
12820
12821 PR target/35180
12822 * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
12823
332459cd
SL
128242009-03-18 Sandra Loosemore <sandra@codesourcery.com>
12825
12826 * doc/invoke.texi (Code Gen Options): Expand discussion of
12827 -fno-common.
12828
8f5929e1
JJ
128292009-03-18 Jakub Jelinek <jakub@redhat.com>
12830
12831 * dse.c (struct group_info): Reorder fields for 64-bit hosts.
12832 * matrix-reorg.c (struct matrix_info): Likewise.
12833 * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
12834 * rtl.h (struct mem_attrs): Likewise.
12835 * df.h (struct df): Likewise.
12836 * tree-data-ref.h (struct data_dependence_relation): Likewise.
12837 * ira-int.h (struct ira_allocno): Likewise.
12838 * df-scan.c (struct df_collection_rec): Likewise.
12839 * ira.c (struct equivalence): Likewise.
12840 * function.c (struct temp_slot): Likewise.
12841 * cfgloop.h (struct loop): Likewise.
12842
d130d647
JJ
12843 PR debug/39485
12844 * function.c (use_register_for_decl): When not optimizing, disregard
12845 register keyword for variables with types containing methods.
12846
9968d233
SP
128472009-03-18 Sebastian Pop <sebastian.pop@amd.com>
12848
12849 PR middle-end/39447
12850 * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
12851 (is_simple_operand): Call contains_component_ref_p before calling data
12852 reference analysis that would fail on COMPONENT_REFs.
12853
12854 * tree-vrp.c (search_for_addr_array): Fix formatting.
12855
69484bfd
RG
128562009-03-18 Richard Guenther <rguenther@suse.de>
12857
12858 * tree-vect-transform.c (vect_loop_versioning): Fold the
12859 generated comparisons.
12860 * tree-vectorizer.c (set_prologue_iterations): Likewise.
12861 (slpeel_tree_peel_loop_to_edge): Likewise.
12862
66811228
RW
128632009-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12864
0631b69f
RW
12865 PR middle-end/37805
12866 * opts.c (print_specific_help): In addition to `undocumented',
12867 accept `separate' and `joined' flags if passed alone. Describe
12868 output by the first matched one of those.
12869 (common_handle_option): Skip over empty strings.
12870 * gcc.c (display_help): Fix help string for `--help='.
12871 * doc/invoke.texi (Option Summary, Overall Options): With
12872 `--help=', classes and qualifiers can both be repeated, but
12873 only the latter can be negated. One should not pass only
12874 negated qualifiers. Fix markup and examples.
12875
66811228
RW
12876 Revert
12877 2008-10-14 Jakub Jelinek <jakub@redhat.com>
12878 PR middle-end/37805
12879 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
12880 and -fhelp=separate.
12881
3c072c6b
JY
128822009-03-17 Jing Yu <jingyu@google.com>
12883
12884 PR middle-end/39378
80c65208
JY
12885 * function.h (struct rtl_data): Move is_thunk from here...
12886 (struct function): ...to here.
12887 * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
3c072c6b
JY
12888 * varasm.c (assemble_start_function): Change is_thunk from crtl to
12889 cfun.
80c65208
JY
12890 * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
12891 cfun.
12892 (alpha_does_function_need_gp, alpha_start_function): Likewise.
12893 (alpha_output_function_end_prologue): Likewise.
12894 (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
12895 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
12896 (rs6000_output_function_epilogue): Likewise.
12897 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
3c072c6b 12898
9ade279b
UB
128992009-03-17 Uros Bizjak <ubizjak@gmail.com>
12900
12901 PR target/39482
12902 * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
12903 from different units in a single alternative.
12904 (*truncdfsf_i387): Ditto.
12905 (*truncxfsf2_mixed): Ditto.
12906 (*truncxfdf2_mixed): Ditto.
12907
16e60c17
JJ
129082009-03-17 Jakub Jelinek <jakub@redhat.com>
12909
98381eb4
JJ
12910 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
12911 non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
12912
df5deb18
JJ
12913 PR debug/39474
12914 * tree-ssa-live.c (remove_unused_locals): Don't remove local
12915 unused non-artificial variables when not optimizing.
12916
a3f596ba
JJ
12917 PR debug/39471
12918 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
12919 DW_TAG_imported_module even if decl is IMPORTED_DECL with
12920 NAMESPACE_DECL in its DECL_INITIAL.
12921
6b2b8871
JJ
12922 PR middle-end/39443
12923 * optabs.c (set_user_assembler_libfunc): New function.
12924 * expr.h (set_user_assembler_libfunc): New prototype.
12925 * c-common.c: Include libfuncs.h.
12926 (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
12927 for memcmp, memset, memcpy, memmove and abort.
12928 * Makefile.in (c-common.o): Depend on libfuncs.h.
12929
16e60c17
JJ
12930 PR debug/39412
12931 * dwarf2out.c (gen_inlined_enumeration_type_die,
12932 gen_inlined_structure_type_die, gen_inlined_union_type_die,
12933 gen_tagged_type_instantiation_die): Removed.
12934 (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
12935 do nothing.
12936
4d936aca
JJ
129372009-03-17 Janis Johnson <janis187@us.ibm.com>
12938
12939 PR testsuite/38526
12940 * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
12941 its use.
12942 (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
12943 (check-parallel-%): Ditto.
12944 (check-consistency): Ditto.
12945
4e9b2e50
KT
129462009-03-17 Kai Tietz <kai.tietz@onevision.com>
12947
12948 * ipa-struct-reorg.c (create_general_new_stmt): Initialize
12949 local variable rhs by NULL_TREE.
12950
21440b2d
L
129512009-03-17 H.J. Lu <hongjiu.lu@intel.com>
12952
12953 PR target/39477
9ade279b 12954 * doc/extend.texi: Correct register behavior for regparm on Intel 386.
21440b2d 12955
d8905c6a
L
129562009-03-17 H.J. Lu <hongjiu.lu@intel.com>
12957
12958 PR target/39476
9ade279b 12959 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
d8905c6a
L
12960
129612009-03-17 H.J. Lu <hongjiu.lu@intel.com>
435a61d3
L
12962
12963 PR target/39473
12964 * config/i386/i386.c (ix86_expand_call): Check extra clobbers
12965 for ms->sysv ABI calls only in 64bit mode.
12966
12967 * config/i386/i386.md (untyped_call): Support 32bit.
12968
cdcabece
L
129692009-03-16 H.J. Lu <hongjiu.lu@intel.com>
12970
12971 * doc/extend.texi: Replace x86_65 with x86_64.
12972
97b4ba9f
JJ
129732009-03-16 Jakub Jelinek <jakub@redhat.com>
12974
12975 PR tree-optimization/39455
12976 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
12977 mismatches for POINTER_TYPE_P (type).
12978 (number_of_iterations_le): Likewise.
12979
60839f5d 129802009-03-16 Hariharan Sandanagobalane <hariharan@picochip.com>
83c191e1
HS
12981
12982 * config/picochip/picochip.c: Removed profiling support.
12983 * config/picochip/picochip.md: Removed profiling instruction.
12984 * config/picochip/picochip.h: Removed profiling builtin.
12985
f38095f3
JM
129862009-03-16 Joseph Myers <joseph@codesourcery.com>
12987
12988 * doc/install.texi (--with-host-libstdcxx): Document.
12989
2cb4817b
AS
129902009-03-14 Anatoly Sokolov <aesok@post.ru>
12991
12992 PR target/34299
12993 * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
12994 generate a warning if the function name does not begin with
12995 "__vector" and the function has either the 'signal' or 'interrupt'
12996 attribute, from here to ...
12997 (avr_declare_function_name): ...here. New function.
12998 * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
12999 * config/avr/avr-protos.h (avr_declare_function_name): Declare.
13000
39b2ac74
JJ
130012009-03-14 Jakub Jelinek <jakub@redhat.com>
13002
13003 PR bootstrap/39454
13004 * cse.c (fold_rtx): Don't modify original const_arg1 when
13005 canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
13006 separate variable instead.
13007 * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
13008 from out of range shift counts.
13009 (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
13010
ad41bd84 130112009-03-13 Catherine Moore <clm@codesourcery.com>
f7a82dee 13012
60839f5d 13013 * config/i386/x-mingw32 (host-mingw32.o): Replace
f7a82dee
CM
13014 diagnostic.h with $(DIAGNOSTIC_H).
13015
ad41bd84 130162009-03-12 Jakub Jelinek <jakub@redhat.com>
03a18198
JJ
13017
13018 PR target/39431
13019 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
13020 predicate.
13021 * config/i386/sync.md (sync_compare_and_swap<mode>,
13022 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
13023 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
13024 into a register.
13025 (sync_double_compare_and_swapdi_pic,
13026 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
13027 cmpxchg8b_pic_memory_operand instead of just memory_operand.
13028
122c59c7
L
130292009-03-12 H.J. Lu <hongjiu.lu@intel.com>
13030
13031 PR target/39445
9ade279b 13032 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
122c59c7 13033
cec8874f
L
130342009-03-12 H.J. Lu <hongjiu.lu@intel.com>
13035
13036 PR target/39327
13037 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
13038 (avx_addsubv4df3): Likewise.
13039 (*avx_addsubv4sf3): Likewise.
13040 (sse3_addsubv4sf3): Likewise.
13041
bbb52802
L
130422009-03-12 H.J. Lu <hongjiu.lu@intel.com>
13043
13044 PR target/38824
9ade279b 13045 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
bbb52802 13046
a812fb07
VM
130472009-03-12 Vladimir Makarov <vmakarov@redhat.com>
13048
13049 PR debug/39432
13050 * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
13051 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
13052 registers for allocnos created from user-defined variables.
13053
4caab5ba
UW
130542009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13055
13056 PR target/39181
13057 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
13058 of non-integer mode as well.
13059
498e51ca
AN
130602009-03-11 Adam Nemet <anemet@caviumnetworks.com>
13061
13062 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
13063 for functions for which the parameter types are unknown.
13064
9bfaf89d
JJ
130652009-03-11 Jakub Jelinek <jakub@redhat.com>
13066
13067 PR target/39137
9ade279b 13068 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
9bfaf89d
JJ
13069 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
13070 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
13071 * config/i386/i386.c (ix86_local_alignment): For
13072 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
13073 long long variables on the stack to avoid dynamic realignment.
13074 Allow the first argument to be a decl rather than type.
13075 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
13076
18a3bdcb
NC
130772009-03-11 Nick Clifton <nickc@redhat.com>
13078
13079 PR target/5362
40190a76
NC
13080 * config/mcore/mcore.opt: Remove deprecated m4align and m8align
13081 options.
13082 Add description to mno-lsim option.
13083 * config/mcore/mcore.h: Remove comment about deprecated m4align
13084 option.
13085 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
13086 * doc/invoke.texi: Add description of mno-lsim and
13087 mstack-increment options.
13088
18a3bdcb
NC
13089 * config/fr30/fr30.opt: Document the -mno-lsim option.
13090 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
13091 and -mno-lsim options.
13092
dc215785
UW
130932009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13094
13095 * fold-const.c (fold_comparison): Only call fold_inf_compare
13096 if the mode supports infinities.
13097
7716876b
JM
130982009-03-11 Jason Merrill <jason@redhat.com>
13099
13100 PR debug/39086
13101 * tree-nrv.c (tree_nrv): Don't do this optimization if the front
13102 end already did. Notice GIMPLE_CALL modifications of the result.
13103 Don't copy debug information from an ignored decl or a decl from
13104 another function.
13105
ddef83d2
RG
131062009-03-10 Richard Guenther <rguenther@suse.de>
13107 Nathan Froyd <froydnj@codesourcery.com>
13108
13109 PR middle-end/37850
9ade279b 13110 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
ddef83d2
RG
13111 (__divMODE3): Likewise.
13112
9a9ba8d9
JJ
131132009-03-09 Jakub Jelinek <jakub@redhat.com>
13114
13115 PR tree-optimization/39394
13116 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
13117 DECL_SIZE_UNIT of variable length FIELD_DECLs.
13118
929b7fc3
AK
131192009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13120
13121 * recog.c (verfiy_changes): Disallow renaming of hard regs in
13122 inline asms for register asm ("") declarations.
13123
1803581d
EB
131242009-03-09 Eric Botcazou <ebotcazou@adacore.com>
13125
13126 * fold-const.c (fold_unary): Fix comment.
13127
8454d27e
JH
131282009-03-07 Jan Hubicka <jh@suse.cz>
13129
13130 PR target/39361
969a5433
JJ
13131 * tree-inline.c (setup_one_parameter): Do replacement of const
13132 argument by constant in SSA form.
8454d27e 13133
3a695389
UW
131342009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13135
13136 PR middle-end/38028
13137 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
13138 determine alignment passed to assign_stack_local.
13139 (assign_parms_unsplit_complex): Likewise.
13140 * except.c (sjlj_build_landing_pads): Likewise.
13141
9f0e7885
JJ
131422009-03-06 Jakub Jelinek <jakub@redhat.com>
13143
65401a0b
JJ
13144 PR middle-end/39360
13145 * tree-flow.h (add_referenced_var): Return bool instead of void.
13146 * tree-dfa.c (add_referenced_var): Return result of
13147 referenced_var_check_and_insert call.
13148 * tree-inline.c (expand_call_inline): Call add_referenced_var instead
13149 of referenced_var_check_and_insert.
13150
9f0e7885 13151 PR debug/39372
9ade279b 13152 * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
9f0e7885
JJ
13153 (gen_variable_die): Emit DW_AT_location on abstract static variable's
13154 DIE, don't emit it if abstract origin already has it.
13155 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
13156 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
13157
3b664bd1
JBG
131582009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
13159
ba20e309 13160 * genpreds.c (needs_variable): Fix parentheses at variable name
3b664bd1
JBG
13161 detection.
13162 (write_tm_constrs_h): Indent generated code.
13163
d8f8ca80
RR
131642009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
13165
13166 * doc/extend.texi (Function Attributes): Add documentation
13167 for isr attributes.
13168
6c3d550c
JJ
131692009-03-06 Jakub Jelinek <jakub@redhat.com>
13170
13171 PR debug/39387
13172 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
13173 take locus from its DECL_SOURCE_LOCATION instead of input_location.
13174
f9e96751
BS
131752009-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
13176
13177 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
13178 the loop as bad.
13179
ee0ee7e2
JJ
131802009-03-05 Jakub Jelinek <jakub@redhat.com>
13181
13182 PR debug/39379
13183 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
13184 with blocks containing IMPORTED_DECLs in BLOCK_VARS.
13185
6c6094f1
UB
131862009-03-05 Uros Bizjak <ubizjak@gmail.com>
13187
13188 * config/i386/i386.md (R8_REG, R9_REG): New constants.
13189 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
13190 constants instead of magic numbers.
13191 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
13192 (QI_REG_P): Ditto.
13193 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
13194 (x86_64_ms_abi_int_parameter_registers): Ditto.
13195 (x86_64_int_return_registers): Ditto.
09f8a8d3 13196 (ix86_maybe_switch_abi): Ditto.
6c6094f1
UB
13197 (ix86_expand_call): Ditto for clobbered_registers array.
13198 (ix86_hard_regno_mode_ok): Ditto.
13199 (x86_extended_QIreg_mentioned_p): Ditto.
13200
b267bd41
R
132012009-03-05 J"orn Rennecke <joern.rennecke@arc.com>
13202
6c6094f1 13203 PR tree-optimization/39349
1f3ad3f0
R
13204 * cse.c (cse_insn): Fix loop to stop at VOIDmode.
13205
b267bd41
R
13206 * combine.c (gen_lowpart_for_combine): Use omode when generating
13207 clobber.
13208
1242bc9d
R
132092009-03-04 J"orn Rennecke <joern.rennecke@arc.com>
13210
6c6094f1 13211 PR rtl-optimization/39235
1242bc9d
R
13212 * loop-iv.c (get_simple_loop_desc): Use XCNEW.
13213
48f03606
ZD
132142009-03-04 Zdenek Dvorak <ook@ucw.cz>
13215
13216 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
13217
b505e785
RG
132182009-03-04 Richard Guenther <rguenther@suse.de>
13219
13220 PR tree-optimization/39362
13221 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
13222 that occur in abnormal PHIs should be varying.
13223
f017bf5e
ZD
132242009-03-04 Zdenek Dvorak <ook@ucw.cz>
13225
13226 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
13227 Extend comments.
13228 (simple_iv): Take loop as an argument instead of statement.
13229 * tree-scalar-evolution.h (simple_iv): Declaration changed.
13230 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
13231 to simple_iv.
13232 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
13233 Ditto.
13234 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
13235 * matrix-reorg.c (analyze_transpose): Ditto.
13236 * tree-data-ref.c (dr_analyze_innermost): Ditto.
13237 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
13238 * tree-predcom.c (ref_at_iteration): Ditto.
13239 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
13240
6a66f28e
RG
132412009-03-04 Richard Guenther <rguenther@suse.de>
13242
13243 PR tree-optimization/39358
13244 * tree-ssa-structalias.c (do_sd_constraint): Fix check for
13245 escaped_id and callused_id.
13246 (solve_graph): Likewise.
13247
57e454ee
RG
132482009-03-04 Richard Guenther <rguenther@suse.de>
13249
13250 PR tree-optimization/39339
13251 * tree-sra.c (try_instantiate_multiple_fields): Make it
13252 no longer ICE on the above.
13253
a6fe9ed4
JM
132542009-03-03 Joseph Myers <joseph@codesourcery.com>
13255
13256 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
13257 that fits within Pmode.
13258
dc672951
SE
132592009-03-03 Steve Ellcey <sje@cup.hp.com>
13260
13261 PR middle-end/10109
13262 * tm.texi (LIBCALL_VALUE): Update description.
13263
8b9d598f
SE
132642009-03-03 Steve Ellcey <sje@cup.hp.com>
13265
13266 PR middle-end/34443
13267 * doc/extend.texi (section): Update description.
13268
13e4e36e
L
132692009-03-03 H.J. Lu <hongjiu.lu@intel.com>
13270
13271 PR middle-end/39345
13272 * tree-inline.c (remapped_type): New.
13273 (can_be_nonlocal): Call remapped_type instead of remap_type.
13274
067dd3c9
JJ
132752009-03-03 Jakub Jelinek <jakub@redhat.com>
13276
13277 PR fortran/39354
13278 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
13279 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
13280
9bd9f738
RG
132812009-03-03 Richard Guenther <rguenther@suse.de>
13282
13283 PR middle-end/39272
13284 * tree.c (tree_nonartificial_location): New function.
13285 * tree.h (tree_nonartificial_location): Declare.
13286 * builtins.c (expand_builtin_memory_chk): Provide location
13287 of the call location for artificial function pieces.
13288 (maybe_emit_chk_warning): Likewise.
13289 (maybe_emit_sprintf_chk_warning): Likewise.
13290 (maybe_emit_free_warning): Likewise.
13291 * expr.c (expand_expr_real_1): Likewise.
13292
f07049c8
JJ
132932009-03-03 Jakub Jelinek <jakub@redhat.com>
13294
13295 PR tree-optimization/39343
13296 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
13297 COMPONENT_REF t has ARRAY_TYPE.
13298
7d4fba4a
SP
132992009-03-02 Sebastian Pop <sebastian.pop@amd.com>
13300
13301 PR middle-end/39335
13302 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
13303 when the type precision of the induction variable should be
13304 larger than the type precision of nit.
13305 (gen_parallel_loop): Update use of canonicalize_loop_ivs.
13306 * graphite.c (graphite_loop_normal_form): Same.
13307 * tree-flow.h (canonicalize_loop_ivs): Update declaration.
13308
78168632
UB
133092009-03-02 Uros Bizjak <ubizjak@gmail.com>
13310
13311 * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
13312 (*call_1_rex64_ms_sysv): Use named constants instead of magic
6c6094f1 13313 numbers to describe clobbered registers.
78168632 13314 (*call_value_0_rex64_ms_sysv): Ditto.
6c6094f1
UB
13315 * config/i386/mmx.md (mmx_emms): Ditto.
13316 (mmx_femms): Ditto.
78168632 13317
63553059
RS
133182009-03-02 Richard Sandiford <rdsandiford@googlemail.com>
13319
13320 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
13321 of ABI_64.
13322
500a1f85
UW
133232009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13324
13325 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
13326 (spu_section_type_flags): New function.
13327
962aae34
UB
133282009-03-02 Uros Bizjak <ubizjak@gmail.com>
13329
13330 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
13331 reg_class_contents of FLOAT_REGS into a temporary.
13332
6dfb529c 133332009-03-02 Richard Guenther <rguenther@suse.de>
962aae34 13334 Ira Rosen <irar@il.ibm.com>
6dfb529c
RG
13335
13336 PR tree-optimization/39318
13337 * tree-vect-transform.c (vectorizable_call): Transfer the EH region
13338 information to the vectorized statement.
13339
6b5629db
UB
133402009-03-01 Uros Bizjak <ubizjak@gmail.com>
13341
434426d2
UB
13342 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
13343 variable. Use defined names instead of magic constants for REX SSE
13344 registers.
6b5629db 13345
14e5b285
RG
133462009-03-01 Richard Guenther <rguenther@suse.de>
13347
13348 PR tree-optimization/39331
13349 * omp-low.c (lower_send_shared_vars): Do not receive new
13350 values for the reference of DECL_BY_REFERENCE parms or results.
13351
526d73ab
JH
133522009-03-01 Jan Hubicka <jh@suse.cz>
13353
13354 PR debug/39267
13355 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
13356 BLOCK_NONLOCALIZED_VAR): New macros.
13357 (tree_block): Add nonlocalized_vars.
f4ea99bd
EB
13358 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
13359 gen_decl_die): Add origin argument. Allow generation of die with
13360 origin at hand only.
526d73ab 13361 (gen_member_die, gen_type_die_with_usage, force_decl_die,
f4ea99bd
EB
13362 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
13363 of gen_*.
526d73ab
JH
13364 (gen_block_die): Fix checking for unused blocks.
13365 (process_scope_var): Break out from .... ; work with origins only.
13366 (decls_for_scope) ... here; process nonlocalized list.
13367 (dwarf2out_ignore_block): Look for nonlocalized vars.
f4ea99bd
EB
13368 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
13369 vars.
526d73ab
JH
13370 (dump_scope_block): Dump them.
13371 * tree-inline.c (remap_decls): Handle nonlocalized vars.
13372 (remap_block): Likewise.
13373 (can_be_nonlocal): New predicate.
13374 (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
13375
7a9d3fe8
RW
133762009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13377
13378 * configure: Regenerate.
13379
b3cdf3cb
RW
133802009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13381
a16d1645 13382 * optc-gen.awk: No need to duplicate option flags twice.
9ade279b 13383 Reuse help texts for duplicate options which do not have any.
a16d1645 13384
1156c176
RW
13385 * gcc.c (display_help): Document --version.
13386
033505fc
RW
13387 * gcc.c (main): If print_help_list and verbose_flag, ensure
13388 driver output comes before subprocess output.
13389
4d077054
RW
13390 * optc-gen.awk: Assign all remaining fields to help string,
13391 space-separated, for multi-line help in *.opt.
13392
a072f1cf
RW
13393 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
13394 -Wno-pedantic-ms-format is for MinGW targets only.
13395
b3cdf3cb
RW
13396 * doc/options.texi (Option file format): Fix bad indentation,
13397 restoring dropped sentence.
13398
a3aadcc5
JH
133992009-02-28 Jan Hubicka <jh@suse.cz>
13400
13401 * tree-inline.c (tree_function_versioning): Output debug info.
13402
1cf5abb3
JH
134032009-02-28 Jan Hubicka <jh@suse.cz>
13404
13405 PR debug/39267
13406 * tree-inline.c (setup_one_parameter): Do not copy propagate
13407 arguments when not optimizing.
13408
c4d3f42f
L
134092009-02-28 H.J. Lu <hongjiu.lu@intel.com>
13410
13411 PR target/39327
13412 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
13413 (avx_addsubv4df3): Likewise.
13414 (*avx_addsubv4sf3): Likewise.
13415 (sse3_addsubv4sf3): Likewise.
13416 (*avx_addsubv2df3): Likewise.
13417 (sse3_addsubv2df3): Likewise.
13418 (avx_unpckhps256): Correct item selectors.
13419 (avx_unpcklps256): Likewise.
13420 (avx_unpckhpd256): Likewise.
13421 (avx_unpcklpd256): Likewise.
13422
eb50f5f4
JH
134232009-02-28 Jan Hubicka <jh@suse.cz>
13424
13425 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
13426 static vars.
13427 (copy_arguments_for_versioning): If var is declared don't declare it.
13428 (tree_function_versioning): First setup substitutions and then copy
13429 args.
13430
26140130
JH
134312009-02-27 Jan Hubicka <jh@suse.cz>
13432
13433 PR debug/39267
13434 * cgraph.h (varpool_output_debug_info): Remove.
13435 * cgraphunit.c (varpool_output_debug_info): Remove.
13436 * dwarf2out.c (deferred_locations_struct): New struct
13437 (deferred_locations): New type.
13438 (deferred_locations_list): New static var.
13439 (deffer_location): New function.
13440 (gen_variable_die): Use it.
13441 (decls_for_scope): Output info on local static vars.
13442 (dwarf2out_finish): Process deferred locations.
13443 * varpool.c (varpool_output_debug_info): Remove.
13444
cff7525f
JH
134452009-02-27 Jan Hubicka <jh@suse.cz>
13446
13447 PR debug/39267
13448 * tree.h (TREE_PROTECTED): Fix comment.
13449 (BLOCK_HANDLER_BLOCK): Remove.
13450 (struct tree_block): Remove handler_block add body_block.
13451 (inlined_function_outer_scope_p): New.
13452 (is_body_block): Remove.
13453 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
13454 * dwarf2out.c (is_inlined_entry_point): Remove.
13455 (add_high_low_attributes): Use inlined_function_outer_scope_p.
f10a1c6c
EB
13456 (gen_block_die): Use is_inlined_entry_point check. Remove body block
13457 code.
cff7525f
JH
13458 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
13459 * gimplify.c (gimplify_expr): Gimplify body blocks.
f10a1c6c
EB
13460 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
13461 block with multiple subblocks.
cff7525f
JH
13462 (dump_scope_block): Prettier output; dump more flags and info.
13463 (dump_scope_blocks): New.
13464 (remove_unused_locals): Use dump_scope_blocks.
13465 * tree-flow.h (dump_scope_blocks): Declare.
13466 * tree-cfg.c (execute_build_cfg): Dump scope blocks.
13467 * stmt.c (is_body_block): Remove.
13468 * tree-inline.c (remap_block): Copy BODY_BLOCK info.
13469 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
13470
c20993b9
SP
134712009-02-27 Sebastian Pop <sebastian.pop@amd.com>
13472
13473 PR middle-end/39308
2ba9daa7 13474 * graphite.c (graphite_loop_normal_form): Do not call
c20993b9
SP
13475 number_of_iterations_exit from a gcc_assert.
13476
e3cba5e5
AK
134772009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13478
60839f5d 13479 * config/s390/s390.c (s390_swap_cmp): Look for conditional
e3cba5e5
AK
13480 jumps if COND is NULL.
13481 (find_cond_jump): New function.
13482 (s390_z10_optimize_cmp): Handling for reg-reg compares added.
60839f5d 13483 * config/s390/s390.md: Remove z10_cobra attribute value.
e3cba5e5 13484
9dadeeb8
UB
134852009-02-26 Uros Bizjak <ubizjak@gmail.com>
13486
13487 * config/alpha/alpha.h (alpha_expand_mov): Return false if
13488 force_const_mem returns NULL_RTX.
13489
625d3251
EB
134902009-02-26 Jan Hubicka <jh@suse.cz>
13491
13492 PR debug/39267
13493 * cgraph.h (varpool_output_debug_info): Remove.
13494 * cgraphunit.c (varpool_output_debug_info): Remove.
13495 * dwarf2out.c (deferred_locations_struct): New struct
13496 (deferred_locations): New type.
13497 (deferred_locations_list): New static var.
13498 (deffer_location): New function.
13499 (gen_variable_die): Use it.
13500 (decls_for_scope): Output info on local static vars.
13501 (dwarf2out_finish): Process deferred locations.
13502 * varpool.c (varpool_output_debug_info): Remove.
13503
38432148 135042009-02-25 H.J. Lu <hongjiu.lu@intel.com>
8592acaf
L
13505
13506 PR rtl-optimization/39241
13507 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
13508 to subreg_offset_representable_p.
13509
62d049cf
PB
135102009-02-25 Paolo Bonzini <bonzini@gnu.org>
13511
13512 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
13513 execute function prototype. Get f and nregs from max_reg_num
13514 and get_insns. Remove the first backward pass as it's dead,
13515 guard the forward pass by flag_expensive_optimizations.
13516 (rest_of_handle_regmove): Delete.
13517 (pass_regmove): Replace it with regmove_optimize.
13518
f618d33e
MJ
135192009-02-25 Martin Jambor <mjambor@suse.cz>
13520
13521 PR tree-optimization/39259
13522 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
6c6094f1 13523 calls_alloca function flags.
f618d33e
MJ
13524 (copy_bb): Set calls_setjmp and alls_alloca function flags if such
13525 calls are detected.
13526
c8a05f7c
PB
135272009-02-25 Paolo Bonzini <bonzini@gnu.org>
13528
13529 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
13530 flags_set_1_rtx, flags_set_1_set): Delete.
13531 (regmove_optimize): Do not call mark_flags_life_zones.
13532
6d2538f5
JB
135332009-02-24 Julian Brown <julian@codesourcery.com>
13534
13535 PR target/35965
13536 * config/arm/arm.c (require_pic_register): Only set
13537 cfun->machine->pic_reg once per function.
13538
a2fa6772
SL
135392009-02-24 Sandra Loosemore <sandra@codesourcery.com>
13540
13541 * doc/invoke.texi (Link Options): Document an easier way to pass
9dadeeb8 13542 options that take arguments to the GNU linker using -Xlinker and -Wl.
a2fa6772 13543
5472de36
SE
135442009-02-24 Steve Ellcey <sje@cup.hp.com>
13545
13546 PR target/33785
13547 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
13548
844216f3
RG
135492009-02-24 Richard Guenther <rguenther@suse.de>
13550
13551 PR debug/39285
13552 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
13553
71adbef3 135542009-02-24 Richard Guenther <rguenther@suse.de>
8592acaf 13555 Zdenek Dvorak <ook@ucw.cz>
71adbef3
RG
13556
13557 PR tree-optimization/39233
13558 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
13559 from converting them to a generic type.
13560
f1a558e0
SP
135612009-02-23 Sebastian Pop <sebastian.pop@amd.com>
13562
13563 PR tree-optimization/39260
13564 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
13565 contains a condition with a real type.
13566 (build_scop_conditions_1): Conditions are always last_stmt of a bb.
13567
d8028f2c
JM
135682009-02-23 Jason Merrill <jason@redhat.com>
13569
13570 PR c++/38880
13571 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
13572 narrowing_initializer_constant_valid_p.
2ba9daa7 13573 (narrowing_initializer_constant_valid_p): Don't return
d8028f2c
JM
13574 null_pointer_node for adding a pointer to itself.
13575
9283b513
JH
135762009-02-23 Jan Hubicka <jh@suse.cz>
13577
13578 PR c/12245
9dadeeb8
UB
13579 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
13580 resizing.
9283b513 13581
61e04322
JH
135822009-02-23 Jan Hubicka <jh@suse.cz>
13583
9dadeeb8
UB
13584 PR tree-optimization/37709
13585 * tree.c (block_ultimate_origin): Move here from dwarf2out.
13586 * tree.h (block_ultimate_origin): Declare.
13587 * dwarf2out.c (block_ultimate_origin): Move to tree.c
61e04322
JH
13588 * tree-ssa-live.c (remove_unused_scope_block_p):
13589 Eliminate blocks containig no instructions nor live variables nor
13590 nested blocks.
13591 (dump_scope_block): New function.
13592 (remove_unused_locals): Enable removal of dead blocks by default;
9dadeeb8 13593 enable dumping at TDF_DETAILS.
61e04322 13594
38432148 135952009-02-21 H.J. Lu <hongjiu.lu@intel.com>
5339d3ea
L
13596
13597 * config/i386/i386.c (classify_argument): Don't allow COImode
13598 and OImode.
13599 (function_arg_advance_32): Don't allow OImode.
13600 (function_arg_32): Likewise.
13601 (function_value_32): Likewise.
13602 (return_in_memory_32): Likewise.
13603 (function_arg_64): Remove OImode comment.
13604
38432148 136052009-02-21 H.J. Lu <hongjiu.lu@intel.com>
f161e158
L
13606
13607 PR target/39261
13608 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
13609 ix86_expand_vector_set for V4DImode in 64bit mode only.
13610 (ix86_expand_vector_init_one_var): Likewise.
13611
dcd739a6
SP
136122009-02-21 Sebastian Pop <sebastian.pop@amd.com>
13613
13614 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
13615
6c3b938d
RS
136162009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
13617
8e361f23 13618 PR bootstrap/39257
6c3b938d
RS
13619 * loop-iv.c: Revert last change.
13620 * emit-rtl.c: Likewise.
13621
38432148 136222009-02-21 H.J. Lu <hongjiu.lu@intel.com>
4c64d3dd
L
13623
13624 PR target/39256
13625 * config/i386/i386.c (type_natural_mode): Remove an extra
13626 space in the warning message.
13627 (function_value_32): Handle 32-byte vector modes.
13628 (return_in_memory_32): Likewise.
13629
2ec62529
RS
136302009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
13631
13632 * loop-iv.c (truncate_value): New function.
13633 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
13634 of lowpart_subreg.
13635 (lowpart_subreg): Move to...
13636 * emit-rtl.c: ...here.
13637
ecb8c3cc 136382009-02-21 Danny Smith <dannysmith@users.sourceforge.net>
f814e489 13639
ecb8c3cc
DS
13640 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
13641 accidental and undocumented change at revision 140860.
13642
ae46a823
JM
136432009-02-21 Joseph Myers <joseph@codesourcery.com>
13644
13645 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
13646 take gimple_seq * arguments.
13647 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
13648 types_compatible_p langhook.
13649
07d8efe3 136502009-02-20 Mark Mitchell <mark@codesourcery.com>
f814e489 13651 Joseph Myers <joseph@codesourcery.com>
07d8efe3
MM
13652
13653 * config/arm/arm.c (arm_builtin_va_list): New function.
13654 (arm_expand_builtin_va_start): Likewise.
13655 (arm_gimplify_va_arg_expr): Likewise.
13656 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
13657 (TARGET_BUILD_BUILTIN_VA_START): Likewise.
13658 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
13659 (va_list_type): New variable.
13660 (arm_mangle_type): Mangle va_list_type appropriately.
13661
b1fb9f56
JJ
136622009-02-20 Jakub Jelinek <jakub@redhat.com>
13663
13664 PR middle-end/39157
13665 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
13666 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
13667 * params.def (loop-invariant-max-bbs-in-loop): New parameter.
13668 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
13669 parameter to 1000 for -O1 by default.
13670 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
13671 parameter.
13672 * loop-invariant.c: Include params.h.
13673 (move_loop_invariants): Don't call move_single_loop_invariants on
13674 very large loops.
13675
5bc0807c
JM
136762009-02-20 Jaka Mocnik <jaka@xlab.si>
13677
13678 * calls.c (emit_library_call_value_1): Use slot_offset instead of
13679 offset when calculating bounds for indexing stack_usage_map. Fixes
13680 a buffer overflow with certain target setups.
13681
c69cd1f5
JJ
136822009-02-20 Jakub Jelinek <jakub@redhat.com>
13683
13684 PR target/39240
13685 * calls.c (expand_call): Clear try_tail_call if caller and callee
13686 disagree in promotion of function return value.
13687
09812622
JJ
136882009-02-19 Jakub Jelinek <jakub@redhat.com>
13689
13690 PR target/39175
13691 * c-common.c (c_determine_visibility): If visibility changed and
13692 DECL_RTL has been already set, call make_decl_rtl to update symbol
13693 flags.
13694
68017cb4
L
136952009-02-19 H.J. Lu <hongjiu.lu@intel.com>
13696
13697 PR c++/39188
13698 * varasm.c (assemble_variable): Don't check DECL_NAME when
13699 globalizing a variable.
13700
ab4194da
JM
137012009-02-19 Joseph Myers <joseph@codesourcery.com>
13702
13703 PR c/38483
13704 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
13705 expression before any __builtin_trap call.
13706 * c-typeck.c (build_function_call): Convert and check function
13707 arguments before generating a call to a trap. Evaluate the
13708 function arguments before the trap.
13709
6b67572e
UB
137102009-02-19 Uros Bizjak <ubizjak@gmail.com>
13711
13712 PR target/39228
13713 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
13714 (UNSPEC_FXAM_MEM): New unspec.
13715 (fxam<mode>2_i387_with_temp): New insn and split pattern.
13716 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
13717 memory using fxam<mode>2_i387_with_temp to remove excess precision.
13718
9e39dba6
RG
137192009-02-19 Richard Guenther <rguenther@suse.de>
13720
13721 PR tree-optimization/39207
13722 PR tree-optimization/39074
13723 * tree-ssa-structalias.c (storedanything_id, var_storedanything,
13724 storedanything_tree): New.
13725 (do_ds_constraint): Simplify ANYTHING shortcutting. Update
6b67572e 13726 the STOREDANYTHING solution if the lhs solution contains ANYTHING.
9e39dba6
RG
13727 (build_succ_graph): Add edges from STOREDANYTHING to all
13728 non-direct nodes.
13729 (init_base_vars): Initialize STOREDANYTHING.
13730 (compute_points_to_sets): Free substitution info after
13731 building the succ graph.
13732 (ipa_pta_execute): Likewise.
13733
13734 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
13735 field.
13736 (do_ds_constraint): Do not add to special var or non-pointer
13737 field solutions.
13738 (type_could_have_pointers): Split out from ...
13739 (could_have_pointers): ... here. For arrays use the element type.
13740 (create_variable_info_for): Initialize may_have_pointers.
13741 (new_var_info): Likewise.
13742 (handle_lhs_call): Make the HEAP variable unknown-sized.
13743 (intra_create_variable_infos): Use a type with pointers for
13744 PARM_NOALIAS, make it unknown-sized.
13745
fd7b2603
L
137462009-02-18 H.J. Lu <hongjiu.lu@intel.com>
13747
13748 PR target/39224
6b67572e 13749 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
fd7b2603 13750
98b80692
JM
137512009-02-18 Jason Merrill <jason@redhat.com>
13752
13753 PR target/39179
13754 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
13755 value if DECL_EXTERNAL.
13756 * tree-sra.c (sra_walk_gimple_assign): Likewise.
13757 * target.h (gcc_target::binds_local_p): Clarify "module".
13758 * tree.h (TREE_PUBLIC): Clarify "module".
13759
0705d3f4
L
137602009-02-17 Xuepeng Guo <xuepeng.guo@intel.com>
13761
13762 PR target/38891
13763 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
13764 initialization for MS_ABI prior to the hunk of !TARGET_MMX.
13765
bce08d50
L
137662009-02-17 H.J. Lu <hongjiu.lu@intel.com>
13767
13768 PR target/39082
13769 * c.opt (Wabi): Support C and ObjC.
13770 (Wpsabi): New.
13771
13772 * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
13773
13774 * config/i386/i386.c (classify_argument): Warn once about the ABI
13775 change when passing union with long double.
13776
13777 * doc/invoke.texi: Update -Wabi for warning psABI changes.
13778
5600f233
JM
137792009-02-18 Joseph Myers <joseph@codesourcery.com>
13780
13781 PR c/35447
13782 * c-parser.c (c_parser_compound_statement): Always enter and leave
13783 a scope.
13784
8cd01fe6
JDA
137852009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13786
13787 PR target/34587
13788 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
13789
418df9d7
JJ
137902009-02-18 Jakub Jelinek <jakub@redhat.com>
13791
13792 PR tree-optimization/36922
13793 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
13794 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
13795 Likewise.
13796
082d2ebb
RS
137972009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
13798
13799 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
13800 to 0 for EABI64.
13801
17de576c
RS
138022009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
13803
13804 * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
13805
6d8d5435
RS
138062009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
13807
13808 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
13809 tree sharing.
13810
e69ff910
RB
138112009-02-17 Ruan Beihong <ruanbeihong@gmail.com>
13812 Richard Sandiford <rdsandiford@googlemail.com>
13813
13814 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
13815 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
13816 (loongson_biadd): ...this.
13817
6b24ee26
RG
138182009-02-17 Richard Guenther <rguenther@suse.de>
13819
13820 PR tree-optimization/39202
13821 * tree-ssa-structalias.c (do_structure_copy): Before collapsing
13822 a var make sure to follow existing collapses.
13823
91ab2c86
RG
138242009-02-17 Richard Guenther <rguenther@suse.de>
13825
13826 PR middle-end/39214
13827 * langhooks.c (lhd_print_error_function): Check for NULL block.
13828
73a63870
RG
138292009-02-17 Richard Guenther <rguenther@suse.de>
13830
13831 PR tree-optimization/39204
13832 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
13833 of the PHI arg.
13834
0e08f686
UB
138352009-02-17 Uros Bizjak <ubizjak@gmail.com>
13836
13837 * config/soft-fp/double.h: Update from glibc CVS.
13838
a60b7ddb
RG
138392009-02-17 Richard Guenther <rguenther@suse.de>
13840
13841 PR tree-optimization/39207
13842 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
13843 strict-aliasing warnings for pointers pointing to NULL.
13844
a47e20fd
JM
138452009-02-16 Joseph Myers <joseph@codesourcery.com>
13846
13847 PR c/35446
13848 * c-parser.c (c_parser_braced_init): Call pop_init_level when
13849 skipping until next close brace.
13850
50aab7dc
L
138512009-02-16 H.J. Lu <hongjiu.lu@intel.com>
13852
13853 PR target/37049
13854 * config/i386/i386.c (ix86_expand_push): Set memory alignment
13855 to function argument boundary.
13856
68e53db0
HS
138572009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com>
13858
13859 * config/picochip/picochip.md (lea_add): Allow any nonimmediate
13860 in the lea_add. Reload eventually constraints it properly.
0d50d55a 13861 * config/picochip/constraints.md: Remove the target constraint
68e53db0
HS
13862 "b", since it is not needed anymore.
13863
09e361bb
JJ
138642009-02-16 Jakub Jelinek <jakub@redhat.com>
13865
13866 * gthr-dce.h: Uglify function parameter and local variable names.
13867 * gthr-gnat.h: Likewise.
13868 * gthr-mipssde.h: Likewise.
13869 * gthr-nks.h: Likewise.
13870 * gthr-posix95.h: Likewise.
13871 * gthr-posix.h: Likewise.
13872 * gthr-rtems.h: Likewise.
13873 * gthr-single.h: Likewise.
13874 * gthr-solaris.h: Likewise.
13875 * gthr-tpf.h: Likewise.
13876 * gthr-vxworks.h: Likewise.
13877 * gthr-win32.h: Likewise.
13878
47f5a48f
L
138792009-02-15 H.J. Lu <hongjiu.lu@intel.com>
13880
13881 PR target/39196
13882 * config/i386/i386.md: Restrict the new peephole2 to move
13883 between MMX/SSE registers.
13884
68c9ab45
RG
138852009-02-15 Richard Guenther <rguenther@suse.de>
13886
13887 Revert
13888 2009-02-13 Richard Guenther <rguenther@suse.de>
13889
13890 * configure.ac: Enable LFS.
13891 * configure: Re-generate.
13892 * config.in: Likewise.
13893
d7815554
UW
138942009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13895
13896 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
13897 spu_srqwbyte, spu_srqwbytebc): Define.
13898 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
13899 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
13900 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
13901 "shrqby_<mode>"): New insn-and-split patterns.
13902 * config/spu/spu.c (expand_builtin_args): Determine and return
13903 number of operands using spu_builtin_description data.
13904 (spu_expand_builtin_1): Use it.
13905
c208436c
SE
139062009-02-13 Steve Ellcey <sje@cup.hp.com>
13907
13908 PR target/38056
13909 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
13910 TARGET_CONST_GP.
13911
c2e7ba7e
L
139122009-02-13 H.J. Lu <hongjiu.lu@intel.com>
13913
13914 PR target/39149
13915 * config/i386/i386.c (override_options): Correct warning
6c6094f1 13916 messages for -malign-loops, -malign-jumps and -malign-functions.
c2e7ba7e 13917
72f4e3a7
L
139182009-02-13 H.J. Lu <hongjiu.lu@intel.com>
13919
13920 PR target/39152
13921 * config/i386/i386.md: Restrict the new peephole2 to move
13922 between the general purpose registers.
13923
53f648e2
L
139242009-02-13 H.J. Lu <hongjiu.lu@intel.com>
13925
13926 PR target/39162
13927 * config/i386/i386.c (type_natural_mode): Add a new argument.
6b67572e 13928 Return the original mode and warn ABI change if vector size is 32byte.
53f648e2
L
13929 (function_arg_advance): Updated.
13930 (function_arg): Likewise.
13931 (ix86_function_value): Likewise.
13932 (ix86_return_in_memory): Likewise.
13933 (ix86_sol10_return_in_memory): Likewise.
13934 (ix86_gimplify_va_arg): Likewise.
13935 (function_arg_32): Don't warn ABX ABI change here.
13936 (function_arg_64): Likewise.
13937
38432148 139382009-02-13 Bernd Schmidt <bernd.schmidt@analog.com>
b1c92d54
BS
13939
13940 * loop-iv.c (implies_p): In the final case, test that operands 0
13941 of the two comparisons match.
13942
dd2139e7
BS
13943 * config/bfin/bfin.c (find_prev_insn_start): New function.
13944 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
13945 (find_next_insn_start): Move.
13946
601b3e1a
RG
139472009-02-13 Richard Guenther <rguenther@suse.de>
13948
13949 * configure.ac: Enable LFS.
13950 * configure: Re-generate.
13951 * config.in: Likewise.
13952
f007042e
JM
139532009-02-13 Joseph Myers <joseph@codesourcery.com>
13954
13955 PR c/35444
13956 * c-parser.c (c_parser_parms_list_declarator): Discard pending
13957 sizes on syntax error after some arguments have been parsed.
13958
3f238e8b
JJ
139592009-02-12 Jakub Jelinek <jakub@redhat.com>
13960
13961 * doc/invoke.texi (-fira): Remove.
13962
328e13b7
L
139632009-02-12 H.J. Lu <hongjiu.lu@intel.com>
13964
13965 * caller-save.c: Replace regclass.c with reginfo.c in comments.
13966 * recog.c: Likewise.
13967 * rtl.h: Likewise.
13968
c252db20
L
139692009-02-12 Uros Bizjak <ubizjak@gmail.com>
13970
13971 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
13972 (umul_ppmm): Likewise.
13973 (count_leading_zeros): Likewise.
13974 (count_trailing_zeros): Likewise.
13975 (UMUL_TIME): Likewise.
13976
139772009-02-12 H.J. Lu <hongjiu.lu@intel.com>
13978
ba181049
UB
13979 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
13980 soft-fp/t-softfp to tmake_file.
c252db20
L
13981
13982 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
ba181049
UB
13983 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
13984 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
13985 IA64_BUILTIN_INFQ]: New.
c252db20
L
13986 (ia64_init_builtins): Initialize __builtin_infq,
13987 __builtin_fabsq and __builtin_copysignq if not HPUX.
13988 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
13989 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
13990
13991 * config/ia64/lib1funcs.asm (__divtf3): Define only if
13992 SHARED is defined.
13993 (__fixtfti): Likewise.
13994 (__fixunstfti): Likewise.
13995 (__floattitf): Likewise.
13996
13997 * config/ia64/libgcc-glibc.ver: New.
13998 * config/ia64/t-fprules-softfp: Likewise.
13999 * config/ia64/sfp-machine.h: Likewise.
14000
14001 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
14002 (LIBGCC2_TF_CEXT): Likewise.
14003 (TF_SIZE): Likewise.
14004 (TARGET_INIT_LIBFUNCS): Likewise.
14005
ba181049 14006 * config/ia64/t-glibc (SHLINB_MAPFILES):
6b67572e 14007 Add $(srcdir)/config/ia64/libgcc-glibc.ver.
c252db20 14008
f13eae6a
L
140092009-02-12 H.J. Lu <hongjiu.lu@intel.com>
14010
14011 * config/i386/i386.c (construct_container): Rewrite processing
14012 BLKmode with X86_64_SSE_CLASS.
14013
12019aec
L
140142009-02-12 Paolo Bonzini <bonzini@gnu.org>
14015
14016 PR target/39152
14017 * config/i386/i386.md: Replace simplify_replace_rtx with
14018 replace_rtx in the new peephole2.
14019
28c11eb3
NS
140202009-02-12 Nathan Sidwell <nathan@codesourcery.com>
14021
14022 * doc/invoke.texi (Optimize Options): Stop claiming inlining and
14023 loop unrolling do not happen at -O2.
14024
c7b94907
MM
140252009-02-12 Michael Matz <matz@suse.de>
14026
14027 * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
14028
61e98967
JJ
140292009-02-12 Jakub Jelinek <jakub@redhat.com>
14030
14031 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
14032 for -g3.
14033
a2a237b5
BE
140342009-02-12 Ben Elliston <bje@au.ibm.com>
14035
14036 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
14037 patterns when updating the back chain. Missed in the 2009-02-10
14038 change.
14039
853eda8d
JJ
140402009-02-11 Janis Johnson <janis187@us.ibm.com>
14041
14042 * doc/extend.texi (Decimal Floating Types): Update identifier of
14043 draft TR and list of missing support.
14044
3ad6b266
JJ
140452009-02-11 Jakub Jelinek <jakub@redhat.com>
14046
14047 PR middle-end/39154
14048 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
14049 bit to variable length decl's flags, add it also to its
14050 pointer replacement variable.
14051
b058b753
UB
140522009-02-11 Uros Bizjak <ubizjak@gmail.com>
14053 Jakub Jelinek <jakub@redhat.com>
14054
14055 PR target/39118
14056 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
14057 (memory_blockage): New expander.
14058 (*memory_blockage): New insn pattern.
14059 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
14060 instead of general blockage at the end of function prologue when
14061 frame pointer is used to access red zone area. Do not emit blockage
14062 when profiling, it is emitted in generic code.
14063 (ix86_expand_epilogue): Emit memory_blockage at the beginning of
14064 function epilogue when frame pointer is used to access red zone area.
14065
bab64f23
PB
140662009-02-11 Paolo Bonzini <bonzini@gnu.org>
14067
0ce6dcfa 14068 PR target/38824
bab64f23
PB
14069 * config/i386/i386.md: Add two new peephole2 to avoid mov followed
14070 by arithmetic with memory operands.
14071 * config/i386/predicates.md (commutative_operator): New.
14072
8fd94bda
JJ
140732009-02-10 Janis Johnson <janis187@us.ibm.com>
14074
14075 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
14076 bulleted lists.
14077
794511d2
EB
140782009-02-10 Eric Botcazou <ebotcazou@adacore.com>
14079
14080 * alias.h (record_alias_subset): Declare.
14081 * alias.c (record_alias_subset): Make global.
14082
6da7fc87
NC
140832009-02-10 Nick Clifton <nickc@redhat.com>
14084
14085 * tree-parloops.c: Change license to GPLv3.
14086 * ipa-struct-reorg.c: Change license to GPLv3.
14087 * ipa-struct-reorg.h: Change license to GPLv3.
14088
a03813c8
SE
140892009-02-10 Steve Ellcey <sje@cup.hp.com>
14090
14091 PR c/39084
14092 * c-decl.c (start_struct): Return NULL on error.
14093
fc3103e7
JJ
140942009-02-10 Jakub Jelinek <jakub@redhat.com>
14095
9b43d37b
JJ
14096 PR middle-end/39124
14097 * cfgloopmanip.c (remove_path): Call remove_bbs after
14098 cancel_loop_tree, not before it.
14099
fc3103e7 14100 PR target/39139
b058b753 14101 * function.h (struct function): Add has_local_explicit_reg_vars bit.
fc3103e7
JJ
14102 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
14103 VAR_DECLs were seen.
14104 * tree-ssa-live.c (remove_unused_locals): Recompute
14105 cfun->has_local_explicit_reg_vars.
14106 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
14107 copies or clearings if cfun->has_local_explicit_reg_vars.
14108
dbf9ee15
UB
141092009-02-10 Uros Bizjak <ubizjak@gmail.com>
14110
14111 PR target/39118
14112 * config/i386/i386.c (expand_prologue): Emit blockage at the end
14113 of function prologue when frame pointer is used to access
14114 red zone area.
14115
bdec4dc7
RG
141162009-02-10 Richard Guenther <rguenther@suse.de>
14117
14118 PR middle-end/39127
14119 * gimplify.c (gimple_regimplify_operands): Always look if
14120 we need to create a temporary.
14121
7cae94fc
RG
141222009-02-10 Richard Guenther <rguenther@suse.de>
14123
14124 PR tree-optimization/39132
14125 * tree-loop-distribution.c (todo): New global var.
14126 (generate_memset_zero): Trigger TODO_rebuild_alias.
14127 (tree_loop_distribution): Return todo.
14128
a8800687
L
141292009-02-10 H.J. Lu <hongjiu.lu@intel.com>
14130
14131 PR target/39119
14132 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
14133 (x86_64_reg_class_name): Removed.
14134 (classify_argument): Return 0 if bytes > 32. Return 0 if the
14135 first one isn't X86_64_SSE_CLASS or any other ones aren't
14136 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn
14137 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
14138 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS
14139 and 3 X86_64_SSEUP_CLASS.
14140 (construct_container): Remove X86_64_AVX_CLASS. Handle 4
14141 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
14142
d4bacef0
BE
141432009-02-10 Ben Elliston <bje@au.ibm.com>
14144
14145 * config/rs6000/rs6000.md (allocate_stack): Always use an update
14146 form instruction to update the stack back chain word, even if the
14147 user has disabled the generation of update instructions.
14148 (movdi_<mode>_update_stack): New.
14149 (movsi_update_stack): Likewise.
14150 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
14151 always use an update form instruction to update the stack back
14152 chain word.
14153
01d7d2f3
SP
141542009-02-09 Sebastian Pop <sebastian.pop@amd.com>
14155
14156 PR middle-end/38953
b058b753
UB
14157 * graphite.c (if_region_set_false_region): After moving a region in
14158 the false branch of a condition, remove the empty dummy basic block.
01d7d2f3
SP
14159 (gloog): Remove wrong fix for PR38953.
14160
e41e2ab4
UW
141612009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14162
14163 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
14164 generation due to implicit sign extension.
14165
4bb07c5d
EB
141662009-02-09 Eric Botcazou <ebotcazou@adacore.com>
14167
14168 PR middle-end/38981
14169 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
14170 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
14171
f060a261
RG
141722009-02-09 Richard Guenther <rguenther@suse.de>
14173
14174 PR middle-end/35202
14175 * convert.c (convert_to_real): Disable (float)fn((double)x)
14176 to fnf(x) conversion if errno differences may occur and
14177 -fmath-errno is set.
14178
5a7e237c
AS
141792009-02-07 Anatoly Sokolov <aesok@post.ru>
14180
14181 * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
14182 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
14183 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
14184
feab5a67
JM
141852009-02-06 Joseph Myers <joseph@codesourcery.com>
14186
14187 PR c/35434
14188 * c-common.c (handle_alias_attribute): Disallow attribute for
14189 anything not a FUNCTION_DECL or VAR_DECL.
14190
90ef2296
JJ
141912009-02-06 Janis Johnson <janis187@us.ibm.com>
14192
14193 PR c/39035
14194 * real.c (do_compare): Special-case compare of zero against
14195 decimal float value.
14196
1de2c900
JM
141972009-02-06 Joseph Myers <joseph@codesourcery.com>
14198
14199 PR c/36432
14200 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
14201 as indicating flexible array members unless the field itself is
14202 being declarared as the incomplete array.
14203
e901811a
JH
142042009-02-06 Jan Hubicka <jh@suse.cz>
14205
14206 PR tree-optimization/38844
14207 * ipa-inline.c (try_inline): Stop inlining recursion when edge
14208 is already inlined.
14209
3cfa762b
RG
142102009-02-06 Richard Guenther <rguenther@suse.de>
14211
14212 PR middle-end/38977
14213 * tree-cfg.c (need_fake_edge_p): Force a fake edge for
14214 fork because we may expand it as __gcov_fork.
14215
8506528c
NC
142162009-02-06 Nick Clifton <nickc@redhat.com>
14217
dbf9ee15 14218 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
8506528c 14219
85169114
PB
142202009-02-06 Paolo Bonzini <bonzini@gnu.org>
14221
14222 PR tree-optimization/35659
14223 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
14224 vn_phi_eq): Shortcut if hashcode does not match.
14225 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
14226 NULL operands.
14227 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
14228 and avoid iterative_hash_expr.
14229 (FOR_EACH_VALUE_ID_IN_SET): New.
14230 (value_id_compare): Remove.
14231 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
14232 sort expressions by value id.
14233
6d39673d
KK
142342009-02-05 Kaz Kojima <kkojima@gcc.gnu.org>
14235
14236 PR target/38991
14237 * config/sh/predicates.md (general_movsrc_operand): Don't check
14238 the subreg of system registers here.
14239
e6e1c050
JJ
142402009-02-05 Jakub Jelinek <jakub@redhat.com>
14241
14242 PR c++/39106
14243 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
14244 on the copied decl.
14245
65a74b5d
PB
142462009-02-05 Paolo Bonzini <bonzini@gnu.org>
14247
14248 PR rtl-optimization/39110
14249 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
14250 addresses, not aligned ones.
14251
08e14b2a
DB
142522009-02-05 Daniel Berlin <dberlin@dberlin.org>
14253 Richard Guenther <rguenther@suse.de>
14254
14255 PR tree-optimization/39100
14256 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
14257 comment says and add edges.
14258
5006381c
JM
142592009-02-05 Joseph Myers <joseph@codesourcery.com>
14260
14261 PR c/35435
14262 * c-common.c (handle_tls_model_attribute): Ignore attribute for
14263 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
14264
2ba9daa7 142652009-02-04 Tobias Grosser <grosser@fim.uni-passau.de>
b0789219
TG
14266
14267 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
14268 sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
14269 register_bb_in_sese, new_sese, free_sese): Moved.
14270 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
14271 outermost_loop_in_scop, build_scop_iteration_domain,
14272 expand_scalar_variables_ssa_name, get_vdef_before_scop,
14273 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
14274 Use loop_in_sese_p instead of loop_in_scop_p.
14275 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
14276 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
14277 (scopdet_basic_block_info): Fix bug in scop detection.
14278 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
14279 eq_loop_to_cloog_loop): Remove.
14280 (nb_loops_around_loop_in_scop, nb_loop
14281 ref_nb_loops): Moved here...
14282 * graphite.h (ref_nb_loops): ... from here.
14283 (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
14284 (loop_domain_dim, loop_iteration_vector_dim): Remove.
14285 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
14286 * testsuite/gcc.dg/graphite/scop-19.c: New
14287
48e8382e
PB
142882009-02-04 Paolo Bonzini <bonzini@gnu.org>
14289 Hans-Peter Nilsson <hp@axis.com>
14290
14291 PR rtl-optimization/37889
14292 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
14293 Move offset handling from PLUS to before the switch. Use new
14294 arguments when considering SYMBOL_REFs too.
14295 (rtx_addr_can_trap_p): Pass dummy offset and size.
14296 (enum may_trap_p_flags): Remove.
14297 (may_trap_p_1): Pass size from MEM_SIZE.
14298
14299 PR rtl-optimization/38921
14300 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
14301 * rtl.h (may_trap_after_code_motion_p): Delete prototype.
14302 * rtlanal.c (may_trap_after_code_motion_p): Delete.
14303 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
14304
69349ea5
L
143052009-02-04 H.J. Lu <hongjiu.lu@intel.com>
14306
14307 AVX Programming Reference (January, 2009)
14308 * config/i386/sse.md (*vpclmulqdq): New.
14309
b545e411
JJ
143102009-02-04 Jakub Jelinek <jakub@redhat.com>
14311
14312 PR tree-optimization/38977
14313 PR gcov-profile/38292
bf9b2cc9 14314 * calls.c (special_function_p): Disregard __builtin_ prefix.
b545e411 14315
5b43bf05
HS
143162009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com>
14317
14318 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
14319 non-indexable addresses even before reload.
14320
062c4bb3
JM
143212009-02-03 Joseph Myers <joseph@codesourcery.com>
14322
14323 PR c/29129
14324 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
14325 as having variable size. Do not give an error for unnamed
14326 parameters with [*] declarators. Give a warning for type names
14327 with [*] declarators and mark them as variable size.
14328 * c-parser.c (c_parser_sizeof_expression): Do not give an error
14329 for sizeof applied to [*] type names.
14330
6175f578
AP
143312009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
14332
14333 PR C++/36607
14334 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
14335
d4f4bc84
JJ
143362009-02-03 Jakub Jelinek <jakub@redhat.com>
14337
14338 * gcc.c (process_command): Update copyright notice dates.
14339 * gcov.c (print_version): Likewise.
14340 * gcov-dump.c (print_version): Likewise.
14341 * mips-tfile.c (main): Likewise.
14342 * mips-tdump.c (main): Likewise.
14343
f6294de7
JM
143442009-02-03 Joseph Myers <joseph@codesourcery.com>
14345
14346 PR c/35433
14347 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
14348 for composite type involving a zero-length array type.
14349
754ccf7c
JJ
143502009-02-03 Jakub Jelinek <jakub@redhat.com>
14351
70f16287
JJ
14352 PR target/35318
14353 * function.c (match_asm_constraints_1): Skip over
14354 initial optional % in the constraint.
14355
754ccf7c
JJ
14356 PR inline-asm/39059
14357 * c-parser.c (c_parser_postfix_expression): If fixed point is not
14358 supported, don't accept FIXED_CSTs.
14359 * c-decl.c (finish_declspecs): Error if fixed point is not supported
14360 and _Sat is used without _Fract/_Accum. Set specs->type to
14361 integer_type_node for cts_fract/cts_accum if fixed point is not
14362 supported.
14363
965fdadf
CM
143642009-02-02 Catherine Moore <clm@codesourcery.com>
14365
dbf9ee15 14366 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
965fdadf 14367
2e8a796f
RS
143682009-02-02 Richard Sandiford <rdsandiford@googlemail.com>
14369
14370 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
14371 (ABI_HAS_64BIT_SYMBOLS): Use it.
14372 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
14373
e0079468
PB
143742009-02-02 Paul Brook <paul@codesourcery.com>
14375
14376 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
14377
eca72963
JJ
143782009-02-02 Jakub Jelinek <jakub@redhat.com>
14379
14380 PR inline-asm/39058
14381 * recog.h (asm_operand_ok): Add constraints argument.
14382 * recog.c (asm_operand_ok): Likewise. If it is set, for digits
14383 recurse on matching constraint.
14384 (check_asm_operands): Pass constraints as 3rd argument to
14385 asm_operand_ok. Don't look up matching constraint here.
14386 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
14387 to asm_operand_ok.
14388
b5bde9ff
BE
143892009-02-02 Ben Elliston <bje@au.ibm.com>
14390
14391 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
14392 TARGET_NARROW_VOLATILE_BITFIELD macro names.
14393
30f3e427
JDA
143942009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14395
be7659ba
JDA
14396 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
14397 information. Remove some obsolete information. Reorganize.
14398
30f3e427
JDA
14399 * config/pa/fptr.c: Revert license to GPL 2.
14400 * config/pa/milli64.S: Likewise.
14401
3cbfaf98
DK
144022009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
14403
14404 PR target/38904
14405 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass
14406 LIBRARY name in, instead of hard-coding it.
14407 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an
14408 extra target make frag to tmake_files according to EH model.
14409 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
14410 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target
14411 frags that define makefile variable EH_MODEL appropriately.
14412 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment.
14413 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or
14414 to "-sjlj" according to type of EH configured.
14415 (LIBGCC_SONAME): Concatenate it to shared library base name.
14416 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or
14417 to "_sjlj" according to type of EH configured.
14418 (LIBGCC_SONAME): Concatenate it to shared library base name.
14419 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL.
14420 (SHLIB_LINK): Add missing semicolon to if-else construct.
14421 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
14422 string value of "pe_dll" command-line option.
14423 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper.
14424 (SHLIB_SONAME): Use it when overriding t-cygming default.
14425 (SHLIB_IMPLIB): Override t-cygming default.
14426 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
14427 string value of "pe_dll" command-line option.
14428
8d0b6068
DK
144292009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
14430
14431 PR target/38952
14432 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
bf9b2cc9 14433 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
8d0b6068 14434
14c28276
RG
144352009-01-31 Richard Guenther <rguenther@suse.de>
14436
14437 PR tree-optimization/38937
14438 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
14439 computing the transitive closure.
14440
5f4d82c2
RG
144412009-01-30 Richard Guenther <rguenther@suse.de>
14442
14443 PR tree-optimization/39041
14444 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
14445 Propagate variable indices only if the types match for this stmt.
14446
d0728ae0
JJ
144472009-01-30 Jakub Jelinek <jakub@redhat.com>
14448
14449 PR target/39013
14450 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
14451 inline but never defined.
14452
6b67572e 144532009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com>
9fec758d
WG
14454
14455 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
14456 (*insv_h_di_reg_extimm): New insn.
14457 (*insv_l<mode>_reg_extimm): New insn.
14458
144592009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
9e8be1e4
HS
14460
14461 * config/picochip/picochip.c (flag_conserve_stack): set
14462 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
14463 fconserve-stack. Reduce call-overhead used by inliner.
14464
9fec758d 144652009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
df9198ab
HS
14466
14467 PR/38157
14468 * common.opt (flag_conserve_stack): Initialised to zero.
14469
7f1c539c
KT
144702009-01-30 Kai Tietz <kai.tietz@onevision.com>
14471
14472 PR/39002
14473 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
14474 (ix86_expand_epilogue): Take nsseregs in account to use proper restore
14475 method.
14476
3631be48
L
144772009-01-29 H.J. Lu <hongjiu.lu@intel.com>
14478
14479 * ira-color.c (allocno_reload_assign): Update comments.
14480 * regmove.c (regmove_optimize): Likewise.
14481
14482 * ra.h: Removed.
14483
416ac4d4
RM
144842009-01-29 Robert Millan <rmh@aybabtu.com>
14485
60839f5d
EB
14486 * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
14487 * config/i386/kopensolaris-gnu.h: New file. Undefine
416ac4d4 14488 `MD_UNWIND_SUPPORT'.
60839f5d 14489 * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
416ac4d4 14490
d5e54bc1
KH
144912009-01-29 Kazu Hirata <kazu@codesourcery.com>
14492
14493 PR tree-optimization/39007
14494 * tree-loop-distribution.c (generate_builtin): Use
14495 recompute_dominator to compute the immediate dominator of the
14496 basic block just after the loop.
14497
38432148 144982009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
e9e077fa
RO
14499
14500 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
14501 (ASM_OUTPUT_DWARF_PCREL): Define.
14502
38432148 145032009-01-29 Vladimir Makarov <vmakarov@redhat.com>
2af2dbdc
VM
14504
14505 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
14506 * doc/passes.texi: Remove entries about regclass, local-alloc, and
14507 global. Modify entries about regmove and IRA.
14508
14509 * ra-conflict.c: Remove the file.
14510
14511 * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
14512
14513 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
14514 (pass_regclass_init): Rename to pass_reginfo_init.
14515
14516 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
14517
14518 * toplev.h (flag_ira): Remove.
14519
14520 * caller-save.c (setup_save_areas): Remove flag_ira.
14521
bf9b2cc9 14522 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
2af2dbdc
VM
14523
14524 * global.c: Remove the file.
14525
ba20e309 14526 * opts.c (decode_options): Remove flag_ira.
2af2dbdc
VM
14527
14528 * hard-reg-set.h (losing_caller_save_reg_set): Remove.
14529
14530 * regmove.c: Modify file description.
14531 (find_use_as_address, try_auto_increment): Define them only if
14532 AUTO_INC_DEC is defined.
14533 (replacement_quality, replace_in_call_usage, fixup_match_1,
14534 stable_and_no_regs_but_for_p): Remove.
14535 (reg_set_in_bb): Make it static.
14536 (regmove_optimize): Remove flag_ira and code which worked for
14537 !flag_ira.
14538
14539 * local-alloc.c: Remove the file.
14540
14541 * common.opt (fira): Remove.
14542
14543 * ira.c: Include except.h.
14544 (eliminable_regset): Move from global.c.
14545 (mark_elimination): Ditto. Remove flag_ira.
14546 (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
14547 equiv_mem_modified, validate_equiv_mem_from_store,
14548 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
14549 contains_replace_regs, memref_referenced_p, memref_used_between_p,
14550 no_equiv, recorded_label_ref): Move from local-alloc.c.
14551 (update_equiv_regs): Ditto. Make it static.
14552 (print_insn_chain, print_insn_chains): Move it from global.c.
bf9b2cc9 14553 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira.
2af2dbdc
VM
14554 (build_insn_chain): Ditto. Make it static.
14555 (ra_init_live_subregs): Move from ra-conflict.c. Make it static.
14556 Rename to init_live_subregs.
14557 (gate_ira): Remove flag_ira.
14558
14559 * regclass.c: Rename reginfo.c. Change file description.
14560 (FORBIDDEN_INC_DEC_CLASSES): Remove.
dbf9ee15 14561 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
2af2dbdc
VM
14562 (init_reg_sets_1): Remove code for evaluation of
14563 reg_class_superclasses and losing_caller_save_reg_set.
14564 (init_regs): Remove init_reg_autoinc.
14565 (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
14566 ok_for_base_p_nonstrict): Remove.
bf9b2cc9 14567 (regclass_init): Rename to reginfo_init. Don't initialize init_cost.
2af2dbdc
VM
14568 (pass_regclass_init): Rename to pass_reginfo_init. Modify
14569 corresponding entries.
14570 (dump_regclass, record_operand_costs, scan_one_insn,
14571 init_reg_autoinc, regclass, record_reg_classes, copy_cost,
14572 record_address_regs, auto_inc_dec_reg_p): Remove.
14573 (gt-regclass.h): Rename to gt-reginfo.h.
14574
14575 * rtl.h (dump_global_regs, retry_global_alloc,
bf9b2cc9 14576 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
2af2dbdc
VM
14577
14578 * Makefile.in (RA_H): Remove.
14579 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
14580 Rename regclass.o to reginfo.o.
14581 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to
14582 gt-reginfo.h.
14583 (global.o, local-alloc.o, ra-conflict.o): Remove entries.
14584 (GTFILES): Rename regclass.c to reginfo.c.
14585
14586 * passes.c (init_optimization_passes): Remove pass_local_alloc and
bf9b2cc9 14587 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init.
2af2dbdc
VM
14588
14589 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
14590 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
14591 Remove flag_ira.
6b67572e 14592 (finish_spills): Ditto. Remove code for !flag_ira.
2ba9daa7 14593
c95b2534 145942009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
00b251a0
KZ
14595
14596 PR middle-end/35854
14597 * doc/invoke.texi (rtl debug options): Complete rewrite.
14598 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
14599 to auto_inc_dec".
14600 * mode-switching.c (pass_mode_switching): Rename pass from
14601 "mode-sw" to "mode_sw".
14602 * except.c (pass_convert_to_eh_ranges): Rename pass from
14603 "eh-ranges" to "eh_ranges".
14604 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
14605 to "subreg1".
2ba9daa7
AS
14606
14607
72a54528
AM
146082009-01-29 Andrey Belevantsev <abel@ispras.ru>
14609 Alexander Monakov <amonakov@ispras.ru>
14610
14611 PR middle-end/38857
14612 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
14613 register.
14614 (move_exprs_to_boundary): Change return type and pass through
14615 should_move from move_op. Relax assert. Update usage ...
14616 (schedule_expr_on_boundary): ... here. Use should_move instead of
14617 cant_move.
14618 (move_op_orig_expr_found): Indicate that insn was disconnected from
14619 stream.
14620 (code_motion_process_successors): Do not call after_merge_succs
14621 callback if original expression was not found when traversing any of
14622 the branches.
14623 (code_motion_path_driver): Change return type. Update prototype.
14624 (move_op): Update comment. Add a new parameter (should_move). Update
14625 prototype. Set *should_move based on indication provided by
14626 move_op_orig_expr_found.
14627
001b9eb6
PH
146282009-01-28 Pat Haugen <pthaugen@us.ibm.com>
14629
14630 * doc/invoke.texi (avoid-indexed-addresses): Document new option.
14631 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
14632 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
14633 * config/rs6000/rs6000.c (rs6000_override_options): Default
14634 avoid-indexed-addresses on for Power6, off for everything else.
14635 (avoiding_indexed_address_p): New function.
14636 (rs6000_legitimize_address): Use it.
14637 (rs6000_legitimate_address): Likewise.
14638 * config/rs6000/rs6000.md (movXX_updateX): Likewise
14639
59dc4898
KH
146402009-01-28 Kazu Hirata <kazu@codesourcery.com>
14641
14642 PR tree-optimization/38997
14643 * tree-loop-distribution.c (generate_memset_zero): Use
14644 POINTER_PLUS_EXPR for a pointer addition.
14645
07da44ab
AK
146462009-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
14647
14648 * config/s390/s390.md (bswap<mode>2): New pattern added.
14649
cdc15d23
WG
146502009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
14651
14652 * config/s390/s390.md (*tls_load_31): Added type attribute.
14653
d46f24b6
WG
146542009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
14655
14656 * config/s390/s390.md: Fix a few comments.
14657
729e750f
WG
146582009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
14659
14660 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
14661 (*tm<mode>_full): Fixed z10prop attribute.
14662 (*tst<mode>_extimm): Fixed z10prop attribute.
14663 (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
14664 (*tstqiCCT_cconly): Fixed z10prop attribute.
14665 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
14666 (*movsi_larl): Fixed z10prop attribute.
14667 (*movsi_zarch): Fixed z10prop attribute.
14668 (*movsi_eas): Fixed z10prop attribute.
14669 (*movhi): Fixed z10prop attribute.
14670 (*movqi): Fixed z10prop attribute.
14671 (*movstrictqi): Fixed z10prop attribute.
14672 (*mov<mode>): Fixed z10prop attribute.
14673 (*movcc): Fixed z10prop attribute.
14674 (*sethighpartdi_64): Fixed z10prop attribute.
14675 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
14676 (*negdi2_sign_cc): Fixed z10prop attribute.
14677 (*negdi2_sign): Fixed z10prop attribute.
14678 (*absdi2_sign_cc): Fixed z10prop attribute.
14679 (*absdi2_sign): Fixed z10prop attribute.
14680 (*negabsdi2_sign_cc): Fixed z10prop attribute.
14681 (*negabsdi2_sign): Fixed z10prop attribute.
14682 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
14683 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
14684 (doloop_si64): Fixed z10prop attribute.
14685 (doloop_si31): Fixed z10prop attribute.
14686 (doloop_long): Fixed z10prop attribute.
14687 (indirect_jump): Fixed z10prop attribute.
14688 (nop): Fixed z10prop attribute.
14689 (main_base_64): Fixed z10prop attribute.
14690 (reload_base_64): Fixed z10prop attribute.
14691
c7789bfb
JJ
146922009-01-28 Jakub Jelinek <jakub@redhat.com>
14693
14694 PR rtl-optimization/38740
6b67572e
UB
14695 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
14696 if !optimize.
c7789bfb
JJ
14697 * config/mips/mips.c (mips_reorg): Likewise.
14698
de081cfd
RG
146992009-01-28 Richard Guenther <rguenther@suse.de>
14700
14701 PR tree-optimization/38926
14702 * tree-ssa-pre.c (add_to_value): Assert we add only expressions
14703 with the correct value id to a value.
14704 (do_regular_insertion): Use the value number of edoubleprime
14705 for the value number of the expr.
14706
14707 Revert
14708 2008-08-21 Richard Guenther <rguenther@suse.de>
bf9b2cc9 14709
d748c406
UB
14710 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
14711 a PHI ask VN if it is already available.
14712 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
14713 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
de081cfd 14714
a9d386a1
JJ
147152009-01-28 Jakub Jelinek <jakub@redhat.com>
14716
14717 PR middle-end/38934
14718 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
14719 set to varying whenever max has TREE_OVERFLOW set, similarly
14720 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
14721
97a170cd
RG
147222009-01-28 Richard Guenther <rguenther@suse.de>
14723
14724 PR middle-end/38908
14725 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
14726 uninitialized aggregate uses in call arguments.
14727
89ebafc6
PB
147282009-01-28 Paolo Bonzini <bonzini@gnu.org>
14729
14730 PR tree-optimization/38984
14731 * tree-ssa-structalias.c (get_constraints_for_1): Do not use
14732 the nothing_id variable if -fno-delete-null-pointer-checks.
14733
bef3c57b
UB
147342009-01-28 Uros Bizjak <ubizjak@gmail.com>
14735
14736 PR target/38988
14737 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
14738 (set_got_offset_rex64): Ditto.
14739
0c6390fa
L
147402009-01-27 H.J. Lu <hongjiu.lu@intel.com>
14741
14742 PR target/38941
14743 * doc/extend.texi: Improve local variable with asm reg.
14744
bee6fa6d
AN
147452009-01-27 Adam Nemet <anemet@caviumnetworks.com>
14746
14747 * c.opt (Wpacked-bitfield-compat): Change init value to -1.
14748 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
14749 was not supplied then set warn_packed_bitfield_compat to the
14750 default value of 1.
14751 * stor-layout.c (place_field): Check warn_packed_bitfield_compat
14752 against 1.
14753
b5c3dfbb
RG
147542009-01-27 Richard Guenther <rguenther@suse.de>
14755
14756 PR tree-optimization/38503
14757 * cfgexpand.c (expand_gimple_basic_block): Ignore
14758 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
14759 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
14760 variables that cannot have TBAA applied.
14761 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
14762 statements.
14763
d748c406 147642009-01-27 Uros Bizjak <ubizjak@gmail.com>
576de5cb
UB
14765
14766 PR middle-end/38969
14767 * calls.c (initialize_argument_information): Do not wrap complex
14768 arguments in SAVE_EXPR.
14769
9112bb38
AT
147702009-01-26 Andreas Tobler <a.tobler@schweiz.org>
14771
14772 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
5efb79fc 14773 (INSTALL_LIBGCC): Revert typo commit.
9112bb38 14774
4757704f
RG
147752009-01-26 Richard Guenther <rguenther@suse.de>
14776
14777 PR tree-optimization/38745
14778 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
14779 from special handling.
14780
e3e6cff4
RG
147812009-01-26 Richard Guenther <rguenther@suse.de>
14782
14783 PR tree-optimization/38745
14784 * tree-ssa.c (execute_update_addresses_taken): Do not include
14785 variables that cannot possibly be a register in not_reg_needs.
14786 Do not clear TREE_ADDRESSABLE on vars that may not become
14787 registers.
14788 * tree-ssa.c (update_alias_info_1): Include those in the set
14789 of addressable vars.
14790
dc874b53
RG
147912009-01-26 Richard Guenther <rguenther@suse.de>
14792
14793 PR middle-end/38851
14794 * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
14795 * tree-ssa-dse.c: Include langhooks.h
14796 (execute_simple_dse): Remove stores with zero size.
14797
849421a3
JJ
147982009-01-24 Jakub Jelinek <jakub@redhat.com>
14799
14800 PR c/38957
14801 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
14802 as PLUS_EXPR.
14803
82f70421
JB
148042009-01-24 Julian Brown <julian@codesourcery.com>
14805
14806 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
14807 config/arm/linux-atomic.c.
14808 * config/arm/linux-atomic.c: New.
14809
863412d6
EB
148102009-01-24 Eric Botcazou <ebotcazou@adacore.com>
14811
14812 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
14813 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
14814 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
14815
8c684300
L
148162009-01-24 H.J. Lu <hongjiu.lu@intel.com>
14817
14818 PR c/38938
93f1527a 14819 * c-opts.c (c_common_handle_option): Update warn_pointer_sign
8c684300
L
14820 properly.
14821
b840fb02
SP
148222009-01-24 Sebastian Pop <sebastian.pop@amd.com>
14823
14824 PR tree-optimization/38953
14825 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
14826 (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
14827 (gloog): Split the exit of the scop when the scop exit is a loop exit.
14828 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
14829 changed the CFG.
14830
ecee559f
PB
148312009-01-24 Paul Brook <paul@codesourcery.com>
14832
14833 * config/arm/neon.md (neon_type): Move to arm.md.
14834 (neon_mov<VSTRUCT>): Add neon_type attribute.
14835 * config/arm/arm.md (neon_type): Move to here.
14836 (conds): Add "unconditioal" and use as default for NEON insns.
14837
61ad0914
BE
148382009-01-24 Ben Elliston <bje@au.ibm.com>
14839
14840 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
14841 void *' warning from -Wc++-compat.
14842 * Makefile.in (dominance.o-warn): Remove.
14843
38432148 148442009-01-23 Paolo Bonzini <bonzini@gnu.org>
9bacafeb
PB
14845
14846 PR tree-optimization/38932
14847 * fold-const.c (fold_unary_ignore_overflow): New.
14848 * tree.h (fold_unary_ignore_overflow): Declare.
14849 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
14850 * tree-ssa-sccvn.c (visit_reference_op_load,
14851 simplify_unary_expression): Likewise.
14852
2cd36c22
AN
148532009-01-22 Adam Nemet <anemet@caviumnetworks.com>
14854
14855 * c-decl.c (finish_struct): Move code to set DECL_PACKED after
14856 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields
14857 regardless of their type.
14858 * c-common.c (handle_packed_attribute): Don't ignore packed on
14859 bitfields.
14860 * c.opt (Wpacked-bitfield-compat): New warning option.
14861 * stor-layout.c (place_field): Warn if offset of a field changed.
14862 * doc/extend.texi (packed): Mention the ABI change.
14863 * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
14864 (Warning Options): Add it to the list.
14865
e4e624ab
L
148662009-01-22 H.J. Lu <hongjiu.lu@intel.com>
14867
14868 * c-opts.c (c_common_post_options): Fix a typo in comments.
14869
d0ea0759
SE
148702009-01-22 Steve Ellcey <sje@cup.hp.com>
14871
14872 PR middle-end/38615
14873 * gimplify.c (gimplify_init_constructor): Fix promotion of const
14874 variables to static.
14875 * doc/invoke.texi (-fmerge-all-constants): Update description.
14876
87673f84
UB
148772009-01-22 Uros Bizjak <ubizjak@gmail.com>
14878
14879 PR target/38931
14880 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
14881 (*movdi_1_rex64): Use type "mmx" for alternative 5.
14882
96339268
RE
148832009-01-22 Richard Earnshaw <rearnsha@arm.com>
14884
14885 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
14886 a word boundary.
14887 (LOCAL_ALIGNMENT): Similarly.
14888
442dc742 148892009-01-22 Mark Shinwell <shinwell@codesourcery.com>
87673f84 14890 Joseph Myers <joseph@codesourcery.com>
442dc742
MS
14891
14892 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
14893 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
14894 * config/arm/arm-tune.md: Regenerate.
14895 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
14896 -march=iwmmxt2.
14897
9b34732e
MS
148982009-01-22 Mark Shinwell <shinwell@codesourcery.com>
14899
14900 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
14901 version number to five.
14902
03c2a308
DS
149032009-01-22 Dodji Seketeli <dodji@redhat.com>
14904
14905 PR c++/38930
ba20e309 14906 * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
03c2a308
DS
14907 * c-common.c (set_underlying_type): Likewise.
14908 (is_typedef_decl ): Likewise
14909 * tree.h: Likewise
14910 (set_underlying_type): Likewise.
14911 (is_typedef_type): Likewise.
14912
1240d76e
VM
149132009-01-21 Vladimir Makarov <vmakarov@redhat.com>
14914
14915 PR middle-end/38587
14916 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
14917 crossing setjmps.
14918
b8a1087d
DK
149192009-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
14920
14921 PR bootstrap/37660
14922 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro.
14923 (LIBGCC_SPEC): Don't define.
14924 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC.
14925
435da628
UB
149262009-01-21 Uros Bizjak <ubizjak@gmail.com>
14927
14928 PR rtl-optimization/38879
14929 * alias.c (base_alias_check): Unaligned access via AND address can
14930 alias all surrounding object types except those with sizes equal
14931 or wider than the size of unaligned access.
14932
d597b3ce
DS
149332009-01-21 Dodji Seketeli <dodji@redhat.com>
14934
14935 PR c++/26693
ba20e309 14936 * c-decl.c (clone_underlying_type): Move this ...
d597b3ce 14937 * c-common.c (set_underlying_type): ... here.
435da628 14938 Also, make sure the function properly sets TYPE_STUB_DECL() on
d597b3ce
DS
14939 the newly created typedef variant type.
14940 (is_typedef_decl ): New entry point.
14941 * tree.h: Added a new member member_types_needing_access_check to
14942 struct tree_decl_non_common.
14943 (set_underlying_type): New entry point.
14944 (is_typedef_type): Likewise.
14945
71a6fe66
BM
149462009-01-21 Bingfeng Mei <bmei@broadcom.com>
14947
14948 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
14949 Check whether two instructions have memory references that
14950 belong to conflicting alias sets. walk_mems_1 and walk_mems_2
14951 are helper functions for traversing.
14952 * alias.h (insn_alias_sets_confilict_p): New prototypes.
14953 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
14954 not to draw dependency edge for instructions with non-conflicting
14955 alias sets.
14956
5a248274
JM
149572009-01-20 Joseph Myers <joseph@codesourcery.com>
14958
14959 PR other/38758
6b67572e
UB
14960 * longlong.h: Update copyright years. Use soft-fp license notice.
14961 Sync __clz_tab declaration with glibc.
5a248274 14962
4b84f3de
SE
149632009-01-20 Steve Ellcey <sje@cup.hp.com>
14964
14965 PR target/30687
14966 * doc/extend.texi (syscall_linkage): New.
14967 (version_id): Modify.
14968
37348bf1 149692009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
435da628 14970 Richard Guenther <rguenther@suse.de>
37348bf1
AP
14971
14972 PR tree-optimization/38747
14973 PR tree-optimization/38748
14974 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
14975 conversion if the base address is an indirect reference and the
14976 aliasing sets could cause issues.
14977
d0a58904
SP
149782009-01-20 Sebastian Pop <sebastian.pop@amd.com>
14979
2ba9daa7 14980 * common.opt (fgraphite, fgraphite-identity): Add comment for
d0a58904
SP
14981 explaining why these options are not documented.
14982
71e7afb2
SP
149832009-01-20 Sebastian Pop <sebastian.pop@amd.com>
14984
14985 * graphite.c (stmt_simple_for_scop_p): Also handle cases when
14986 gimple_call_lhs is NULL.
14987
38432148 149882009-01-20 Paolo Bonzini <bonzini@gnu.org>
09efeca1
PB
14989
14990 PR target/38868
14991 * emit-rtl.c (adjust_address_1): Make sure memref is never
14992 overwritten.
14993
cbb8dee3
BE
149942009-01-20 Ben Elliston <bje@au.ibm.com>
14995
14996 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
435da628 14997 const qualifier from arg parameter. Remove unnecessary cast to char *.
cbb8dee3
BE
14998 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
14999 const qualifier from arg 2.
15000
72c66596
IS
150012009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
15002
435da628 15003 * config/darwin.h: Add static-libgfortran to LINK_SPEC.
72c66596 15004
f68211cd
VM
150052009-01-19 Vladimir Makarov <vmakarov@redhat.com>
15006
15007 PR c/38869
15008 * rtl.h (reinit_regs): New prototype.
15009 * regclass.c: Include ira.h.
15010 (reinit_regs): New.
15011 * Makefile.in (regclass.o): Add ira.h.
15012 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
15013
6e4f1168
L
150142009-01-18 H.J. Lu <hongjiu.lu@intel.com>
15015
15016 PR target/38736
15017 * c-common.c (handle_aligned_attribute): Use
15018 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
15019 default alignment value.
15020
15021 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
15022
15023 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
15024 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
15025
15026 * doc/extend.texi: Update __attribute__ ((aligned)). Document
15027 __BIGGEST_ALIGNMENT__.
15028
15029 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
15030
890065bf
RG
150312009-01-18 Richard Guenther <rguenther@suse.de>
15032
15033 PR tree-optimization/38819
15034 * tree-flow.h (operation_could_trap_helper_p): Declare.
15035 * tree-eh.c (operation_could_trap_helper_p): Export.
15036 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
15037 * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
15038 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
15039 are about to insert a possibly trapping instruction and fail
15040 in this case.
15041
a729d731
AS
150422009-01-18 Andreas Schwab <schwab@suse.de>
15043
15044 * doc/install.texi (Configuration): Remove obsolete paragraph
15045 about use of --with-gnu-ld with --with-gnu-as.
15046
a640c13b
KH
150472009-01-18 Kazu Hirata <kazu@codesourcery.com>
15048
15049 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
15050 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
15051 Follow spelling conventions.
15052
dba2cc0c
BE
150532009-01-18 Ben Elliston <bje@au.ibm.com>
15054
15055 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
15056 C++ warning about implicit conversion from void * to struct
15057 bitmap_head_def *.
15058 (bitmap_obstack_free): Likewise for bitmap_element *.
bc127c63 15059 * Makefile.in (bitmap.o-warn): Remove.
dba2cc0c 15060
2207a498
DK
150612009-01-17 Dave Korn <dave.korn.cygwin@gmail.com>
15062
15063 * Makefile.in (BACKENDLIBS): Reorder to match dependencies.
15064
8137e465
SP
150652009-01-17 Sebastian Pop <sebastian.pop@amd.com>
15066 Tobias Grosser <tobi.grosser@amd.com>
15067
15068 * graphite.c (graphite_trans_scop_block): Do not block single
15069 nested loops.
15070
5be1c58c
AO
150712009-01-16 Alexandre Oliva <aoliva@redhat.com>
15072
15073 * ebitmap.h (ebitmap_iter_init): Initialize all fields.
15074 * ipa-struct-reorg.c (gen_struct_type): Replace known-true
15075 test with assertion.
15076
786ce82d
RG
150772009-01-16 Richard Guenther <rguenther@suse.de>
15078
15079 PR tree-optimization/38835
15080 PR middle-end/36227
15081 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
15082 and INT + PTR -> (INT)(PTR p+ INT) folding.
15083 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
15084
c1cb09ad
AN
150852009-01-16 Adam Nemet <anemet@caviumnetworks.com>
15086
15087 PR target/38554
15088 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
15089 the subreg from a lowpart subreg if it is also casting the value.
15090
bcab4e19
SP
150912009-01-16 Sebastian Pop <sebastian.pop@amd.com>
15092 Tobias Grosser <tobi.grosser@amd.com>
15093
15094 * graphite.c (compare_prefix_loops): New.
15095 (build_scop_canonical_schedules): Rewritten.
15096 (graphite_transform_loops): Move build_scop_canonical_schedules
15097 after build_scop_iteration_domain.
15098
0b040072
SP
150992009-01-16 Sebastian Pop <sebastian.pop@amd.com>
15100 Tobias Grosser <tobi.grosser@amd.com>
15101
2ba9daa7 15102 * graphite.c (add_conditions_to_domain): Add the loops to
0b040072
SP
15103 the dimension of the iteration domain. Do copy the domain
15104 only when it exists.
15105 (build_scop_conditions_1): Do not call add_conditions_to_domain.
15106 (add_conditions_to_constraints): New.
15107 (can_generate_code_stmt, can_generate_code): Removed.
15108 (gloog): Do not call can_generate_code.
15109 (graphite_transform_loops): Call add_conditions_to_constraints
15110 after building the iteration domain.
15111
56c6a499
JJ
151122009-01-16 Jakub Jelinek <jakub@redhat.com>
15113
15114 PR tree-optimization/38789
15115 * tree-ssa-threadedge.c
15116 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
15117 __builtin_constant_p.
15118
c95b2534 151192009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com>
cd3f1729
KZ
15120
15121 * dce.c (delete_unmarked_insns): Reversed the order that insns are
15122 examined before deleting them.
2ba9daa7 15123
c433cb14
RE
151242009-01-16 Richard Earnshaw <rearnsha@arm.com>
15125
15126 * function.c (aggregate_value_p): Correctly extract the function
15127 type from CALL_EXPR_FN lookup.
15128
c95b2534 151292009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com>
27d62fa4
HS
15130
15131 * config/picochip/picochip.c (picochip_override_options): Revert
15132 CFI asm flag disable commited previously.
15133
c77bb78f
SP
151342009-01-15 Sebastian Pop <sebastian.pop@amd.com>
15135 Tobias Grosser <tobi.grosser@amd.com>
15136 Jan Sjodin <jan.sjodin@amd.com>
15137
15138 * graphite.c (scan_tree_for_params): On substractions negate
15139 all the coefficients of the term.
15140 (clast_to_gcc_expression_red): New. Handle reduction expressions
15141 of more than two operands.
15142 (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
15143 (get_vdef_before_scop): Handle also the case of default definitions.
15144
574af2d6
RS
151452009-01-15 Richard Sandiford <rdsandiford@googlemail.com>
15146
15147 * caller-save.c (add_used_regs_1, add_used_regs): New functions.
15148 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
15149 Also use them when walking CALL_INSN_FUNCTION_USAGE.
15150
e939805b
L
151512009-01-15 H.J. Lu <hongjiu.lu@intel.com>
15152 Joey Ye <joey.ye@intel.com>
15153
15154 PR middle-end/37843
15155 * cfgexpand.c (expand_stack_alignment): Don't update stack
15156 boundary nor check incoming stack boundary here.
15157 (gimple_expand_cfg): Update stack boundary and check incoming
15158 stack boundary here.
15159
c95b2534 151602009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com>
750900db 15161
435da628 15162 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
2ba9daa7 15163
0196c95e
JJ
151642009-01-14 Jakub Jelinek <jakub@redhat.com>
15165
15166 PR rtl-optimization/38245
15167 * calls.c (expand_call): Add stack arguments to
15168 CALL_INSN_FUNCTION_USAGE even for pure calls (when
15169 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
15170 in regs and partially in memory or BLKmode arguments.
15171 (emit_library_call_value_1): Add stack arguments to
15172 CALL_INSN_FUNCTION_USAGE even for pure calls (when
15173 ACCUMULATE_OUTGOING_ARGS).
15174 * dce.c: Include tm_p.h.
15175 (find_call_stack_args): New function.
15176 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
15177 argument.
15178 (mark_insn): Call find_call_stack_args for CALL_Ps.
15179 (prescan_insns_for_dce): Walk insns backwards in bb rather than
15180 forwards. Allocate and free arg_stores bitmap if needed, pass it
15181 down to deletable_insn_p, don't mark stores set in arg_stores
15182 bitmap, clear the bitmap at the beginning of each bb.
15183 * Makefile.in (dce.o): Depend on $(TM_P_H).
15184
6df6bcfa
MM
151852009-01-14 Michael Meissner <gnu@the-meissners.org>
15186
15187 PR target/22599
435da628
UB
15188 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
15189 to make sure the insn is a conditional test (bug 22599). Reformat a
15190 few long lines.
6df6bcfa 15191
765ec70c
SP
151922009-01-14 Sebastian Pop <sebastian.pop@amd.com>
15193
15194 PR middle-end/38431
15195 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
15196 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
15197 (gloog): Do not call cleanup_tree_cfg.
2ba9daa7 15198 (graphite_transform_loops): Call cleanup_tree_cfg after all
765ec70c
SP
15199 scops have been code generated.
15200
7de2b688
BS
152012009-01-14 Basile Starynkevitch <basile@starynkevitch.net>
15202 * doc/gty.texi (Invoking the garbage collector): Added new node
15203 and section documenting ggc_collect.
15204
10bd6c5c
RG
152052009-01-14 Richard Guenther <rguenther@suse.de>
15206
15207 PR tree-optimization/38826
15208 PR middle-end/38477
15209 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
15210 initialization notes only if we actually emitted a warning.
15211 (intra_create_variable_infos): Add constraints for a result decl
15212 that is passed by hidden reference.
15213 (build_pred_graph): Mark all related variables non-direct on
15214 address-taking.
15215
9c7c70ee
NC
152162009-01-14 Nick Clifton <nickc@redhat.com>
15217
15218 * ira-conflicts.c: Include addresses.h for the definition of
15219 base_reg_class.
435da628
UB
15220 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
15221 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
9c7c70ee 15222
cf0c2a60
VM
152232009-01-13 Vladimir Makarov <vmakarov@redhat.com>
15224
15225 PR target/38811
15226 * Makefile.in (ira-lives.o): Add except.h.
15227
15228 * ira-lives.c: Include except.h.
15229 (process_bb_node_lives): Process can_throw_internal.
15230
d3302fd3
JJ
152312009-01-13 Jakub Jelinek <jakub@redhat.com>
15232
15233 PR rtl-optimization/38774
15234 * combine.c (simplify_set): When undoing cc_use change, don't do
15235 PUT_CODE on the newly created comparison, but instead put back the
15236 old comparison.
15237
7ab23fd0
JM
152382009-01-13 Joseph Myers <joseph@codesourcery.com>
15239
15240 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
15241 values. Remove duplicate arm8 entry.
15242
f9344488
SP
152432009-01-13 Sebastian Pop <sebastian.pop@amd.com>
15244
15245 PR tree-optimization/38786
15246 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
15247 the SSA_NAME case of expand_scalar_variables_expr.
15248 Set the type of an expression to the type of its assign statement.
15249 (expand_scalar_variables_expr): Also gather the scalar computation
15250 used to index the memory access. Do not pass loop_p.
15251 Fix comment. Stop recursion on tcc_constant or tcc_declaration.
15252 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
bef3c57b
UB
15253 the gimple_stmt_iterator where it inserts new code.
15254 Do not pass loop_p.
f9344488
SP
15255 (copy_bb_and_scalar_dependences): Do not pass loop_p.
15256 (translate_clast): Update call to copy_bb_and_scalar_dependences.
15257
2d8bb84d
SP
152582009-01-13 Sebastian Pop <sebastian.pop@amd.com>
15259
15260 * graphite.h (debug_value): Removed.
15261 * graphite.c (debug_value): Removed.
15262
ff128632
RE
152632009-01-13 Richard Earnshaw <rearnsha@arm.com>
15264
435da628
UB
15265 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
15266 ldrd/strd with two 32-bit instructions.
ff128632 15267
d5a0a47b
RE
152682009-01-13 Richard Earnshaw <rearnsha@arm.com>
15269
435da628
UB
15270 * config/arm/arm.c (struct processors): Pass for speed down into
15271 cost helper functions.
d5a0a47b
RE
15272 (const_ok_for_op): Handle COMPARE and inequality nodes.
15273 (arm_rtx_costs_1): Rewrite.
15274 (arm_size_rtx_costs): Update prototype.
15275 (arm_rtx_costs): Pass speed down to helper functions.
15276 (arm_slowmul_rtx_costs): Rework cost calculations.
15277 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
15278 (arm_9e_rtx_costs): Likewise.
15279
26d5bf5b
UB
152802009-01-13 Uros Bizjak <ubizjak@gmail.com>
15281
15282 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
435da628 15283 relocations of local symbols wider than UNITS_PER_WORD are not valid.
26d5bf5b
UB
15284 (alpha_legitimize_address): Do not split local symbols wider than
15285 UNITS_PER_WORD into HIGH/LO_SUM parts.
15286
5d14e3d5
DS
152872009-01-13 Danny Smith <dannysmith@users.sourceforge.net>
15288
15289 PR bootstrap/38580
15290 * gcc.c (process_command): Replace call to execvp with calls
15291 to pex_one and exit.
15292
33faafca
AS
152932009-01-03 Anatoly Sokolov <aesok@post.ru>
15294
15295 PR target/29141
15296 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
15297 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
15298 variant for devices with 3-byte PC.
ba20e309 15299 (__tablejump_elpm__): New.
33faafca 15300
634b5df5
JJ
153012009-01-12 Jakub Jelinek <jakub@redhat.com>
15302
15303 PR c/32041
15304 * c-parser.c (c_parser_postfix_expression): Allow `->' in
15305 offsetof member-designator, handle it as `[0].'.
15306
2842bb86
JDA
153072009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15308
15309 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
15310 function when not using named sections on targets with named sections
15311 if branch distance is less than 262132.
15312
76ee70f6
RE
153132009-01-12 Richard Earnshaw <rearnsha@arm.com>
15314
15315 * combine.c (combine_instructions): Recompute
15316 optimize_this_for_speed_p for each BB in the main combine loop.
15317
f56e675d
TB
153182009-01-12 Tomas Bily <tbily@suse.cz>
15319
15320 PR middlend/38385
26d5bf5b
UB
15321 * tree-loop-distribution.c (prop_phis): New function.
15322 (generate_builtin): Call prop_phis.
15323 * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
f56e675d 15324
c2152239
JJ
153252009-01-12 Jakub Jelinek <jakub@redhat.com>
15326
15327 PR tree-optimization/38807
15328 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
15329 gimple_visited_p unless stmt is GIMPLE_ASSIGN.
15330
0e510b3e
AN
153312009-01-11 Adam Nemet <anemet@caviumnetworks.com>
15332
15333 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
15334 subreg of op0 to the original op0.
15335
c95b2534 153362009-01-11 Laurent GUERBY <laurent@guerby.net>
10270471
LG
15337
15338 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
2ba9daa7 15339
53a7ff9a
MS
153402009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
15341
15342 PR debug/7055
60839f5d 15343 * mips-tfile.c (parse_def): Fix parsing of def strings
53a7ff9a
MS
15344 starting with digits.
15345
b3a796bc
JJ
153462009-01-10 Jakub Jelinek <jakub@redhat.com>
15347
15348 PR target/38695
15349 * config/arm/arm.c (arm_is_long_call_p): Don't call
15350 arm_function_in_section_p if decl isn't a FUNCTION_DECL.
15351
b21b850e
SB
153522009-01-09 Steven Bosscher <steven@gcc.gnu.org>
15353
15354 * regrename.c (regrename_optimize): Fix dumping.
15355 (find_oldest_value_reg): Preserve REG_POINTER.
15356 (copy_hardreg_forward_1): Likewise.
15357
e0e10d3a
DN
153582009-01-09 Diego Novillo <dnovillo@google.com>
15359
bf9b2cc9 15360 * gimple.h (struct gimple_statement_base) <uid>: Document
e0e10d3a
DN
15361 the restrictions on its use.
15362 (gimple_uid): Tidy.
15363 (gimple_set_uid): Tidy.
15364
c9da2ae8
JJ
153652009-01-09 Jakub Jelinek <jakub@redhat.com>
15366
15367 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
15368 zero guard even if align_bytes != 0 and count is smaller than
15369 size_needed.
15370
38432148 153712009-01-09 Vladimir Makarov <vmakarov@redhat.com>
a174c19c
VM
15372
15373 PR rtl-optimization/38495
26d5bf5b 15374 * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
a174c19c
VM
15375 (add_range_and_copies_from_move_list): Print all added ranges.
15376 Add ranges to memory optimized destination.
15377
260fda3d
JJ
153782009-01-09 Jakub Jelinek <jakub@redhat.com>
15379
6f6278ad
JJ
15380 PR target/38686
15381 PR target/38708
15382 * config/i386/i386.c (override_options): Reject
15383 -mstringop-strategy=rep_8byte with -m32.
15384 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
15385 to 1. Do count comparison against epilogue_size_needed at compile
15386 time even when count_exp was constant forced into register. For
15387 size_needed don't jump to epilogue, instead just avoid aligning
15388 and invoke the body algorithm. If need_zero_guard, add zero guard
15389 even if count is non-zero, but smaller than size_needed + number of
15390 bytes that could be stored for alignment.
15391 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
15392 to 1. If need_zero_guard, add zero guard even if count is non-zero,
15393 but smaller than size_needed + number of bytes that could be stored
15394 for alignment. Compare size_needed with epilogue_size_needed instead
15395 of desired_align - align, don't adjust size_needed, pass
15396 epilogue_size_needed to the epilogue expanders.
15397
260fda3d 15398 PR c/35742
26d5bf5b 15399 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
260fda3d 15400
67b846fa
JDA
154012009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15402
15403 * pa.c (last_address): Change to unsigned.
15404 (update_total_code_bytes): Change argument to unsigned. Don't
15405 check if insn addresses are set.
15406 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
15407 addresses are not set.
15408 (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
15409
91c82473
NC
154102009-01-09 Nick Clifton <nickc@redhat.com>
15411
15412 * config/sh/symbian.c: Replace uses of DECL_INLINE with
15413 DECL_DECLARED_INLINE_P.
15414
4017e262
JJ
154152009-01-09 Jakub Jelinek <jakub@redhat.com>
15416
0a49e5c2
JJ
15417 PR middle-end/38347
15418 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
15419 GET_MODE (op0) in operand_subword_force calls.
15420
4017e262
JJ
15421 PR middle-end/38771
15422 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
15423 fold_convert arg0 operands to TREE_TYPE (op0) first.
15424
7cd06356
VM
154252009-01-08 Vladimir Makarov <vmakarov@redhat.com>
15426
15427 * params.def (ira-max-conflict-table-size): Decrease default value
15428 to 1000.
15429
96867bbd
JJ
154302009-01-08 Jakub Jelinek <jakub@redhat.com>
15431
15432 PR tree-optimization/37031
15433 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
15434 on parameter_set.
15435 (build_access_matrix): Reserve correct size for AM_MATRIX vector,
15436 allocate it using gc instead of heap, use VEC_quick_push instead of
15437 VEC_safe_push.
15438 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
15439 instead of heap, use VEC_quick_push instead of VEC_safe_push.
15440 * tree-data-ref.h (struct access_matrix): Change matrix to gc
15441 allocated vector from heap allocated.
15442 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
15443 * tree-loop-linear.c (linear_transform_loops): Allocate nest
15444 vector only after perfect_loop_nest_depth call.
15445
68f61c3d
SP
154462009-01-08 Sebastian Pop <sebastian.pop@amd.com>
15447 Jan Sjodin <jan.sjodin@amd.com>
15448
15449 PR tree-optimization/38559
15450 * graphite.c (debug_value, copy_constraint,
15451 swap_constraint_variables, scale_constraint_variable, ): New.
15452 (get_lower_bound, get_upper_bound): Removed.
15453 (graphite_trans_bb_strip_mine): Clean up this code that works
15454 only for constant number of iterations. Fully copy upper and
15455 lower bound constraints, not only the constant part of them.
15456 * graphite.h (debug_value): Declared.
15457
82567e33
IR
154582009-01-08 Ira Rosen <irar@il.ibm.com>
15459
15460 PR tree-optimization/37194
15461 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
2ba9daa7 15462 Don't add the cost of cost model guard in prologue to scalar
82567e33
IR
15463 outside cost in case of known number of iterations.
15464
7da13f1d
NF
154652009-01-07 Nathan Froyd <froydnj@codesourcery.com>
15466 Alan Modra <amodra@bigpond.net.au>
15467
15468 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
15469 non-word-aligned REG+CONST addressing.
15470
c0f64575
UB
154712009-01-07 Uros Bizjak <ubizjak@gmail.com>
15472
15473 PR target/38706
15474 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
15475 free_after_compilation when outputting a thunk.
15476 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
15477 Do not call free_after_compilation here.
15478
301b6a4e
UB
154792009-01-07 Uros Bizjak <ubizjak@gmail.com>
15480
15481 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
301b6a4e
UB
15482 (ix86_valid_target_attribute_inner_p): Ditto.
15483
6a114766
JS
154842009-01-07 Jan Sjodin <jan.sjodin@amd.com>
15485
15486 PR tree-optimization/38492
15487 PR tree-optimization/38498
15488 * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
15489 * tree-chrec.h (scev_is_linear_expression): Declared.
15490 * graphite.c (graphite_cannot_represent_loop_niter): New.
15491 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
15492 (graphite_loop_normal_form): Use gcc_assert.
15493 (scan_tree_for_params): Use CASE_CONVERT.
15494 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
15495 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
15496 Use gcc_assert. Discard scops that contain unhandled cases.
15497 (build_scop_conditions): Return a boolean status for unhandled cases.
15498 (strip_mine_profitable_p): Print the loop number, not its depth.
15499 (is_interchange_valid): Pass the depth of the loop nest, don't
15500 recompute it wrongly.
15501 (graphite_trans_bb_block): Same.
15502 (graphite_trans_bb_block): Print tentative of loop blocking.
15503 (graphite_trans_scop_block): Do not print that the loop has been
15504 blocked.
15505 (graphite_transform_loops): Do not handle scops that contain condition
15506 scalar phi nodes.
15507
65b82caa
L
155082009-01-07 H.J. Lu <hongjiu.lu@intel.com>
15509
15510 AVX Programming Reference (December, 2008)
15511 * config/i386/avxintrin.h (_mm256_stream_si256): New.
15512 (_mm256_stream_pd): Likewise.
15513 (_mm256_stream_ps): Likewise.
15514
15515 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
15516 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
15517 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
15518 (bdesc_special_args): Add __builtin_ia32_movntdq256,
15519 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
15520 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
15521 (ix86_expand_special_args_builtin): Likewise.
15522
15523 * config/i386/sse.md (AVXMODEDI): New.
15524 (avx_movnt<mode>): Likewise.
15525 (avx_movnt<mode>): Likewise.
15526 (<sse>_movnt<mode>): Remove AVX support.
15527 (sse2_movntv2di): Likewise.
15528
cef158f9
RG
155292009-01-07 Richard Guenther <rguenther@suse.de>
15530
15531 PR middle-end/38751
15532 * fold-const.c (extract_muldiv): Remove obsolete comment.
15533 (fold_plusminus_mult_expr): Undo MINUS_EXPR
15534 to PLUS_EXPR canonicalization for the canonicalization.
15535
246cb5be
GP
155362009-01-07 Gerald Pfeifer <gerald@pfeifer.com>
15537
15538 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
15539 hosted cross-compilers generating less efficient code.
15540
84b9b872
RS
155412009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
15542
15543 * function.h (rtl_data): Add a dbr_scheduled_p field.
15544 * reorg.c (dbr_schedule): Set it.
15545 (gate_handle_delay_slots): Check it.
15546 * config/mips/mips.c (mips_base_delayed_branch): Delete.
15547 (mips_reorg): Check flag_delayed_branch instead of
15548 mips_base_delayed_branch.
15549 (mips_override_options): Don't set mips_base_delayed_branch
15550 or flag_delayed_branch.
15551
ace984c8
RS
155522009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
15553
15554 PR rtl-optimization/38426.
15555 * ira.c (ira): Set current_function_is_leaf earlier.
15556
7ad7809b
JJ
155572009-01-06 Jakub Jelinek <jakub@redhat.com>
15558
15559 PR rtl-optimization/38722
15560 * combine.c (try_combine): Don't modify PATTERN (i3) and notes
15561 too early, only set a flag and modify after last possible
15562 undo_all point.
15563
c52ec948
JJ
155642009-01-06 Janis Johnson <janis187@us.ibm.com>
15565
15566 PR c/34252
15567 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
15568 * real.c (decimal_single_format): Correct values of emin and emax.
15569 (decimal_double_format): Ditto.
15570 (decimal_quad_format): Ditto.
15571 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
15572 computation of DECnn_MIN and DECnn_MAX for corrected values of
15573 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of
15574 __DECnn_MIN__, and adjust its computation for the corrected value
15575 of emin.
15576
300240e1
JH
155772009-01-06 Jan Hubicka <jh@suse.cz>
15578
15579 PR target/38744
435da628 15580 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
300240e1 15581
271c069e
GP
155822009-01-06 Gerald Pfeifer <gerald@pfeifer.com>
15583
15584 * doc/contrib.texi (Contributors): Slightly adjust the end note.
15585 Add Robert Clark to the list of testers.
15586
64e4c301 155872009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 15588 Kai Tietz <kai.tietz@onevision.com>
64e4c301 15589
435da628
UB
15590 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
15591 * config/i386/i386.c (ix86_expand_call): Add clobbers.
64e4c301 15592
7650b83e 155932009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 15594 Kai Tietz <kai.tietz@onevision.com>
7650b83e 15595
435da628
UB
15596 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
15597 for w64 ABI.
15598 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
7650b83e
JH
15599 (ix86_nsaved_regs): Count only general purpose regs.
15600 (ix86_nsaved_sseregs): New.
15601 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
15602 to 16 for w64; compute padding and size of sse reg save area.
301b6a4e
UB
15603 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
15604 general purpose regs.
7650b83e
JH
15605 (ix86_emit_save_sse_regs_using_mov): New.
15606 (ix86_expand_prologue): Save SSE regs if needed.
15607 (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
15608 (ix86_emit_restore_sse_regs_using_mov): New.
15609 (ix86_expand_epilogue): Save SSE regs if needed.
15610
9aa5c1b2 156112009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 15612 Kai Tietz <kai.tietz@onevision.com>
9aa5c1b2 15613
435da628
UB
15614 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
15615 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
15616 functions when accumulate outgoing args is off.
9aa5c1b2 15617
f7556aae
L
156182009-01-06 H.J. Lu <hongjiu.lu@intel.com>
15619
15620 PR bootstrap/38742
15621 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
15622 before using pseudos_have_intersected_live_ranges_p.
15623
15624 * ira-int.h (ira_assert): Always define.
15625
e47b7d04
L
156262009-01-06 H.J. Lu <hongjiu.lu@intel.com>
15627
15628 AVX Programming Reference (December, 2008)
15629 * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
15630 (_mm256_permute2_pd): Likewise.
15631 (_mm_permute2_ps): Likewise.
15632 (_mm256_permute2_ps): Likewise.
15633 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
15634 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
15635
15636 * config/i386/i386.c (ix86_builtins): Remove
15637 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
15638 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
15639 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
15640 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
15641 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
15642 (bdesc_args): Remove __builtin_ia32_vpermil2pd,
15643 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
15644 __builtin_ia32_vpermil2ps256.
15645 (ix86_init_mmx_sse_builtins): Updated.
15646 (ix86_expand_args_builtin): Likewise.
15647
44b86471
JDA
156482009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15649
e47b7d04
L
15650 * pa.c (output_call): Relocate non-jump insns in the delay slot of
15651 long absolute calls when generating PA 2.0 code.
44b86471 15652
311aab06
VM
156532009-01-05 Vladimir Makarov <vmakarov@redhat.com>
15654
15655 PR rtl-optimization/38583
15656 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
15657
15658 * params.def (ira-max-conflict-table-size): New.
15659
15660 * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
2ba9daa7 15661
311aab06 15662 * ira.h (ira_conflicts_p): New external definition.
2ba9daa7 15663
311aab06
VM
15664 * ira-conflicts.c (build_conflict_bit_table): Do not build too big
15665 table. Report this. Return result of building.
15666 (ira_build_conflicts): Use ira_conflicts_p. Check result of
15667 building conflict table.
15668
301b6a4e 15669 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
311aab06 15670 (ira_color): Use ira_conflicts_p.
2ba9daa7 15671
311aab06
VM
15672 * global.c: Include ira.h.
15673 (pseudo_for_reload_consideration_p, build_insn_chain): Use
15674 ira_conflicts_p.
15675
15676 * Makefile.in (global.o): Add ira.h.
2ba9daa7 15677
311aab06
VM
15678 * ira-build.c (mark_all_loops_for_removal,
15679 propagate_some_info_from_allocno): New.
15680 (remove_unnecessary_allocnos): Call
15681 propagate_some_info_from_allocno.
15682 (remove_low_level_allocnos): New.
15683 (remove_unnecessary_regions): Add parameter. Call
15684 mark_all_loops_for_removal and remove_low_level_allocnos. Pass
15685 parameter to remove_unnecessary_regions.
15686 (ira_build): Remove all regions but root if the conflict table was
15687 not built. Update conflict hard regs for allocnos crossing calls.
15688
15689 * ira.c (ira_conflicts_p): New global.
15690 (ira): Define and use ira_conflicts_p.
15691
15692 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
15693 count_spilled_pseudo, find_reg, alter_reg, finish_spills,
301b6a4e 15694 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
2ba9daa7 15695
5641785f
BE
156962009-01-06 Ben Elliston <bje@au.ibm.com>
15697
15698 * gengtype-lex.l (YY_NO_INPUT): Define.
15699
e4e5261f
AP
157002009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
15701
15702 PR c/34911
5641785f
BE
15703 * c-common.c (handle_vector_size_attribute): Also reject
15704 BOOLEAN_TYPE types.
e4e5261f 15705
7b10257f
SP
157062009-01-05 Sebastian Pop <sebastian.pop@amd.com>
15707
15708 PR tree-optimization/38492
15709 * graphite.c (rename_map_elt, debug_rename_elt,
301b6a4e
UB
15710 debug_rename_map_1, debug_rename_map, new_rename_map_elt,
15711 rename_map_elt_info, eq_rename_map_elts,
15712 get_new_name_from_old_name, bb_in_sese_p): Moved around.
7b10257f
SP
15713 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
15714 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
15715 (sese_build_livein_liveouts): New.
15716 (new_sese, free_sese): New.
15717 (new_scop): Call new_sese.
15718 (free_scop): Call free_sese.
15719 (rename_variables_from_edge, rename_phis_end_scop): Removed.
15720 (register_old_new_names): Renamed register_old_and_new_names.
15721 (register_scop_liveout_renames, add_loop_exit_phis,
15722 insert_loop_close_phis, struct igp,
15723 default_liveout_before_guard, add_guard_exit_phis,
15724 insert_guard_phis, copy_renames): New.
15725 (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
15726 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
15727 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
15728 (scop_adjust_phis_for_liveouts): New.
15729 (gloog): Call scop_adjust_phis_for_liveouts.
15730
15731 * graphite.h (struct sese): Documented. Added fields liveout,
301b6a4e 15732 num_ver and livein.
7b10257f
SP
15733 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
15734 (new_sese, free_sese, sese_build_livein_liveouts): Declared.
15735 (struct scop): Added field liveout_renames.
15736 (SCOP_LIVEOUT_RENAMES): New.
15737
9761fcc7
HJ
157382009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
15739
15740 PR tree-optimization/38510
15741 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
15742 (translate_clast): Call recompute_all_dominators before
15743 graphite_verify.
15744 (gloog): Call recompute_all_dominators before graphite_verify.
15745
157462009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
c95b2534 15747 Jan Sjodin <jan.sjodin@amd.com>
9761fcc7
HJ
15748
15749 PR tree-optimization/38500
15750 * graphite.c (create_sese_edges): Call fix_loop_structure after
15751 splitting blocks.
15752
c95b2534 157532009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
48a01864
JS
15754
15755 * config.gcc: Add m32r*-*-rtems*.
15756 * config/m32r/rtems.h: New file.
15757
fc0cd180
BE
157582009-01-05 Ben Elliston <bje@au.ibm.com>
15759
15760 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
15761 (.po.pox): Likewise.
15762 (po/gcc.pot): Likewise.
15763
3106d8e5
DM
157642009-01-04 David S. Miller <davem@davemloft.net>
15765
15766 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
15767 (STARTING_FRAME_OFFSET): Always set to zero.
15768
0009b473
RS
157692009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
15770
15771 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
15772 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
15773 fixed-point types, and vectors of the same.
15774
4f24c6d6
RS
157752009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
15776
15777 * config/mips/sync.md (*mb_barrier): Rename to...
15778 (*memory_barrier): ...this.
15779
1df48f5c
JW
157802009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com>
15781
15782 * doc/extend.texi (Function Attributes): Move @cindex after @item
eefe5da0 15783 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
1df48f5c
JW
15784 and put in alphabetical order. Fix 'target' name and put in order.
15785 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
15786 typos.
15787
1a8c13b3
UB
157882009-01-04 Uros Bizjak <ubizjak@gmail.com>
15789
15790 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
15791 (memory_barrier): Expand as unspec instead of unspec_volatile.
15792 Remove mem:BLK from insn operands. Use Pmode scratch register.
15793 (*memory_barrier): Define as unspec instead of unspec_volatile.
15794 Use (match_dup 0) as input operand.
15795
15796 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
15797 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
15798 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
15799 scratch register. Remove operand 1.
15800 (*stbar): Define as unspec instead of unspec_volatile.
15801 Use (match_dup 0) as input operand, remove (const_int 8).
15802 (*membar): Define as unspec instead of unspec_volatile.
15803 Use (match_dup 0) as input operand, remove input operand 2.
15804
15805 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
15806 (memory_barrier): Expand as unspec instead of unspec_volatile.
15807 Remove mem:BLK from insn operands. Use Pmode scratch register.
15808 (*memory_barrier): Define as unspec instead of unspec_volatile.
15809 Use (match_dup 0) as input operand.
15810
15811 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
15812 Remove mem:BLK from insn operands. Use Pmode scratch register.
15813 Set volatile flag on operand 0.
15814 (*memory_barrier): New insn pattern.
15815
15816 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
15817 insn operands.
15818 (*memory_barrier): Use (match_dup 0) as input operand.
15819
15820 * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
15821 Remove mem:BLK from insn operands. Use Pmode scratch register.
15822 Set volatile flag on operand 0.
301b6a4e 15823 (*mb_internal): New insn pattern.
1a8c13b3
UB
15824
15825 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
15826
fb0703f7
SB
158272009-01-04 Steven Bosscher <steven@gcc.gnu.org>
15828
15829 PR middle-end/38586
15830 * function.c (struct temp_slot): Move to the section of the file
15831 that deals with temp slots. Remove field 'address'.
15832 (temp_slot_address_table): New hash table of address -> temp slot.
15833 (struct temp_slot_address_entry): New struct, items for the table.
15834 (temp_slot_address_compute_hash, temp_slot_address_hash,
15835 temp_slot_address_eq, insert_temp_slot_address): Support functions
15836 for the new table.
15837 (find_temp_slot_from_address): Rewrite to use the new hash table.
15838 (remove_unused_temp_slot_addresses): Remove addresses of temp
15839 slots that have been made available.
15840 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
15841 worker function for remove_unused_temp_slot_addresses.
15842 (assign_stack_temp_for_type): Don't clear the temp slot address list.
15843 Add the temp slot address to the address -> temp slot map.
15844 (update_temp_slot_address): Update via insert_temp_slot_address.
15845 (free_temp_slots): Call remove_unused_temp_slot_addresses.
15846 (pop_temp_slots): Likewise.
15847 (init_temp_slots): Allocate the address -> temp slot map, or empty
15848 the map if it is already allocated.
15849 (prepare_function_start): Initialize temp slot processing.
15850
b5a430f3
SB
158512009-01-04 Steven Bosscher <steven@gcc.gnu.org>
15852
15853 PR middle-end/38584
15854 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
15855 Calculate the size of all stack vars assuming no packing of stack
15856 vars will happen, replacing a quadratic algorithm with a linear one.
15857
5d560619
JJ
158582009-01-03 Jakub Jelinek <jakub@redhat.com>
15859
15860 PR target/38707
15861 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
15862 can't be used.
15863
953a7caa
DN
158642009-01-03 Diego Novillo <dnovillo@google.com>
15865
15866 * doc/contrib.texi: Update contributions.
15867
5f26a230
JJ
158682009-01-03 Jakub Jelinek <jakub@redhat.com>
15869
493aa551
JJ
15870 PR c++/38705
15871 * builtins.c (fold_builtin_memory_op): Give up if either operand
15872 is volatile. Set srctype or desttype to non-qualified version
15873 of the other type.
15874
5f26a230
JJ
15875 PR c/38700
15876 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
15877 and FUNCTION_DECLs.
15878
c95b2534 158792009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
fafe34f9
KZ
15880
15881 PR rtl-optimization/35805
15882 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
15883 problem if fast dce is able to remove any instructions.
15884 * dce.c (dce_process_block): Fix dump message.
2ba9daa7 15885
0b355794
MM
158862009-01-02 Mark Mitchell <mark@codesourcery.com>
15887
15888 PR 33649
15889 * tree-ssa-pre.c (compute_antic): Correct loop bounds.
15890
0cf0d02b
JJ
158912009-01-02 Jakub Jelinek <jakub@redhat.com>
15892
15893 PR middle-end/38690
15894 * tree-flow.h (op_code_prio, op_prio): New prototypes.
15895 * tree-pretty-print.c (op_code_prio): New function.
15896 (op_prio): No longer static. Use op_code_prio.
15897 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
15898 Use op_prio and op_code_prio to determine if () should be
15899 printed around operand(s) or not.
15900
15901 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
15902 dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
15903 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
15904 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
15905 pp_character instead of pp_string for single letter printing.
15906
e3606f3b
RS
159072009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
15908
15909 * doc/extend.texi: Fix '#pragma GCC option' typo.
15910
c95b2534 159112009-01-02 Richard Guenther <rguenther@suse.de>
00f39bd5 15912
a5f061dc
RG
15913 * doc/install.texi (--enable-checking): Mention different
15914 default for stage1.
15915 (--enable-stage1-checking): Document.
00f39bd5 15916
26de0bcb
AP
159172009-01-01 Andrew Pinski <pinskia@gmail.com>
15918
15919 PR middle-end/30142
15920 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
15921 case to be an error.
15922
7a7d8fab
BE
159232009-01-02 Ben Elliston <bje@au.ibm.com>
15924
15925 * config/fp-bit.h (pack_d): Constify argument.
15926 * config/fp-bit.c (makenan): Constify return type. Remove casts.
15927 (isnan): Constify argument.
15928 (isinf): Likewise.
15929 (iszero): Likewise.
15930 (pack_d): Likewise.
15931 (_fpadd_parts): Constify return type.
15932 (_fpmul_parts): Likewise.
15933 (_fpdiv_parts): Likewise.
15934
b295aee2
JJ
159352009-01-01 Jakub Jelinek <jakub@redhat.com>
15936
15937 PR c/36489
15938 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only
15939 warn about overwriting initializer with side-effects or
15940 -Woverride-init if !IMPLICIT.
15941 (output_init_element): Likewise. Pass IMPLICIT down to
15942 add_pending_init.
15943 (process_init_element): Add IMPLICIT argument. Pass it down
15944 to output_init_element.
15945 (push_init_element, pop_init_level, set_designator): Adjust
15946 process_init_element callers.
15947 (set_nonincremental_init, set_nonincremental_init_from_string):
15948 Adjust add_pending_init callers.
15949 (output_pending_init_elements): Adjust output_init_element callers.
15950 * c-tree.h (process_init_element): Adjust prototype.
15951 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
15952 process_init_element callers.
ad41bd84
JM
15953
15954\f
15955Copyright (C) 2009 Free Software Foundation, Inc.
15956
15957Copying and distribution of this file, with or without modification,
15958are permitted in any medium without royalty provided the copyright
15959notice and this notice are preserved.