]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
expr.c (struct move_by_pieces_d): Rename from move_by_pieces.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
b0f43ca0
ILT
12009-06-17 Ian Lance Taylor <iant@google.com>
2
3 * expr.c (struct move_by_pieces_d): Rename from move_by_pieces.
4 Change all uses.
5 (struct store_by_pieces_d): Rename from store_by_pieces. Change
6 call uses.
7
23314e77
AN
82009-06-17 Adam Nemet <anemet@caviumnetworks.com>
9
10 * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS,
11 STRIP_USELESS_TYPE_CONVERSION): Use tree_strip_nop_conversions,
12 tree_strip_sign_nop_conversions and
13 tree_ssa_strip_useless_type_conversions rather than stripping
14 the operations here.
15 (tree_strip_nop_conversions, tree_strip_sign_nop_conversions):
16 Declare them.
17 * gimple.h (tree_ssa_strip_useless_type_conversions): Declare it.
18 * tree-ssa.c (tree_ssa_strip_useless_type_conversions): New function.
19 * tree.c (tree_nop_conversion, tree_sign_nop_conversion,
20 tree_strip_nop_conversions, tree_strip_sign_nop_conversions): New
21 functions.
22
799dbb0f
ME
232009-06-17 Michael Eager <eager@eagercon.com>
24
25 * config/rs6000/constraints.md: register_constraint "d": New.
26 * config/rs6000/dfp.md: movsd_store, extendsddd2, extendsdtd2,
27 truncddsd2, *negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr, *movdd_hardfloat32,
28 *movdd_hardfloat64_mfpgpr, *movdd_hardfloat64, *negtd2_fp,
29 *abstd2_fpr, *nabstd2_fpr, *movtd_internal, extendddtd2, trunctddd2,
30 adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3, divtd3,
31 internal1, *cmptd_internal1, floatditd2, ftruncdd2, fixdddi2,
32 ftrunctd2, fixtddi2: replace 'f' constraint with 'd'
33 * config/rs6000/ppu_intrinsics.h: __mffs, __mtfsf, __mtfsfi, __fabs,
34 __fnabs, __fmadd, __fmsub, __fnmadd, __fnmsub, __fsel, __frsqrte,
35 __fsqrt, __fmul, __fmuls, __frsp, __fcfid, __fctid, __fctidz, __fctiw,
36 __fctiwz: Same.
37 * config/rs6000/rs6000.md: *extendsfdf2_fpr, *truncdfsf2_fpr,
38 *fseldfsf4, *negdf2_fpr, *absdf2_fpr, *nabsdf2_fpr, *adddf3_fpr,
39 *subdf3_fpr, *muldf3_fpr, *divdf3_fpr, recipdf3, fred, sqrtdf2,
40 *fseldfdf4, *fselsfdf4, *floatsidf2_internal, *floatunssidf2_internal,
41 *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt, fix_truncdfsi2_mfpgpr,
42 fctiwz, btruncdf2, ceildf2, floordf2, rounddf2, stfiwx, floatdidf2,
43 fix_truncdfdi2, floatdisf2_internal1, *movdf_hardfloat32,
44 *movdf_hardfloat64_mfpgpr, *movdf_hardfloat64, *movtf_internal,
45 *extenddftf2_internal, trunctfdf2_internal1, trunctfdf2_internal2,
46 trunctfsf2_fprs, fix_trunc_helper, *fix_trunctfsi2_internal,
47 negtf2_internal, *movdi_internal32, *movdi_mfpgpr, *movdi_internal64,
48 *movdf_update1, *movdf_update2, *cmpdf_internal1, *cmptf_internal1,
49 *cmptf_internal2: Same.
50 * doc/md.texi: Describe PowerPC 'd' constraint, update 'f' constraint.
51
1469de3c
ILT
522009-06-16 Ian Lance Taylor <iant@google.com>
53
54 * profile.c (total_num_never_executed): Don't define.
55 (compute_branch_probabilities): Don't count or print
56 num_never_executed.
57 (init_branch_prob): Don't set total_num_never_executed.
58 (end_branch_prob): Don't print total_num_never_executed.
59
2cb0a60d
DD
602009-06-17 David Daney <ddaney@caviumnetworks.com>
61
62 * jump.c (cleanup_barriers): Handle case of no insns before a
63 barrier.
64
82882240
DE
652009-06-17 David Edelsohn <edelsohn@gnu.org>
66
67 * config/rs6000/dfp.md (nabsdd2_fpr): Correct mode.
68 (nabstd2_fpr): Same.
69
a1a65f89
SE
702009-06-17 Steve Ellcey <sje@cup.hp.com>
71
72 * expr.c (expand_assignment): Change complex type check.
73
07ae5620
BS
742009-06-17 Basile Starynkevitch <basile@starynkevitch.net>
75
76 * doc/plugins.texi (Building GCC plugins): Added new section.
77
5eb4df45
ILT
782009-06-17 Ian Lance Taylor <iant@google.com>
79
80 * c-pch.c (get_ident): Don't set size of templ array.
81 (pch_init): Don't set size of partial_pch array.
82
83 * c-typeck.c (digest_init): If -Wc++-compat, warn about using a
84 string constant to intialize an array whose size is the length of
85 the string.
86
4d61856d
RG
872009-06-17 Richard Guenther <rguenther@suse.de>
88
89 PR tree-optimization/40389
90 * tree-ssa-structalias.c (handle_rhs_call): Restrict NRV case
91 to addressable types.
92 * gimple.c (walk_stmt_load_store_addr_ops): Likewise.
93
3cb8677c
RG
942009-06-17 Richard Guenther <rguenther@suse.de>
95
96 PR middle-end/40460
97 * tree-chrec.h (build_polynomial_chrec): If we cannot determine
98 if there is no evolution of left in the loop bail out.
99 * tree-chrec.c (chrec_fold_multiply_poly_poly): CSE one
100 chrec_fold_multiply.
101
a4d99c86
R
1022009-06-16 J"orn Rennecke <joern.rennecke@arc.com>
103 Janis Johnson <janis187@us.ibm.com>
104
105 PR target/39254
106 * config/rs6000/rs6000.c (rs6000_emit_move): Don't emit a USE
107 for the symbol ref of a constant that is the source of a move
108 - nor for any other not-obvious-label-ref constants.
109
8dd1bca0
OR
1102009-06-16 Olatunji Ruwase <tjruwase@google.com>
111
1469de3c 112 * plugin.c (position_pass): Skip newly inserted pass during list
8dd1bca0
OR
113 traversal to avoid repeated insertion.
114
8019538f
ILT
1152009-06-16 Ian Lance Taylor <iant@google.com>
116
117 * vec.h (VEC_stack_alloc): Define different version if
118 GATHER_STATISTICS is defined, to accept and ignore MEM_STAT.
119 (DEF_VEC_ALLOC_FUNC_P_STACK): Remove MEM_STAT_DECL.
120 (DEF_VEC_ALLOC_FUNC_O_STACK): Likewise.
121 (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
122
7c45393e
L
1232009-06-16 H.J. Lu <hongjiu.lu@intel.com>
124
125 * config.gcc (extra_headers): Add ia32intrin.h for x86.
126
127 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_BSRSI,
128 IX86_BUILTIN_BSRDI. IX86_BUILTIN_RDPMC, IX86_BUILTIN_RDTSC.
129 IX86_BUILTIN_RDTSCP. IX86_BUILTIN_ROLQI, IX86_BUILTIN_ROLHI,
130 IX86_BUILTIN_RORQI and IX86_BUILTIN_RORHI.
131 (ix86_special_builtin_type): Add UINT64_FTYPE_VOID,
132 UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
133 INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and
134 UINT8_FTYPE_UINT8_INT
135 (bdesc_special_args): Add __builtin_ia32_rdtsc and
136 __builtin_ia32_rdtscp.
137 (bdesc_args): Add __builtin_ia32_bsrsi, __builtin_ia32_bsrdi,
138 __builtin_ia32_rolqi, __builtin_ia32_rolhi, __builtin_ia32_rorqi
139 and __builtin_ia32_rorhi,
140 (ix86_init_mmx_sse_builtins): Handle UINT64_FTYPE_VOID,
141 UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
142 INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and
143 UINT8_FTYPE_UINT8_INT.
144 (ix86_expand_args_builtin): Likewise.
145 (ix86_expand_special_args_builtin): Likewise.
146
147 * config/i386/i386.md (UNSPECV_RDTSCP): New.
148 (UNSPECV_RDTSC): Likewise.
149 (UNSPECV_RDPMC): Likewise.
150 (*bsr): Removed to ...
151 (bsr): This
152 (*bsr_rex64): Removed to ...
153 (bsr_rex64): This.
154 (rdpmc): New.
155 (*rdpmc): Likewise.
156 (*rdpmc_rex64): Likewise.
157 (rdtsc): Likewise.
158 (*rdtsc): Likewise.
159 (*rdtsc_rex64): Likewise.
160 (rdtscp): Likewise.
161 (*rdtscp): Likewise.
162 (*rdtscp_rex64): Likewise.
163
164 * config/i386/ia32intrin.h: New.
165
166 * config/i386/x86intrin.h: Include <ia32intrin.h>.
167
504b33d8
ILT
1682009-06-16 Ian Lance Taylor <iant@google.com>
169
170 * ira-build.c (copy_info_to_removed_store_destinations):
171 Initialize parent_a.
172
f9551830
ILT
1732009-06-16 Ian Lance Taylor <iant@google.com>
174
175 * c-decl.c (grokdeclarator): Change size_varies to bool.
176
c32e2175
ILT
1772009-06-16 Ian Lance Taylor <iant@google.com>
178
179 * sel-sched.c: Make forward declarations of move_op_hooks and
180 fur_hooks explicitly extern.
181
415a06c2
ILT
1822009-06-16 Ian Lance Taylor <iant@google.com>
183
184 * df-problems.c (df_byte_lr_alloc): Don't set problem_data to
185 itself.
186 * vec.c (vec_gc_o_reserve_1): Don't set alloc to itself.
187
675f99c9
ILT
1882009-06-16 Ian Lance Taylor <iant@google.com>
189
190 * resource.c (mark_referenced_resources): Change
191 include_delayed_effects parameter to bool. Change all callers.
192 (mark_end_of_function_resources): Likewise.
193 * reorg.c (insn_references_resource_p): Likewise.
194 (insn_sets_resource_p): Likewise.
195 * resource.h (mark_referenced_resources): Update declaration.
196 (mark_end_of_function_resources): Update declaration.
197
a322799d
DE
1982009-06-16 David Edelsohn <edelsohn@gnu.org>
199
200 * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove -lstdc++.
201
c58c92f5
DE
2022009-06-16 David Edelsohn <edelsohn@gnu.org>
203
204 * doc/install.texi (*-*-aix): Update explanation of XLC bootstrap.
205 GCC can bootstrap on AIX with GNU Binutils 2.20.
206
95228603
ILT
2072009-06-16 Ian Lance Taylor <iant@google.com>
208
209 * Makefile.in (tree-vect-stmts.o): Depend upon $(TOPLEV_H).
210
9c727c9a
ILT
2112009-06-16 Ian Lance Taylor <iant@google.com>
212
213 * toplev.h (floor_log2): If GCC_VERSION >= 3004, declare as static
214 inline, not extern inline.
215 (exact_log2): Likewise.
216 * toplev.c (floor_log2): Only define if GCC_VERSION < 3004. Don't
217 test CLZ_HWI.
218 (exact_log2): Likewise, but don't test CTZ_HWI.
219
5fd8300b
ILT
2202009-06-16 Ian Lance Taylor <iant@google.com>
221
222 * bitmap.c (bitmap_clear): Don't declare as inline.
223 * gimple.c (gimplify_assign): Likewise.
224 * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
225 * haifa-sched.c (insn_cost): Don't declare with HAIFA_INLINE.
226 (sched_scan_info): Remove duplicate definition.
227
7d882b83
ILT
2282009-06-16 Ian Lance Taylor <iant@google.com>
229
230 * c-common.c (skip_evaluation): Don't define.
231 (c_inhibit_evaluation_warnings): Define global variable.
232 (overflow_warning): Check c_inhibit_evaluation_warnings rather
233 than skip_evaluation.
234 (convert_and_check, warn_for_div_by_zero): Likewise.
235 * c-common.h (skip_evaluation): Don't declare.
236 (c_inhibit_evaluation_warnings): Declare.
237 * c-parser.c (c_parser_typeof_specifier): Set
238 c_inhibit_evaluation_warnings rather than skip_evaluation.
239 (c_parser_conditional_expression): Likewise.
240 (c_parser_binary_expression): Likewise.
241 (c_parser_sizeof_expression): Likewise.
242 (c_parser_alignof_expression): Likewise.
243 * c-typeck.c (build_indirect_ref): Check
244 c_inhibit_evaluation_warnings rather than skip_evaluation.
245 (build_conditional_expr, build_binary_op): Likewise.
246
2e407842
RG
2472009-06-16 Richard Guenther <rguenther@suse.de>
248
249 * tree-ssa-alias.c (is_escape_site): Remove.
250 * tree-ssa-alias.h (enum escape_type): Remove.
251 (is_escape_site): Likewise.
252 * tree-ssa-structalias.c (find_func_aliases): Handle escapes
253 via casts and asms without deferring to is_escape_site.
254
f2ff8872
JJ
2552009-06-16 Jakub Jelinek <jakub@redhat.com>
256
257 PR middle-end/40446
258 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Don't
259 use gen_lowpart if op0 has complex mode.
260
de70bb20
RG
2612009-06-16 Richard Guenther <rguenther@suse.de>
262
263 * tree-ssa-structalias.c (do_ds_constraint): Stores in global
264 variables add them to ESCAPED.
265 (find_func_aliases): Do not make all indirectly stored values
266 escaped.
267
daa0eeb8
RAE
2682009-06-16 Rafael Avila de Espindola <espindola@google.com>
269
270 * config/i386/winnt.c (i386_pe_encode_section_info): Update call to
271 make_decl_one_only.
272
0ec19b8c
MJ
2732009-06-16 Martin Jambor <mjambor@suse.cz>
274
275 PR tree-optimization/40432
276 * tree-sra.c (sra_modify_assign): When creating VIEW_CONVERT_EXPR,
277 check whether we need to force gimple register operand.
278
2b26b801
MJ
2792009-06-16 Martin Jambor <mjambor@suse.cz>
280
281 PR tree-optimization/40413
282 * tree-sra.c (load_assign_lhs_subreplacements): Pass offset to
283 build_ref_for_offset.
284 (propagate_subacesses_accross_link): Fix a typo in a comment.
285
7c5222ff
IR
2862009-06-16 Ira Rosen <irar@il.ibm.com>
287
288 * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
289 with additional parameter.
290 * tree-vectorizer.h (enum vect_def_type): Add new value
291 vect_nested_cycle.
292 (enum vect_relevant): Add comments.
293 (vect_is_simple_reduction): Add new argument.
294 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Add comments.
295 Detect nested cycles.
296 (vect_is_simple_reduction): Update documentation, add an argument to
297 distinguish inner-loop reduction from nested cycle, detect nested
298 cycles, fix printings and indentation, don't swap operands in case
299 of nested cycle.
300 (get_initial_def_for_reduction): Handle subtraction.
301 (vect_create_epilog_for_reduction): Add new argument to specify
302 reduction variable.
303 (vect_finalize_reduction): Handle subtraction, fix comments.
304 (vectorizable_reduction): Handle nested cycles. In case of nested cycle
305 keep track of the reduction variable position. Call
306 vect_is_simple_reduction with additional parameter. Use original
307 statement code in reduction epilogue for nested cycle. Call
308 vect_create_epilog_for_reduction with additional parameter.
309 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Assert inner-loop
310 vectorization.
311 (vect_recog_widen_sum_pattern): Likewise.
312 * tree-vect-stmts.c (process_use): Distinguish between nested cycles
313 and reductions.
314 (vect_mark_stmts_to_be_vectorized): Likewise.
315 (vect_get_vec_def_for_operand): Handle nested cycles.
316
d376d545
RW
3172009-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
318
319 * doc/invoke.texi (Debugging Options): Fix option index entries
320 for -fdump-statistics, -frandom-seed add entries for
321 -fdump-tree-original, -fdump-tree-optimized, -frandom-seed.
322 (FRV Options): Fix entries for -mTLS, -mtls.
323 (HPPA Options): Fix entries for -mgnu-ld, -mhp-ld.
324 (i386 and x86-64 Options): Fix entry for -mno-red-zone.
325 (M68hc1x Options): Fix @itemx for -mnominmax.
326 (MCore Options): Fix entry for -mno-lsim.
327 (MMIX Options): Fix entry for -mabi=mmixware.
328 (PDP-11 Options): Fix entry for -mbcopy-builtin.
329
bd117bb6
BS
3302009-06-16 Basile Starynkevitch <basile@starynkevitch.net>
331
332 * doc/plugins.texi (Interacting with the GCC Garbage Collector):
333 Mention the plugin mode of gengtype.
334 * doc/gty.texi (Source Files Containing Type Information):
335 Likewise.
336 * gengtype.c: Updated copyright.
337 (plugin_files, nb_plugin_files) Added new static variables.
338 (measure_input_list) Care about plugin_files.
339 (write_rtx_next): Added early return in plugin mode.
340 (create_file): Updated copyright year in generated file. Added
341 asserts.
342 (oprintf): Added early return if NULL outf.
343 (get_output_file_with_visibility): Care of plugin_files.
344 (get_output_file_name): May return null.
345 (write_local): Added early return.
346 (put_mangled_filename): Ditto.
347 (finish_root_table): Added check for base_files.
348 (write_roots): Care about null when plugins.
349 (main): Added plugin mode.
350
e1b7793c
ILT
3512009-06-15 Ian Lance Taylor <iant@google.com>
352
353 * df-problems.c (df_simulate_one_insn_forwards): Fix braces in
354 switch.
355 * gcov.c (read_count_file): Add braces around variables declared
356 before label.
357
358 * c.opt (Wjump-misses-init): New warning.
359 * c-opts.c (c_common_handle_option): Set warn_jump_misses_init for
360 -Wall and -Wc++-compat if not already set.
361 (c_common_post_options): Clear warn_jump_misses_init if it was not
362 set.
363 * c-decl.c (struct c_binding): Change type field to a union with
364 new label field. Make it the first field in the struct. Update
365 references to type to use u.type instead.
366 (struct c_spot_bindings): Define.
367 (struct c_goto_bindings): Define.
368 (c_goto_bindings_p): Define, along with VECs.
369 (struct c_label_vars): Define.
370 (struct c_scope): Add has_label_bindings field.
371 (bind_label, set_spot_bindings): New static functions.
372 (decl_jump_unsafe, update_spot_bindings): New static functions.
373 (update_label_decls): New static function.
374 (pop_scope): Call update_label_decls. Don't call c_end_vm_scope.
375 Update binding u.label field to shadowed field.
376 (c_binding_start_stmt_expr): New function.
377 (c_binding_end_stmt_expr): New function.
378 (pushdecl): Don't call c_begin_vm_scope.
379 (make_label): Add defining and p_label_vars parameters. Change
380 all callers.
381 (lookup_label): Correct test for whether a label has not yet been
382 defined. Call bind_label rather than bind.
383 (warn_about_goto): New static function.
384 (lookup_label_for_goto): New function.
385 (declare_label): Call bind_label rather than bind.
386 (check_earlier_gotos): New static function.
387 (define_label): Don't give errors about jumping into statement
388 expressions or scopes of variably modified types. Call
389 set_spot_bindings and check_earlier_gotos. Call bind_label
390 instead of bind. Don't set label_context_stack_se or
391 label_context_stack_vm.
392 (c_get_switch_bindings): New function.
393 (c_release_switch_bindings): New function.
394 (c_check_switch_jump_warnings): New function.
395 (start_function): Don't set label_context_stack_se or
396 label_context_stack_vm.
397 (finish_function): Likewise.
398 * c-typeck.c (label_context_stack_se): Don't define.
399 (label_context_stack_vm): Don't define.
400 (c_finish_goto_label): Call lookup_label_for_goto rather than
401 lookup_label. Don't give errors about jumping into a statement
402 expression or the scope of a variably modified type. Don't set
403 label_context_stack_se or label_context_stack_vm.
404 (struct c_switch): Remove blocked_stmt_expr and blocked_vm
405 fields. Add bindings field.
406 (c_start_case): Don't set deleted fields. Set bindings field.
407 (do_case): Rework order of tests. Don't check blocked_stmt_expr
408 or blocked_vm. Call c_check_switch_jump_warnings.
409 (c_finish_case): Don't test blocked_stmt_expr field. Call
410 c_release_switch_bindings.
411 (c_begin_stmt_expr): Don't increment blocked_stmt_expr in
412 c_switch_stack. Don't walk label_context_stack_se labels. Don't
413 set label_context_stack_se. Call c_bindings_start_stmt_expr.
414 (c_finish_stmt_expr): Don't decrement blocked_stmt_expr in
415 c_switch_stack. Don't walk label_context_stack_se labels. Don't
416 set label_context_stack_se. Call c_bindings_end_stmt_expr.
417 (c_begin_vm_scope, c_end_vm_scope): Don't define.
418 * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR): Don't define.
419 (C_DECL_UNDEFINABLE_STMT_EXPR): Don't define.
420 (C_DECL_UNJUMPABLE_VM): Don't define.
421 (C_DECL_UNDEFINABLE_VM): Don't define.
422 (struct c_label_list): Don't define.
423 (struct c_label_context_se): Don't define.
424 (struct c_label_context_vm): Don't define.
425 (struct c_spot_bindings): Declare.
426 (c_bindings_start_stmt_expr): Declare.
427 (c_bindings_end_stmt_expr): Declare.
428 (lookup_label_for_goto): Declare.
429 (c_get_switch_bindings, c_release_switch_bindings): Declare.
430 (c_check_switch_jump_warnings): Declare.
431 (label_context_stack_se, label_context_stack_vm): Don't declare.
432 (c_finish_goto_label): Update declaration.
433 (c_begin_vm_scope, c_end_vm_scope): Don't declare.
434 * doc/invoke.texi (Option Summary): Mention -Wjump-misses-init.
435 (Warning Options): Document -Wjump-misses-init.
436
98a129b9
JJ
4372009-06-15 Jakub Jelinek <jakub@redhat.com>
438
439 * tree-object-size.c (addr_object_size): Fix a pasto in the last
440 change.
441
19751f1f
RAE
4422009-06-15 Rafael Avila de Espindola <espindola@google.com>
443
444 * cgraph.c (cgraph_make_node_local): Use DECL_COMDAT_GROUP.
445
d40eb158
AH
4462009-06-15 Aldy Hernandez <aldyh@redhat.com>
447
448 * except.c (init_eh): Use BUILTINS_LOCATION when calling build_decl.
449
4502009-06-15 Aldy Hernandez <aldyh@redhat.com>
451
452 * tree-eh.c (lower_try_finally_switch): Initialize tf_loc.
453
fc26fae3
RAE
4542009-06-15 Rafael Avila de Espindola <espindola@google.com>
455
456 * cgraphunit.c (cgraph_function_versioning,save_inline_function_body):
457 Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
458 * cgraph.c (cgraph_create_virtual_clone): Use DECL_COMDAT_GROUP.
459 * config/i386/i386.c (ix86_file_end): Compute DECL_COMDAT_GROUP.
460 * dwarf2asm.c(dw2_force_const_mem): Update call to make_decl_one_only.
461 * langhooks-def.h (lhd_comdat_group, LANG_HOOKS_COMDAT_GROUP): Remove.
462 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_COMDAT_GROUP.
463 * langhooks.c (lhd_comdat_group): Remove.
464 * langhooks.h (lang_hooks_for_decls): Remove comdat_group.
465 * tree.h (DECL_COMDAT_GROUP): New.
466 (DECL_ONE_ONLY): Use DECL_COMDAT_GROUP.
467 (tree_decl_with_vis): Add comdat_group. Remove one_only.
468 (make_decl_one_only): Change signature.
469 * varasm.c (get_emutls_init_templ_addr, emutls_decl): Update call to
470 make_decl_one_only.
471 (make_decl_one_only): Change signature.
472 (default_elf_asm_named_section): Use DECL_COMDAT_GROUP.
473
0eb92735
RG
4742009-06-15 Richard Guenther <rguenther@suse.de>
475
476 PR middle-end/40439
477 * tree.c (widest_int_cst_value): Fix bootstrap on 32bit HWI hosts.
478
0ab352d5
AK
4792009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
480
481 * tree-ssa-math-opts.c: Remove extra divide.
482
677fbff4
AK
4832009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
484
485 * config/s390/s390.md ("bswap<mode>2"): Only available on z900.
486
03bd2f1a
AK
4872009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
488
489 * passes.c: Add bswap pass.
490 * tree-pass.h: Add pass_optimize_bswap declaration.
491 * tree-ssa-math-opts.c: Include diagnostics.h for print_gimple_stmt.
492 Include rtl.h, expr.h and optabs.h for optab_handler check.
493 (struct symbolic_number, pass_optimize_bswap): New definition.
494 (do_shift_rotate, verify_symbolic_number_p): New functions.
495 (find_bswap_1, find_bswap, execute_optimize_bswap): New functions.
496 (gate_optimize_bswap): New function.
497 * tree.c (widest_int_cst_value): New function.
498 * tree.h (widest_int_cst_value): Prototype added.
499
fb4c4640
SB
5002009-06-14 Steven Bosscher <steven@gcc.gnu.org>
501
502 * cfgcleanup.c (old_insns_match_p): Remove code to substitute
503 REG_EQUAL/REG_EQUIV notes.
504
1d24fdd9
RG
5052009-06-14 Richard Guenther <rguenther@suse.de>
506
507 PR middle-end/40389
508 * gimple.c (walk_stmt_load_store_addr_ops): The LHS of a call
509 has its address taken if NRV was applied and it is addressable.
510 * tree-ssa-structalias.c (get_constraint_for_address_of): New
511 function split out from ...
512 (get_constraint_for_1): ... here.
513 (handle_rhs_call): Use it to mark the return slot escaped if
514 it is addressable and NRV was applied.
515
4b29c5e5
AH
5162009-06-13 Aldy Hernandez <aldyh@redhat.com>
517
518 * config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin):
519 Change first argument type to location_t.
520 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Same.
521 Do not set input_location.
522 Use loc instead of input_location throughout.
523
e1e6dc73
RG
5242009-06-13 Richard Guenther <rguenther@suse.de>
525
1d24fdd9 526 PR tree-optimization/40421
e1e6dc73
RG
527 * tree-predcom.c (should_unroll_loop_p): Remove.
528 (tree_predictive_commoning_loop): Use can_unroll_loop_p.
529
8012b923
MM
5302009-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
531
532 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
533 Add location argument.
534
4c4bde29
AH
5352009-06-13 Aldy Hernandez <aldyh@redhat.com>
536
537 * config/alpha/alpha.c (alpha_build_builtin_va_list): Pass location to
538 build_decl.
539 * config/s390/s390.c (s390_build_builtin_va_list): Same.
540 (s390_gimplify_va_arg): Pass location to create_artificial_label.
541 * config/spu/spu-protos.h: Add location to
542 spu_resolve_overloaded_builtin.
543 * config/spu/spu.c (spu_build_builtin_va_list): Pass location to
544 spu_build_builtin_va_list.
545 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Add location
546 argument. Pass location to build_function_call_vec.
547 * config/sh/sh.c (sh_build_builtin_va_list): Pass location to
548 build_decl.
549 (emit_fpu_switch): Same.
550 (sh_gimplify_va_arg_expr): Pass location to create_artificial_label.
551 * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Pass location
552 to build_decl and create_artificial_label.
553 (xtensa_gimplify_va_arg_expr): Same.
554 * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list): Same.
555 (xstormy16_gimplify_va_arg_expr): Same.
556 * config/iq2000/iq2000.c (iq2000_expand_prologue): Same.
557 * config/arm/arm.c (arm_build_builtin_va_list): Same.
558 * config/mips/mips.c (mips_build_builtin_va_list): Same.
559 (mips16_build_function_stub): Same.
560 (mips16_build_call_stub): Same.
561
81beb031
RE
5622009-06-13 Richard Earnshaw <rearnsha@arm.com>
563
564 PR target/40327
565 * arm/constraints.md (Pa, Pb): New constraints.
566 * arm/arm.md (thumb1_addsi3): Support more complex additions. Add a
567 split pattern to deal with them.
568
98f6c600
JS
5692009-06-13 Joerg Sonnenberger <joerg@britannica.bec.de>
570
571 * doc/invoke.texi: Add missing option -Wp,OPTION in list,
572 fix index entry for -Xpreprocessor.
573
71856685
AH
5742009-06-12 Aldy Hernandez <aldyh@redhat.com>
575
576 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
577 Add location argument to build_decl call.
578 * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Same.
579 (rs6000_init_builtins): Same.
580 (spe_init_builtins): Same.
581 (rs6000_gimplify_va_arg): Add location argument to
582 create_artificial_label call.
583
756b65f5
SB
5842009-06-12 Steven Bosscher <steven@gcc.gnu.org>
585
586 * timevar.def (TV_COMBINE_STACK_ADJUST): New timevar.
587 * combine-stack-adj.c (pass_stack_adjustments): Use it.
588 * Makefile.in: Fix GGC dependency for gcse.o.
589
c2255bc4
AH
5902009-06-12 Aldy Hernandez <aldyh@redhat.com>
591
592 * tree-pretty-print.c (dump_generic_node): Dump column numbers.
593 * gimple-pretty-print.c (dump_gimple_stmt): Same.
594 * gimplify.c (gimplify_modify_expr): Set location for GIMPLE_ASSIGNs
595 created.
596 * c-parser.c (c_parser_binary_expression): Use current column while
597 building binary operations.
598 * common.opt (fshow-column): Enable by default.
599 * tree-vrp.c (check_array_ref): Use warning_at.
600 (check_array_bounds): Use location from call back if expr has no
601 location.
602 * tree.h: Add location argument to maybe_fold_*.
603 * tree-ssa-ccp.c (ccp_fold): Pass location to maybe_fold_*.
604 (maybe_fold_offset_to_array_ref): Add location argument and use it.
605 (maybe_fold_offset_to_component_ref): Same.
606 (maybe_fold_offset_to_reference): Same.
607 (maybe_fold_offset_to_address): Same.
608 (maybe_fold_stmt_indirect): Same.
609 (maybe_fold_stmt_addition): Same.
610 (fold_stmt_r): Pass location to maybe_fold_*.
611 (fold_gimple_assign): Same.
612 * c-tree.h: Add location argument to finish_decl,
613 default_function_array_conversion, store_init_value.
614 * c-decl.c (define_label): Use error_at.
615 (c_make_fname_decl): Pass location to finish_decl.
616 (finish_decl): New location argument.
617 (build_compound_literal): Pass location to store_init_value.
618 (grokdeclarator): Pass location to finish_decl.
619 (grokfield): Same.
620 * c-typeck.c (array_to_pointer_conversion): New location argument.
621 (function_to_pointer_conversion): Same.
622 (default_function_array_conversion): Same.
623 (parser_build_unary_op): Pass location to overflow_warning.
624 (parser_build_binary_op): Same. Use warning_at.
625 (build_unary_op): Pass location to array_to_pointer_conversion.
626 (build_c_cast): Pass location to digest_init.
627 (build_modify_expr): New location argument.
628 (convert_for_assignment): Same.
629 (store_init_value): Same.
630 (digest_init): Same.
631 (output_init_element): Pass location to digest_init and
632 array_to_pointer_conversion.
633 (c_finish_return): Pass location to convert_for_assignment.
634 * gimplify.c (gimplify_conversion): Pass location to
635 maybe_fold_offset_to_address.
636 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Pass location
637 to maybe_fold_stmt_addition.
638 * c-omp.c (c_finish_omp_atomic): Pass new location to
639 build_modify_expr.
640 (c_finish_omp_for): Same.
641 * c-common.c (overflow_warning): New argument.
642 * c-common.h: New argument to build_modify_expr, overflow_warning.
643 * c-parser.c (c_parser_declaration_or_fndef): Pass location to
644 finish_decl.
645 (c_parser_initializer): Pass location to
646 default_function_array_conversion.
647 (c_parser_initelt): Same.
648 (c_parser_initval): Same.
649 (c_parser_asm_operands): Same.
650 (c_parser_expr_no_commas): Same. Pass location to build_modify_expr.
651 (c_parser_conditional_expression): Same.
652 (c_parser_binary_expression): Add location info to stack. Use it.
653 (c_parser_unary_expression): Pass location to
654 default_function_array_conversion, parser_build_unary_op,
655 build_indirect_ref, c_parser_postfix_expression_after_primary.
656 (c_parser_postfix_expression_after_primary): New location argument.
657 Use it.
658 (c_parser_expression_conv): Pass location to
659 default_function_array_conversion.
660 (c_parser_expr_list): Same.
661 (c_parser_omp_atomic): Same.
662 (c_parser_omp_for_loop): Same.
663 * c-tree.h: (struct c_declarator): Add comment to id_loc.
664 (build_array_declarator): New argument.
665 * c-decl.c (build_array_declarator): Add location argument.
666 (grokdeclarator): Set id_loc for cdk_array.
667 * c-parser.c (c_parser_direct_declarator_inner): Pass location to
668 build_array_declarator.
669 * tree.c (build_omp_clause): Add location argument.
670 * tree.h (OMP_CLAUSE_HAS_LOCATION): New macro.
671 (OMP_CLAUSE_LOCATION): New macro.
672 (struct tree_omp_clause): Add location field.
673 (build_omp_clause): Add argument.
674 * testsuite/gcc.dg/gomp/for-1.c: Fix column.
675 * cp/pt.c (tsubst_omp_for_iterator): Pass location to
676 build_omp_clause.
677 * cp/parser.c (cp_parser_omp_var_list_no_open): Same.
678 (cp_parser_omp_clause_collapse): Same.
679 (cp_parser_omp_clause_default): Same.
680 (cp_parser_omp_clause_if): Same.
681 (cp_parser_omp_clause_nowait): Same.
682 (cp_parser_omp_clause_num_threads): Same.
683 (cp_parser_omp_clause_ordered): Same.
684 (cp_parser_omp_clause_schedule): Same.
685 (cp_parser_omp_clause_untied): Same.
686 (cp_parser_omp_for_loop): Same.
687 (cp_parser_omp_parallel): Pass location to c_split_parallel_clauses.
688 * c-tree.h (c_start_case): Add location argument.
689 (c_process_expr_stmt): Same.
690 (c_finish_goto_*): Same.
691 * tree-parloops.c (initialize_reductions): Pass location to
692 build_omp_clause.
693 (create_parallel_loop): Same.
694 * fortran/trans-openmp.c (gfc_trans_omp_variable_list): Same.
695 (gfc_trans_omp_reduction_list): Same.
696 (gfc_trans_omp_clauses): Same.
697 (gfc_trans_omp_do): Same.
698 * c-typeck.c (c_finish_goto_label): Same.
699 (c_finish_goto_ptr): New location argument.
700 (c_start_case): Same.
701 (emit_side_effect_warnings): Same.
702 (c_process_expr_stmt): Same.
703 (c_finish_stmt_expr): Same.
704 (c_finish_omp_clauses): Use error_at instead of error.
705 * gimplify.c (gimplify_adjust_omp_clauses_1): Pass location to
706 build_omp_clause.
707 * c-omp.c (c_split_parallel_clauses): New location argument.
708 * tree-nested.c (convert_nonlocal_reference_stmt): Pass location
709 to build_omp_clause.
710 (convert_local_reference_stmt): Same.
711 (convert_gimple_call): Same.
712 * c-common.h (c_split_parallel_clauses): New argument.
713 * c-parser.c (c_parser_statement_after_labels): Pass location to
714 c_finish_goto_label.
715 (c_parser_switch_statement): Pass location to c_start_case.
716 (c_parser_for_statement): Pass location to c_finish_expr_stmt,
717 and c_process_expr_stmt.
718 (c_parser_omp_variable_list): Add location argument.
719 (c_parser_omp_clause_collapse): Pass location to
720 build_omp_clause.
721 (c_parser_omp_clause_default): Same.
722 (c_parser_omp_clause_if): Same.
723 (c_parser_omp_clause_num_threads): Same.
724 (-c_parser_omp_clause_ordered): Same.
725 (c_parser_omp_clause_reduction): Pass location to
726 c_parser_omp_variable_list.
727 (c_parser_omp_clause_schedule): Pass location to build_omp_clause.
728 (c_parser_omp_clause_untied): Same.
729 (c_parser_omp_for_loop): Pass location to c_process_expr_stmt.
730 (c_parser_omp_parallel): Pass location to
731 c_split_parallel_clauses.
732
733 * c-tree.h (check_for_loop_decls, undeclared_variable,
734 build_component_ref, build_array_ref, build_external_ref,
735 c_expr_sizeof_expr, c_expr_sizeof_type, parser_build_unary_op,
736 build_conditional_expr, build_compound_expr, c_cast_expr,
737 build_c_cast, build_asm_expr, c_end_compound_stmt, c_finish_stmt_expr,
738 c_finish_return, c_finish_omp_parallel, c_finish_omp_task): New
739 argument.
740 * c-semantics.c (build_stmt): Same.
741 (build_case_label): Same.
742 * c-decl.c (c_finish_incomplete_decl): Pass location on down.
743 (undeclared_variable): New argument.
744 (make_label): Same.
745 (lookup_label): Pass location on down.
746 (define_label): Same.
747 (finish_decl): Same.
748 (build_compound_literal): Same.
749 (finish_struct): Same.
750 (finish_function): Do not set location here.
751 (check_for_loop_decls): New argument.
752 * tree.c (save_expr): Set location.
753 (build_empty_stmt): New argument.
754 * tree.h (build_empty_stmt): New argument to build_empty_stmt.
755 (CAN_HAVE_LOCATION_P): Make sure we have a non empty node.
756 * builtins.c (gimplify_va_arg_expr): Use locations.
757 (expand_builtin_sync_operation): Same.
758 * c-typeck.c (build_component_ref): New argument.
759 (build_array_ref): Same.
760 (build_external_ref): Same.
761 (c_expr_sizeof_expr): Same.
762 (c_expr_sizeof_type): Same.
763 (parser_build_unary_op): Same.
764 (build_conditional_expr): Same.
765 (build_compound_expr): Pass location on down.
766 (build_compound_expr): New argument.
767 (build_c_cast): Same.
768 (c_cast_expr): Same.
769 (build_asm_expr): Same.
770 (c_finish_return): Same.
771 (c_process_expr_stmt): Pass location on down.
772 (c_finish_stmt_expr): New argument.
773 (push_clenaup): Same.
774 (c_finish_omp_parallel): Same.
775 (c_finish_omp_task): Same.
776 * gimplify.c (gimplify_call_expr): Pass location on down.
777 * c-omp.c (c_finish_omp_master): New argument.
778 (c_finish_omp_critical): Same.
779 (c_finish_omp_ordered): Same.
780 (c_finish_omp_barrier): Same.
781 (-c_finish_omp_taskwait): Same.
782 (c_finish_omp_atomic): Same.
783 (c_finish_omp_flush): Same.
784 * tree-inline.c (copy_tree_body_r): Pass location on down.
785 (inline_forbidden_p): Remove use of input_location.
786 * c-gimplify.c (c_build_bind_expr): New argument.
787 * c-common.c (c_common_truthvalue_conversion): Pass location on down.
788 (c_sizeof_or_alignof_type): New argument.
789 (c_alignof_expr): Same.
790 (build_va_arg): Same.
791 (c_add_case_label): Same.
792 * c-common.h (c_sizeof_or_alignof_type, c_alignof_expr,
793 c_sizeof, c_alignof, build_va_arg, build_stmt, build_case_label,
794 c_build_bind_expr, objc_build_selector_expr, objc_build_throw_stmt,
795 c_finish_omp_master, c_finish_omp_critical, c_finish_omp_ordered,
796 c_finish_omp_barrier, c_finish_omp_atomic, c_finish_omp_flush,
797 c_finish_omp_taskwait, c_finish_omp_for, c_split_parallel_clauses):
798 New argument.
799 * stub-objc.c (objc_build_selector_expr): Same.
800 (objc_build_throw_stmt): Same.
801 * c-parser.c (c_parser_declaration_or_fndef): Pass location on down.
802 (c_parser_initelt): Same.
803 (c_parser_compound_statement): Same.
804 (c_parser_compound_statement_nostart): Same.
805 (c_parser_label): Same.
806 (c_parser_statement_after_labels): Same.
807 (c_parser_if_body): Same.
808 (c_parser_else_body): Same.
809 (c_parser_if_statement): Same.
810 (c_parser_switch_statement): Same.
811 (c_parser_while_statement): Same.
812 (c_parser_do_statement): Same.
813 (c_parser_for_statement): Same.
814 (c_parser_asm_statement): Same.
815 (c_parser_conditional_expression): Same.
816 (c_parser_binary_expression): Same.
817 (c_parser_cast_expression): Same.
818 (c_parser_unary_expression): Same.
819 (c_parser_sizeof_expression): Same.
820 (c_parser_alignof_expression): Same.
821 (c_parser_postfix_expression): Same.
822 (c_parser_expression): Same.
823 (c_parser_objc_receiver): Same.
824 (c_parser_omp_variable_list): Same.
825 (c_parser_omp_structured_block): Same.
826 (c_parser_omp_atomic): New argument.
827 (c_parser_omp_barrier): Same.
828 (c_parser_omp_critical): Same.
829 (c_parser_omp_flush): Pass location on down.
830 (c_parser_omp_for_loop): New argument.
831 (c_parser_omp_for): Same.
832 (c_parser_omp_master): Same.
833 (c_parser_omp_ordered): Same.
834 (c_parser_omp_sections_scope): Same.
835 (c_parser_omp_sections): Same.
836 (c_parser_omp_parallel): Same.
837 (c_parser_omp_single): Same.
838 (c_parser_omp_task): Same.
839 (c_parser_omp_taskwait): Pass location on down.
840 (c_parser_omp_construct): Same.
841 (c_parser_omp_threadprivate): Same.
842 * dwarf2asm.c, targhooks.c, optabs.c, tree.c, tree.h, target.h,
843 builtins.c, omp-low.c, cgraphunit.c, tree-call-cdce.c,
844 tree-ssa-alias.c, gimple-low.c, c-tree.h, expr.c, tree-parloops.c,
845 c-decl.c, tree-eh.c, langhooks.c, function.c, stor-layout.c,
846 c-typeck.c, gimplify.c, c-pragma.c, expmed.c, except.c, coverage.c,
847 emit-rtl.c, cfgexpand.c, tree-mudflap.c, varasm.c, tree-nested.c,
848 rtl.h, tree-inline.c, tree-profile.c, c-common.c, c-common.h,
849 tree-switch-conversion.c, tree-cfg.c, ipa-struct-reorg.c, c-parser.c,
850 config/i386/i386.c, stmt.c:
851 Add location argument to the following function definitions and/or
852 function calls: build_decl, objcp_start_struct, objcp_finish_struct,
853 start_struct, finish_struct, PUSH_FIELD, create_artificial_label,
854 cp_make_fname_decl, pushtag, implicitly_declare, c_make_fname_decl,
855 build_compound_literal, parser_xref_tag, resolve_overloaded_builtin,
856 do_case, c_finish_bc_stmt, build_compound_literal,
857 build_function_call.
858 * c-decl.c (build_compound_literal): Add location argument.
859 Make all diagnostic calls use location.
860 (start_struct): Same.
861 (finish_struct): Same.
862 (start_enum): Same.
863 (build_enumerator): Same.
864 (start_function): Same.
865 (grokdeclarator): Make all diagnostic calls use location.
866 (store_parm_decls_oldstyle): Same.
867 * c-typeck.c (build_function_call): Add location argument.
868 Make all diagnostic calls use location.
869 (do_case): Same.
870 (c_finish_bc_stmt): Same.
871 * tree-nested.c (get_trampoline_type): Add argument.
872 Pass location to build_decl.
873 (lookup_tramp_for_decl): Pass location to get_trampoline_type.
874 * rtl.h (RTL_LOCATION): New.
875 * c-common.c (c_add_case_label): Add location argument.
876 Make all diagnostic calls use location.
877 * c-common.h: Add location argument to make_fname_decl, do_case,
878 c_add_case_label, build_function_call, resolve_overloaded_builtin.
879 * c-parser.c (c_parser_enum_specifier): Rename ident_loc to enum_loc.
880 Set it appropriately for every case. Pass enum_loc to start_enum
881 call. Pass value_loc first to build_enumerator. Pass enum_loc to
882 parser_xref_tag.
883 (c_parser_struct_or_union_specifier): Save location. Use it for
884 start_struct, finish_struct, and parser_xref_tag.
885
3d8b2a98
ILT
8862009-06-12 Ian Lance Taylor <iant@google.com>
887
888 * fold-const.c (fold_unary): Rename local variable and to
889 and_expr.
890
891 * c-opts.c (c_common_handle_option): For -Wc++-compat set
892 cpp_opts->warn_cxx_operator_names.
893
737142ce
AP
8942009-06-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
895
896 PR tree-opt/38865
897 * tree-ssa-sccvn.c (visit_reference_op_load): If vn_reference_lookup
898 is returns NULL and OP is a VCE, look through the VCE.
899
d3a0d55d
ILT
9002009-06-12 Ian Lance Taylor <iant@google.com>
901
902 PR bootstrap/40430
903 * collect2.c (main): Use CONST_CAST2 in code inside #if
904 LINK_ELIMINATE_DUPLICATE_LDIRECTORIES.
905
f85882d8
JY
9062009-06-12 Joey Ye <joey.ye@intel.com>
907
908 PR middle-end/39146
909 * cfgexpand.c (get_decl_align_unit): Update
910 max_used_stack_slot_alignment with align instead of
911 stack_alignment_needed.
912
913 * function.c (assign_stack_local_1): Update
914 max_used_stack_slot_alignment with alignment_in_bits instead
915 of stack_alignment_needed.
916 (locate_and_pad_parm): Don't update max_used_stack_slot_alignment
917 here.
918
fc9f468b
JJ
9192009-06-12 Jakub Jelinek <jakub@redhat.com>
920
921 * dwarf2out.c (last_var_location_insn): New variable.
922 (dwarf2out_end_epilogue): Clear last_var_location_insn.
923 (dwarf2out_var_location): Don't record anything after last real
924 insn. Only change labels if there were any real instructions
925 in between last note and this one, or if changed sections.
926
7c1db202
RH
9272009-06-11 Richard Henderson <rth@redhat.com>
928
f85882d8 929 * alpha.c (alpha_expand_prologue): Add a REF_CFA_REGISTER
15cb981a
RH
930 note when storing the frame pointer in a register.
931 (FRP): Don't redefine to nothing for epilogue.
932 (alpha_expand_epilogue): Mark register and sp restores.
933 (unicosmk_gen_dsib): Don't mark weird frame pointer adjust.
934
7c1db202
RH
935 * config/alpha/alpha.c (alpha_emit_setcc): Fix test for
936 when gen_lowpart is needed.
937
f2ae7631
RH
9382009-06-11 Richard Henderson <rth@redhat.com>
939
42755c21
RH
940 * dwarf2out.c (def_cfa_1): Likewise for DW_CFA_cfa_offset.
941
f2ae7631
RH
942 * dwarf2out.c (need_data_align_sf_opcode): New.
943 (div_data_align): Move earlier.
944 (def_cfa_1, reg_save): Use it.
945
8ed0ce99
L
9462009-06-11 H.J. Lu <hongjiu.lu@intel.com>
947
948 * config/i386/i386.c (OPTION_MASK_ISA_CRC32_SET): New.
949 (OPTION_MASK_ISA_CRC32_UNSET): Likewise.
950 (ix86_handle_option): Handle OPT_mcrc32.
951 (ix86_target_string): Add -mcrc32.
952 (bdesc_args): Enable crc32 builtins with OPTION_MASK_ISA_CRC32.
953
954 * config/i386/i386.h (TARGET_CRC32): New.
955
956 * config/i386/i386.md (sse4_2_crc32<mode>): Also check
957 TARGET_CRC32.
958 (sse4_2_crc32di): Likewise.
959
960 * config/i386/i386.opt (mcrc32: New.
961
962 * doc/invoke.texi: Document -mcrc32.
963
9fd68a1f
RH
9642009-06-11 Richard Henderson <rth@redhat.com>
965
8ed0ce99 966 * common.opt (gdwarf-): Accept a version number.
9fd68a1f
RH
967 * doc/invoke.texi (gdwarf-): Update docs.
968 * opth-gen.awk: Special case -gdwarf+ to OPT_gdwarfplus.
969 * opts.c (common_handle_option) [OPT_gdwarf_]: Verify dwarf
970 version level, and record it.
971
972 * dwarf2.h (DW_CIE_VERSION): Remove.
973 * dwarf2out.c (DWARF_VERSION): Remove.
974 (add_fde_cfi): Skip DW_CFA_set_loc addition for dwarf3.
975 (output_call_frame_info): Use CIE version 3 for dwarf3,
976 or if the return register column is out of range for version 1.
977 (dwarf_stack_op_name): Add all dwarf3 values.
978 (DEBUG_PUBTYPES_SECTION): New.
979 (size_of_die) [dw_val_class_die_ref]: Handle DW_FORM_ref_addr
980 encoding change for dwarf3.
981 (output_die) [dw_val_class_die_ref]: Likewise.
982 (output_compilation_unit_header): Emit correct version for dwarf3.
983 (output_line_info): Likewise.
984 (output_pubnames): Update for DWARF_VERSION removal.
985 (output_aranges): Likewise.
986 (gen_subprogram_die): Emit DW_OP_call_frame_cfa if emitting dwarf3.
987 (dwarf2out_init): Don't ifdef DEBUG_PUBTYPES_SECTION.
988 (dwarf2out_finish): Likewise.
989
4de8ce3b
DD
9902009-06-11 David Daney <ddaney@caviumnetworks.com>
991
992 * system.h (gcc_assert, gcc_unreachable): Revert accidental commit
993 in r148403.
994
468059bc
DD
9952009-06-11 David Daney <ddaney@caviumnetworks.com>
996
997 PR c/39252
998 * doc/extend.texi ( __builtin_unreachable): Document new builtin.
999 * builtins.c (expand_builtin_unreachable): New function.
1000 (expand_builtin): Handle BUILT_IN_UNREACHABLE case.
1001 * builtins.def (BUILT_IN_UNREACHABLE): Add new builtin.
1002 * cfgcleanup.c (try_optimize_cfg): Delete empty blocks with no
1003 successors.
1004 * cfgrtl.c (rtl_verify_flow_info): Handle empty blocks when
1005 searching for missing barriers.
1006
b5a6e96f
FXC
10072009-06-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1008
1009 * config/darwin.h (LINK_COMMAND_SPEC): Adjust spec to link libcov
1010 when -fprofile-generate* was passed.
1011 * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
1012
6be6462e
AG
10132009-06-11 Anthony Green <green@moxielogic.com>
1014
1015 * config/moxie/moxie.md: Define length attribute for all
1016 instructions.
1017 (rCC): Define.
1018 (*b<cond:code>): Support limited branch ranges for new PC-relative
1019 branch instructions.
1020 * config/moxie/moxie.h (HAS_LONG_UNCOND_BRANCH): Define.
1021
caaabe0a
JJ
10222009-06-11 Jakub Jelinek <jakub@redhat.com>
1023
e5219642
JJ
1024 * config/i386/i386.c (min_insn_size): Use get_attr_length
1025 for normal insns other than TYPE_MULTI, TYPE_OTHER and TYPE_FCMP.
1026 For __asm return 0.
1027
caaabe0a
JJ
1028 * config/i386/i386.c (ix86_pad_returns): Use emit_jump_insn_before
1029 instead of emit_insn_before.
1030
a567fa6a
ILT
10312009-06-10 Ian Lance Taylor <iant@google.com>
1032
1033 PR bootstrap/40408
1034 * graphite.c (add_conditions_to_domain): Change SWITCH_EXPR to
1035 GIMPLE_SWITCH.
1036
6a753d5f
RE
10372009-06-10 Revital Eres <eres@il.ibm.com>
1038
1039 * passes.c (init_optimization_passes): Reschedule
1040 predictive-commoning pass before complete unroll pass.
1041
a550d677
MJ
10422009-06-10 Martin Jambor <mjambor@suse.cz>
1043
1044 * cgraph.c (cgraph_node_can_be_local_p): New function.
1045 (cgraph_make_node_local): New function.
1046 * cgraph.h (cgraph_node_can_be_local_p): Declare.
1047 (cgraph_make_node_local): Declare.
1048
d8259b07
NF
10492009-06-10 Nathan Froyd <froydnj@codesourcery.com>
1050
1051 * tree.h (tree_base): Add packed_flag and user_align fields.
1052 Decrease size of spare field.
1053 (TYPE_USER_ALIGN): Use user_align from tree_base.
1054 (DECL_USER_ALIGN): Likewise.
1055 (TYPE_PACKED): Use packed_flag from tree_base.
1056 (DECL_PACKED): Likewise.
1057 (tree_type): Delete packed_flag and user_align fields. Widen
1058 precision field. Widen mode field and shuffle fields to align
1059 mode on an 8-bit boundary.
1060 (tree_decl_common): Delete decl_flag_1 and user_align fields.
1061 Renumber decl_flag_* fields. Fix comments. Widen
1062 decl_common_unused field.
1063 (DECL_HAS_VALUE_EXPR_P): Adjust for renumbering of decl_flag_*
1064 fields.
1065 (DECL_EXTERNAL): Likewise.
1066 (DECL_BIT_FIELD): Likewise.
1067 (DECL_NONADDRESSABLE_P): Likewise.
1068 (TYPE_DECL_SUPRESS_DEBUG): Likewise.
1069 * config/arm/arm-modes.def (XImode): Make it an INT_MODE.
1070
c2569604
ILT
10712009-06-10 Ian Lance Taylor <iant@google.com>
1072
1073 * vec.h (DEF_VEC_ALLOC_I): Use DEF_VEC_NONALLOC_FUNCS_I.
1074 (DEF_VEC_ALLOC_P): Use DEF_VEC_NONALLOC_FUNCS_P.
1075 (DEF_VEC_ALLOC_O): Use DEF_VEC_NONALLOC_FUNCS_O.
1076 (DEF_VEC_ALLOC_FUNC_P): Only define VEC_OP (T,A,alloc).
1077 (DEF_VEC_NONALLOC_FUNCS_P): New macro, broken out of old
1078 DEF_VEC_ALLOC_FUNC_P.
1079 (DEF_VEC_ALLOC_FUNC_O): Only define VEC_OP (T,A,alloc).
1080 (DEF_VEC_NONALLOC_FUNCS_O): New macro, broken out of old
1081 DEF_VEC_ALLOC_FUNC_O.
1082 (DEF_VEC_ALLOC_FUNC_I): Only define VEC_OP (T,A,alloc).
1083 (DEF_VEC_NONALLOC_FUNCS_I): New macro, broken out of old
1084 DEF_VEC_ALLOC_FUNC_I.
1085 (vec_stack_p_reserve, vec_stack_p_reserve_exact): Declare.
1086 (vec_stack_p_reserve_exact_1): Declare.
1087 (vec_stack_o_reserve, vec_stack_o_reserve_exact): Declare.
1088 (vec_stack_free): Declare.
1089 (VEC_stack_alloc): Define.
1090 (DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_FUNC_P_STACK): Define.
1091 (DEF_VEC_ALLOC_O_STACK, DEF_VEC_ALLOC_FUNC_O_STACK): Define.
1092 (DEF_VEC_ALLOC_I_STACK, DEF_VEC_ALLOC_FUNC_I_STACK): Define.
1093 * vec.c (void_p): New type. Call DEF_VEC_P and DEF_VEC_ALLOC_P
1094 for void_p.
1095 (stack_vecs): New static variable.
1096 (vec_stack_p_reserve_exact_1): New function.
1097 (vec_stack_o_reserve_1): New static function.
1098 (vec_stack_p_reserve, vec_stack_p_reserve_exact): New functions.
1099 (vec_stack_o_reserve, vec_stack_o_reserve_exact): New functions.
1100 (vec_stack_free): New function.
1101 * df-scan.c (df_ref): Use DEF_VEC_P and DEF_VEC_ALLOC_P_STACK.
1102 (VEC_df_ref_stack_alloc): Define.
1103 (df_mw_hardreg_ptr): New type. Use DEF_VEC_P and
1104 DEF_VEC_ALLOC_P_STACK.
1105 (VEC_df_mw_hardreg_ptr_stack_alloc): Define.
1106 (struct df_collection_rec): Change _vec fields to VEC. Remove
1107 _use fields.
1108 (df_free_collection_rec): Adjust for new fields.
1109 (df_insn_rescan): Use new df_collection_rec fields.
1110 (df_notes_rescan, df_canonize_collection_rec): Likewise.
1111 (df_ref_create_structure, df_ref_record): Likewise.
1112 (df_get_conditional_uses, df_get_call_refs): Likewise.
1113 (df_insn_refs_collect, df_bb_refs_collect): Likewise.
1114 (df_bb_refs_record, df_record_entry_block_defs): Likewise.
1115 (df_record_exit_block_uses, df_bb_verify): Likewise.
1116 (df_swap_refs): Change ref_vec parameter to VEC. Change all
1117 callers.
1118 (df_sort_and_compress_refs): Change ref_vec parameter to VEC.
1119 Remove count parameter. Change return type to void. Change all
1120 callers.
1121 (df_sort_and_compress_mws): Change mw_vec parameter to VEC.
1122 Remove count parameter. Change return type to void. Change all
1123 callers.
1124 (df_install_refs): Change old_vec parameter to VEC. Remove count
1125 parameter. Change all callers.
1126 (df_install_mws): Change old_vec parameter to VEC. Remove count
1127 parameter. Change all callers.
1128 (df_refs_verify): Change new_rec parameter to VEC. Change call
1129 callers.
1130 (df_mws_verify): Likewise.
1131
e7aae3e8
AO
11322009-06-10 Alexandre Oliva <aoliva@redhat.com>
1133
1134 * gcc.c (compare_files): Cast munmap argumento to caddr_t.
1135
412ac8d5
L
11362009-06-10 H.J. Lu <hongjiu.lu@intel.com>
1137
1138 * doc/extend.texi: Add description for __builtin_ia32_crc32di.
1139
cceb575c
AG
11402009-06-10 Anthony Green <green@moxielogic.com>
1141
1142 * config/moxie/crti.asm: New file.
1143 * config/moxie/crtn.asm: New file.
1144 * config/moxie/moxie.c: New file.
1145 * config/moxie/moxie.h: New file.
1146 * config/moxie/sfp-machine.h: New file.
1147 * config/moxie/moxie-protos.h: New file.
1148 * config/moxie/t-moxie: Created.
1149 * config/moxie/t-moxie-softfp: Created.
1150 * config/moxie/moxie.md: Created.
1151 * config/moxie/constraints.md: Created.
1152 * config.gcc: Add moxie support.
1153 * doc/md.texi (Machine Constraints): Add moxie constraints.
1154 * doc/contrib.texi (Contributors): Mention moxie port.
1155 * doc/install.texi (Specific): Mention the moxie port.
1156
bf406687
ILT
11572009-06-09 Ian Lance Taylor <iant@google.com>
1158
1159 * system.h (HAVE_DESIGNATED_INITIALIZERS): Don't define if
1160 compiling with C++.
1161 * optabs.c (optab_table): Only use designated initializers if
1162 HAVE_DESIGNATED_INITIALIZERS is defined.
1163 (convert_optab_table): Likewise.
1164 (init_optabs): Always call init_insn_codes if
1165 HAVE_DESIGNATED_INITIALIZERS is not defined.
1166
744aa42f
ILT
11672009-06-09 Ian Lance Taylor <iant@google.com>
1168
1169 * targhooks.c (default_builtin_vectorized_function): Change fn
1170 parameter to unsigned int.
1171 (default_builtin_vectorized_conversion): Change code parameter to
1172 unsigned int.
1173 (default_builtin_reciprocal): Change fn parameter to unsigned int.
1174 * targhooks.h: Update declarations.
1175 * config/rs6000/rs6000.c (rs6000_builtin_conversion): Change code
1176 parameter to unsigned int.
1177
1178 * c-typeck.c (comptypes_check_enum_int): New static function.
1179 (comptypes_internal): Add enum_and_int_p parameter. Change all
1180 callers.
1181 (comp_target_types): Add location parameter. Change all callers.
1182 (tagged_types_tu_compatible_p): Add enum_and_int_p parameter.
1183 Change all callers.
1184 (function_types_compatible_p, type_lists_compatible_p): Likewise.
1185 (build_conditional_expr): Add colon_loc parameter. Change all
1186 callers.
1187 (convert_for_assignment): Add location parameter. Change all
1188 callers.
1189 * c-parser.c (c_parser_conditional_expression): Pass location of
1190 colon to build_conditional_expr.
1191 * c-tree.h (build_conditional_expr): Update declaration.
1192
bcbe3b25
SP
11932009-06-09 Sebastian Pop <sebastian.pop@amd.com>
1194
1195 * graphite.c: Revert previous patch.
1196
dc2a6925
SP
11972009-06-09 Sebastian Pop <sebastian.pop@amd.com>
1198
1199 PR bootstrap/40103
1200 * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
1201
d81f5387
GS
12022009-06-09 Ghassan Shobaki <ghassan.shobaki@amd.com>
1203
8ed0ce99
L
1204 * tree-ssa-loop-prefetch.c
1205 (loop_prefetch_arrays): Fixed a portability problem in printf format
1206 string.
d81f5387 1207
8056eb4f
MJ
12082009-06-09 Martin Jambor <mjambor@suse.cz>
1209
1210 PR tree-optimization/40351
1211 * tree-sra.c (propagate_subacesses_accross_link): Check that a refrence
1212 to a potential artifical subaccess can be constructed.
1213
bd9a3465
KK
12142009-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
1215
1216 * config/sh/sh-protos.h (sh_optimization_options): Declare.
1217 (sh_override_options): Likewise.
1218 * config/sh/sh.c: Include params.h.
1219 (sh_optimization_options): New.
1220 (sh_override_options): Likewise.
1221 * config/sh/sh.c (OPTIMIZATION_OPTIONS): Use sh_optimization_options.
1222 (OVERRIDE_OPTIONS): Use sh_override_options.
1223
8845deab
JJ
12242009-06-08 Jakub Jelinek <jakub@redhat.com>
1225
1226 * dwarf2out.c (emit_cfa_remember): New variable.
1227 (add_fde_cfi): If emit_cfa_remember, recurse to add
1228 DW_CFA_remember_state first.
1229 (dwarf2out_begin_epilogue): Don't add_fde_cfi DW_CFA_remember_state,
1230 instead just set emit_cfa_remember.
1231
9ea81b0c
JH
12322009-06-08 Jan Hubicka <jh@suse.cz>
1233
1234 PR debug/40126
1235 * dwarf2out.c (dwarf2out_abstract_function): Free decl_loc_table.
1236
21ecdec5
JH
12372009-06-08 Jan Hubicka <jh@suse.cz>
1238
1239 PR middle-end/39834
1240 * cgraphunit.c (save_inline_function_body): Do not copy transform hooks
1241 for saved inline bodies.
1242 * ipa-passes.c (do_per_function): Do not add the hoks multiple times
1243 for given function.
1244
72e48218
AN
12452009-06-08 Adam Nemet <anemet@caviumnetworks.com>
1246
1247 * jump.c (returnjump_p): Handle delayed branches. Add missing
1248 function comment.
1249
6ce2002b
JH
12502009-06-08 Jan Hubicka <jh@suse.cz>
1251
1252 PR middle-end/40102
1253 * cgraph.c (cgraph_create_edge_including_clones): Also asume that the
1254 original node might've been modified.
1255 * tree-inline.c (copy_bb): Do not assume that all clones are the same.
1256
eb9ed98a
JJ
12572009-06-08 Jakub Jelinek <jakub@redhat.com>
1258
1259 * tree-object-size.c (addr_object_size): Add OSI argument.
1260 Handle also INDIRECT_REF with SSA_NAME inside of it as base address.
1261 (compute_builtin_object_size, expr_object_size): Adjust callers.
1262 (plus_stmt_object_size): Call addr_object_size instead of
1263 compute_builtin_object_size.
1264
db34470d 12652009-06-08 Ghassan Shobaki <ghassan.shobaki@amd.com>
8ed0ce99 1266 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
db34470d
GS
1267
1268 * tree-ssa-loop-prefetch.c
1269 (gather_memory_references): Introduced a counter for the number of
1270 memory references.
1271 (anything_to_prefetch_p): Introduced a counter for the number of
1272 prefetches.
1273 (is_loop_prefetching_profitable): New function with a cost model
1274 for prefetching.
1275 (loop_prefetch_arrays): Use the new cost model to determine if
1276 prefetching is profitable.
1277 * params.def (MIN_INSN_TO_PREFETCH_RATIO,
1278 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
1279 * params.h (MIN_INSN_TO_PREFETCH_RATIO,
1280 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
1281 * doc/invoke.texi (MIN_INSN_TO_PREFETCH_RATIO,
1282 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
1283
eb7adebc
MM
12842009-06-08 Michael Matz <matz@suse.de>
1285
1286 PR debug/40012
eb7adebc
MM
1287 * cfgexpand.c (set_rtl): Store place also in DECL_RTL, if all
1288 partitions use the same.
1289 (expand_one_var): Deal with DECL_RTL sometimes begin set also
1290 for basevars of SSA_NAMEs.
1291 (expand_used_vars): Reset TREE_USED for basevars of SSA_NAMEs,
1292 to not expand them twice.
1293 (gimple_expand_cfg): Clear DECL_RTL for those decls that have
1294 multiple places.
1295
2153915d
AO
12962009-06-08 Alexandre Oliva <aoliva@redhat.com>
1297
1298 * common.opt (fcompare-debug=, fcompare-debug-second): New.
1299 (fdump-final-insns=, gtoggle): New.
1300 * doc/invoke.texi: Document them.
1301 * final.c (rest_of_clean_state): Dump final insn stream.
1302 * gcc.c (invoke_as): Hook in -fcompare-debug.
1303 (static_spec_functions): Add compare-debug-dump-opt,
1304 compare-debug-self-opt and compare-debug-auxbase-opt.
1305 (compare_debug, compare_debug_second, compare_debug_opt): New.
1306 (switches_debug_check, n_switches_debug_check): New.
1307 (debug_auxbase_opt, debug_check_temp_file): New.
1308 (process_command): Handle -fno-compare-debug, -fcompare-debug and
1309 -fcompare-debug=*.
1310 (do_self_spec): Handle arguments after switches.
1311 (do_spec_1): Add .gk extension to temp file basenames for compare.
1312 (check_live_switch): Take SWITCH_IGNORE into account, and earlier.
1313 (cc1_options): Use it instead of normal auxbase computation for
1314 the second compare-debug compilation.
1315 (compare_files): New.
1316 (main): Set up and implement compare debug mode.
1317 (compare_debug_dump_opt_spec_function): New.
1318 (compare_debug_self_opt_spec_function): New.
1319 (compare_debug_auxbase_opt_spec_function): New.
1320 * toplev.c (process_options): Handle flag_gtoggle,
1321 flag_dump_final_insns.
1322 * coverage.c (coverage_begin_output): Don't overwrite .gcno file
1323 during -fcompare-debug-second compilation.
1324
cdb88468
ILT
13252009-06-07 Ian Lance Taylor <iant@google.com>
1326
1327 * dwarf2.h (enum dwarf_location_atom): Add
1328 INTERNAL_DW_OP_tls_addr.
1329 * dwarf2out.c (INTERNAL_DW_OP_tls_addr): Don't #define.
1330
1331 * c-common.c (c_do_switch_warnings): Don't exit early for -Wswitch
1332 with no default node. Change warning with %H to warning_at.
1333 Don't clear warn_switch around case checking.
1334 * doc/invoke.texi (Warning Options): Clarify distinction between
1335 -Wswitch and -Wswitch-enum.
1336
4fe8e1a2
BRF
13372009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1338
1339 * tree-pass.h (TODO_update_ssa_any): Document internal use only.
1340
69952c1d
BRF
13412009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1342
1343 * gbl-ctors.h: Add header guard.
1344
b2ad0284
BRF
13452009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1346
1347 * tree-flow.h (make_value_handle, set_value_handle, sort_vuses,
1348 sort_vuses_heap, vn_lookup_or_add, vn_lookup_or_add_with_stmt,
1349 vn_lookup_or_add_with_vuses, vn_add, vn_add_with_vuses,
1350 vn_lookup_with_stmt, vn_lookup, vn_lookup_with_vuses): Remove
1351 prototypes for removed functions.
1352 (expressions_equal_p): Move to ...
1353 * tree-ssa-sccvn.h: ... here and ...
1354 * matrix-reorg.c: ... adjust includes.
1355
c3df55f9
BRF
13562009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1357
1358 * ipa-struct-reorg.c (do_reorg_1): Fix whitespace in dump output.
1359
b5a7159f
BRF
13602009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1361
1362 * c-decl.c (finish_decl): Use bool for variable was_incomplete.
1363 (finish_function): Remove erroneous whitespace.
1364
95bca6b0
BRF
13652009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1366
2cd713a0
BRF
1367 * tree-cfg.c (gimple_merge_blocks): Commentary typo fix.
1368 (verify_stmts): Print statement who's gimple_bb is set to a wrong BB
249eb506
BRF
1369
13702009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1371
1372 * errors.c (internal_error): Commentary typo fix.
1373 * gimple-iterator.c (gsi_insert_seq_on_edge): Ditto.
1374 * tree-ssa-pre.c: Ditto.
95bca6b0 1375
2cd713a0
BRF
13762009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1377
1378 * basic-block.h (ENTRY_BLOCK, EXIT_BLOCK): Document that neither of
1379 them is supposed to hold actual statements.
1380
5bca4e80
ILT
13812009-06-06 Ian Lance Taylor <iant@google.com>
1382
1383 * doc/extend.texi (Attribute Syntax): Document that C++ labels on
1384 empty statements can now have attributes.
1385
47ac44d6
SZ
13862009-06-05 Shujing Zhao <pearly.zhao@oracle.com>
1387
1388 * config/mips/mips.c: Use REG_P and CONST_INT_P where applicable.
1389 * config/mips/mips.md: Ditto.
1390
19b905ce
NF
13912009-06-05 Nathan Froyd <froydnj@codesourcery.com>
1392
1393 * config/rs6000/eabi.asm (__eabi_convert): Don't define if
1394 _RELOCATABLE.
1395 (__eabi_uconvert): Likewise.
1396
16702e19
NF
13972009-06-05 Nathan Froyd <froydnj@codesourcery.com>
1398
1399 * config/rs6000/ppc-asm.h: Protect auto-host.h inclusion and
1400 CFI_* definitions with IN_GCC.
1401
a735afd1
DE
14022009-06-05 David Edelsohn <edelsohn@gnu.org>
1403
1404 * xcoffout.h (xcoffout_source_line): Update prototype.
1405
26a347c5
KG
14062009-06-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1407
1408 * builtins.c (do_mpc_ckconv, do_mpc_arg1): Use
1409 mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM.
1410
9f706f23
JJ
14112009-06-05 Jakub Jelinek <jakub@redhat.com>
1412
1413 PR middle-end/40340
1414 * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
1415 inlined_function_outer_scope_p blocks for artificial inlines
1416 even at -g0/-g1.
1417 * tree.c (tree_nonartificial_location): Rewrite using
1418 block_nonartificial_location.
1419
8f439681
RE
14202009-06-05 Revital Eres <eres@il.ibm.com>
1421 Leehod Baruch <leehod@il.ibm.com>
1422
1423 * expr.c (expand_assignment): Expand MISALIGNED_INDIRECT_REF.
1424 (expand_expr_real_1): Remove comment.
1425 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
1426 Vectorize misaligned access when the target supports it.
1427 (vect_supportable_dr_alignment): Check for unaligned access
1428 support.
1429 * tree-vect-stmts.c (vectorizable_store): Generate misaligned store
1430 and remove asset.
1431
b89f8e3c
JB
14322009-06-05 Julian Brown <julian@codesourcery.com>
1433
1434 * config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP.
1435 * config/arm/ieee754-sf.S (cmpsf2): Likewise.
1436
47d1f191
RG
14372009-06-05 Richard Guenther <rguenther@suse.de>
1438
1439 PR bootstrap/40350
1440 * dwarf2out.c (dwarf2out_begin_function): Mark discriminator
1441 as possibly unused.
1442
9f706f23 14432009-06-05 Jakub Jelinek <jakub@redhat.com>
75707b28
JJ
1444
1445 * config/s390/s390.c (global_not_special_regno_p): New static inline.
1446 (save_gprs): Don't tell unwinder when a global register is saved.
1447 (s390_emit_epilogue): Emit needed epilogue unwind info.
1448
90f06248
AO
14492009-06-05 Alexandre Oliva <aoliva@redhat.com>
1450
1451 * dwarf2out.c (deferred_asm_name): New.
1452 (add_name_and_src_coords_attributes): Defer creation of
1453 DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not
1454 computed yet.
1455 (move_linkage_attr): New.
1456 (dwarf2out_finish): Revisit deferrals and emit attributes at the
1457 right place.
1458
c10348e5
AO
14592009-06-05 Alexandre Oliva <aoliva@redhat.com>
1460
1461 * tree-nested.c (finalize_nesting_tree_1): Declare the
1462 frame_decl in the binding tree.
1463
6c52e687
CC
14642009-06-04 Cary Coutant <ccoutant@google.com>
1465
1466 * basic-block.h (struct basic_block_def): Add discriminator field.
1467 * dbxout.c (dbxout_source_line): Add new parameter. Change all
1468 callers.
1469 * debug.c (do_nothing_debug_hooks): Add additional entry.
1470 (debug_nothing_int_charstar_int): New function.
1471 * debug.h (struct gcc_debug_hooks): Add parameter to source_line
1472 hook.
1473 (debug_nothing_int_charstar_int): New declaration.
1474 * dwarf2out.c (dwarf2out_source_line): Add new parameter. Write
1475 discriminator value in .loc directive.
1476 * final.c (last_discriminator): New variable.
1477 (discriminator): New variable.
1478 (final_start_function): Initialize above variables, pass current
1479 discriminator to debug hook.
1480 (notice_source_line): Check for discriminator change.
1481 * gimple-pretty-print.c (dump_bb_header): Print discriminator value.
1482 * sdbout.c (sdbout_source_line): New parameter.
1483 * tree-cfg.c (struct locus_discrim_map): New structure type.
1484 (discriminator_per_locus): New hash table.
1485 (build_gimple_cfg): Allocate and free discriminator hash table.
1486 (make_edges): Call assign_discriminator.
1487 (locus_map_hash): New function.
1488 (locus_map_eq): New function.
1489 (next_discriminator_for_locus): New function.
1490 (same_line_p): New function.
1491 (assign_discriminator): New function.
1492 (make_cond_expr_edges): Call assign_discriminator.
1493 (make_gimple_switch_edges): Likewise.
1494 (first_non_label_stmt): New function.
1495 * vmsdbgout.c (vmsdbgout_source_line): Add new parameter. Change
1496 all callers.
1497 * xcoffout.c (xcoffout_source_line): Add new parameter.
1498
1499 * configure.ac (gcc_cv_as_discriminator): New configury check for
1500 gas support for discriminator.
1501 * configure: Regenerate.
1502 * config.in: Regenerate.
1503
e07e020b
RR
15042009-06-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1505
1506 * config/arm/arm.c (thumb2_legitimate_index_p): Initialize
1507 val after checking for integers.
1508
72fa3605
UB
15092009-06-04 Uros Bizjak <ubizjak@gmail.com>
1510
1511 * config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from
1512 X64_REGPARM_MAX.
1513 (REGPARM_MAX): Use X86_64_MS_REGPARM_MAX.
1514 (X86_64_MS_SSE_REGPARM_MAX): Rename from X64_SSE_REGPARM_MAX.
1515 (SSE_REGPARM_MAX): Use X86_64_MS_SSE_REGPARM_MAX.
1516 * config/i386/i386.c: Use X86_64_MS_REGPARM_MAX instead of
1517 X64_REGPARM_MAX. Use X86_64_MS_SSE_REGPARM_MAX instead of
1518 X64_SSE_REGPARM_MAX.
1519 * config/i386/i386.md: Use X86_64_MS_SSE_REGPARM_MAX instead of
1520 X64_SSE_REGPARM_MAX.
1521
bdde878c
AO
15222009-06-04 Alexandre Oliva <aoliva@redhat.com>
1523
1524 * gcc.c (report_times_to_file): New.
1525 (execute): Implement it.
1526 (process_command): Support -time=.
1527 * doc/invoke.texi: Document it.
1528
2ce59df7
AO
15292009-06-04 Alexandre Oliva <aoliva@redhat.com>
1530
1531 * tree-ssa-live.c (remove_unused_scope_block_p): Keep variables
1532 that have value exprs.
1533
78bd9046
AO
15342009-06-04 Alexandre Oliva <aoliva@redhat.com>
1535
1536 * dwarf2asm.c (dw2_force_const_mem): Defer creation of
1537 declarations for constants until...
1538 (dw2_output_indirect_constant_1): ... this point.
1539
e63d4106
RE
15402009-06-04 Richard Earnshaw <rearnsha@arm.com>
1541
1542 PR target/10242
1543 * arm.md (arm_addsi3): Don't try to split an add with an
1544 eliminable register until after reload has completed.
1545
6bc7bc14
ILT
15462009-06-03 Ian Lance Taylor <iant@google.com>
1547
1548 * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST.
1549 * genattrtab.c (write_length_unit_log): Likewise.
1550 * genchecksum.c (dosum): Likewise.
1551 * gengtype.c (write_rtx_next): Likewise.
1552 (finish_root_table, write_roots): Likewise.
1553 * gimple.c (gimple_ops_offset_): Likewise.
1554 * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise.
1555 * config/arc/arc.c (arc_attribute_table): Likewise.
1556 * config/arm/arm.c (arm_attribute_table): Likewise.
1557 * config/avr/avr.c (avr_attribute_table): Likewise.
1558 * config/crx/crx.c (crx_attribute_table): Likewise.
1559 * config/m32r/m32r.c (m32r_attribute_table): Likewise.
1560 * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise.
1561 * config/mcore/mcore.c (mcore_attribute_table): Likewise.
1562 * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
1563 * config/sh/sh.c (sh_attribute_table): Likewise.
1564 * config/sparc/sparc.c (sparc_attribute_table): Likewise.
1565 * config/spu/spu.c (spu_attribute_table): Likewise.
1566 * config/v850/v850.c (v850_attribute_table): Likewise.
1567
1568 * config/alpha/alpha.c (vms_attribute_table): Make static.
1569 * config/bfin/bfin.c (bfin_attribute_table): Likewise.
1570 * config/h8300/h8300.c (h8300_attribute_table): Likewise.
1571 * config/mips/mips.c (mips_attribute_table): Likewise.
1572
1573 * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and
1574 $(SYSTEM_H).
1575 (cc1-checksum.o): Likewise.
1576
19d892fd
SE
15772009-06-03 Steve Ellcey <sje@cup.hp.com>
1578
1579 * config/ia64/vect.md (*movv2sf_internal): Handle big endian case.
1580
679f3354
JJ
15812009-06-03 Jakub Jelinek <jakub@redhat.com>
1582
ff35822b
JJ
1583 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated
1584 insn if it is changing sp. Use gen_add3_insn instead of
1585 conditionally gen_addsi3 and gen_adddi3.
1586 (offset_below_red_zone_p): New static inline function.
1587 (rs6000_emit_epilogue): Emit needed epilogue unwind info.
1588 Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3.
1589 * config/rs6000/ppc-asm.h: Include auto-host.h.
1590 (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET,
1591 CFI_RESTORE): Define.
1592 * config/rs6000/crtresxgpr.asm: Add unwind info.
1593 * config/rs6000/crtresxfpr.asm: Likewise.
1594 * config/rs6000/crtresgpr.asm: Likewise.
1595 * config/rs6000/crtresfpr.asm: Likewise.
1596 * config/rs6000/crtsavgpr.asm: Likewise.
1597 * config/rs6000/crtsavfpr.asm: Likewise.
1598
679f3354
JJ
1599 * dwarf2out.c (output_cfi_directive): Pass 1 instead of
1600 0 to second argument of DWARF2_FRAME_REG_OUT macros.
1601
2e94c12d
JB
16022009-06-03 Julian Brown <julian@codesourcery.com>
1603
1604 * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four
1605 words or less (including TImode) in core registers.
1606
3111cce0
RG
16072009-06-03 Richard Guenther <rguenther@suse.de>
1608
1609 PR middle-end/40328
1610 * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.
1611
5e1b50f6
AB
16122009-06-03 Andrey Belevantsev <abel@ispras.ru>
1613
1614 * statistics.c (statistics_counter_event): Do not record event
1615 in pass dump if its number == -1.
1616 (curr_statistics_hash): Add assert that we never get passes
1617 with static number == -1.
1618
6f11d690
RG
16192009-06-03 Richard Guenther <rguenther@suse.de>
1620 Andrey Belevantsev <abel@ispras.ru>
1621
1622 * cfgexpand.c (discover_nonconstant_array_refs_r): Make only
1623 non-BLKmode arrays addressable.
1624
88961471
MK
16252009-06-03 Maxim Kuvyrkov <maxim@codesourcery.com>
1626
1627 * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
1628 * config/m68k/m68k.h: ... here.
1629 * testsuite/gcc.dg/falign-labels.c (dg-options): Don't restrict for
1630 m68k and fido.
1631
9961eb45
MJ
16322009-06-03 Martin Jambor <mjambor@suse.cz>
1633
1634 PR tree-optimization/40323
1635 * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single
1636 assignment.
1637
2f2c62a0
RG
16382009-06-03 Richard Guenther <rguenther@suse.de>
1639
1640 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
1641 consistently.
1642
d6ced3b7
SZ
16432009-06-03 Shujing Zhao <pearly.zhao@oracle.com>
1644
1645 * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
1646 JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
1647 JUMP_TABLE_DATA_P where applicable.
1648 * config/sh/sh.c: Ditto.
1649 * config/sh/sh.h: Ditto.
1650 * config/sh/sh.md: Ditto.
1651 * config/sh/symbian.c: Ditto.
1652
f3afc8a7
UB
16532009-06-03 Uros Bizjak <ubizjak@gmail.com>
1654
1655 * config/i386/driver-i386.c (describe_cache): Optimize
1656 concatenation of strings. Use snprintf instead of sprintf.
1657 (host_detect_local_cpu): Ditto. Ignore -march and -mtune for native
1658 target when not compiling with GCC.
1659
1964788a
KK
16602009-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
1661
1662 * config/sh/sh.c: Revert last change.
1663 (sh_expand_epilogue): Emit a blockage insn before the frame
1664 pointer adjustment unconditionally.
1665
8633c315
RS
16662009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1667
1668 * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
1669 * config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
1670 * config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
1671 * gcc.c (set_collect_gcc_options): Don't add -fwhole-program
1672 to COLLECT_GCC_OPTIONS.
1673
781a1758
RS
16742009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1675
1676 * collect2.c (target_system_root): New variable.
1677 (main): Handle --sysroot=.
1678 (ignore_library): Strip the sysroot from the library path.
1679
dfb636dc
RS
16802009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1681
1682 * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
1683 (collect2.o): Depend on collect2-aix.h.
1684 (collect2-aix.o): New rule.
1685 * collect2-aix.h: New file.
1686 * collect2-aix.c: Likewise.
1687 * collect2.c: Include collect2-aix.h. Don't undefine
1688 OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
1689 Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
1690 Use TARGET_AIX_VERSION instead of _AIX51.
1691 * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
1692 * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
1693 * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
1694 * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
1695 * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.
1696
51136ae8
RS
16972009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1698
1699 * collect2.c (ignore_library): Avoid premature post-increment
1700 and null deference.
1701
7f142d33
RS
17022009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
1703
1704 * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
1705 * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
1706 !CROSS_DIRECTORY_STRUCTURE alternative and use it for
1707 CROSS_DIRECTORY_STRUCTURE too.
1708 (LINK_LIBG_SPEC): Likewise.
1709 (LIB_SPEC): Add %R to sysroot paths.
1710 * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
1711 (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
1712 * config/rs6000/aix51.h: As for aix43.h.
1713 * config/rs6000/aix52.h: Likewise.
1714 * config/rs6000/aix53.h: Likewise.
1715 * config/rs6000/aix61.h: Likewise.
1716 * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
1717 to the beginning of sysroot paths.
1718
9e74b7d2
AO
17192009-06-02 Alexandre Oliva <aoliva@redhat.com>
1720
1721 * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
1722 INSN_LISTs that are out of the REG_NOTE range.
1723
a9f6ecee
AO
17242009-06-02 Alexandre Oliva <aoliva@redhat.com>
1725
1726 * loop-unroll.c (struct iv_to_split): Add pointer to next.
1727 (struct var_to_expand): Likewise.
1728 (struct opt_info): Add head and tail for linked lists of the above.
1729 (analyze_insn_to_expand_var): Initialize next.
1730 (analyze_iv_to_split_insn): Likewise.
1731 (analyze_insns_in_loop): Create linked lists.
1732 (allocate_basic_variable): Simplify for use without hash table.
1733 (insert_var_expansion_initialization): Likewise, make it type-safer.
1734 (combine_var_copies_in_loop_exit): Likewise.
1735 (apply_opt_in_copies): Walk lists rather than hash tables.
1736 (release_var_copies): Simplified and inlined by hand into...
1737 (free_opt_info): ... this function.
1738
69596c69
RG
17392009-06-02 Richard Guenther <rguenther@suse.de>
1740
1741 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
1742 for field decls.
1743
fe8a7779
AO
17442009-06-02 Alexandre Oliva <aoliva@redhat.com>
1745
1746 * cfgexpand.c (gimple_expand_cfg): Discard the source location
1747 only for builtins that are not overridden.
1748
1bcca2c5
AO
17492009-06-02 Alexandre Oliva <aoliva@redhat.com>
1750
1751 * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
1752 label string.
1753
8588f797
AO
17542009-06-02 Alexandre Oliva <aoliva@redhat.com>
1755
1756 * df-core.c (df_ref_debug): Honor -fdump-noaddr.
1757
45f39d78
AO
17582009-06-02 Alexandre Oliva <aoliva@redhat.com>
1759
1760 * combine.c (move_deaths): Compare LUIDs within the same BB only.
1761
2aa7c49b
AO
17622009-06-02 Alexandre Oliva <aoliva@redhat.com>
1763
1764 * common.opt (fdump-unnumbered-links): New.
1765 * doc/invoke.texi (-fdump-unnumbered-links): Document it.
1766 * print-rtl.c (flag_dump_unnumbered_links): New.
1767 (print_rtx): Test it.
1768
55b2829b
RE
17692009-06-02 Richard Earnshaw <rearnsha@arm.com>
1770
1771 * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
1772 push/pop multiple to 8-byte alignment.
e63d4106 1773
6c0d7021
JJ
17742009-06-01 Jakub Jelinek <jakub@redhat.com>
1775
0aa34d44
JJ
1776 * config/i386/i386.c (queued_cfa_restores): New static variable.
1777 (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
1778 functions.
1779 (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
1780 (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
1781 Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
1782 Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
1783 note unconditionally.
1784 (ix86_emit_restore_regs_using_mov): Likewise.
1785 (ix86_emit_restore_sse_regs_using_mov): Likewise.
1786 (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
1787 it through to ix86_emit_restore_reg_using_pop.
1788 (ix86_emit_leave): Add RED_OFFSET argument. Call
1789 ix86_add_queued_cfa_restore_notes. Call ix86_add_cfa_restore_note
1790 instead of adding REG_CFA_OFFSET note unconditionally.
1791 (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
1792 the above functions. Call ix86_add_queued_cfa_restore_notes when
1793 needed.
1794
1795 * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
1796 force output of the label even for dwarf2out_do_cfi_asm.
1797 (add_fde_cfi): If -g2 and above and cfi might change CFA,
1798 force creation of CFI label and chain DW_CFA_set_loc jumping to it
1799 for convert_cfa_to_fb_loc_list. Adjust other dwarf2out_cfi_label
1800 caller.
1801 (dwarf2out_stack_adjust, dwarf2out_frame_debug,
1802 dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
1803 dwarf2out_cfi_label callers.
1804 * tree.h (dwarf2out_cfi_label): Adjust prototype.
1805 * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
1806 Adjust dwarf2out_cfi_label callers.
1807 * config/vax/vax.c (vax_output_function_prologue): Likewise.
1808
604a6be9
JJ
1809 * config/i386/i386.h (struct machine_cfa_state,
1810 struct machine_function): Guard with ifndef USED_FOR_TARGET
1811 instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.
1812
df0026a7
JJ
1813 PR other/40024
1814 * emutls.c (__emutls_get_address): Change arr->size to mean number
1815 of allocated arr->data entries instead of # of slots + 1.
1816
6c0d7021
JJ
1817 PR middle-end/40316
1818 * recog.c (peep2_reinit_state): New function.
1819 (peephole2_init_state): Use it at the end of a basic block and also
1820 when seeing a RTX_FRAME_RELATED_P insn.
1821
49df2fb8
SE
18222009-06-01 Steve Ellcey <sje@cup.hp.com>
1823
1824 * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
1825 fixuns_truncrfdi2): New.
1826 (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
1827 *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
1828 *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
1829 *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
1830 *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
1831 *recip_approx): Remove.
1832 (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
1833 moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
1834 divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
1835 move to div.md.
1836 * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
1837 setf_exp_rf): New.
1838
67165eb3
ILT
18392009-06-01 Ian Lance Taylor <iant@google.com>
1840
1841 * attribs.c (register_attribute): Use CONST_CAST.
1842 * collect2.c (main): Use CONST_CAST2.
1843 (scan_prog_file): Likewise.
1844 * gcc.c (process_command, main): Likewise.
1845 * toplev.c (toplev_main): Likewise.
1846
1847 * c-typeck.c (handle_warn_cast_qual): New static function,
1848 partially broken out of build_c_cast.
1849 (build_c_cast): Call handle_warn_cast_qual.
1850 * doc/invoke.texi (Warning Options): Document new effect of
1851 -Wcast-qual.
1852
e74fe492
AH
18532009-06-01 Aldy Hernandez <aldyh@redhat.com>
1854
1855 * diagnostic.c (diagnostic_build_prefix): Always print columns.
1856 (diagnostic_report_current_module): Print columns.
1857 * common.opt (flag_show_column): Enable by default.
1858
7eba2d1f
LM
18592009-06-01 Luis Machado <luisgpm@br.ibm.com>
1860
1861 * alias.c (find_base_term): Check for NULL term before returning.
1862
ee88d9aa
MK
18632009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
1864
1865 Revert due to PR40320:
ee88d9aa
MK
1866 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
1867 * calls.c (emit_library_call_value_1): Don't force_operand for move
1868 and push insns.
1869
324c9b02 18702009-06-01 Olivier Hainque <hainque@adacore.com>
40d0d9e4 1871 Eric Botcazou <ebotcazou@adacore.com>
324c9b02
OH
1872
1873 * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
1874 to be processed as a bitfield for constructor output purposes.
1875 * output.h (initializer_constant_valid_for_bitfield_p): Declare
1876 new function.
1877 * varasm.c (oc_local_state): New type, output_constructor
1878 local state to support communication with helpers.
1879 (oc_outer_state): New type, output_constructor outer state of
1880 relevance in recursive calls.
1881 (output_constructor_array_range): New output_constructor helper,
1882 extracted code for an array range element.
1883 (output_constructor_regular_field): New output_constructor helper,
1884 extracted code for an element that is not a bitfield.
1885 (output_constructor_bitfield): New output_constructor helper,
1886 extracted code for a bitfield element. Accept an OUTER state
1887 argument for recursive processing. Recurse on record or array
1888 CONSTRUCTOR values, possibly past noop conversions.
62295314 1889 (initializer_constant_valid_for_bitfield_p): New predicate. Whether
324c9b02
OH
1890 VALUE is a valid constant-valued expression for use in a static
1891 bit-field initializer.
62295314
OH
1892 (output_constructor): Rework to use helpers. Accept and honor an
1893 OUTER state argument for recursive calls. Return total size. Be
324c9b02
OH
1894 prepared for nested constructors initializing bitfields.
1895 (output_constant): Feed OUTER in calls to output_constructor.
1896
0980d7fe
MK
18972009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
1898
1899 * calls.c (emit_library_call_value_1): Don't force_operand for move
1900 and push insns.
1901
29661412
NC
19022009-06-01 Nick Clifton <nickc@redhat.com>
1903
1904 * doc/invoke.texi (IA-64 Options): Fix typo.
1905
e9dbe7bb
IR
19062009-06-01 Ira Rosen <irar@il.ibm.com>
1907
1908 PR tree-optimization/39129
1909 * tree-vect-loop-manip.c (conservative_cost_threshold): Change the
1910 printed message.
1911 (vect_do_peeling_for_loop_bound): Use
1912 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
1913 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
1914 (vect_loop_versioning): Likewise.
1915 (vect_create_cond_for_alias_checks): Fix indentation.
1916 * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the
1917 macros.
1918 (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
1919 (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
1920 * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to
1921 "control flow in loop".
1922 (vect_estimate_min_profitable_iters): Use
1923 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
1924 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
1925 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
1926 (vect_create_data_ref_ptr): Don't mention array dimension in printing.
1927 * tree-vect-stmts.c (vectorizable_store): Replace the check that the
1928 statement belongs to a group of strided accesses with the exact code
1929 check.
1930 (vectorizable_load): Likewise.
1931 * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
1932 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
1933
5ac69a80
GP
19342009-06-01 Gerald Pfeifer <gerald@pfeifer.com>
1935
1936 * config/freebsd-stdint.h: New file.
1937 * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
1938 Add freebsd-stdint.h to tm_file.
1939
54b2b460
RE
19402009-06-01 Richard Earnshaw <rearnsha@arm.com>
1941
1942 * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
1943 (thumb2_extendhidi2): Likewise.
1944
a7ca77cf
ILT
19452009-05-31 Ian Lance Taylor <iant@google.com>
1946
f3afc8a7 1947 * regstat.c (regstat_n_sets_and_refs): Remove duplicate definition.
c50d84e3
ILT
1948
19492009-05-31 Ian Lance Taylor <iant@google.com>
1950
f3afc8a7 1951 * Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H).
a7ca77cf
ILT
1952 (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
1953 (ipa-reference.o): Depend upon gt-ipa-reference.h.
1954
1aec401e
JM
19552009-05-31 Jason Merrill <jason@redhat.com>
1956
1957 * tree-pretty-print.c (print_call_name): Take the callee, not the
f3afc8a7 1958 call itself. Make non-static. Use dump_function_name for functions.
1aec401e
JM
1959 (dump_generic_node): Adjust.
1960 * diagnostic.h: Declare print_call_name.
1961 * gimple-pretty-print.c (dump_gimple_call): Use it.
1962
ed7910bb
KK
19632009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
1964
1965 * config/sh/sh.md (ashldi3_std): New define_expand.
1966 (ashldi3): Use it.
1967
47ea8d4e
KK
19682009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
1969
1970 PR target/40313
1971 * config/sh/sh.c: Include debug.h.
1972 (sh_expand_epilogue): Emit a blockage insn before the frame
1973 pointer adjustment also when dwarf2out_do_frame returns true.
1974
405e8b49
RE
19752009-05-31 Richard Earnshaw <rearnsha@arm.com>
1976
1977 * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
1978 (thumb2_extendqidi2): New pattern.
1979
71ece343
IR
19802009-05-31 Ira Rosen <irar@il.ibm.com>
1981
1982 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
1983 mark phis for renaming.
1984 * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
1985 (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
1986 Call mark_sym_for_renaming.
1987 * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
f3afc8a7
UB
1988 * tree-vect-loop.c (vect_transform_loop): Remove
1989 vect_memsyms_to_rename initialization and a call to
1990 mark_set_for_renaming.
71ece343 1991
b3041944
JJ
19922009-05-31 Jakub Jelinek <jakub@redhat.com>
1993
1994 PR middle-end/40304
1995 * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
1996 frame related even if !set_cfa && style < 0.
1997
a1bda0d7
KT
19982009-05-30 Kai Tietz <kai.tietz@onevision.com>
1999
2000 * config/i386/mingw-tls.c: New file.
f3afc8a7
UB
2001 * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file.
2002 * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets
2003 defining _WIN32 but not __CYGWIN__.
a1bda0d7 2004
acd26225
KG
20052009-05-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2006
2007 * configure.ac: Add MPC support.
2008
2009 * config.in, configure: Regenerate.
2010
cd9c1ca8
RH
20112009-05-29 Richard Henderson <rth@redhat.com>
2012
2013 * cfgcleanup.c (try_crossjump_to_edge): Only skip past
2014 NOTE_INSN_BASIC_BLOCK.
2015 * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
2016 Duplicate NOTE_INSN_EPILOGUE_BEG notes.
2017 * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
2018 to be deleted.
2019 * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
2020 add in_use field.
2021 (add_cfi): Disable check redefining cfa away from drap.
2022 (lookup_cfa_1): Add remember argument; handle remember/restore.
2023 (lookup_cfa): Pass remember argument.
2024 (cfa_remember): New.
2025 (compute_barrier_args_size_1): Remove sibcall check.
2026 (dwarf2out_frame_debug_def_cfa): New.
2027 (dwarf2out_frame_debug_adjust_cfa): New.
2028 (dwarf2out_frame_debug_cfa_offset): New.
2029 (dwarf2out_frame_debug_cfa_register): New.
2030 (dwarf2out_frame_debug_cfa_restore): New.
2031 (dwarf2out_frame_debug): Handle REG_CFA_* notes.
2032 (dwarf2out_begin_epilogue): New.
2033 (dwarf2out_frame_debug_restore_state): New.
2034 (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
2035 DW_CFA_restore_state.
2036 (output_cfi_directive): Likewise.
2037 (convert_cfa_to_fb_loc_list): Likewise.
2038 (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
2039 * dwarf2out.h: Update.
2040 * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
2041 (copy_insn_1): Early out for null.
2042 * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
2043 and dwarf2out_frame_debug_restore_state.
2044 * function.c (prologue, epilogue, sibcall_epilogue): Remove.
2045 (prologue_insn_hash, epilogue_insn_hash): New.
2046 (free_after_compilation): Adjust freeing accordingly.
2047 (record_insns): Create hash table if needed; push insns into
2048 hash instead of array.
2049 (maybe_copy_epilogue_insn): New.
2050 (contains): Search hash table instead of array.
2051 (sibcall_epilogue_contains): Remove.
2052 (thread_prologue_and_epilogue_insns): Split eh_return insns
2053 and mark them as epilogues.
2054 (reposition_prologue_and_epilogue_notes): Rewrite epilogue
2055 scanning in terms of basic blocks.
2056 * insn-notes.def (CFA_RESTORE_STATE): New.
2057 * jump.c (returnjump_p_1): Accept EH_RETURN.
2058 (eh_returnjump_p_1, eh_returnjump_p): New.
2059 * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
2060 CFA_REGISTER, CFA_RESTORE): New.
2061 * rtl.def (EH_RETURN): New.
2062 * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
2063
2064 * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
2065 (eh_return_internal): Use eh_return rtx; split w/ epilogue.
2066
2067 * config/i386/i386.c (gen_push): Update cfa state.
2068 (pro_epilogue_adjust_stack): Add set_cfa argument. When true,
2069 add a CFA_ADJUST_CFA note.
2070 (ix86_dwarf_handle_frame_unspec): Remove.
2071 (ix86_expand_prologue): Update cfa state.
2072 (ix86_emit_restore_reg_using_pop): New.
2073 (ix86_emit_restore_regs_using_pop): New.
2074 (ix86_emit_leave): New.
2075 (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
2076 (ix86_expand_epilogue): Add notes for unwinding the epilogue.
2077 * config/i386/i386.h (struct machine_cfa_state): New.
2078 (ix86_cfa_state): New.
2079 * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
2080 (eh_return_internal): Merge from eh_return_<mode>,
2081 use eh_return rtx, split w/ epilogue.
2082
72b5577d
ILT
20832009-05-29 Ian Lance Taylor <iant@google.com>
2084
2085 * builtins.c (validate_gimple_arglist): Don't use va_arg with
2086 enum type.
2087 * calls.c (emit_library_call_value_1): Likewise.
2088
2089 * c-typeck.c (c_build_va_arg): New function.
2090 * c-tree.h (c_build_va_arg): Declare.
2091 * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
2092 instead of build_va_arg.
2093
7a2faca1
EB
20942009-05-29 Eric Botcazou <ebotcazou@adacore.com>
2095
2096 * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
2097 (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
2098 (ptr_difference_cost): Use affine combinations to compute it.
2099 (difference_cost): Likewise.
2100 (get_computation_cost_at): Compute more accurate cost for addresses
2101 if the ratio is a multiplier allowed in addresses.
2102 For non-addresses, consider that an additional offset or symbol is
2103 added only once.
2104
725fd454
JJ
21052009-05-29 Jakub Jelinek <jakub@redhat.com>
2106
a0987204
JJ
2107 * config/i386/i386.c (ix86_decompose_address): Avoid useless
2108 0 displacement. Add 0 displacement if base is %[er]bp or %r13.
2109
725fd454
JJ
2110 * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
2111 TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
2112 (prefix_rex): For UNIT_MMX don't imply the prefix by default
2113 if MODE_DI.
2114 (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
2115 to 1 for TYPE_SSE{IADD1,CVT1}.
2116 (prefix_vex_imm8): Removed.
2117 (length_vex): Only pass 1 as second argument to
2118 ix86_attr_length_vex_default if prefix_extra is 0.
2119 (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
2120 (length): For prefix vex computation use length_immediate
2121 attribute instead of prefix_vex_imm8.
2122 (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
2123 addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
2124 *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
2125 *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
2126 (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
2127 *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
2128 a space in between the operands.
2129 (*anddi_1_rex64, *andsi_1): Likewise. Override prefix_rex to 1
2130 if one operand is 0xff and the other one si, di, bp or sp.
2131 (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
2132 other one si, di, bp or sp.
2133 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
2134 (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
2135 type and mode attributes.
2136 (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
2137 (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
2138 prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
2139 (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
2140 prefix_data16 attribute iff MODE_DF.
2141 (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
2142 (fix_trunc<mode>di_sse): Set prefix_rex attribute.
2143 (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
2144 constm128_operand in length_immediate computation.
2145 (*addhi_4): Likewise. Fix mode attribute to MODE_HI.
2146 (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
2147 (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
2148 length_immediate attribute to 1.
2149 (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
2150 (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
2151 for certain alternatives.
2152 (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
2153 prefix_data16 attribute if MODE_V1DF.
2154 (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
2155 length_immediate to 1.
2156 (set_got_rex64, set_rip_rex64): Remove length attribute, set
2157 length_address to 4, set mode attribute to MODE_DI.
2158 (set_got_offset_rex64): Likewise. Set length_immediate to 0.
2159 (fxam<mode>2_i387): Set length attribute to 4.
2160 (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
2161 *prefetch_3dnow_rex): Override length_address attribute.
2162 (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
2163 attributes.
2164 * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
2165 (constm128_operand): Removed.
2166 * config/i386/i386.c (memory_address_length): For
2167 disp && !index && !base in 64-bit mode account for SIB byte if
2168 print_operand_address can't optimize disp32 into disp32(%rip)
2169 and UNSPEC doesn't imply (%rip) addressing. Add 1 to length
2170 for fs: or gs: segment.
2171 (ix86_attr_length_immediate_default): When checking if shortform
2172 is possible, truncate immediate to the length of the non-shortened
2173 immediate.
2174 (ix86_attr_length_address_default): Ignore MEM_P operands
2175 with X constraint.
2176 (ix86_attr_length_vex_default): Only check for DImode on
2177 GENERAL_REG_P operands.
2178 * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
2179 prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
2180 (sse_cvttps2pi): Clear prefix_rep attribute.
2181 (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
2182 attribute.
2183 (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
2184 (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
2185 *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
2186 iff operand 2 is const_int_operand.
2187 (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
2188 sse2_shufpd_<mode>): Set length_immediate attribute to 1.
2189 (sse2_pshufd_1): Likewise. Set prefix attribute to maybe_vex
2190 instead of vex.
2191 (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
2192 prefix_data16.
2193 (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
2194 prefix_data16 attribute for movlpd and movhpd instructions.
2195 (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise. Override
2196 length_immediate for shufpd instruction.
2197 (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
2198 (avx_cmpp<avxmodesuffixf2c><mode>3,
2199 avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
2200 <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
2201 avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
f3afc8a7 2202 *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1.
725fd454
JJ
2203 (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
2204 (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
2205 (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
2206 prefix_data16 attribute for the first alternative to 1.
2207 (*avx_loadlps): Override length_immediate for the first alternative.
2208 (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
2209 attributes for second alternative.
2210 (*vec_concatv2sf_sse4_1): Override length_immediate and
2211 prefix_data16 attributes for second alternative.
2212 (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
2213 vec_extract_hi_<mode>, vec_extract_lo_v16hi,
2214 vec_extract_hi_v16hi, vec_extract_lo_v32qi,
2215 vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
2216 (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
2217 prefix_data16 and length_immediate to 1.
2218 (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
2219 to 1.
2220 (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
f3afc8a7 2221 prefix_extra attribute for variants that don't have 0f prefix alone.
725fd454
JJ
2222 (*avx_pinsr<ssevecsize>): Likewise. Set length_immediate to 1.
2223 (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
2224 *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
2225 *sse4_1_pextrd): Set length_immediate to 1.
2226 (*sse4_1_pinsrd): Likewise. Set prefix_extra to 1.
2227 (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
2228 to 1.
2229 (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
2230 *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
2231 length_immediate to 1 for second alternative.
2232 (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
2233 prefix_extra and length_immediate attributes for the first
2234 alternative.
2235 (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
2236 first alternative.
2237 (*vec_concatv2di_rex64_sse4_1): Likewise. Override prefix_rex
2238 to 1 for the first and third alternative.
2239 (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
2240 alternative.
2241 (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
2242 attribute.
2243 (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
2244 attribute to 0.
2245 (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
2246 *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
2247 *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
2248 *avx_psign<mode>3): Set prefix_extra attribute to 1.
2249 (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
2250 ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
2251 ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
2252 ssse3_psign<mode>3): Override prefix_rex attribute.
f3afc8a7 2253 (*avx_palignrti): Override prefix_extra and length_immediate to 1.
725fd454
JJ
2254 (ssse3_palignrti): Override length_immediate to 1.
2255 (ssse3_palignrdi): Override length_immediate to 1, override
2256 prefix_rex attribute.
f3afc8a7 2257 (abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute.
725fd454
JJ
2258 (sse4a_extrqi): Override length_immediate to 2.
2259 (sse4a_insertqi): Likewise. Override prefix_data16 to 0.
2260 (sse4a_insertq): Override prefix_data16 to 0.
2261 (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
2262 avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
2263 avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
2264 *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
2265 avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
2266 and length_immediate to 1.
2267 (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
2268 sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
2269 sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
2270 sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
2271 and length_immediate to 1.
2272 (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
2273 (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
2274 (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
2275 avx_ptest256): Override prefix_extra to 1.
2276 (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
2277 Override prefix_data16 and length_immediate to 1.
2278 (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
2279 sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
2280 sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
2281 sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
2282 prefix_data16 to 0 and prefix_extra to 2.
2283 (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
2284 (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
2285 attribute.
2286 (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
2287 sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
2288 Override prefix_data16 and prefix_rep to 0, length_immediate to 1
2289 and prefix_extra to 2.
2290 (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
2291 prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
2292 (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
2293 avx_vpermilvar<mode>3,
2294 avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
2295 avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
2296 avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
2297 avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
2298 Override prefix_extra to 1.
2299 (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
2300 (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
2301 vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
2302 vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
2303 prefix_extra and length_immediate to 1.
2304 (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
2305 modrm to 0.
2306 (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
2307 to 1 for the first alternative.
2308 * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
2309 prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
2310 cases.
2311 (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
2312 *movv2sf_internal_avx, *movv2sf_internal): Override
2313 prefix_rep attribute for certain alternatives.
2314 (*mov<mode>_internal): Override prefix_rep or prefix_data16
2315 attributes for certain alternatives.
2316 (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
2317 attributes for certain alternatives.
2318 (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
2319 *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
2320 mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
2321 mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
2322 *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
2323 mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
2324 mmx_pswapdv2si2): Set prefix_extra attribute to 1.
2325 (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
2326 length_immediate to 1 if operand 2 is const_int_operand.
2327 (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
f3afc8a7 2328 *vec_extractv2si_1): Set length_immediate attribute to 1.
725fd454
JJ
2329 (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
2330 using old 3DNOW insn rather than SSE/3DNOW_A.
2331 (mmx_emms, mmx_femms): Clear modrm attribute.
2332
0674b9d0
MJ
23332009-05-29 Martin Jambor <mjambor@suse.cz>
2334
2335 * tree-sra.c: New implementation of SRA.
2336
2337 * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
2338 (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
2339 (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
2340 * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
2341 (SRA_MAX_STRUCTURE_COUNT): Removed.
2342 (SRA_FIELD_STRUCTURE_RATIO): Removed.
2343 * doc/invoke.texi (sra-max-structure-size): Removed.
2344 (sra-field-structure-ratio): Removed.
2345
616f21df
JJ
23462009-05-29 Jakub Jelinek <jakub@redhat.com>
2347
2348 PR middle-end/40291
2349 * builtins.c (expand_builtin_memcmp): Convert len to sizetype
2350 before expansion.
2351
da7ba240
AB
23522009-05-29 Andrey Belevantsev <abel@ispras.ru>
2353
2354 PR rtl-optimization/40101
2355 * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
2356 seqno. Adjust comment.
2357 * sel-sched.c (find_seqno_for_bookkeeping): Assert that when
2358 inserting bookkeeping before a jump, the jump is not scheduled.
2359 When no positive seqno found, provide a value. Add comment.
2360
71dcd609
RG
23612009-05-29 Richard Guenther <rguenther@suse.de>
2362
2363 * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
2364 short-cutting on the first component.
2365
a900ae6b
JJ
23662009-05-29 Jakub Jelinek <jakub@redhat.com>
2367
2368 PR middle-end/39958
2369 * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
2370 for trees other than decls/types.
2371
821bb7f8
RG
23722009-05-29 Richard Guenther <rguenther@suse.de>
2373
2374 * tree-ssa-operands.c (get_expr_operands): Do not handle
2375 INDIRECT_REFs in the handled-component case. Remove
2376 unused get_ref_base_and_extent case.
2377 * tree-dfa.c (get_ref_base_and_extent): Avoid calling
2378 tree_low_cst and host_integerp where possible.
2379 * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
2380 codes for equivalence.
2381 * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
2382
e997fb9c
DB
23832009-05-29 David Billinghurst <billingd@gcc.gnu.org>
2384
2385 * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
2386 to tmake_file for i[34567]86-*-cygwin*.
2387
58195b74
JJ
23882009-05-29 Jakub Jelinek <jakub@redhat.com>
2389
2390 PR target/40017
2391 * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
2392 (altivec_categorize_keyword, init_vector_keywords,
2393 rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
2394 similar to bool.
2395
055df276
KT
23962009-05-29 Kai Tietz <kai.tietz@onevision.com>
2397
2398 * tree.c (handle_dll_attribute): Check if node is
2399 of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
2400
f5939ef3
RE
24012009-05-29 Richard Earnshaw <rearnsha@arm.com>
2402
2403 * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
2404 component.
2405 (thumb2_zero_extendqidi2): Likewise.
2406
c185de40
KK
24072009-05-28 Kaz Kojima <kkojima@gcc.gnu.org>
2408
2409 * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
2410 instead of gen_movrt.
2411 * config/sh/sh.md (movrt): Remove.
2412
bf3c6caf
SE
24132009-05-28 Steve Ellcey <sje@cup.hp.com>
2414
f3afc8a7 2415 * doc/invoke.texi (IA-64 Options):
bf3c6caf
SE
2416 Add -msdata, -mfused-madd, -mno-inline-float-divide,
2417 -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
2418 -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
2419 -msched-prefer-non-control-spec-insns,
2420 -msched-stop-bits-after-every-cycle,
2421 -msched-count-spec-in-critical-path,
2422 -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
f3afc8a7 2423 -msched-max-memory-insns-hard-limit, -msched-max-memory-insns.
bf3c6caf
SE
2424 Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
2425 and -msched-spec-verbose.
2426
8a66e987
JM
24272009-05-28 Joseph Myers <joseph@codesourcery.com>
2428
f3afc8a7 2429 * config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache.
8a66e987
JM
2430 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
2431 error if used.
2432 * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
2433
b45d2719
RG
24342009-05-28 Richard Guenther <rguenther@suse.de>
2435
2436 * tree-ssa-alias.c (ao_ref_init): New function.
2437 (ao_ref_base): Likewise.
2438 (ao_ref_base_alias_set): Likewise.
2439 (ao_ref_alias_set): Likewise.
2440 (refs_may_alias_p_1): Change signature.
2441 (refs_may_alias_p): Adjust.
2442 (refs_anti_dependent_p): Likewise.
2443 (refs_output_dependent_p): Likewise.
2444 (call_may_clobber_ref_p_1): Change signature.
2445 (call_may_clobber_ref_p): Adjust.
2446 (stmt_may_clobber_ref_p_1): New function split out from ...
2447 (stmt_may_clobber_ref_p): ... here.
2448 (maybe_skip_until): Adjust signature.
2449 (get_continuation_for_phi): Likewise.
2450 (walk_non_aliased_vuses): Likewise.
2451 * tree-ssa-alias.h (struct ao_ref_s): New structure type.
2452 (ao_ref_init): Declare.
2453 (ao_ref_base): Likewise.
2454 (ao_ref_alias_set): Likewise.
2455 (stmt_may_clobber_ref_p_1): Likewise.
2456 (walk_non_aliased_vuses): Adjust.
2457 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
2458 (get_ref_from_reference_ops): remove.
2459 (vn_reference_lookup_2): Adjust signature.
2460 (vn_reference_lookup_3): Do not re-build trees. Handle unions.
f3afc8a7 2461 (vn_reference_lookup_pieces): Adjust signature, do not re-build trees.
b45d2719
RG
2462 (vn_reference_lookup): Adjust.
2463 (vn_reference_insert): Likewise.
2464 (vn_reference_insert_pieces): Adjust signature.
2465 (visit_reference_op_call): Adjust.
2466 * tree-ssa-pre.c (get_expr_type): Simplify.
2467 (phi_translate_1): Adjust.
2468 (compute_avail): Likewise.
2469 (translate_vuse_through_block): Do not re-build trees.
2470 (value_dies_in_block_x): Likewise.
2471 * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
2472 fields.
2473 (vn_reference_lookup_pieces): Adjust declaration.
2474 (vn_reference_insert_pieces): Likewise.
2475
554223b6
BK
24762009-05-28 Benjamin Kosnik <bkoz@redhat.com>
2477
2478 * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
2479 with checking disabled.
2480
233215fe
DK
24812009-05-28 Dave Korn <dave.korn.cygwin@gmail.com>
2482
2483 PR target/37216
2484
2485 * configure.ac (HAVE_GAS_ALIGNED_COMM): Add autoconf test and
2486 macro definition for support of three-operand format aligned
2487 .comm directive in assembler on cygwin/pe/mingw target OS.
2488 * configure: Regenerate.
2489 * config.h: Regenerate.
2490
2491 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Use
2492 aligned form of .comm directive if -mpe-aligned-commons is in effect.
2493 * config/i386/cygming.opt (-mpe-aligned-commons): Add new option.
2494
2495 * doc/invoke.texi (-mpe-aligned-commons): Document new target option.
2496 * doc/tm.texi (ASM_OUTPUT_COMMON): Document zero size commons.
2497
24adb18f
IR
24982009-05-28 Ira Rosen <irar@il.ibm.com>
2499
2500 PR tree-optimization/40254
2501 * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
2502 in analysis of basic blocks.
2503
2c5bfdf7
AN
25042009-05-28 Adam Nemet <anemet@caviumnetworks.com>
2505
2506 PR middle-end/33699
f3afc8a7 2507 * target.h (struct gcc_target): Fix indentation. Add const_anchor.
2c5bfdf7
AN
2508 * target-def.h (TARGET_CONST_ANCHOR): New macro.
2509 (TARGET_INITIALIZER): Use it.
2510 * cse.c (CHEAPER): Move it up to the other macros.
2511 (insert): Rename this ...
2512 (insert_with_costs): ... to this. Add cost parameters. Update
2513 function comment.
2514 (insert): New function. Call insert_with_costs.
2515 (compute_const_anchors, insert_const_anchor, insert_const_anchors,
2516 find_reg_offset_for_const, try_const_anchors): New functions.
2517 (cse_insn): Call try_const_anchors. Adjust cost of src_related
2518 when using a const-anchor. Call insert_const_anchors.
f3afc8a7 2519 * config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor.
2c5bfdf7
AN
2520 * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
2521
9e6aced0
AO
25222009-05-28 Alexandre Oliva <aoliva@redhat.com>
2523
2524 * tree-inline.c (remap_decls): Enable nonlocalized variables
2525 when not optimizing.
2526
89fbbe4e
AO
25272009-05-28 Alexandre Oliva <aoliva@redhat.com>
2528
2529 * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
2530 Simplify other tests involving optimize.
2531
e455776a
TT
25322009-05-27 Tom Tromey <tromey@redhat.com>
2533
2534 * unwind-dw2.c (_Unwind_DebugHook): New function.
2535 (uw_install_context): Call _Unwind_DebugHook.
2536
cea32bca
TT
25372009-05-27 Tom Tromey <tromey@redhat.com>
2538
2539 * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
2540
c607156f
ILT
25412009-05-27 Ian Lance Taylor <iant@google.com>
2542
2543 * Makefile.in (LINKER, LINKER_FLAGS): Define.
2544 (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
2545 (ALL_LINKERFLAGS): Define.
2546 (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
2547 (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
2548 (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
2549 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
2550 (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
2551 $(LINKER_FOR_BUILD).
2552 (build/gcov-iov$(build_exeext)): Likewise.
2553
ec0a1343
JB
25542009-05-27 Julian Brown <julian@codesourcery.com>
2555
2556 * gcse.c (target.h): Include.
2557 (can_assign_to_reg_without_clobbers_p): Check that the target allows
2558 copy of argument to a pseudo register.
2559
ac80ba07
DN
25602009-05-27 Diego Novillo <dnovillo@google.com>
2561
2562 * tree-ssa-live.c (dump_scope_block): Document arguments.
2563 (dump_scope_blocks): Document.
2564 (debug_scope_blocks): New.
2565 * tree-flow.h (debug_scope_blocks): Declare.
2566
d1803a17
DC
25672009-05-21 Denis Chertykov <denisc@overta.ru>
2568
f3afc8a7 2569 * doc/contrib.texi (Contributors): Add myself to the list.
d1803a17 2570
51fb7760 25712009-05-27 Olivier Hainque <hainque@adacore.com>
ceadb728
OH
2572
2573 * expr.c (target_align): New function. Alignment the TARGET of an
2574 assignment may be assume to have.
2575 (highest_pow2_factor_for_target): Use it instead of relying on
2576 immediate tree attributes of TARGET, not necessarily honored when
2577 intermediate bitfields are involved.
2578
634fa334
L
25792009-05-27 H.J. Lu <hongjiu.lu@intel.com>
2580
2581 PR target/40266
2582 * config/i386/driver-i386.c (host_detect_local_cpu): Support
2583 AVX, SSE4, AES, PCLMUL and POPCNT.
2584
65332587
DN
25852009-05-27 Diego Novillo <dnovillo@google.com>
2586
2587 * tree-pretty-print.c (dump_location): New.
2588 (dump_generic_node): Call it.
2589 Factor code to handle BLOCK nodes ...
2590 (dump_block_node): ... here.
2591
3e17e31d
RAE
25922009-05-27 Rafael Avila de Espindola <espindola@google.com>
2593
f3afc8a7
UB
2594 * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h
2595 with it.
3e17e31d
RAE
2596 * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
2597 included.
2598 * gcc-plugin.h: Include config.h and system.h.
2599 (IN_GCC): Define if not defined.
2600
5e370570
HPN
26012009-05-27 Hans-Peter Nilsson <hp@axis.com>
2602
2603 PR middle-end/40249
2604 * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
2605 with -fno-inline.
2606
d000f0d9
SZ
26072009-05-27 Shujing Zhao <pearly.zhao@oracle.com>
2608
2609 * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
2610 applicable.
2611 * config/m32r/m32r.h: Ditto.
2612 * config/m32r/m32r.md: Ditto.
2613 * config/m32r/predicates.md: Ditto.
2614
82f331ff
AO
26152009-05-27 Alexandre Oliva <aoliva@redhat.com>
2616
2617 * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
2618
ae2392a9
BS
26192009-05-26 Basile Starynkevitch <basile@starynkevitch.net>
2620
2621 * doc/plugins.texi
2622 (Loading plugins): typo.
2623 (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
2624 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
2625 (Interacting with the GCC Garbage Collector): Added new section.
2626 (Giving information about a plugin): Added new section for
2627 PLUGIN_INFO.
ae2392a9
BS
2628 * ggc.h (ggc_register_root_tab): Added declaration.
2629 * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
2630 (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
2631 (register_callback): Improved comment in declaration.
f3afc8a7
UB
2632 * ggc-common.c (const_ggc_root_tab_t) Added new typedef for vectors.
2633 (extra_root_vec) Added static variable for dynamic roots registration.
ae2392a9
BS
2634 (ggc_register_root_tab) Added new routine.
2635 (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
2636 PLUGIN_GGC_MARKING event.
2637 * ggc-zone.c: Include plugin.h.
2638 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
2639 * ggc-page.c: Include plugin.h.
2640 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
2641 * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
2642 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
2643 (register_callback): check lack of callbacks for
2644 pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
2645 PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
2646 (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
2647 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
2648 * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
2649 dependency on plugin.h.
2650 (plugin.o): Added dependency on ggc.h...
2651
f0cfd3a8
RG
26522009-05-26 Richard Guenther <rguenther@suse.de>
2653
2654 PR middle-end/40248
2655 Revert
2656 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
2657 with mismatched comparison modes.
2658
2659 * expr.c (expand_expr_real_1): Expand the operand of a
2660 VIEW_CONVERT_EXPR in its natural mode.
2661
7980bfb8
ILT
26622009-05-26 Ian Lance Taylor <iant@google.com>
2663
2664 * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
2665 (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
2666 (ALL_COMPILERFLAGS): Define.
2667 (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
2668 (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
2669 (collect2$(exeext), collect2.o): Likewise.
2670 (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
2671 (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
2672 ($(out_object_file), mips-tfile, mips-tdump): Likewise.
2673 (libbackend.o, intl.o, cppdefault.o): Likewise.
2674 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
2675 (build/%.o): Use $(COMPILER_FOR_BUILD).
2676 (build/gen%$(build_exeext)): Likewise.
2677 (build/gcov-iov$(build_exeext)): LIkewise.
2678 * config/t-darwin (darwin.o): Use $(COMPILER).
2679 (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
2680 * config/t-sol2 (sol2-c.o): Likewise.
2681 (sol2.o): Likewise.
2682 * config/t-vxworks (vxworks.o): Likewise.
2683 * config/x-darwin (host-darwin.o): Likewise.
2684 * config/x-hpux (host-hpux.o): Likewise.
2685 * config/x-linux (host-linux.o): Likewise.
2686 * config/x-solaris (host-solaris.o): Likewise.
2687 * config/alpha/x-alpha (driver-alpha.o): Likewise.
2688 * config/arm/t-arm (arm-c.o): Likewise.
2689 * config/arm/t-pe (pe.o): Likewise.
2690 * config/arm/t-wince-pe (pe.o): Likewise.
2691 * config/i386/t-cygming (winnt.o): Likewise.
2692 (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
2693 * config/i386/t-cygwin (cygwin1.o): Likewise.
2694 (cygwin2.o): Likewise.
2695 * config/i386/t-i386 (i386-c.o): Likewise.
2696 * config/i386/t-interix (winnt.o): Likewise.
2697 * config/i386/t-netware (netware.o): Likewise.
2698 * config/i386/t-nwld (nwld.o): Likewise.
2699 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
2700 * config/i386/x-i386 (driver-i386.o): Likewise.
2701 * config/i386/x-cygwin (host-cygwin.o): Likewise.
2702 * config/i386/x-mingw32 (host-mingw32.o): Likewise.
2703 * config/ia64/t-ia64 (ia64-c.o): Likewise.
2704 * config/m32c/t-m32c (m32c-pragma.o): Likewise.
2705 * config/mips/x-native (driver-native.o): Likewise.
2706 * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
2707 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
2708 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
2709 * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
2710 * config/score/t-score-elf (score7.o): Likewise.
2711 (score3.o): Likewise.
2712 * config/sh/t-sh (sh-c.o): Likewise.
2713 * config/sh/t-symbian (sh-c.o): Likewise.
2714 (symbian.o): Likewise.
2715 * config/spu/t-spu-elf (spu-c.o): Likewise.
2716 * config/v850/t-v850 (v850-c.o): Likewise.
2717 * config/v850/t-v850e (v850-c.o): Likewise.
2718
23977d3c
RG
27192009-05-26 Richard Guenther <rguenther@suse.de>
2720
2721 PR tree-optimization/40122
2722 * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
2723 VECTOR_CSTs if possible.
2724 (fold_gimple_assign): Likewise.
2725
3d62b895
RG
27262009-05-26 Richard Guenther <rguenther@suse.de>
2727
2728 PR middle-end/40252
2729 * fold-const.c (fold_binary): Use the correct types for building
2730 rotates.
2731
12346147
RG
27322009-05-26 Richard Guenther <rguenther@suse.de>
2733
2734 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
2735 redundant calls to merge_alias_info.
2736 (bump_vector_ptr): Likewise.
2737 * tree-ssa-copy.c (merge_alias_info): Remove.
2738 (replace_exp_1): Remove call to merge_alias_info.
2739 (propagate_tree_value): Likewise.
2740 (fini_copy_prop): Propagate points-to info.
2741 * tree-flow.h (merge_alias_info): Remove.
2742
807d5e6f
HS
27432009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
2744
2745 * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
2746
85057983
JH
27472009-05-25 Jan Hubicka <jh@suse.cz>
2748
2749 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
2750 * cgraph.h (struct inline_summary): New filed self_wize,
2751 size_inlining_benefit, self_time and time_inlining_benefit.
2752 (struct cgraph_global_info): Replace insns by time ans size fields.
2753 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
2754 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
2755 (ipcp_update_callgraph): Do not touch function bodies.
2756 * ipa-inline.c: Include except.h
2757 (MAX_TIME): New constant.
2758 (overall_insns): Remove.
2759 (leaf_node_p): New.
2760 (overall_size, max_benefit): New static variables.
2761 (cgraph_estimate_time_after_inlining): New function.
2762 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
2763 (cgraph_clone_inlined_nodes): Update size.
2764 (cgraph_mark_inline_edge): Update size.
2765 (cgraph_estimate_growth): Use size info.
2766 (cgraph_check_inline_limits): Check size.
2767 (cgraph_default_inline_p): Likewise.
2768 (cgraph_edge_badness): Compute badness based on benefit and size cost.
2769 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
2770 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
2771 and times.
85057983
JH
2772 (cgraph_decide_inlining): Likewise.
2773 (cgraph_decide_inlining_incrementally): Likewise; honor
2774 PARAM_EARLY_INLINING_INSNS.
2775 (likely_eliminated_by_inlining_p): New predicate.
2776 (estimate_function_body_sizes): New function.
2777 (compute_inline_parameters): Use it.
2778 * except.c (must_not_throw_labels): New function.
2779 * except.h (must_not_throw_labels): Declare.
2780 * tree-inline.c (init_inline_once): Kill inlining_weigths
2781 * tree-ssa-structalias.c: Avoid uninitialized warning.
2782 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
2783 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
2784 (PARAM_INLINE_CALL_COST): Remove.
2785 (PARAM_EARLY_INLINING_INSNS): New.
2786
01df5c8a
RG
27872009-05-25 Richard Guenther <rguenther@suse.de>
2788
2789 PR tree-optimization/36327
2790 * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
f3afc8a7 2791 callback for reference translation or lookup at the point of may-defs.
01df5c8a
RG
2792 * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
2793 * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
2794 for union COMPONENT_REFs.
2795 (vn_reference_lookup_3): New callback. Lookup from memset
2796 and CONSTRUCTOR assignment, translate through struct copies.
2797 (vn_reference_lookup_pieces): Make sure to not free the
2798 passed operands array. Adjust walk_non_aliased_vuses call.
2799 (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
2800 make sure we do not leak memory.
2801
6b8ed145
RG
28022009-05-25 Richard Guenther <rguenther@suse.de>
2803
2804 * tree-ssa-alias.h (dump_points_to_solution): Declare.
2805 * tree-inline.c (expand_call_inline): Reset the escaped and
2806 callused solutions.
2807 * tree-ssa-structalias.c (pass_build_ealias): New.
2808 * tree-pass.h (pass_build_ealias): Declare.
2809 * passes.c (init_optimization_passes): Add PTA during
2810 early optimizations.
2811 * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
2812 and CALLUSED solutions.
2813 (dump_points_to_solution): New function, split out from ...
2814 (dump_points_to_info_for): ... here.
2815 * tree-parloops.c (parallelize_loops): Reset the escaped and
2816 callused solutions.
2817
0adcf178
RO
28182009-05-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2819
2820 PR bootstrap/40027
2821 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
2822 * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
2823
12aaf609
IR
28242009-05-25 Ira Rosen <irar@il.ibm.com>
2825
2826 PR tree-optimization/40238
2827 * tree-vect-stmts.c (vect_init_vector): Insert initialization
2828 statements after basic block's labels.
2829 * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info()
2830 to free the allocated memory.
2831
7f9a14e3
KK
28322009-05-24 Kaz Kojima <kkojima@gcc.gnu.org>
2833
2834 * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
2835 return address with a USE.
2836
b842d478
RG
28372009-05-24 Richard Guenther <rguenther@suse.de>
2838
2839 PR middle-end/40233
2840 * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
2841 array type from the main variant of the inner type.
2842
8db7b33f
JBG
28432009-05-24 Jan-Benedict Glaw <jbglaw@lug-owl.de>
2844
2845 * config/vax/vax-protos.h (legitimate_constant_address_p): Change
2846 definition to bool (from int) to un-break build.
2847 (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
2848
cff4e50d
PB
28492009-05-24 Paolo Bonzini <bonzini@gnu.org>
2850
2851 * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
2852 discard_stmt_changes): Delete.
2853 * tree-ssa-operands.c (scb_stack): Delete.
2854 (init_ssa_operands): Do not initialize it.
2855 (fini_ssa_operands): Do not free it.
2856 (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
2857
2858 * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with
2859 update_stmt, remove the others. Fix comments.
2860 * tree-dfa.c (optimize_stack_restore): Likewise.
2861 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
2862 * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
2863 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
2864 * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
2865 Likewise.
2866 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
2867 * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
f3afc8a7
UB
2868 (dom_opt_finalize_block): Likewise, adjusting access to
2869 stmts_to_rescan.
cff4e50d
PB
2870 (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
2871 (stmts_to_rescan): Change item type to gimple.
2872 (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
2873
a70d6342
IR
28742009-05-24 Ira Rosen <irar@il.ibm.com>
2875
2876 * doc/passes.texi (Tree-SSA passes): Document SLP pass.
2877 * tree-pass.h (pass_slp_vectorize): New pass.
2878 * params.h (SLP_MAX_INSNS_IN_BB): Define.
2879 * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
2880 * tree-vectorizer.c (timevar.h): Include.
2881 (user_vect_verbosity_level): Declare.
2882 (vect_location): Fix comment.
2883 (vect_set_verbosity_level): Update user_vect_verbosity_level
2884 instead of vect_verbosity_level.
2885 (vect_set_dump_settings): Add an argument. Ignore user defined
2886 verbosity if dump flags require higher level of verbosity. Print to
2887 stderr only for loop vectorization.
2888 (vectorize_loops): Update call to vect_set_dump_settings.
2889 (execute_vect_slp): New function.
2890 (gate_vect_slp): Likewise.
2891 (struct gimple_opt_pass pass_slp_vectorize): New.
2892 * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
2893 access its members.
2894 (vec_info_for_bb): New function.
2895 (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
2896 (VECTORIZATION_ENABLED): New macro.
2897 (SLP_ENABLED, SLP_DISABLED): Likewise.
2898 (vect_is_simple_use): Add bb_vec_info argument.
2899 (new_stmt_vec_info, vect_analyze_data_ref_dependences,
2900 vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
2901 vect_analyze_data_ref_accesses, vect_analyze_data_refs,
2902 vect_schedule_slp, vect_analyze_slp): Likewise.
2903 (vect_analyze_stmt): Add slp_tree argument.
2904 (find_bb_location): Declare.
2905 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
2906 * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
2907 (vect_analyze_loop_operations, vect_analyze_loop,
2908 get_initial_def_for_induction, vect_create_epilog_for_reduction,
2909 vect_finalize_reduction, vectorizable_reduction,
2910 vectorizable_live_operation, vect_transform_loop): Likewise.
2911 * tree-data-ref.c (dr_analyze_innermost): Update comment,
2912 skip evolution analysis if analyzing a basic block.
2913 (dr_analyze_indices): Likewise.
2914 (initialize_data_dependence_relation): Skip the test whether the
2915 object is invariant for basic blocks.
2916 (compute_all_dependences): Skip dependence analysis for data
2917 references in basic blocks.
2918 (find_data_references_in_stmt): Don't fail in case of invariant
2919 access in basic block.
2920 (find_data_references_in_bb): New function.
2921 (find_data_references_in_loop): Move code to
782dc37a 2922 find_data_references_in_bb and add a call to it.
a70d6342
IR
2923 (compute_data_dependences_for_bb): New function.
2924 * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
2925 * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
2926 that STEP is 0.
2927 (vect_analyze_data_ref_dependence): Check for interleaving in case of
2928 unknown dependence in basic block and fail in case of dependence in
2929 basic block.
2930 (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
2931 dependence instances from either loop or basic block vectorization
2932 info.
2933 (vect_compute_data_ref_alignment): Check if it is loop vectorization
2934 before calling nested_in_vect_loop_p.
2935 (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
2936 dependence instances from either loop or basic block vectorization
2937 info.
2938 (vect_verify_datarefs_alignment): Likewise.
2939 (vect_enhance_data_refs_alignment): Adjust function calls.
2940 (vect_analyze_data_refs_alignment): Likewise.
2941 (vect_analyze_group_access): Fix printing. Skip different checks if
2942 DR_STEP is 0. Keep strided stores either in loop or basic block
2943 vectorization data structure. Fix indentation.
2944 (vect_analyze_data_ref_access): Fix comments, allow zero step in
2945 basic blocks.
2946 (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
2947 dependence instances from either loop or basic block vectorization
2948 info.
2949 (vect_analyze_data_refs): Update comment. Call
2950 compute_data_dependences_for_bb to analyze basic blocks.
2951 (vect_create_addr_base_for_vector_ref): Check for outer loop only in
2952 case of loop vectorization. In case of basic block vectorization use
782dc37a 2953 data-ref itself as a base.
a70d6342
IR
2954 (vect_create_data_ref_ptr): In case of basic block vectorization:
2955 don't advance the pointer, add new statements before the current
2956 statement. Adjust function calls.
2957 (vect_supportable_dr_alignment): Support only aligned accesses in
2958 basic block vectorization.
2959 * common.opt (ftree-slp-vectorize): New flag.
2960 * tree-vect-patterns.c (widened_name_p): Adjust function calls.
2961 (vect_pattern_recog_1): Likewise.
2962 * tree-vect-stmts.c (process_use): Likewise.
2963 (vect_init_vector): Add new statements in the beginning of the basic
2964 block in case of basic block SLP.
2965 (vect_get_vec_def_for_operand): Adjust function calls.
2966 (vect_finish_stmt_generation): Likewise.
2967 (vectorizable_call): Add assert that it is loop vectorization, adjust
2968 function calls.
2969 (vectorizable_conversion, vectorizable_assignment): Likewise.
2970 (vectorizable_operation): In case of basic block SLP, take
2971 vectorization factor from statement's type and skip the relevance
2972 check. Adjust function calls.
2973 (vectorizable_type_demotion): Add assert that it is loop
2974 vectorization, adjust function calls.
2975 (vectorizable_type_promotion): Likewise.
2976 (vectorizable_store): Check for outer loop only in case of loop
2977 vectorization. Adjust function calls. For basic blocks, skip the
2978 relevance check and don't advance pointers.
2979 (vectorizable_load): Likewise.
2980 (vectorizable_condition): Add assert that it is loop vectorization,
2981 adjust function calls.
2982 (vect_analyze_stmt): Add argument. In case of basic block SLP, check
2983 that it is not reduction, get vector type, call only supported
782dc37a 2984 functions, skip loop specific parts.
a70d6342
IR
2985 (vect_transform_stmt): Check for outer loop only in case of loop
2986 vectorization.
2987 (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
2988 (vect_is_simple_use): Fix comment, add new argument, fix conditions
2989 for external definition.
2990 * passes.c (pass_slp_vectorize): New pass.
2991 * tree-vect-slp.c (find_bb_location): New function.
2992 (vect_get_and_check_slp_defs): Add argument, adjust function calls,
2993 check for patterns only in loops.
2994 (vect_build_slp_tree): Add argument, adjust function calls, fail in
2995 case of multiple types in basic block SLP.
2996 (vect_mark_slp_stmts_relevant): New function.
2997 (vect_supported_load_permutation_p): Fix comment.
2998 (vect_analyze_slp_instance): Add argument. In case of basic block
2999 SLP, take vectorization factor from statement's type, check that
3000 unrolling factor is 1. Adjust function call. Save SLP instance in
3001 either loop or basic block vectorization structure. Return FALSE,
3002 if SLP failed.
3003 (vect_analyze_slp): Add argument. Get strided stores groups from
3004 either loop or basic block vectorization structure. Return FALSE
3005 if basic block SLP failed.
3006 (new_bb_vec_info): New function.
3007 (destroy_bb_vec_info, vect_slp_analyze_node_operations,
3008 vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
3009 (vect_schedule_slp): Add argument. Get SLP instances from either
3010 loop or basic block vectorization structure. Set vectorization factor
3011 to be 1 for basic block SLP.
3012 (vect_slp_transform_bb): New function.
3013 * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
3014
0676c393
MM
30152009-05-23 Mark Mitchell <mark@codesourcery.com>
3016
3017 * final.c (shorten_branches): Do not align labels for jump tables.
3018 (final_scan_insn): Use JUMP_TABLE_DATA_P.
3019
94324dae
EB
30202009-05-23 Eric Botcazou <ebotcazou@adacore.com>
3021
3022 * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
3023 Remove outdated reference to flow.c and fix nits.
3024 * doc/gccint.texi: Tweak RTL description.
3025 * doc/rtl.texi: Likewise.
3026
92bffc14
DC
30272009-05-23 Denis Chertykov <chertykov@gmail.com>
3028
3029 * config/avr/avr.c: Change my email address.
3030 * config/avr/avr.h: Likewise.
3031 * config/avr/avr.md: Likewise.
3032 * config/avr/avr-protos.h: Likewise.
3033 * config/avr/libgcc.S: Likewise.
3034
eec9405e
TS
30352009-05-22 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
3036
3037 * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
3038 (spu_split_load, spu_split_store): Change return type to int.
3039 (spu_split_convert): Declare.
3040 * config/spu/predicates.md (spu_mem_operand): Remove.
3041 (spu_mov_operand): Update.
3042 (spu_dest_operand, shiftrt_operator, extend_operator): Define.
3043 * config/spu/spu.c (regno_aligned_for_load): Remove.
3044 (reg_aligned_for_addr, spu_expand_load): Define.
3045 (spu_expand_extv): Reimplement and handle MEM.
3046 (spu_expand_insv): Handle MEM.
3047 (spu_sched_reorder): Handle insn's with length 0.
3048 (spu_legitimate_address_p): Reimplement.
3049 (store_with_one_insn_p): Return TRUE for any mode with size
3050 larger than 16 bytes.
3051 (address_needs_split): Define.
3052 (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
3053 operands.
3054 (spu_convert_move): Define.
782dc37a 3055 (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
eec9405e
TS
3056 (spu_split_store): Change all MEM's to TImode.
3057 (spu_init_expanders): Preallocate registers that correspond to
3058 LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
3059 mark_reg_pointer.
3060 (spu_split_convert): Define.
3061 * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
3062 (_move<mode>, _movdi, _movti): Update predicate and condition.
3063 (load, store): Change to define_split.
3064 (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
3065 extend<mode>ti2.
3066 (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
3067 (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
3068 define_insn_and_split of lshr<mode>3.
3069 (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
3070 (<v>ashr<mode>3_imm): Define.
3071 (extv, extzv, insv): Allow MEM operands.
3072 (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
3073 shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
3074 sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
3075 (_spu_convert2): Change to define_insn_and_split and remove the
3076 corresponding define_peephole2.
3077 (stack_protect_set, stack_protect_test, stack_protect_test_si):
3078 Change predicates to memory_operand.
3079
7d31a807
MM
30802009-05-22 Mark Mitchell <mark@codesourcery.com>
3081
3082 * config/arm/thumb2.md: Add 16-bit multiply instructions.
7d31a807 3083
d021d274
MM
30842009-05-21 Michael Meissner <meissner@linux.vnet.ibm.com>
3085
3086 PR tree-optimization/40219
3087 * tree.c (iterative_hash_expr): Make sure the builtin function is
3088 a normal builtin function and not a front end or back end builtin
3089 before indexing into the built_in_decls array.
3090
4d7a65ea
RG
30912009-05-22 Richard Guenther <rguenther@suse.de>
3092
3093 PR middle-end/38964
3094 * alias.c (write_dependence_p): Do not use TBAA for answering
3095 anti-dependence or output-dependence.
782dc37a 3096 * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
4d7a65ea
RG
3097 (emit_pointer_definition): Remove.
3098 (emit_alias_warning): Likewise.
3099 (find_what_var_points_to): Remove TBAA pruning code.
3100 (find_what_p_points_to): Likewise. Do not warn about strict-aliasing
3101 violations.
3102 (compute_points_to_sets): Remove code computing the set of
3103 dereferenced pointers.
3104 * tree-data-ref.c (dr_may_alias_p): Properly use the split
3105 oracle for querying anti and output dependencies.
3106 * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
3107 if TBAA may be applied.
3108 (refs_anti_dependent_p): New function.
3109 (refs_output_dependent_p): Likewise.
3110 * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
3111 (refs_output_dependent_p): Likewise.
3112 * doc/tree-ssa.texi (Memory model): New section.
3113 * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
3114 * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
3115 * cfgexpand.c (expand_gimple_basic_block): Do not handle
3116 GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
3117 * expr.c (expand_expr_real_1): Likewise.
3118 * gimple-low.c (lower_stmt): Likewise.
3119 * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
3120 (dump_gimple_cdt): Remove.
3121 * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
3122 (gimple_size): Likewise.
3123 (walk_gimple_op): Likewise.
3124 (is_gimple_stmt): Likewise.
3125 (walk_stmt_load_store_addr_ops): Likewise.
3126 (gimple_build_cdt): Remove.
3127 * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
3128 * gimple.h (gimple_cdt_new_type): Remove.
3129 (gimple_cdt_new_type_ptr): Likewise.
3130 (gimple_cdt_set_new_type): Likewise.
3131 (gimple_cdt_location): Likewise.
3132 (gimple_cdt_location_ptr): Likewise.
3133 (gimple_cdt_set_location): Likewise.
3134 * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
3135 * tree-cfg.c (remove_useless_stmts_1): Do not handle
3136 GIMPLE_CHANGE_DYNAMIC_TYPE.
3137 (verify_types_in_gimple_stmt): Likewise.
3138 * tree-inline.c (estimate_num_insns): Likewise.
3139 (expand_call_inline): Do not copy DECL_NO_TBAA_P.
3140 (copy_decl_to_var): Likewise.
3141 (copy_result_decl_to_var): Likewise.
3142 * tree-pretty-print.c (dump_generic_node): Do not handle
3143 CHANGE_DYNAMIC_TYPE_EXPR.
3144 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
3145 * tree-ssa-operands.c (get_expr_operands): Likewise.
3146 * tree-ssa-structalias.c (struct variable_info): Remove
3147 no_tbaa_pruning member.
3148 (new_var_info): Do not set it based on DECL_NO_TBAA_P.
3149 (unify_nodes): Do not copy it.
3150 (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
3151 (dump_solution_for_var): Do not dump no_tbaa_pruning state.
3152 (set_uids_in_ptset): Do not check it.
3153 (find_what_var_points_to): Likewise.
3154 (compute_tbaa_pruning): Remove.
3155 (compute_points_to_sets): Do not call it.
3156 * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
3157 * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
3158 * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
3159 (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
3160 (DECL_NO_TBAA_P): Likewise.
3161 (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
3162 * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
3163 (expand_omp_atomic_pipeline): Do not set it.
3164 * print-tree.c (print_node): Do not dump it.
3165 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
3166 redundant check.
3167
83a6ac60
VM
31682009-05-22 Vladimir Makarov <vmakarov@redhat.com>
3169
3170 PR target/39856
3171 * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
3172 for clobber.
3173
fe2978fb
MM
31742009-05-22 Mark Mitchell <mark@codesourcery.com>
3175
3176 * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
3177 non-external.
3178
134ef638
BE
31792009-05-22 Ben Elliston <bje@au.ibm.com>
3180
3181 * Makefile.in (bversion.h, s-bversion): New targets.
3182 (TOPLEV_H): Add bversion.h.
3183 * toplev.h: Include "bversion.h".
3184 (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
3185 the __format__ attribute only if compiling with the same version
3186 of GCC as the sources (the "build version").
3187
52fc669d
BE
31882009-05-22 Ben Elliston <bje@au.ibm.com>
3189
3190 * c-format.c (handle_format_attribute): Fix comment typo.
3191
583ca921
SE
31922009-05-21 Steve Ellcey <sje@cup.hp.com>
3193
3194 PR target/37846
3195 * config/ia64/ia64.opt (mfused-madd): New.
3196 * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
3197 * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
3198 * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
3199 madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
3200 nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
3201 msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
3202 nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
3203 * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms
3204 instruction if !TARGET_FUSED_MADD.
3205 (fpma, fpms): Remove colon from name.
3206
150e3929
RG
32072009-05-22 Richard Guenther <rguenther@suse.de>
3208
3209 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
3210 TMR_ORIGINAL. Always either record TMR_SYMBOL or TMR_BASE.
3211 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
3212 TARGET_MEM_REF.
3213 (create_expression_by_pieces): Only convert if necessary.
3214 * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
3215 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
3216
9a2b090c
AN
32172009-05-21 Adam Nemet <anemet@caviumnetworks.com>
3218
3219 * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
3220 regular pattern from a template and rename it ...
3221 (*extzv_truncsi_exts): ... to this.
3222
33b92c9d
RG
32232009-05-21 Richard Guenther <rguenther@suse.de>
3224
3225 * cgraph.h (struct cgraph_node): Remove inline_decl member.
3226 * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
3227 (cgraph_default_inline_p): Likewise.
3228 (cgraph_decide_inlining_incrementally): Likewise.
3229
cabf85c3
L
32302009-05-21 H.J. Lu <hongjiu.lu@intel.com>
3231 Uros Bizjak <ubizjak@gmail.com>
3232
3233 * config/i386/cpuid.h (bit_MOVBE): New.
3234
3235 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
3236
3237 * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
3238 (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
3239 (ix86_handle_option): Handle OPT_mmovbe.
3240 (ix86_target_string): Add -mmovbe.
3241 (pta_flags): Add PTA_MOVBE.
3242 (processor_alias_table): Add PTA_MOVBE to "atom".
3243 (override_options): Handle PTA_MOVBE.
3244
3245 * config/i386/i386.h (TARGET_MOVBE): New.
3246
3247 * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
3248 (*bswapsi_movbe): New.
3249 (*bswapdi_movbe): Likewise.
3250 (bswapdi2): Renamed to ...
3251 (*bswapdi_1): This.
3252 (bswapdi2): New expander.
3253
3254 * config/i386/i386.opt (mmovbe): New.
3255
3256 * doc/invoke.texi: Document -mmovbe.
3257
9fefa0aa
TG
32582009-05-21 Taras Glek <tglek@mozilla.com>
3259
3260 * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
3261 * gcc-plugin.h (plugin_init): Updated signature.
3262 * gcc-plugin.h (plugin_name_args): Moved to this header.
cabf85c3
L
3263 * doc/plugins.texi (plugin_init): Updated documention to reflect
3264 API change.
9fefa0aa
TG
3265 * doc/plugins.texi (plugin_name_args): Added to documention.
3266
1ea9fe56
MM
32672009-05-21 Mark Mitchell <mark@codesourcery.com>
3268
3269 * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
3270 (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
3271
52f84254
SZ
32722009-05-21 Shujing Zhao <pearly.zhao@oracle.com>
3273
3274 * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
3275 JUMP_TABLE_DATA_P predicates where applicable.
3276 * config/i386/predicates.md: Ditto.
3277 * config/i386/sse.md: Ditto.
3278
a952487c
JJ
32792009-05-21 Jakub Jelinek <jakub@redhat.com>
3280
93cac287
JJ
3281 * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
3282 operand2 -128 override length_immediate attribute to 1.
3283 * config/i386/predicates.md (constm128_operand): New predicate.
3284
a952487c
JJ
3285 * config/i386/i386.c (memory_address_length): Handle %r12
3286 the same as %rsp and %r13 the same as %rbp. For %rsp and %rbp
3287 also check REGNO.
3288 (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
3289 mode look through optional ZERO_EXTEND and SUBREG.
3290 * config/i386/i386.md (R12_REG): New define_constant.
3291 (prefix_data16): For sse unit set also for MODE_TI insns.
3292 (prefix_rex): For -m32 always return 0. For TYPE_IMOVX
3293 insns set if operand 1 is ext_QIreg_operand.
3294 (modrm): For TYPE_IMOV clear only if not MODE_DI. For
3295 TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
3296 immediate.
3297 (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
3298 mode from MODE_DI to MODE_SI.
3299 (movdi_1_rex64): Override modrm and length_immediate attributes
3300 only for movabs (TYPE_IMOV, alternative 2).
3301 (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
3302 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
3303 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
3304 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
3305 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
3306 prefix_rex attribute if DImode.
3307 (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
3308 *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
3309 *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
3310 *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
3311 attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
3312 (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
3313 Likewise. For TYPE_IMOV clear length_immediate attribute.
3314 (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
3315 *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
3316 *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
3317 *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
3318 *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
3319 or one operand TYPE_ISHIFT.
3320 (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
3321 *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
3322 *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
3323 *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
3324 *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
3325 *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
3326 *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
3327 *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
3328 *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
3329 *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
3330 *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
3331 *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
3332 *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
3333 *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
3334 *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
3335 *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
3336 *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
3337 set mode attribute, don't override length attribute.
3338 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
3339 to 1.
3340 (return_internal_long): Set length attribute to 2 instead of 1.
3341 (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
3342 *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
3343 prefix_rex attribute.
782dc37a
UB
3344 * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
3345 New predicates.
3346 (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
a952487c 3347
64af62c2
RR
33482009-05-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3349
3350 * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
3351
c166b898
ILT
33522009-05-20 Ian Lance Taylor <iant@google.com>
3353
3354 * tree.c (build_tree_list_vec_stat): New function.
3355 (ctor_to_vec): New function.
3356 (build_nt_call_vec): New function.
3357 (build_call_array): Change args to be a const pointer.
3358 (build_call_vec): New function.
3359 * tree.h (build_nt_call_vec): Declare.
3360 (build_tree_list_vec_stat): Declare.
3361 (build_tree_list_vec): Define.
3362 (build_call_array): Update declaration.
3363 (build_call_vec): Declare.
3364 (ctor_to_vec): Declare.
3365 * c-common.c (tree_vector_cache): New static variable.
3366 (make_tree_vector): New function.
3367 (release_tree_vector): New function.
3368 (make_tree_vector_single): New function.
3369 (make_tree_vector_copy): New function.
3370 * c-common.h (tree_vector_cache, make_tree_vector): Declare.
3371 (make_tree_vector_single, make_tree_vector_copy): Declare.
3372 * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
3373 (c_parser_expr_list): Don't manage cache here, instead call
3374 make_tree_vector.
3375 (c_parser_release_expr_list): Remove static function.
3376 (c_parser_vec_to_tree_list): Remove static function.
3377 (c_parser_attributes): Call build_tree_list_vec instead of
3378 c_parser_vec_to_tree_list. Call release_tree_vector instead of
3379 c_parser_release_expr_list.
3380 (c_parser_postfix_expression_after_primary): Likewise.
3381 (c_parser_objc_keywordexpr): Likewise.
3382
40449a90
SL
33832009-05-20 Sandra Loosemore <sandra@codesourcery.com>
3384
3385 * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
3386 TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
3387 TARGET_CONVERT_TO_TYPE.
3388 * hooks.c (hook_tree_const_tree_null): Define.
3389 * hooks.h (hook_tree_const_tree_null): Declare.
3390 * target.h (struct gcc_target): Add invalid_parameter_type,
3391 invalid_return_type, promoted_type, and convert_to_type fields.
3392 * target-def.h: (TARGET_INVALID_PARAMETER_TYPE): Define.
3393 (TARGET_INVALID_RETURN_TYPE): Define.
3394 (TARGET_PROMOTED_TYPE): Define.
3395 (TARGET_CONVERT_TO_TYPE): Define.
3396 (TARGET_INITIALIZER): Update for new fields.
3397 * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
3398 (grokparms): Check targetm.invalid_parameter_type.
3399 * c-typeck.c (default_conversion): Check targetm.promoted_type.
3400 * c-convert.c (convert): Check targetm.convert_to_type.
3401
642d97ff
AN
34022009-05-20 Adam Nemet <anemet@caviumnetworks.com>
3403
3404 * config/mips/mips.md (*extenddi_truncate<mode>,
3405 *extendsi_truncate<mode>): Emit exts if supported. Add attribute
3406 defintions.
3407 (*extendhi_truncateqi): New define_insn_and_sptit.
3408
776248b8
JJ
34092009-05-20 Jakub Jelinek <jakub@redhat.com>
3410
3411 PR middle-end/40204
3412 * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
782dc37a 3413 recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
776248b8 3414
d98e8686
EB
34152009-05-20 Eric Botcazou <ebotcazou@adacore.com>
3416
3417 * fold-const.c (build_fold_addr_expr_with_type): Take the address of
3418 the operand of VIEW_CONVERT_EXPR.
3419
37c50435
L
34202009-05-20 H.J. Lu <hongjiu.lu@intel.com>
3421
3422 * config/i386/driver-i386.c (host_detect_local_cpu): Check
f3afc8a7 3423 extended family and model for Intel processors. Support Intel Atom.
37c50435 3424
dbb6088f
OH
34252009-05-20 Olivier Hainque <hainque@adacore.com>
3426
3427 * gstab.h (stab_code_type): Define, to be used instead of the
3428 __stab_debug_code enum, made anonymous. Add 2009 to the copyright
3429 notice.
3430 * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
3431 occurrences by stab_code_type.
3432 * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
3433
7ec49257
MJ
34342009-05-20 Martin Jambor <mjambor@suse.cz>
3435
3436 * tree-flow.h (insert_edge_copies_seq): Undeclare.
3437 (sra_insert_before): Likewise.
3438 (sra_insert_after): Likewise.
3439 (sra_init_cache): Likewise.
3440 (sra_type_can_be_decomposed_p): Likewise.
3441 * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
3442 * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
3443 (sra_insert_before): Likewise.
3444 (sra_insert_after): Likewise.
3445 (sra_init_cache): Likewise.
3446 (insert_edge_copies_seq): Made static and moved upwards.
3447
3448 * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
3449 case.
3450
3451 * tree-flow-inline.h (contains_view_convert_expr_p): New function.
3452
3453 * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
3454 (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
3455 simple copies.
3456
0328ae4d
RG
34572009-05-20 Richard Guenther <rguenther@suse.de>
3458
3459 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
3460 with mismatched comparison modes.
3461
a7994a57 34622009-05-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
782dc37a 3463
a7994a57 3464 * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
782dc37a
UB
3465 (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
3466 * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
3467 with shifts for Thumb2.
3468 (orsi_notsi): New for orn.
3469 (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
3470 (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
3471 * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
3472 (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
3473 Don't invert remainder for IOR.
a7994a57 3474
e36dc339
ZD
34752009-05-19 Zdenek Dvorak <ook@ucw.cz>
3476
3477 PR tree-optimization/40087
3478 * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
3479 number_of_iterations_ne): Rename never_infinite argument.
3480 (number_of_iterations_lt_to_ne, number_of_iterations_lt,
3481 number_of_iterations_le): Handle pointer-type ivs when
3482 exit_must_be_taken is false.
3483 (number_of_iterations_cond): Do not always assume that
3484 exit_must_be_taken if the control variable is a pointer.
3485
5cfd5d9b
AP
34862009-05-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
3487
3488 * c-typeck.c (build_binary_op): Allow % on integal vectors.
3489 * doc/extend.texi (Vector Extension): Document that % is allowed too.
3490
2f1c7156
L
34912009-05-19 H.J. Lu <hongjiu.lu@intel.com>
3492
3493 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
3494 ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
3495
7bb27074
MLI
34962009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
3497
3498 PR c/40172
3499 * c.opt (Wlogical-op): Disabled by default.
3500 * c-opt (c_common_post_options): Do not enable Wlogical-op with
3501 Wextra.
3502 * doc/invoke.texi (Wlogical-op): Likewise.
3503
5aefc6a0
EB
35042009-05-19 Eric Botcazou <ebotcazou@adacore.com>
3505
3506 * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
3507 into CASE_CONVERT.
3508 <PLUS_EXPR>: Strip useless type conversions instead of type nops.
3509 Propagate the type of the first operand.
3510 <ASSERT_EXPR>: Simplify.
3511 (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
3512 Rewrite using the RHS code as discriminant.
3513 <NOP_EXPR>: Turn into CASE_CONVERT.
3514 <PLUS_EXPR>: Propagate the type of the first operand.
3515
f3a83111
SE
35162009-05-19 Steve Ellcey <sje@cup.hp.com>
3517
3518 * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
3519 (ia64_dconst_0_375): New.
3520 * config/ia64/ia64.c (ia64_override_options): Remove
3521 -minline-sqrt-min-latency warning.
3522 (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
3523 (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
3524 * config/ia64/ia64.md (*sqrt_approx): Remove.
3525 (sqrtsf2): Remove #if 0.
3526 (sqrtsf2_internal_thr): Rewrite and move to div.md.
3527 (sqrtdf): Remove assert.
3528 (sqrtdf2_internal_thr): Rewrite and move to div.md.
3529 (sqrtxf2): Remove #if 0.
3530 (sqrtxf2_internal_thr): Rewrite and move to div.md.
3531 * div.md (sqrt_approx_rf): New.
3532 (sqrtsf2_internal_thr): New implementation.
3533 (sqrtsf2_internal_lat): New.
3534 (sqrtdf2_internal_thr: New implementation.
3535 (sqrtxf2_internal): New implementation.
3536
1ffc7157
FXC
35372009-05-19 Francois-Xavier Coudert <fxcoudert@gmail.com>
3538 Hans-Peter Nilsson <hp@axis.com>
3539
3540 * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
3541 (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
3542 (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
3543 (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
3544 (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
3545 (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
3546 (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
3547 (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
3548 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
3549 (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
3550 * c-common.c: ...from here.
3551
db91d9ef
MLI
35522009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
3553
f3afc8a7 3554 * c-common.c (warn_logical_operator): Remove unnecessary conditionals.
db91d9ef 3555
bbb9d91f
KG
35562009-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3557
3558 * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
3559
ce883f54
BE
35602009-05-19 Ben Elliston <bje@au.ibm.com>
3561
3562 * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
3563 assignments with memcpy calls.
3564 (add_fdes): Likewise.
3565 (binary_search_unencoded_fdes): Likewise.
3566 (linear_search_fdes): Eliminate type puns.
3567
377f099a
RG
35682009-05-19 Richard Guenther <rguenther@suse.de>
3569
3570 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
3571 not falsely claim to have propagated into all uses.
3572
848bc769
BE
35732009-05-19 Ben Elliston <bje@au.ibm.com>
3574
3575 * doc/invoke.texi (C Dialect Options): Update OpenMP specification
3576 version to v3.0.
3577
1bb99877
KK
35782009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
3579
3580 * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
3581 * config/sh/sh.c (sh_legitimate_address_p): Make static.
3582 (TARGET_LEGITIMATE_ADDRESS_P): New.
3583 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3584 * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
3585
82725547
DS
35862009-05-18 Dodji Seketeli <dodji@redhat.com>
3587
3588 PR debug/40109
3589 * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
3590 child of the containing namespace's DIE.
3591
f6a1e430
AN
35922009-05-18 Adam Nemet <anemet@caviumnetworks.com>
3593
3594 * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
3595 *zero_extendhi_truncqi): Move after the zero_extend patterns.
3596 (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
3597 extend patterns.
3598
6a90d232
L
35992009-05-18 H.J. Lu <hongjiu.lu@intel.com>
3600
3601 PR target/39942
3602 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
3603 gen_align with gen_pad.
3604 (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
3605 #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
3606
3607 * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
3608 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
3609
3610 * config/i386/i386.md (align): Renamed to ...
3611 (pad): This. Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
3612 ASM_OUTPUT_MAX_SKIP_PAD.
3613
c4406f74
AS
36142009-05-18 Andreas Schwab <schwab@linux-m68k.org>
3615
06555043
AS
3616 * config.gcc: Fix variable syntax.
3617
c4406f74
AS
3618 PR target/39531
3619 * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
3620 before calling exact_log2.
3621 (output_iorsi3): Likewise.
3622 (output_xorsi3): Likewise.
3623
99052692
KK
36242009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
3625
3626 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
3627 for the none zero constant operand except for EQ and NE
3628 comprisons even when the first operand is R0.
3629
f4aa3848
AK
36302009-05-18 Andreas Krebbel <krebbel1@de.ibm.com>
3631
3632 * config/s390/2064.md: Remove trailing whitespaces.
3633 * config/s390/2084.md: Likewise.
3634 * config/s390/constraints.md: Likewise.
3635 * config/s390/fixdfdi.h: Likewise.
3636 * config/s390/libgcc-glibc.ver: Likewise.
3637 * config/s390/s390-modes.def: Likewise.
3638 * config/s390/s390-protos.h: Likewise.
3639 * config/s390/s390.c: Likewise.
3640 * config/s390/s390.h: Likewise.
3641 * config/s390/s390.md: Likewise.
3642 * config/s390/tpf-unwind.h: Likewise.
3643
ab7256e4
MK
36442009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
3645
3646 * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
3647
75df395f
MK
36482009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
3649
3650 M68K TLS support.
3651 * configure.ac (m68k-*-*): Check if binutils support TLS.
3652 * configure: Regenerate.
3653 * config/m68k/predicates.md (symbolic_operand): Extend comment.
3654 * config/m68k/constraints.md (Cu): New constraint.
3655 * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
3656 (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
3657 (movsi): Handle TLS symbols.
3658 (addsi3_5200): Handle XTLS symbols, indent.
3659 * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
3660 (m68k_tls_reference_p): Declare.
3661 (m68k_legitimize_address): Declare.
3662 (m68k_unwrap_symbol): Declare.
3663 * config/m68k/m68k.opt (mxtls): New option.
3664 * config/m68k/m68k.c (ggc.h): Include.
3665 (m68k_output_dwarf_dtprel): Implement hook.
3666 (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
3667 (m68k_expand_prologue): Load GOT pointer when function needs it.
3668 (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
3669 (m68k_legitimate_constant_address_p): Same.
3670 (m68k_decompose_address): Handle TLS references.
3671 (m68k_get_gp): New static function.
3672 (enum m68k_reloc): New contants.
3673 (TLS_RELOC_P): New macro.
3674 (m68k_wrap_symbol): New static function.
3675 (m68k_unwrap_symbol): New function.
3676 (m68k_final_prescan_insn_1): New static function.
3677 (m68k_final_prescan_insn): New function.
3678 (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
3679 functions.
3680 (legitimize_pic_address): Handle TLS references..
3681 (m68k_tls_get_addr, m68k_get_tls_get_addr)
3682 (m68k_libcall_value_in_a0_p)
3683 (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
3684 (m68k_call_m68k_read_tp): Helper variables and functions for ...
3685 (m68k_legitimize_tls_address): Handle TLS references.
3686 (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
3687 New functions.
3688 (m68k_legitimize_address): Handle TLS symbols.
3689 (m68k_get_reloc_decoration): New static function.
3690 (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
3691 UNSPEC_RELOC32.
3692 (m68k_output_dwarf_dtprel): Implement hook.
3693 (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
3694 (m68k_libcall_value): Return result in A0 instead of D0 when asked by
3695 m68k_call_* routines.
3696 (sched_attr_op_type): Handle TLS symbols.
3697 (gt-m68k.h): Include.
3698 * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
3699 (LEGITIMATE_PIC_OPERAND_P): Support TLS.
3700
8b75fc9b
MJ
37012009-05-18 Martin Jambor <mjambor@suse.cz>
3702
3703 * ipa-prop.c (ipa_check_stmt_modifications): Removed.
3704 (visit_store_addr_for_mod_analysis): New function.
3705 (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
3706 (determine_cst_member_ptr): Use gimple_assign_single_p.
3707 (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
3708 (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
3709 operands. Don't check number of operands of a NOP_EXPR.
3710
f133d4a2
EF
37112009-05-18 Eric Fisher <joefoxreal@gmail.com>
3712
3713 * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
3714
ae8af500
L
37152009-05-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
3716
3717 PR c/40172
3718 * c-common.c (warn_logical_operator): Don't warn if one of
3719 expression isn't always true or false.
3720
25e8fde8
KT
37212009-05-17 Kai Tietz <kai.tietz@onevision.com>
3722
ae8af500
L
3723 * config/i386/biarch32.h: New file.
3724 * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
25e8fde8 3725
ef67af22
AN
37262009-05-17 Adam Nemet <anemet@caviumnetworks.com>
3727
3728 * config/mips/mips.md (*zero_extend<mode>_trunchi,
3729 *zero_extend<mode>_truncqi): Merge these into ...
3730 (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
3731 Name the pattern following this as *zero_extendhi_truncqi.
3732
e2d87023
BL
37332009-05-16 Brad Lucier <lucier@math.purdue.edu>
3734
3735 PR middle-end/39301
3736 * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
3737 * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
3738 (output_info): Make field HOST_WIDEST_INT.
3739 (print_statistics): Use HOST_WIDEST_INT_PRINT.
3740 (dump_bitmat_statistics): Same.
3741
428ddbf0
FXC
37422009-05-16 Francois-Xavier Coudert <fxcoudert@gmail.com>
3743
3744 * config.gcc (use_gcc_stdint): Set to wrap.
3745 * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
3746 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
3747 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
3748 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
3749 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
3750 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
3751 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
3752 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
3753
1ab8a8c2
JM
37542009-05-16 Joseph Myers <joseph@codesourcery.com>
3755
3756 * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
3757 tune_64.
3758 * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
3759 Move definitions earlier.
3760 (OPT_ARCH64, OPT_ARCH32): Define.
3761 (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
3762 and tune_64.
3763
70544f44
RE
37642009-05-16 Richard Earnshaw <rearnsha@arm.com>
3765
3766 PR target/40153
3767 * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
3768 implies.
3769
6241ded1
RE
37702009-05-16 Richard Earnshaw <rearnsha@arm.com>
3771
3772 * arm.md (movdi2): Copy non-reg values to DImode registers.
3773
a99c6711
JJ
37742009-05-16 Jakub Jelinek <jakub@redhat.com>
3775
40a8f07a
JJ
3776 PR target/39942
3777 * final.c (label_to_max_skip): New function.
3778 (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
3779 CODE_LABEL_NUMBER <= max_labelno.
3780 * output.h (label_to_max_skip): New prototype.
3781 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
3782 (ix86_avoid_jump_mispredicts): ... this. Don't define if
3783 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined. Update comment.
3784 Handle CODE_LABELs with >= 16 byte alignment or with
3785 max_skip == (1 << align) - 1.
3786 (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
3787 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
3788
a99c6711
JJ
3789 PR target/39942
3790 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
3791 .p2align 3 if MAX_SKIP is smaller than 7.
3792 * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
3793
7e5487a2
ILT
37942009-05-15 Ian Lance Taylor <iant@google.com>
3795
3796 * alias.c (struct alias_set_entry_d): Rename from struct
3797 alias_set_entry. Change all uses.
3798 * except.c (struct call_site_record_d): Rename from struct
3799 call_site_record. Change all uses.
3800 * except.h (struct eh_region_d): Rename from struct eh_region.
3801 Change all uses.
3802 * gcse.c (struct hash_table_d): Rename from struct hash_table.
3803 Change all uses.
3804 * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
3805 ivtype_map_elt. Change all uses.
3806 (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
3807 Change all uses.
3808 (struct ifsese_d): Rename fromstruct ifsese. Change all uses.
3809 * graphite.h (struct name_tree_d): Rename from struct name_tree.
3810 Change all uses.
3811 (struct sese_d): Rename from struct sese. Change all uses.
782dc37a
UB
3812 * omega.h (struct eqn_d): Rename from struct eqn. Change all uses.
3813 (struct omega_pb_d): Rename from struct omega_pb. Change all uses.
7e5487a2
ILT
3814 * optabs.h (struct optab_d): Rename from struct optab. Change all
3815 uses.
3816 (struct convert_optab_d): Rename from struct convert_optab.
3817 Change all uses.
3818 * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
3819 ipa_opt_pass. Change all uses.
3820 * tree-predcom.c (struct dref_d): Rename from struct dref. Change
3821 all uses.
3822
3823 * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
3824 defined as a typedef.
3825 (grokdeclarator): If -Wc++-compat, warn if a typedef is already
3826 defined as a tag.
3827
a243fb4a
MLI
38282009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
3829
3830 PR 16302
3831 * fold-const.c (make_range,build_range_check,merge_ranges): Move
3832 declaration to...
3833 (merge_ranges): Returns bool.
3834 * tree.h (make_range): .. to here.
3835 (build_range_check): Likewise.
3836 (merge_ranges): Likewise. Renamed from merge_ranges.
3837 * c-typeck.c (parser_build_binary_op): Update calls to
3838 warn_logical_operator.
3839 * c-common.c (warn_logical_operator): Add new warning.
3840 * c-common.h (warn_logical_operator): Update declaration.
3841
1b53c5f3
MLI
38422009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
3843
782dc37a 3844 * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
1b53c5f3 3845
c128599a
KG
38462009-05-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3847
f9bab007
KG
3848 * doc/install.texi: Document MPC requirements, flags etc.
3849
c128599a
KG
3850 * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
3851 (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
3852 Evaluate constant arguments.
3853 (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
3854 (fold_builtin_1): Likewise, also evaluate constant arguments.
3855 Remove superfluous break.
3856 (do_mpc_ckconv): New.
3857 * real.h: Include mpc.h.
3858 * toplev.c (print_version): Output MPC version info if available.
3859
d33e4b70
SL
38602009-05-15 Sandra Loosemore <sandra@codesourcery.com>
3861
782dc37a 3862 * fold-const.c (fold_convert_const_real_from_real): Check for overflow.
d33e4b70 3863
a02ab464
L
38642009-05-15 H.J. Lu <hongjiu.lu@intel.com>
3865
3866 * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
3867 only once.
3868
796bda22
JH
38692009-05-15 Jan Hubicka <jh@suse.cz>
3870
3871 * doc/invoke.texi (max-early-inliner-iterations): New flag.
3872 * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
3873 (try_inline): Fix return value.
3874 (cgraph_decide_inlining_incrementally): Honor new value.
3875 (cgraph_early_inlining): Handle indirect inlining.
3876 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
3877
d88e5c37
JH
38782009-05-15 Jan Hubicka <jh@suse.cz>
3879
3880 * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
3881 * cgraphunit.c (cgraph_finalize_function): Set it.
3882 (cgraph_expand_function): Use it.
3883
ae63687c
SL
38842009-05-15 Sandra Loosemore <sandra@codesourcery.com>
3885
3886 * real.c (encode_ieee_half): Define.
3887 (decode_ieee_half): Define.
3888 (ieee_half_format): Define.
3889 (arm_half_format): Define.
3890 * real.h (ieee_half_format): Declare.
3891 (arm_half_format): Declare.
3892
1bd74ad9
SL
38932009-05-15 Sandra Loosemore <sandra@codesourcery.com>
3894
3895 * optabs.c (prepare_float_lib_cmp): Test that the comparison,
3896 swapped, and reversed optabs exist before trying to use them.
3897
dc34db56
PB
38982009-05-15 Paul Brook <paul@codesourcery.com>
3899 Sandra Loosemore <sandra@codesourcery.com>
3900
dc34db56
PB
3901 * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
3902 loads. Allow PRE_DEC.
3903 (output_move_neon): Handle PRE_DEC.
3904 (arm_print_operand): Add 'A' for neon structure loads.
3905 * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
3906 * config/arm/neon.md (neon_mov): Update comment.
3907 * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
3908 calls.
3909 (Um): New constraint.
3910
1d405d7b
JH
39112009-05-15 Jan Hubicka <jh@suse.cz>
3912
3913 Revert the following patch until testsuite fallout is fixed:
3914 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
3915 * cgraph.h (struct inline_summary): New filed self_wize,
3916 size_inlining_benefit, self_time and time_inlining_benefit.
3917 (struct cgraph_global_info): Replace insns by time ans size fields.
3918 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
3919 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
3920 (ipcp_update_callgraph): Do not touch function bodies.
3921 * ipa-inline.c: Include except.h
782dc37a 3922 (MAX_TIME): New constant.
1d405d7b
JH
3923 (overall_insns): Remove
3924 (overall_size, max_benefit): New static variables.
3925 (cgraph_estimate_time_after_inlining): New function.
3926 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
3927 (cgraph_clone_inlined_nodes): Update size.
3928 (cgraph_mark_inline_edge): Update size.
3929 (cgraph_estimate_growth): Use size info.
3930 (cgraph_check_inline_limits): Check size.
3931 (cgraph_default_inline_p): Likewise.
3932 (cgraph_edge_badness): Compute badness based on benefit and size cost.
3933 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
3934 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
3935 and times.
1d405d7b 3936 (cgraph_decide_inlining): Likewise.
00c5fa1b
EB
3937 (cgraph_decide_inlining_incrementally): Likewise; honor
3938 PARAM_EARLY_INLINING_INSNS.
1d405d7b
JH
3939 (likely_eliminated_by_inlining_p): New predicate.
3940 (estimate_function_body_sizes): New function.
3941 (compute_inline_parameters): Use it.
3942 * except.c (must_not_throw_labels): New function.
3943 * except.h (must_not_throw_labels): Declare.
3944 * tree-inline.c (init_inline_once): Kill inlining_weigths
3945 * tree-ssa-structalias.c: Avoid uninitialized warning.
3946 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
3947 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
3948 (PARAM_INLINE_CALL_COST): Remove.
3949 (PARAM_EARLY_INLINING_INSNS): New.
3950
7ffa47ca
RG
39512009-05-15 Richard Guenther <rguenther@suse.de>
3952
3953 * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
3954 not TODO_update_ssa.
3955
828552ed
RG
39562009-05-15 Richard Guenther <rguenther@suse.de>
3957
3958 PR tree-optimization/39999
3959 * gimple.h (gimple_expr_type): Use the expression type looking
3960 through useless conversions.
3961 * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
3962 (vn_nary_op_insert_stmt): Likewise.
3963 (simplify_binary_expression): Likewise.
3964
248fc9f3
RG
39652009-05-15 Richard Guenther <rguenther@suse.de>
3966
3967 * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
3968 New options, enabled by default.
3969 * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
3970 Document.
3971 * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
3972 * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
3973 * tree-ssa-structalias.c (gate_tree_pta): New function.
3974 (pass_build_alias): Use it.
3975
16b29cc4
JM
39762009-05-15 Joseph Myers <joseph@codesourcery.com>
3977
3978 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
3979 recurse on an invariant address if a conversion from a pointer
3980 type to a wider integer type is involved.
3981
125cae84
JH
39822009-05-15 Jan Hubicka <jh@suse.cz>
3983
3984 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
3985 * cgraph.h (struct inline_summary): New filed self_wize,
3986 size_inlining_benefit, self_time and time_inlining_benefit.
3987 (struct cgraph_global_info): Replace insns by time ans size fields.
3988 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
3989 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
3990 (ipcp_update_callgraph): Do not touch function bodies.
3991 * ipa-inline.c: Include except.h
782dc37a 3992 (MAX_TIME): New constant.
125cae84
JH
3993 (overall_insns): Remove
3994 (overall_size, max_benefit): New static variables.
3995 (cgraph_estimate_time_after_inlining): New function.
3996 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
3997 (cgraph_clone_inlined_nodes): Update size.
3998 (cgraph_mark_inline_edge): Update size.
3999 (cgraph_estimate_growth): Use size info.
4000 (cgraph_check_inline_limits): Check size.
4001 (cgraph_default_inline_p): Likewise.
4002 (cgraph_edge_badness): Compute badness based on benefit and size cost.
4003 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
4004 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
4005 and times.
125cae84 4006 (cgraph_decide_inlining): Likewise.
00c5fa1b
EB
4007 (cgraph_decide_inlining_incrementally): Likewise; honor
4008 PARAM_EARLY_INLINING_INSNS.
125cae84
JH
4009 (likely_eliminated_by_inlining_p): New predicate.
4010 (estimate_function_body_sizes): New function.
4011 (compute_inline_parameters): Use it.
4012 * except.c (must_not_throw_labels): New function.
4013 * except.h (must_not_throw_labels): Declare.
4014 * tree-inline.c (init_inline_once): Kill inlining_weigths
4015 * tree-ssa-structalias.c: Avoid uninitialized warning.
4016 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
4017 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
4018 (PARAM_INLINE_CALL_COST): Remove.
4019 (PARAM_EARLY_INLINING_INSNS): New.
4020 doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
4021 (inline-call-cost): Remove.
4022 (early-inlining-insns): New.
4023
84fb43a1
EB
40242009-05-15 Eric Botcazou <ebotcazou@adacore.com>
4025
4026 * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters. Use them
4027 for bounds.
4028 (print_int_cst_bounds_in_octal_p): Likewise.
4029 (dbxout_type): Adjust calls to above functions. Be prepared to deal
4030 with subtypes.
4031 * dwarf2out.c (base_type_die): Likewise.
4032 (is_subrange_type): Delete.
4033 (subrange_type_die): Add LOW and HIGH parameters. Use them for bounds.
4034 (modified_type_die): Call subrange_type_for_debug_p on subtypes.
f3afc8a7
UB
4035 * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it
4036 if the destination type is boolean.
84fb43a1
EB
4037 (build_range_check): Do not special-case subtypes.
4038 (fold_sign_changed_comparison): Likewise.
4039 (fold_unary): Likewise.
4040 * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
4041 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
4042 * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
f3afc8a7
UB
4043 * tree.c (subrange_type_for_debug_p): New predicate based on the
4044 former is_subrange_type.
84fb43a1
EB
4045 * tree.h (subrange_type_for_debug_p): Declare.
4046 * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
4047 (convert_affine_scev): Remove call to above function.
4048 (chrec_convert_aggressive): Likewise.
4049 * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
4050 false for conversions involving subtypes.
4051 * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
4052 (vrp_val_min): Likewise.
4053 (needs_overflow_infinity): Likewise.
4054 (extract_range_from_unary_expr): Likewise.
4055
331d9186
PB
40562009-05-15 Paolo Bonzini <bonzini@gnu.org>
4057
e9351712
L
4058 * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
4059 * config/frv/frv.c: Likewise.
4060 * config/s390/s390.c: Likewise.
4061 * config/sparc/sparc.h: Likewise.
4062 * config/i386/i386.h: Likewise.
4063 * config/i386/i386.c: Likewise.
4064 * config/crx/crx.c: Likewise.
4065 * config/m68hc11/m68hc11.h: Likewise.
4066 * config/iq2000/iq2000.c: Likewise.
4067 * config/mn10300/mn10300.h: Likewise.
4068 * config/mn10300/mn10300.c: Likewise.
4069 * config/m68k/m68k.c: Likewise.
4070 * config/rs6000/rs6000.c: Likewise.
4071 * config/rs6000/xcoff.h: Likewise.
4072 * config/rs6000/linux64.h: Likewise.
4073 * config/rs6000/sysv4.h: Likewise.
4074 * config/score/score3.c: Likewise.
4075 * config/score/score7.c: Likewise.
4076 * config/score/score.c: Likewise.
4077 * config/arm/arm.md: Likewise.
4078 * config/mips/mips.c: Likewise.
4079 * config/mips/mips.md: Likewise.
4080 * config/bfin/bfin.h: Likewise.
4081 * config/pa/pa.c: Likewise.
4082 * config/pa/constraints.md: Likewise.
4083
4084 * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
4085 * config/pdp11/pdp11.c (legitimate_address_p): Delete.
4086 * config/pdp11/pdp11.h: Use memory_address_p instead.
331d9186 4087
09639a83
ILT
40882009-05-14 Ian Lance Taylor <iant@google.com>
4089
4090 * passes.c (finish_optimization_passes): Change i to int.
4091 * plugin.c (plugins_active_p): Change event to int.
4092 (dump_active_plugins): Likewise.
4093 * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
4094 Add cast.
4095 * tree.c (tree_range_check_failed): Change c to unsigned int.
4096 (omp_clause_range_check_failed): Likewise.
4097 (build_common_builtin_nodes): Change mode to int. Add cast.
4098 * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
4099 (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
4100
4101 * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
4102 ++ or -- with a variable of enum type.
4103
c04a56bf
SB
41042009-05-14 Steven Bosscher <steven@gcc.gnu.org>
4105
4106 PR driver/40144
4107 * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
4108
237ee620
SB
41092009-05-14 Steven Bosscher <steven@gcc.gnu.org>
4110
4111 * store-motion.c: Do not include params.h
4112 * Makefile.in: Fix dependencies for various files.
4113
1154c4fa
SB
41142009-05-14 Steven Bosscher <steven@gcc.gnu.org>
4115
4116 * auto-inc-dec.c: Fix pass description, remove apparent
4117 accidental duplication.
4118
61c27353
L
41192009-05-14 H.J. Lu <hongjiu.lu@intel.com>
4120
4121 PR middle-end/40147
4122 * ipa-utils.h (memory_identifier_string): Moved to ...
4123 * tree.h (memory_identifier_string): Here. Add GTY(()).
4124
c6c3dba9
PB
41252009-05-14 Paolo Bonzini <bonzini@gnu.org>
4126
4127 * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
4128 in the former documentation of...
4129 (GO_IF_LEGITIMATE_ADDRESS): ... this.
4130 * ira-conflicts.c (get_dup_num): Use address_operand.
4131 * targhooks.c (default_legitimate_address_p): New.
4132 * targhooks.h (default_legitimate_address_p): New.
4133 * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
4134 Call hook.
4135 * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
4136 * target.h (struct target): Add legitimate_address_p.
4137 * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
4138 (TARGET_INITIALIZER): Include it.
4139
4140 * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4141 * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
4142 * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
4143 (TARGET_LEGITIMATE_ADDRESS_P): New.
4144
4145 * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4146 (REG_OK_STRICT_P): Delete.
4147 * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
4148 (frv_legitimate_address_p_1): ... this.
4149 * config/frv/frv.c (frv_legitimate_address_p): Forward to...
4150 (frv_legitimate_address_p_1): ... the renamed old
4151 frv_legitimate_address_p.
4152 * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
4153 (TARGET_LEGITIMATE_ADDRESS_P): New.
4154
4155 * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4156 * config/s390/s390-protos.h (legitimate_address_p): Remove.
4157 * config/s390/s390.c (legitimate_address_p): Rename to...
4158 (s390_legitimate_address_p): ... this, make static.
4159 (legitimize_address): Adjust call.
4160 (TARGET_LEGITIMATE_ADDRESS_P): New.
4161 * config/s390/constraints.md ("e"): Call strict_memory_address_p.
4162
4163 * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4164 * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
4165 * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
4166 (TARGET_LEGITIMATE_ADDRESS_P): New.
4167
4168 * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4169 * config/spu/spu-protos.h (spu_legitimate_address): Remove.
4170 * config/spu/spu.c (spu_legitimate_address): Rename to...
4171 (spu_legitimate_address_p): ... this, make static.
4172 (TARGET_LEGITIMATE_ADDRESS_P): New.
4173
4174 * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4175 * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
4176 * config/sparc/sparc.c (legitimate_address_p): Rename to...
4177 (sparc_legitimate_address_p): ... this, make static and return bool.
4178 (legitimize_address): Adjust call.
4179 (TARGET_LEGITIMATE_ADDRESS_P): New.
4180
4181 * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4182 * config/i386/i386-protos.h (legitimate_address_p): Remove.
4183 * config/i386/i386.c (legitimate_address_p): Rename to...
4184 (ix86_legitimate_address_p): ... this, make static.
4185 (constant_address_p): Move after it, adjust call.
4186 (TARGET_LEGITIMATE_ADDRESS_P): New.
4187
4188 * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4189 * config/avr/avr-protos.h (legitimate_address_p): Remove.
4190 * config/avr/avr.c (legitimate_address_p): Rename to...
4191 (avr_legitimate_address_p): ... this, make static.
4192 (legitimize_address): Adjust call.
4193 (TARGET_LEGITIMATE_ADDRESS_P): New.
4194
4195 * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4196 * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
4197 * config/crx/crx.c (crx_legitimate_address_p): Make static.
4198 (TARGET_LEGITIMATE_ADDRESS_P): New.
4199
4200 * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4201 * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
4202 * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
4203 (TARGET_LEGITIMATE_ADDRESS_P): New.
4204
4205 * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4206 * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
4207 Remove.
4208 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
4209 Make static.
4210 (TARGET_LEGITIMATE_ADDRESS_P): New.
4211
4212 * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4213 * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
4214 Remove.
4215 * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
4216 Rename to...
4217 (m68hc11_legitimate_address_p): ... this, make static.
4218 (go_if_legitimate_address_internal): Rename to...
4219 (m68hc11_legitimate_address_p_1): ... this.
4220 (legitimize_address): Adjust call.
4221 (TARGET_LEGITIMATE_ADDRESS_P): New.
4222
4223 * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
782dc37a
UB
4224 * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
4225 * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
c6c3dba9
PB
4226 (TARGET_LEGITIMATE_ADDRESS_P): New.
4227
4228 * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4229 * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
4230 * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
4231 (mn10300_legitimate_address_p): ... this, make static.
4232 (TARGET_LEGITIMATE_ADDRESS_P): New.
4233
4234 * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4235 * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
4236 * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
4237 (TARGET_LEGITIMATE_ADDRESS_P): New.
4238
4239 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4240 (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
4241 (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
4242 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4243 * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
4244 * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
4245 (rs6000_legitimate_address_p): ... this, make static.
4246 (TARGET_LEGITIMATE_ADDRESS_P): New.
4247 (REG_MODE_OK_FOR_BASE_P): Delete.
4248 (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
4249
4250 * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4251 * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
4252 Delete.
4253 * config/picochip/picochip.c (picochip_legitimate_address_p): Make
4254 static, adjust types.
4255 (TARGET_LEGITIMATE_ADDRESS_P): New.
4256
4257 * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4258 * config/score/score.c (score_address_p): Rename to...
4259 (score_legitimate_address_p): ... this.
4260 (TARGET_LEGITIMATE_ADDRESS_P): New.
4261 * config/score/score3.c (score3_address_p): Rename to...
4262 (score3_legitimate_address_p): ... this.
4263 * config/score/score7.c (score7_address_p): Rename to...
4264 (score7_legitimate_address_p): ... this.
4265
4266 * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
4267 THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
4268 GO_IF_LEGITIMATE_ADDRESS): Delete.
4269 * config/arm/arm-protos.h (thumb1_legitimate_address_p,
4270 thumb2_legitimate_address_p): Delete.
4271 (arm_legitimate_address_p): Rename to...
4272 (arm_legitimate_address_outer_p): ... this.
4273 * config/arm/constraints.md ("Uq"): Adjust call.
4274 * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
f3afc8a7
UB
4275 * config/arm/arm.c (arm_legitimate_address_p): New, rename old one
4276 to...
c6c3dba9 4277 (arm_legitimate_address_outer_p): ... this.
f3afc8a7
UB
4278 (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make
4279 static.
c6c3dba9
PB
4280 (TARGET_LEGITIMATE_ADDRESS_P): New.
4281
4282 * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4283 * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
4284 * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
4285 (TARGET_LEGITIMATE_ADDRESS_P): New.
4286
4287 * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4288 * config/vax/vax-protos.h (legitimate_address_p): Remove.
4289 * config/vax/vax.c (legitimate_address_p): Rename to...
4290 (vax_legitimate_address_p): ... this, make static.
4291 (TARGET_LEGITIMATE_ADDRESS_P): New.
4292
4293 * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4294 * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
4295 * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
4296 (TARGET_LEGITIMATE_ADDRESS_P): New.
4297
4298 * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4299 * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
4300 * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
4301 (mmix_legitimate_address_p): ... this, make static.
4302 (TARGET_LEGITIMATE_ADDRESS_P): New.
4303
4304 * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4305 * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
4306 * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
4307 (TARGET_LEGITIMATE_ADDRESS_P): New.
4308
3bd0d9c8
PB
43092009-05-14 Paolo Bonzini <bonzini@gnu.org>
4310
4311 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
4312 of MODE_COMPLEX_INT.
4313
fe049033
RO
43142009-05-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4315
4316 * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
4317 LCT_NORMAL in function call.
4318 * mips-tdump.c (print_file_desc): Add cast to enum type.
4319 * mips-tfile.c (add_ext_symbol): Add casts to enum types.
4320 (mark_stabs): Add casts to enum types.
4321 (parse_stabs_common): Add casts to enum types.
16f7ad42 4322
b0907a6c
AN
43232009-05-13 Adam Nemet <anemet@caviumnetworks.com>
4324
4325 * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
4326 Check for invalid values of LETTER.
4327
d1c8e08a
TG
43282009-05-13 Taras Glek <tglek@mozilla.com>
4329
f3afc8a7
UB
4330 * attribs.c (register_attribute): moved out attribute registration
4331 into register_attribute.
4332 * doc/plugins.texi: Documented register_attribute and
4333 PLUGIN_ATTRIBUTES.
16f7ad42
TG
4334 * gcc-plugin.h: Added forward decl for register_attribute.
4335 * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
4336 * plugin.c (register_callback, invoke_plugin_callbacks): Added
4337 PLUGIN_ATTRIBUTES boilerplate.
d1c8e08a 4338
4ed7f970
DK
43392009-05-14 Dave Korn <dave.korn.cygwin@gmail.com>
4340
4341 * config/i386/msformat-c.c (ms_printf_length_specs): Use enumeration
4342 values even in sentinel and empty entries.
4343 (ms_printf_flag_specs): Likewise.
4344 (ms_scanf_flag_specs): Likewise.
4345 (ms_strftime_flag_specs): Likewise.
4346 (ms_print_char_table): Likewise.
4347 (ms_scan_char_table): Likewise.
4348 (ms_time_char_table): Likewise.
4349
3d8fa148
DK
43502009-05-13 Doug Kwan <dougkwan@google.com>
4351
4352 * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
4353
f06257d3
AN
43542009-05-13 Adam Nemet <anemet@caviumnetworks.com>
4355
4356 * config/mips/mips.md (store): Add attributes for QI and HI.
4357 Update comment.
4358 (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
4359 (truncdi<mode>2): ... this new pattern.
4360
fb201767
BH
43612009-05-13 Brad Hards <bradh@kde.org>
4362
4363 * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
4364
c7bda60e 43652009-05-14 Jakub Jelinek <jakub@redhat.com>
efc3527a
BE
4366 Ben Elliston <bje@au.ibm.com>
4367
4368 PR middle-end/40035
4369 * dse.c (check_mem_read_rtx): Guard against width == -1.
4370
ce985b43
MM
43712009-05-13 Michael Matz <matz@suse.de>
4372
4373 PR middle-end/39976
4374 * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
4375 (trivially_conflicts_p): New function.
4376 (insert_backedge_copies): Use it.
4377
7de1d221
JJ
43782009-05-13 Janis Johnson <janis187@us.ibm.com>
4379
4380 * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
4381 (handle_stdc_pragma): Use new enum constant names.
4382 (handle_pragma_float_const_decimal64): Ditto.
4383
bfefafc6
ILT
43842009-05-13 Ian Lance Taylor <iant@google.com>
4385
4386 * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
4387 tree.def.
4388
286c4fcb
NS
43892009-05-13 Nathan Sidwell <nathan@codesourcery.com>
4390
4391 * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
4392 * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
4393 multilibs.
4394 * config/m68k/m68k.h (FL_UCLINUX): Define.
4395
ebaa6ea7
JH
43962009-05-13 Jan Hubicka <jh@suse.cz>
4397
4398 * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
4399
2b703e1a
KK
44002009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
4401
4402 * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
4403 unless -fschedule-insns is specified.
4404
c3537723
KK
44052009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
4406
4407 PR target/39561
4408 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
4409 TARGET_EXPAND_CBRANCHDI4.
4410 * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
4411 * config/sh/sh.opt (mexpand-cbranchdi): Remove.
4412 (cmpeqdi): Fix comment.
4413
cdeed45a
KK
44142009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
4415
4416 * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
4417 (sh_legitimate_address_p): Likewise.
4418 * config/sh/sh.c (sh_legitimate_index_p): New.
4419 (sh_legitimate_address_p): Likewise.
4420 * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
4421 (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
4422 (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
4423 (MAYBE_BASE_REGISTER_RTX_P): New macro.
4424 (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
4425 (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
4426 (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
4427 (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
4428 (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
4429
02f0b13a
JH
44302009-05-12 Jan Hubicka <jh@suse.cz>
4431
4432 * tree-inline.c (estimate_operator_cost): Add operands;
4433 when division happens by constant, it is cheap.
4434 (estimate_num_insns): Loads and stores are not having cost of 0;
4435 EH magic stuff is cheap; when computing runtime cost of switch,
4436 use log2 base of amount of its cases; builtin_expect has cost of 0;
4437 compute cost for moving return value of call.
4438 (init_inline_once): Initialize time_based flags.
4439 * tree-inline.h (eni_weights_d): Add time_based flag.
4440
ecb7f6de
PB
44412009-05-12 Paolo Bonzini <bonzini@gnu.org>
4442
4443 * df-core.c: Update head documentation.
4444
c24151ce
MM
44452009-05-12 Michael Meissner <meissner@linux.vnet.ibm.com>
4446
4447 PR bootstrap/40118
4448 * rs6000.c (rs6000_generate_compare): Use op1b instead of
4449 shadowing exisiting variable op1.
4450
fbdf817d
UB
44512009-05-12 Uros Bizjak <ubizjak@gmail.com>
4452
704bf7c8 4453 PR target/37179
fbdf817d
UB
4454 * config/i386/driver-i386.c (processor_signatures): New enum.
4455 (SIG_GEODE): Move from vendor_signatures to processor_signatures.
4456 (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
4457 processor signature to detect geode processor.
4458
5e8d1826
PB
44592009-05-12 Paolo Bonzini <bonzini@gnu.org>
4460
4461 Revert:
4462
4463 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
4464
4465 * optabs.c (prepare_cmp_insn): Temporarily disable test that
4466 causes spurious differences between trunk and cond-optab branch.
4467
f90b7a5a
PB
44682009-05-12 Paolo Bonzini <bonzini@gnu.org>
4469
fbdf817d
UB
4470 * dojump.c (compare_from_rtx): Delete.
4471 * expmed.c (emit_store_flag): Only try cstore_optab. Canonicalize
4472 any MODE_CC mode to the cstorecc4 pattern. Use prepare_operand, fail
f90b7a5a
PB
4473 if the comparison does not satisfy the predicate; test predicates for
4474 operands 2 and 3 of a cstore pattern. Don't try cstore optab
4475 further if one existing pattern fails.
fbdf817d 4476 * expr.h (compare_from_rtx): Delete.
f90b7a5a 4477 (prepare_operand): Declare it.
fbdf817d 4478 * optabs.c: Change "lib call" to "libcall" throughout.
f90b7a5a 4479 (bcc_gen_fctn, setcc_gen_code, trap_rtx,
fbdf817d
UB
4480 HAVE_conditional_trap, emit_cmp_insn): Delete.
4481 (can_compare_p): Delete cmp_optab case.
f90b7a5a 4482 (prepare_float_lib_cmp): Return an rtx and a machine mode.
fbdf817d
UB
4483 Accept other parameters by value.
4484 (prepare_operand): Make non-static.
4485 (prepare_cmp_insn): Return an rtx and a machine mode. Accept
4486 other parameters by value. Try to widen operands here based on
4487 an optab_methods argument and looking at cbranch_optab.
4488 (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
4489 loop. Use cbranch_optab directly.
4490 (emit_cmp_and_jump_insns): Fix comment. Adjust call to
4491 prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
4492 assertion.
4493 (emit_conditional_move, emit_conditional_add): Inline what's needed
4494 of compare_from_rtx, using new prepare_cmp_insn for the rest.
4495 (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
4496 with COMPARE. Move cmov_optab and cstore_optab above
4497 with cbranch_optab, move cmp_optab down with ucmp_optab,
4498 remove tst_otpab. Do not initialize trap_rtx.
4499 (gen_cond_trap): Do it here. Use ctrap_optab. Test predicate
f90b7a5a
PB
4500 for trap code. Do not check HAVE_conditional_trap. Use
4501 prepare_cmp_insn. Accept no predicate for operand 3.
fbdf817d
UB
4502 * optabs.h (OTI_cmp): Mark as used only for libcalls.
4503 (OTI_ctrap, ctrap_optab): New.
4504 (tst_optab): Delete.
4505 (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
4506 * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
4507 with lookup of ctrap_optab.
f3afc8a7
UB
4508 * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn, setcc_gen_code):
4509 Delete.
fbdf817d
UB
4510 (ctrap_optab): New.
4511
4512 * combine.c (combine_simplify_rtx, simplify_set): Do not
4513 special case comparing against zero for cc0 machines.
f90b7a5a
PB
4514 * simplify-rtx.c (simplify_binary_operation_1): Never remove
4515 COMPARE on cc0 machines.
4516 (simplify_relational_operation): Return a new expression when
4517 a COMPARE could be removed.
fbdf817d
UB
4518 * final.c (final_scan_insn): Compare cc_status values
4519 against LHS of a (compare FOO (const_int 0)) cc0 source.
4520 Also check if cc_status.value is the full compare.
f90b7a5a 4521
fbdf817d
UB
4522 * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
4523 (cstoreMM4): Document.
f90b7a5a 4524 (conditional_trap): Document ctrapMM4 instead.
fbdf817d 4525 (sync_compare_and_swapMM): Refer to cbranchcc4.
f90b7a5a
PB
4526 (Dependent Patterns): Eliminate obsolete information referring to
4527 the old jump optimization phase.
fbdf817d 4528 (Canonicalization): Include cbranchcc4 case, omit canonicalization
f90b7a5a
PB
4529 of compares with 0 on cc0 machines.
4530 (Jump Patterns): Refer to MODE_CC jump patterns preferably,
4531 avoiding references to cc0. Remove text about storing operands
4532 in cmpMM.
4533 * doc/tm.texi (Condition Codes): Include blurb on different
4534 condition code representations, separate into subsections for
4535 CC0, MODE_CC and conditional execution.
4536
fbdf817d
UB
4537 * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
4538 alpha_emit_setcc): Accept operands and a machine mode.
4539 * config/alpha/alpha.c (alpha_emit_conditional_branch):
4540 Get code/op0/op1 from operands, use machine mode argument
4541 instead of alpha_compare.fp_p. Emit the branch here.
4542 (alpha_emit_setcc): Likewise, and return boolean.
4543 (alpha_emit_conditional_move): Likewise. Assert that
4544 cmp_op_mode == cmp_mode, and simplify accordingly.
4545 * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
4546 * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
4547 (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
4548 Delete.
4549 (stack probe test): Use cbranchdi4.
4550 * config/alpha/predicates.md (alpha_cbranch_operator): New.
4551
4552 * config/arc/arc.c (gen_compare_reg): Do not emit cmp.
4553 * config/arc/arc.h (movsicc, movsfcc): Use it.
4554 (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
4555 (cbranchsi4, cstoresi4): New.
4556 (cmpsi, bCC and sCC expanders): Remove.
4557
4558 * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
4559 * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
4560 * config/arm/predicates.md (arm_comparison_operator): Only include
4561 floating-point operators if there is a hardware floating-point unit.
4562 * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
4563 deferring to cbranch_cc and cstore_cc respectively.
4564 (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
4565 cbranch_cc, cstore_cc): New.
4566 (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
f90b7a5a 4567 arm_compare_op1.
fbdf817d
UB
4568 (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
4569
4570 * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
4571 * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
4572 as an argument.
4573 (adjust_insn_length): Adjust calls.
4574 (avr_reorg): Handle (compare (foo) (const_int 0)).
4575 * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
4576 (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
4577 (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
4578 (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
4579 (bCC): Remove.
4580 (cbranchqi4, cbranchhi4, cbranchsi4): New.
f90b7a5a
PB
4581 (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
4582
fbdf817d
UB
4583 * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
4584 (cbranchsi4, cstorebi4, cstoresi4): New.
f90b7a5a 4585 (movbisi): This insn is duplicate, split it to zero_extend.
fbdf817d
UB
4586 * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
4587 (bfin_gen_compare): Do not use them. Emit VOIDmode SET, not BImode.
4588 (bfin_optimize_loop): Use cbranch expander.
4589 * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
4590 * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
4591 (bfin_bimode_comparison_operator): ... this.
4592 (bfin_direct_comparison_operator): New.
f90b7a5a 4593
fbdf817d
UB
4594 * config/cris/cris.c (cris_normal_notice_update_cc): Look
4595 inside (compare FOO (const_int 0)).
4596 (cris_rtx_costs): Handle ZERO_EXTRACT.
4597 * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
4598 (*tstdi_non_v32): Fold in *cmpdi_non_v32.
4599 (*tstdi_v32): Delete.
4600 (*cmpdi_non_v32): Add M alternative for operand 1.
4601 (cmpsi, cmp<mode>): Make private.
4602 (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
4603 with COMPARE.
4604 (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
4605
4606 * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
4607 (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
4608 (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
f90b7a5a
PB
4609 (cc_reg_operand): New.
4610 (any_cond): Delete.
fbdf817d
UB
4611 * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
4612 crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
4613 * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
4614 * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
4615 crx_expand_scond): Delete.
4616
4617 * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
4618 (cbranchsi4): New.
4619 * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
4620 * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
4621
4622 * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
4623 cstoresi4, cstoresf4, cstoredf4): New.
4624 (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
4625 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
4626 Receive the entire operands array.
4627 * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
4628 * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
4629 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
4630 Get test/op0/op1 from the operands array.
4631 (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
4632
4633 * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
4634 (h8300_expand_store): New.
4635 * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
4636 (const_int 0)).
4637 (h8300_expand_branch): Emit compare here. Adjust for new arguments.
4638 (h8300_expand_store): New.
4639 * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
4640 or do not try to produce (set (cc0) REG).
4641 (peepholes): Wrap arguments with COMPARE. Add a peephole to
4642 change a compare into a move to a scratch register. Disable some
4643 peepholes when comparing with zero.
4644 (tstsi, tsthi, tstsi, cmpqi): Make private.
4645 (cmphi): Delete.
4646 (bCC, sCC): Delete.
4647 (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
4648 cstoresi4): New.
f90b7a5a
PB
4649
4650 * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
4651 ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
4652 (ix86_emit_i387_log1p): Use gen_cbranchxf4.
4653 (ix86_emit_i387_log1p): Use cbranchxf2.
4654 (ix86_expand_setcc): Return void.
4655 * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
4656 * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
4657 cmp<MODEF>, cmpcc): Remove.
fbdf817d
UB
4658 (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
4659 cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
4660 cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
f90b7a5a
PB
4661 (sCC and bCC expanders): Remove.
4662 (stack_protect_test): Use cbranchcc4.
4663
fbdf817d
UB
4664 * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
4665 Delete.
4666 (ia64_expand_compare): Accept three rtx by reference and return void.
4667 * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
4668 (ia64_expand_compare): Replace op0/op1 with *op0/*op1. Get code
4669 from *expr. Update *expr with the BImode comparison to do.
4670 * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
4671 cmptf, bCC, sCC, conditional_trap): Delete.
4672 (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4,
4673 cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
4674 cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
4675 ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
4676 * config/ia64/predicates.md (ia64_cbranch_operator): New.
4677
4678 * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
4679 type of last argument.
4680 * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
4681 (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
4682 use machine mode argument instead of branch_type. Remove dead
4683 code for floating-point comparisons.
4684 * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
4685 * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
4686 Remove.
4687 (cbranchsi4, cstoresi4): New.
4688 * config/iq2000/predicates.md (reg_or_const_operand): New.
4689
4690 * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
4691 * config/m32c/m32c.md (any_cond, gl_cond): Delete.
4692 (b<code>_op): Rewrite to...
4693 (bcc_op): ... this, using match_operator.
4694 (s<code>_op): Rewrite to...
4695 (scc_op): ... this, using match_operator.
4696 (s<code>_24_op): Rewrite to...
4697 (scc_op_24): ... this, using match_operator.
4698 (s<code>_<mode>): Rewrite to...
4699 (cstore<mode>4): ... this, using match_operator.
4700 (s<code>_<mode>_24): Rewrite to...
4701 (cstore<mode>4_24): ... this, using match_operator.
4702 * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
4703 m32c_unpend_compare, m32c_expand_scc): Delete.
4704 * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
4705 m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
4706 (m32c_expand_movcc): Change NE to EQ if necessary.
4707 (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
4708
4709 * config/m32r/m32r-protos.h (gen_cond_store): New.
4710 * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
4711 (gen_cond_store): New, from sCC patterns.
4712 (m32r_expand_block_move): Use cbranchsi4.
4713 * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
4714 * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
4715 (cbranchsi4, cstoresi4): New.
4716
4717 * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
4718 Delete.
4719 (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
f90b7a5a 4720 (m68hc11_notice_update_cc): Look into a compare with 0.
fbdf817d
UB
4721 * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
4722 Delete.
4723 * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
4724 cmphi, cmpqi, bCC): Delete.
4725 (cbranchsi4, cbranchhi4, cbranchqi4): New.
4726 (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
4727 bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
4728 sets with COMPARE.
4729
4730 * config/m68k/predicates.md (m68k_cstore_comparison_operator,
4731 const0_operand, const1_operand, m68k_subword_comparison_operand): New.
4732 * config/m68k/constraints.md (H): New.
4733 * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
4734 the define_insn below.
4735 (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
4736 (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
4737 *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
4738 patterns): Wrap RHS with COMPARE.
4739 (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
4740 (*cmpdi_internal): Name this pattern.
4741 (cmpdi): Change to define_insn.
4742 (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
4743 cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
4744 (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
4745 predicate.
4746 (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
4747 sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
4748 (conditional_trap): Change to...
4749 (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
4750 (*conditional_trap): Use the ordered_comparison_operator and
4751 const1_operand predicates.
4752 * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
4753 (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
4754 (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
4755 * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
4756
4757 * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
4758 mcore_modify_comparison, mcore_gen_compare_reg): Remove.
4759 (mcore_gen_compare): New.
4760 * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
4761 (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
4762 (mcore_gen_compare): ... this.
4763 * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
4764 (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
4765 (stack probe pattern): Use cbranchsi4.
4766
4767 * config/mips/predicates.md (mips_cstore_operator): New.
4768 * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
4769 * config/mips/mips.md (any_cond): Delete.
4770 (conditional_trap): Rename to ctrap<GPR:mode>4. Adjust predicates,
4771 always succeed.
4772 (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
4773 fixuns_truncsfdi2): Use cbranch patterns.
4774 (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete.
4775 (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
4776 Adjust call to mips_expand_conditional_branch.
4777 (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
4778 cstore<GPR:mode>4.
4779 * config/mips/mips-protos.h (mips_expand_conditional_branch,
4780 mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
4781 * config/mips/mips.c (cmp_operands): Delete.
4782 (mips_emit_compare): Get comparison operands from *op0/*op1.
4783 (mips_expand_scc): Get code/op0/op1/target from operands. Assert
4784 that it succeeds. Use op0/op1 instead of cmp_operands.
4785 (mips_expand_conditional_branch, mips_expand_conditional_move,
4786 mips_expand_conditional_trap): Likewise.
4787 (mips_block_move_loop): Use cbranch patterns.
4788 * config/mips/mips.h (cmp_operands): Delete.
4789
4790 * config/mmix/mmix.c (mmix_valid_comparison): Delete.
4791 (mmix_gen_compare_reg): Just return a register in the right CC mode.
4792 * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
4793 * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
4794 (*cmpcc_folded): Rename to...
4795 (*cmpdi_folded): this.
4796 (*cmpcc): Rename to...
4797 (*cmps): ... this.
4798 (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
4799 (bCC): Remove.
4800 (cbranchdi4): New.
4801 (cbranchdf4): New. Handle invalid comparisons here.
4802 * config/mmix/predicates.md (float_comparison_operator): New.
4803
4804 * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
4805 zero_extract to be cheap in (compare (zero_extract) (const_int 0).
4806 * config/mn10300/mn10300.md (tst): Delete.
4807 (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
4808 Name these patterns and wrap RHS in a compare.
4809 (*cmpsi): Make this pattern private. Include tst.
4810 (*cmpsf): Make this pattern private.
4811 (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
4812 (compare with zero peepholes): Likewise.
4813 (bCC): Remove.
4814 (cbranchsi4, cbranchsf4): New.
4815 (casesi): Use cbranchsi4.
4816
4817 * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
4818 hppa_branch_type): Delete.
4819 (return_addr_rtx): Use cbranchsi4.
4820 (emit_bcond_fp): Accept all operands. Replace CODE with NE.
4821 Emit CCFPmode comparison here.
4822 (gen_cmp_fp): Delete, now part of emit_bcond_fp.
4823 * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
4824 hppa_branch_type): Delete.
4825 * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
4826 (movsicc, movdicc): Remove references to hppa_compare_op0,
4827 hppa_compare_op1 and compare_from_rtx.
4828 (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
4829 (casesi): Use cbranchsi4.
4830
4831 * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
4832 * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
4833 * config/pdp11/pdp11.md (register_or_const0_operand): New.
4834 (cmpdf, cmphi, cmpqi): Make private. Add tst alternatives.
4835 (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
4836 (bCC): Delete.
4837 (cbranchdf4, cbranchhi4, cbranchqi4): New.
4838 (*branch, *branch_inverted): New.
4839
4840 * config/picochip/picochip.md (cbranchhi4): Use
4841 ordered_comparison_operator.
4842 (cmphi, bCC): Remove.
4843
4844 * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
4845 (trap_comparison_operator): Delete.
4846 * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
4847 rs6000_emit_cbranch): Accept mode and operands.
4848 * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
4849 rs6000_compare_fp_p): Delete.
4850 (rs6000_generate_compare): Accept mode and comparison. Extract code
4851 and op0/op1 from there. Replace references to rs6000_compare_op0
4852 and rs6000_compare_op1.
4853 (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
4854 extract result from passed operands.
4855 (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
4856 extract loc from passed operands.
4857 (rs6000_emit_cmove): Likewise.
4858 * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
4859 rs6000_compare_fp_p): Delete.
4860 * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
4861 (cbranch<GPR>4, cbranch<FP>4): New.
4862 (cstore<mode>4): New. Consolidate here all choices about when to use
4863 portable or specialized sCC sequences.
4864 (stack_protect_test): Use cbranchsi4.
4865 (conditional_trap): Replace with ctrap<GPR>4.
4866 (conditional trap insn): Replace trap_comparison_operator with
4867 ordered_comparison_operator.
4868
4869 * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
4870 (s390_emit_prologue): Use ctrap.
4871 * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
4872 * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
4873 New predicates replacing...
4874 * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
4875 (cmp<GPR>, cmp<FP>, cmpcc): Delete.
4876 (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
4877 (add<mode>cc): Do not use s390_compare_op0/op1.
4878 (s<code>): Change to...
4879 (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
4880 (seq): Change to...
4881 (cstorecc4): ... this. Handle EQ or NE equally.
4882 (*sne): Un-privatize for use in cstorecc4.
4883 (b<code>): Change to...
4884 (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
4885 (conditional_trap): Replace with...
4886 (ctrap<GPR>4, ctrap<FP>4): ... these.
4887 (stack_protect): Use cbranchcc4.
4888
4889 * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
4890 * config/score/score-protos.h (score_gen_cmp): Delete.
4891 * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
4892 (score_block_move-loop): Use cbranchsi4.
4893 * config/score/score.md (cbranchsi4): New.
4894 (cmpsi, bCC): Delete.
4895 * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
4896 (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
4897 * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
4898 (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
4899 * config/score/score3.h (score3_gen_cmp): Delete.
4900 * config/score/score7.h (score7_gen_cmp): Delete.
4901
4902 * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
4903 (sh_emit_scc_to_t): ... this. Return void.
4904 (from_compare): Rename to...
4905 (sh_emit_compare_and_branch): ... this.
4906 (sh_emit_compare_and_set): New.
4907 (sh_expand_t_scc): Accept operands.
4908 * config/sh/predicates.md (sh_float_comparison_operator): New.
4909 * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
4910 (prepare_scc_operands): Rename to...
4911 (sh_emit_scc_to_t): ... this. Return void. Get op0/op1 from
4912 arguments.
4913 (sh_emit_cheap_store_flag): New.
f90b7a5a 4914 (sh_emit_set_t_insn): New.
fbdf817d
UB
4915 (from_compare): Rename to...
4916 (sh_emit_compare_and_branch): ... this. Accept mode. Rewrite
4917 handling of TARGET_SH2E floating point to avoid recursive call.
4918 Generate branch here.
4919 (sh_emit_compare_and_set): New.
4920 (sh_expand_t_scc): Get op0/op1 from arguments.
4921 (sh_emit_cheap_store_flag): New.
4922 * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
4923 cases.
f90b7a5a 4924 (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
fbdf817d
UB
4925 (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
4926 (movsicc, movdicc): Do nothing when it recreated operands from
4927 sh_compare_*. Use sh_emit_cheap_store_flag. Adjust call to
4928 prepare_scc_operands (now sh_emit_scc_to_t).
4929 (udivdi3): Use cstoresi4.
4930 (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
4931 bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
4932 (cbranchint4_media, cbranchfp4_media): New.
4933 (casesi): Use cbranchdi4.
4934 (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
4935 Delete.
4936 (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
4937 (movnegt): Remove second operand.
4938 (cbranchsf4, cbranchdf4): New.
4939 (stack_protect): Use cbranchdi4/cbranchsi4.
4940
4941 * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
4942 (gen_compare_reg): Accept comparison, extract part of it to...
4943 (gen_compare_reg_1): ... this.
4944 (gen_compare_operator): Delete.
4945 (gen_v9_scc): Accept separate destination, comparison code and arms.
4946 Do not use sparc_compare_op0/sparc_compare_op1.
4947 (emit_scc_insn, emit_conditional_branch_insn): New.
4948 (emit_v9_brxx): Make static. Remove useless assertion.
4949 (sparc_emit_float_lib_cmp): Return RTL instead of calling
4950 emit_cmp_insn.
4951 (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
4952 * config/sparc/sparc-protos.h (gen_compare_reg,
f90b7a5a
PB
4953 sparc_emit_float_lib_cmp): Adjust prototype.
4954 (emit_scc_insn, emit_conditional_branch_insn): New.
4955 (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
fbdf817d
UB
4956 * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
4957 * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
4958 iterators to the top.
4959 (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
4960 snesi_special_extend, sCC, bCC, seqdi_special_trunc,
f90b7a5a 4961 snedi_special_trunc): Delete.
fbdf817d 4962 (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
f90b7a5a 4963 and snedi_special_trunc.
fbdf817d
UB
4964 (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
4965 cbranchdi4, cbranch<F:mode>4): New.
4966 (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
4967 here. Use gen_compare_reg instead of gen_compare_operator.
4968 (conditional_trap): Replace with...
4969 (ctrapsi4, ctrapdi4): ... this.
4970 (stack_protect_test): Use cbranchcc4.
4971
4972 * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
4973 argument to rtx.
4974 * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove.
4975 (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
4976 Change spu_compare_op0/op1 to op0/op1 throughout. Get target
4977 from operands[0] or operands[3] depending on is_set.
4978 * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
4979 * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
4980 cmpdf, bCC), sCC: Remove.
4981 (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4,
4982 cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
4983 cstoredf4): New.
4984 (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
4985 spu_emit_branch_or_set.
4986
4987 * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
4988 Add two arguments.
4989 * config/stormy16/stormy16.h (xstormy16_compare_op0,
4990 xstormy16_compare_op1): Delete.
4991 * config/stormy16/stormy16.c (xstormy16_compare_op0,
4992 xstormy16_compare_op1): Delete.
4993 (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
4994 Adjust calls.
4995 * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
4996 (cmphi, cmpsi, bCC): Remove.
4997
4998 * config/v850/v850.md (tstsi, cmpsi): Fold into...
4999 (*cmpsi): ... this one.
5000 (cbranchsi4, cstoresi4): New.
5001 (bCC expanders): Delete.
5002 (sCC insns): Fold into...
5003 (*setcc): ... this one.
5004 (casesi): Do not use gen_cmpsi and gen_bgtu.
f90b7a5a
PB
5005 (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
5006 (movsicc): Simplify.
5007 * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
5008
fbdf817d
UB
5009 * config/vax/vax-protos.h (cond_name): New.
5010 (vax_output_conditional_branch): Remove.
5011 * config/vax/vax.c (cond_name): New.
5012 (vax_output_conditional_branch): Remove.
5013 * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
5014 * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
5015 (cmp<VAXint>, cmp<VAXfp>): Privatize. Add constraints for tst.
5016 (bit<VAXint>): Wrap source with (compare).
5017 (b<code> and following unnamed pattern): Rename to *branch and
5018 *branch_reversed. Change macroization to match_operator.
5019 (cbranch<VAXint>4, cbranch<VAXfp>4): New.
5020
5021 * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
5022 * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
5023 Change last argument to machine_mode.
5024 (xtensa_expand_scc): Add machine_mode argument.
5025 * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
5026 (gen_conditional_move, xtensa_expand_conditional_branch,
5027 xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
5028 instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
5029 Adjust operand numbers.
5030 * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
5031 Delete.
5032 * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
5033 (cmpsi, cmpsf, b<code>, s<code>): Delete.
5034 (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
f90b7a5a 5035
16670495
PB
50362009-05-12 Paolo Bonzini <bonzini@gnu.org>
5037
5038 * optabs.c (prepare_cmp_insn): Temporarily disable test that
5039 causes spurious differences between trunk and cond-optab branch.
5040
4a4a4e99
AO
50412009-05-12 Alexandre Oliva <aoliva@redhat.com>
5042
5043 PR target/37137
5044 * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
5045
72b9acff
AO
50462009-05-12 Alexandre Oliva <aoliva@redhat.com>
5047
5048 * tree.c (iterative_hash_pointer): Delete.
5049 (iterative_hash_expr): Short-circuit handling of NULL pointer.
5050 Hash UIDs and versions of SSA names. Don't special-case built-in
5051 function declarations.
5052
b7dd69ac
ILT
50532009-05-11 Ian Lance Taylor <iant@google.com>
5054
5055 PR bootstrap/40103
5056 * graphite.c: Force -Wc++-compat to only be a warning before
5057 #including "cloog/cloog.h".
5058
ed102b70
MJ
50592009-05-11 Martin Jambor <mjambor@suse.cz>
5060
5061 * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
5062
08f1af2e
JH
50632009-05-11 Jan Hubicka <jh@suse.cz>
5064
5065 * tree-ssa-loop-ivcanon.c: Include target.h
5066 (struct loop_size): new structure.
5067 (constant_after_peeling): New predicate.
5068 (tree_estimate_loop_size): New function.
5069 (estimated_unrolled_size): Rewrite for new estimates.
5070 (try_unroll_loop_completely): Use new estimates.
5071 * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
5072
a7d39bd3
AP
50732009-05-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
5074
5075 * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
5076 libcpp interface change.
5077 (spu_macro_to_expand): Likewise.
5078
f5a1f0d0
PB
50792009-05-11 Paolo Bonzini <bonzini@gnu.org>
5080
5081 PR tree-optimization/40026
5082 * gimplify.c (gimplify_init_constructor): Change initial conditional
5083 to assertion. Rewrite TREE_OPERAND (*expr_p, 1) after
5084 optimize_compound_literals_in_ctor.
5085
c260f01f
NS
50862009-05-11 Nathan Sidwell <nathan@codesourcery.com>
5087
5088 * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
5089 New devices.
5090 * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
5091
df398a37
L
50922009-05-11 H.J. Lu <hongjiu.lu@intel.com>
5093
5094 * tree-vect-data-refs.c (vect_analyze_group_access): Use
5095 HOST_WIDE_INT for gap.
5096
4da39468
IR
50972009-05-11 Ira Rosen <irar@il.ibm.com>
5098
5099 PR tree-optimization/40074
5100 * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
5101 account in group size and step comparison.
5102
4effdf02
RG
51032009-05-11 Richard Guenther <rguenther@suse.de>
5104
5105 * passes.c (init_optimization_passes): Strip now incorrect comment.
5106 (execute_function_todo): Do not set PROP_alias.
5107 * tree-pass.h (PROP_alias): Remove.
5108 * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
5109 * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
5110 * tree-nrv.c (pass_return_slot): Likewise.
5111 * tree-object-size.c (pass_object_sizes): Likewise.
5112 * tree-ssa-dom.c (pass_dominator): Likewise.
5113 (pass_phi_only_cprop): Likewise.
5114 * tree-ssa-dse.c (pass_dse): Likewise.
5115 * tree-ssa-phiopt.c (pass_phiopt): Likewise.
5116 (pass_cselim): Likewise.
5117 * tree-ssa-pre.c (pass_pre): Likewise.
5118 (pass_fre): Likewise.
5119 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
5120 * tree-ssa-sink.c (pass_sink_code): Likewise.
5121 * tree-stdarg.c (pass_stdarg): Likewise.
5122 * tree-tailcall.c (pass_tail_calls): Likewise.
5123 * tree-vrp.c (pass_vrp): Likewise.
5124
24b97832
ILT
51252009-05-10 Ian Lance Taylor <iant@google.com>
5126
5127 * basic-block.h (enum profile_status): Break out of struct
5128 control_flow_graph.
5129 * cgraph.h (struct inline_summary): Break out of struct
5130 cgraph_local_info.
5131 * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
5132 of struct cgraph_order_sort.
fbdf817d 5133 * combine.c (enum undo_kind): New enum, broken out of struct undo.
24b97832
ILT
5134 * cse.c (struct branch_path): Break out of struct
5135 cse_basic_block_data.
5136 * except.h (enum eh_region_type): Break out of struct eh_region.
5137 * gcc.c (enum add_del): Break out of struct modify_target.
fbdf817d 5138 * genrecog.c (enum decision_type): Break out of struct decision_test.
24b97832
ILT
5139 * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
5140 ggc_pch_data.
fbdf817d
UB
5141 * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
5142 * regmove.c (enum match_use): New enum, broken out of struct match.
24b97832
ILT
5143 * sched-int.h (enum post_call_group): New enum, broken out of
5144 struct deps.
5145 (struct deps_reg): Break out of struct deps.
5146 * target.h (struct asm_int_op): Break out of struct gcc_target.
5147 * tree-eh.c (struct goto_queue_node): Break out of struct
5148 leh_tf_state.
5149 * tree-inline.h (enum copy_body_cge_which): Break out of
5150 copy_body_data.
5151 * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
5152
5153 * c-decl.c (in_struct, struct_types): New static variables.
5154 (pushtag): Add loc parameter. Change all callers.
5155 (lookup_tag): Add ploc parameter. Change all callers.
5156 (check_compound_literal_type): New function.
5157 (parser_xref_tag): Add loc parameter. Change all callers. If
5158 -Wc++-compat, warn about struct/union/enum types defined within a
5159 struct or union.
5160 (start_struct): Add enclosing_in_struct, enclosing_struct_types,
5161 and loc parameters. Change all callers. Change error calls to
5162 error_at, using loc. For a redefinition, if the location of the
5163 original definition is known, report it. Set in_struct and
fbdf817d 5164 struct_types. If -Wc++-compat warn if in sizeof, typeof, or alignof.
24b97832
ILT
5165 (finish_struct): Add new parameters enclosing_in_struct and
5166 enclosing_struct_types. Change all callers. Set
5167 C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
5168 in the struct. If in a struct, add this struct to struct_types.
5169 (start_enum): Add loc parameter. Change all callers. Use
5170 error_at for errors, using loc. For a redefinition, if the
5171 location of the original definition is known, report it. If in a
5172 struct, add this enum type to struct_types. If -Wc++-compat warn
5173 if in sizeof, typeof, or alignof.
fbdf817d
UB
5174 * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
5175 (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
24b97832
ILT
5176 (c_parser_enum_specifier): Get enum location for start_enum.
5177 (c_parser_struct_or_union_specifier): Get struct location for
5178 start_struct. Save in_struct and struct_types status between
5179 start_struct and finish_struct.
5180 (c_parser_cast_expression): Get location of cast.
5181 (c_parser_alignof_expression): Get location of type.
5182 (c_parser_postfix_expression): Likewise.
5183 (c_parser_postfix_expression_after_paren_type): Add type_loc
fbdf817d
UB
5184 parameter. Change all callers. Call check_compound_literal_type.
5185 Use type_loc for error about variable size type.
5186 * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
5187 of an enum constant from an enum type defined in a struct or union.
24b97832
ILT
5188 (c_cast_expr): Add loc parameter. Change all callers. If
5189 -Wc++-compat, warn about defining a type in a cast.
5190 * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
5191 (start_enum, start_struct, finish_struct): Update declarations.
5192 (parser_xref_tag, c_cast_expr): Update declarations.
5193 (check_compound_literal_type): Declare.
5194
7a2738fa
BE
51952009-05-11 Ben Elliston <bje@au.ibm.com>
5196
5197 * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
5198 for recent libcpp interface change.
5199 (rs6000_macro_to_expand): Likewise.
5200
af618949
MM
52012009-05-10 Michael Matz <matz@suse.de>
5202
5203 PR target/40031
5204 * config/arm/arm.c (require_pic_register): Emit on entry edge,
5205 not at entry of function.
5206
b7d7a473
RG
52072009-05-10 Richard Guenther <rguenther@suse.de>
5208
5209 PR tree-optimization/40081
5210 Revert
5211 * tree-sra.c (instantiate_element): Instantiate scalar replacements
5212 using the main variant of the element type. Do not fiddle with
5213 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
5214
5215 * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
5216 structs with volatile fields.
5217
078c3644
JH
52182009-05-10 Jan Hubicka <jh@suse.cz>
5219
5220 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
fbdf817d
UB
5221 (estimate_move_cost): Assert that it does not get called for
5222 VOID_TYPE_P.
078c3644
JH
5223 (estimate_num_insns): Skip VOID types in argument handling.
5224 (optimize_inline_calls): Delete unreachable blocks and verify that
5225 callgraph is valid.
5226
39ff5a96
JH
52272009-05-10 Jan Hubicka <jh@suse.cz>
5228
5229 * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
5230 * cgraph.c (cgraph_mark_address_taken_node): New function.
5231 (dump_cgraph_node): Dump new flag.
5232 * cgraph.h (struct cgraph_node): Add address_taken.
5233 (cgraph_mark_address_taken_node): New function.
39ff5a96
JH
5234 * ipa.c (cgraph_postorder): Prioritize functions with address taken
5235 since new direct calls can be born.
5236
9a0c6187
JM
52372009-05-10 Joseph Myers <joseph@codesourcery.com>
5238
5239 * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
5240 tok->val.node.node.
5241
4b685e14
JH
52422009-05-10 Jan Hubicka <jh@suse.cz>
5243
5244 PR middle-end/40084
fb0be169
EB
5245 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
5246 argument; rewrite.
4b685e14
JH
5247 (cgraph_update_edges_for_call_stmt): Take old_decl argument.
5248 * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
5249 * tree-inline.c (copy_bb): Set frequency correctly.
fb0be169
EB
5250 (fold_marked_statements): Update call to
5251 cgraph_update_edges_for_call_stmt.
4b685e14 5252
29d08eba
JM
52532009-05-10 Joseph Myers <joseph@codesourcery.com>
5254
5255 * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
5256 identifiers in diagnostics.
5257 * config/arm/arm.c (arm_handle_fndecl_attribute,
5258 arm_handle_isr_attribute): Likewise.
5259 * config/avr/avr.c (avr_handle_progmem_attribute,
782dc37a 5260 avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
29d08eba
JM
5261 * config/bfin/bfin.c (handle_int_attribute,
5262 bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
5263 bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
5264 bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
5265 Likewise.
5266 * config/darwin.c (darwin_handle_kext_attribute,
5267 darwin_handle_weak_import_attribute): Likewise.
5268 * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
5269 h8300_handle_eightbit_data_attribute,
5270 h8300_handle_tiny_data_attribute): Likewise.
5271 * config/i386/i386.c (ix86_handle_cconv_attribute,
782dc37a 5272 ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
29d08eba
JM
5273 * config/i386/winnt.c (ix86_handle_shared_attribute,
5274 ix86_handle_selectany_attribute): Likewise.
5275 * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
5276 * config/m32c/m32c.c (function_vector_handler): Likewise.
5277 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
5278 m68hc11_handle_fntype_attribute): Likewise.
5279 * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
5280 * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
5281 * config/mips/mips.c (mips_insert_attributes,
5282 mips_merge_decl_attributes, mips_expand_builtin): Likewise.
5283 * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
5284 rs6000_handle_struct_attribute): Likewise.
5285 * config/sh/sh.c (sh_insert_attributes,
5286 sh_handle_resbank_handler_attribute,
5287 sh_handle_interrupt_handler_attribute,
5288 sh2a_handle_function_vector_handler_attribute,
5289 sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
5290 Likewise.
5291 * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
5292 * config/spu/spu.c (spu_handle_fndecl_attribute,
5293 spu_handle_vector_attribute): Likewise.
5294 * config/stormy16/stormy16.c
5295 (xstormy16_handle_interrupt_attribute): Likewise.
5296 * config/v850/v850-c.c (ghs_pragma_section): Likewise.
5297 * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
5298
f41c4af3
JM
52992009-05-10 Joseph Myers <joseph@codesourcery.com>
5300
782dc37a 5301 * pretty-print.h (struct pretty_print_info): Add translate_identifiers.
f41c4af3
JM
5302 (pp_translate_identifiers): New.
5303 (pp_identifier): Only conditionally translate identifier to locale
5304 character set.
5305 * pretty-print.c (pp_construct): Set pp_translate_identifiers.
5306 (pp_base_tree_identifier): Only conditionally translate identifier
5307 to locale character set.
5308 * c-pretty-print.c (M_): Define.
5309 (pp_c_type_specifier, pp_c_primary_expression): Mark English
5310 fragments for conditional translation with M_.
5311 * tree-pretty-print.c (maybe_init_pretty_print): Disable
5312 identifier translation.
5313
896d7dbd
RG
53142009-05-10 Richard Guenther <rguenther@suse.de>
5315
5316 PR tree-optimization/40081
5317 * tree-sra.c (instantiate_element): Instantiate scalar replacements
5318 using the main variant of the element type. Do not fiddle with
5319 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
5320
9a23acef
JH
53212009-05-09 Jan Hubicka <jh@suse.cz>
5322
5323 PR middle-end/40080
5324 * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
5325 indirect calls; verify cgraph afterwards.
5326
d563610d
JH
53272009-05-09 Jan Hubicka <jh@suse.cz>
5328
5329 PR bootstrap/40082
5330 * ipa.c (update_inlined_to_pointer): New function.
5331 (cgraph_remove_unreachable_nodes): Use it.
5332
f08a18d0
JH
53332009-05-09 Jan Hubicka <jh@suse.cz>
5334
5335 * tree-eh.c (struct leh_state): Remove prev_try.
5336 (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
5337 not track prev_try.
5338 * except.c (gen_eh_region_cleanup, duplicate_eh_regions,
5339 copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
5340 remove_eh_handler_and_replace, foreach_reachable_handler,
5341 verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
5342 * except.h (struct eh_region): Remove eh_region_u_cleanup.
5343 (gen_eh_region_cleanup): Update prototype.
5344
0afd7219
JH
53452009-05-09 Jan Hubicka <jh@suse.cz>
5346
5347 PR middle-end/40043
5348 * except.c (copy_eh_region): Always set prev_try.
5349 (redirect_eh_edge_to_label): Find outer try.
5350 (foreach_reachable_handler): When looking for prev try
5351 handle case where previous try is not going to be taken.
5352
ad6c0864
MM
53532009-05-07 Michael Meissner <meissner@linux.vnet.ibm.com>
5354
5355 PR tree-optimization/40049
5356 * tree-vect-stmts.c (vectorizable_operation): If the machine has
5357 only vector/vector shifts, convert the type of the constant to the
5358 appropriate type to avoid building incorrect trees, which
5359 eventually have problems with garbage collection.
5360
c94f9067
JM
53612009-05-08 Joseph Myers <joseph@codesourcery.com>
5362
5363 * fold-const.c (fold_binary): Do not fold multiplication by 1 or
5364 -1 for complex floating-point types if honoring signed zeros.
5365
9187e02d
JH
53662009-05-08 Jan Hubicka <jh@suse.cz>
5367
20acb8a2
EB
5368 * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
5369 argument; handle correctly when profile is absent.
9187e02d
JH
5370 (build_cgraph_edges): Update.
5371 (rebuild_cgraph_edges): Update.
20acb8a2
EB
5372 * cgraph.c: Do not include varray.h.
5373 (cgraph_set_call_stmt_including_clones): New function.
5374 (cgraph_create_edge_including_clones): Likewise
5375 (cgraph_update_edges_for_call_stmt_node): New static cfunction.
9187e02d
JH
5376 (cgraph_update_edges_for_call_stmt): Handle clones.
5377 (cgraph_remove_node): Handle clone tree.
5378 (cgraph_remove_node_and_inline_clones): New function.
5379 (dump_cgraph_node): Dump clone tree.
5380 (cgraph_clone_node): Handle clone tree.
20acb8a2 5381 (clone_function_name): Bring here from tree-inline.c.
9187e02d 5382 (cgraph_create_virtual_clone): New function.
20acb8a2
EB
5383 * cgraph.h (ipa_replace_map): Move here from ipa.h.
5384 (cgraph_clone_info): New function.
9187e02d 5385 (strut cgraph_node): Add clone_info and new clone tree pointers.
20acb8a2
EB
5386 (cgraph_remove_node_and_inline_clones,
5387 cgraph_set_call_stmt_including_clones,
5388 cgraph_create_edge_including_clones,
5389 cgraph_create_virtual_clone): Declare.
9187e02d
JH
5390 (cgraph_function_versioning): Use VEC argument.
5391 (compute_call_stmt_bb_frequency): Update prototype.
5392 (cgraph_materialize_all_clones): New function.
5393 * ipa-cp.c (ipcp_update_cloned_node): Remove.
5394 (ipcp_create_replace_map): Update to VECtors.
5395 (ipcp_update_callgraph): Use virtual clones.
5396 (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
5397 (ipcp_update_profiling): Do not update local profiling.
5398 (ipcp_insert_stage): Use VECtors and virtual clones.
5399 * cgraphunit.c (verify_cgraph_node): Verify clone tree.
5400 (clone_of_p): New function.
5401 (cgraph_preserve_function_body_p): Use clone tree.
5402 (cgraph_optimize): Materialize clones.
5403 (cgraph_function_versioning): Update for VECtors.
5404 (save_inline_function_body): Use clone tree.
20acb8a2
EB
5405 (cgraph_materialize_clone): New function.
5406 (cgraph_materialize_all_clones): Likewise.
9187e02d
JH
5407 * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
5408 * ipa.c: Include gimple.h.
5409 (cgraph_remove_unreachable_nodes): Use clone tree.
20acb8a2
EB
5410 * ipa-prop.c (ipa_note_param_call): Update call to
5411 compute_call_stmt_bb_frequencycall.
9187e02d 5412 * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
20acb8a2 5413 * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
9187e02d
JH
5414 (copy_bb): Handle updating of clone tree; add new edge when new call
5415 appears.
5416 (expand_call_inline): Be strict about every call having edge.
5417 (clone_fn_id_num, clone_function_name): Move to cgraph.c.
5418 (delete_unreachable_blocks_update_callgraph): New function.
20acb8a2
EB
5419 (tree_function_versioning): Use VECtors; always remove unreachable
5420 blocks and fold conditionals.
5421 * tree-inline.h: Do not include varray.h.
9187e02d
JH
5422 (tree_function_versioning): Remove.
5423 * Makefile.in (GTFILES): Remove tree-inline.c
5424 * passes.c (do_per_function): Do only functions having body.
20acb8a2
EB
5425 * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
5426 tree.
9187e02d 5427
9b86d6bb
L
54282009-05-08 H.J. Lu <hongjiu.lu@intel.com>
5429 Andrew Morrow <acm@google.com>
5430
5431 PR c/36892
5432 * c-common.c (c_common_attribute_table): Permit deprecated
5433 attribute to take an optional argument.
5434 (handle_deprecated_attribute): If the optional argument to
5435 __attribute__((deprecated)) is not a string ignore the attribute
5436 and emit a warning.
5437
5438 * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
5439 * c-typeck.c (build_component_ref): Likewise.
5440 (build_external_ref): Likewise.
5441
5442 * toplev.c (warn_deprecated_use): Add an attribute argument.
5443 Emit the message associated with __attribute__((deprecated)).
5444
5445 * toplev.h (warn_deprecated_use): Updated.
5446
5447 * doc/extend.texi: Document new optional parameter to
5448 __attribute__((deprecated))
5449
82ad047f
ME
54502009-05-08 Michael Eager <eager@eagercon.com>
5451
5452 * config/rs6000/rs6000.md (*movdf_softfloat32): replace
5453 !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
5454
788d3075
RG
54552009-05-08 Richard Guenther <rguenther@suse.de>
5456
5457 PR tree-optimization/40062
5458 * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
5459 Avoid exponential behavior.
5460
00952e97
PB
54612009-05-08 Paolo Bonzini <bonzini@gnu.org>
5462
5463 PR rtl-optimization/33928
5464 PR 26854
5465 * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
5466 process_uses, build_single_def_use_links): New.
5467 (update_df): Update use_def_ref.
5468 (forward_propagate_into): Use get_def_for_use instead of use-def
5469 chains.
5470 (fwprop_init): Call build_single_def_use_links and let it initialize
5471 dataflow.
5472 (fwprop_done): Free use_def_ref.
5473 (fwprop_addr): Eliminate duplicate call to df_set_flags.
5474 * df-problems.c (df_rd_simulate_artificial_defs_at_top,
5475 df_rd_simulate_one_insn): New.
5476 (df_rd_bb_local_compute_process_def): Update head comment.
5477 (df_chain_create_bb): Use the new RD simulation functions.
5478 * df.h (df_rd_simulate_artificial_defs_at_top,
5479 df_rd_simulate_one_insn): New.
5480 * opts.c (decode_options): Enable fwprop at -O1.
5481 * doc/invoke.texi (-fforward-propagate): Document this.
5482
2ca862e9
JM
54832009-05-08 Joseph Myers <joseph@codesourcery.com>
5484
5485 PR c/24581
5486 * c-typeck.c (build_binary_op): Handle arithmetic between one real
5487 and one complex operand specially.
5488 * tree-complex.c (some_nonzerop): Do not identify a real value as
5489 zero if flag_signed_zeros.
5490
3e807ffc
PB
54912009-05-08 Paolo Bonzini <bonzini@gnu.org>
5492
5493 PR rtl-optimization/33928
7925c06c 5494 * loop-invariant.c (record_use): Fix && vs. || mishap.
3e807ffc 5495
1bfdbb29
PB
54962009-05-08 Paolo Bonzini <bonzini@gnu.org>
5497
5498 PR rtl-optimization/33928
e913423f
EB
5499 * loop-invariant.c (struct use): Add addr_use_p.
5500 (struct def): Add n_addr_uses.
5501 (struct invariant): Add cheap_address.
5502 (create_new_invariant): Set cheap_address.
5503 (record_use): Accept df_ref. Set addr_use_p and update n_addr_uses.
5504 (record_uses): Pass df_ref to record_use.
5505 (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
5506 used only as such.
1bfdbb29 5507
702cb2a0
KK
55082009-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
5509
5510 * config/sh/sh.c: Do not include c-pragma.h.
5511
5e8df753
AP
55122009-05-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
5513
5514 * config/spu/spu.c: Remove include of c-common.h.
5515
6ec637a4
JJ
55162009-05-07 Janis Johnson <janis187@us.ibm.com>
5517
5518 PR c/39037
5519 * c-common.h (mark_valid_location_for_stdc_pragma,
5520 valid_location_for_stdc_pragma_p, set_float_const_decimal64,
5521 clear_float_const_decimal64, float_const_decimal64_p): New.
5522 * c.opt (Wunsuffixed-float-constants): New.
5523 * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
5524 unsuffixed float constant, handle new warning.
5525 * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
5526 * c-decl.c (c_scope): New flag float_const_decimal64.
5527 (set_float_const_decimal64, clear_float_const_decimal64,
5528 float_const_decimal64_p): New.
5529 (push_scope): Set new flag.
5530 * c-parser.c (c_parser_translation_unit): Mark when it's valid
5531 to use STDC pragmas.
5532 (c_parser_external_declaration): Ditto.
5533 (c_parser_compound_statement_nostart): Ditto.
5534 * c-pragma.c (valid_location_for_stdc_pragma,
5535 mark_valid_location_for_stdc_pragma,
5536 valid_location_for_stdc_pragma_p, handle_stdc_pragma,
5537 handle_pragma_float_const_decimal64): New.
5538 (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
5539 * cp/semantics.c (valid_location_for_stdc_pragma_p,
5540 set_float_const_decimal64, clear_float_const_decimal64,
5541 float_const_decimal64_p): New dummy functions.
5542 * doc/extend.texi (Decimal Float): Remove statement that the
5543 pragma, and suffix for double constants, are not supported.
5544 * doc/invoke.texi (Warning Options): List new option.
5545 (-Wunsuffixed-float-constants): New.
5546
45b9b2e9
SB
55472009-05-08 Steven Bosscher <steven@gcc.gnu.org>
5548
5549 * config/i386/i386.c: Do not include c-common.h.
5550
e71da632
MH
55512009-05-07 Mark Heffernan <meheff@google.com>
5552
5553 * doc/invoke.texi (Debugging Options): Document change of debugging
5554 dump location.
e913423f 5555 * opts.c (decode_options): Make dump_base_name relative to
e71da632
MH
5556 aux_base_name directory.
5557
fe4c7bc6
HS
55582009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
5559
5560 * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
5561 * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
5562
3b3e44eb
RAE
55632009-05-07 Rafael Avila de Espindola <espindola@google.com>
5564
5565 * Makefile.in (install-plugin): Simplify a bit.
5566
fac41238
PB
55672009-05-07 Paolo Bonzini <bonzini@gnu.org>
5568
5569 * Makefile.in (OBJS-common): Add regcprop.o.
5570 (regcprop.o): New.
5571 * timevar.def (TV_CPROP_REGISTERS): New.
5572 * regrename.c (regrename_optimize): Return 0.
5573 (rest_of_handle_regrename): Delete.
5574 (pass_rename_registers): Point to regrename_optimize.
5575 (struct value_data_entry, struct value_data,
5576 kill_value_one_regno, kill_value_regno, kill_value,
5577 set_value_regno, init_value_data, kill_clobbered_value,
5578 kill_set_value, kill_autoinc_value, copy_value,
5579 mode_change_ok, maybe_mode_change, find_oldest_value_reg,
5580 replace_oldest_value_reg, replace_oldest_value_addr,
5581 replace_oldest_value_mem, copyprop_hardreg_forward_1,
5582 debug_value_data, validate_value_data): Move...
5583 * regcprop.c: ... here.
5584 (rest_of_handle_cprop): Delete.
5585 (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
5586
472e0df9
JJ
55872009-05-07 Jakub Jelinek <jakub@redhat.com>
5588
5589 PR middle-end/40057
5590 * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
5591 GEN_INT for 1 << bitnum.
5592 (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
5593 build_int_cst_type.
5594
0d50d55a
UB
55952009-05-07 Uros Bizjak <ubizjak@gmail.com>
5596
5597 * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
7925c06c 5598 Remove wrong description of "nand" operation.
0d50d55a 5599
22f597f1
RG
56002009-05-06 Richard Guenther <rguenther@suse.de>
5601 Adam Nemet <anemet@caviumnetworks.com>
5602
5603 * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
5604 comment. Add that if LHS is not a gimple register, then RHS1 has
5605 to be a single object (GIMPLE_SINGLE_RHS).
5606
641cac0b
AN
56072009-05-06 Adam Nemet <anemet@caviumnetworks.com>
5608
5609 * expr.c (get_def_for_expr): Move it up in the file.
5610 (store_field): When expanding a bit-field store, look at the
5611 defining gimple stmt for the masking conversion.
5612
5a5c6435
JJ
56132009-05-06 Janis Johnson <janis187@us.ibm.com>
5614
5615 PR middle-end/39986
5616 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
5617 decode_decimal64, encode_decimal128, decode_decimal128): Avoid
5618 32-bit memcpy into long.
5619
96474f36
JJ
56202009-05-06 Jakub Jelinek <jakub@redhat.com>
5621
5622 * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
5623 (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
5624 new_reg_loc_descr.
5625 (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
5626 instead of appending DW_OP_deref*.
5627
529ff441
MM
56282009-05-06 Michael Matz <matz@suse.de>
5629
5630 PR middle-end/40021
5631 * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
5632 (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
5633
9419a9fd
RAE
56342009-05-06 Rafael Avila de Espindola <espindola@google.com>
5635
5636 * Makefile.in (install-plugin): Fix srcdir handling.
5637
fff1894c
AB
56382009-05-06 Andrey Belevantsev <abel@ispras.ru>
5639
5640 * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
5641 when processing for not_regs_needed bitmap.
5642 * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
5643 handle TARGET_MEM_REF in lhs. Check TMR_BASE for NULL while
5644 handling it for rhs.
5645
700ae70c
L
56462009-05-06 H.J. Lu <hongjiu.lu@intel.com>
5647
ab3426a7 5648 * config/i386/i386.md (unnamed inc/dec peephole): Use
aa016ff7 5649 optimize_insn_for_size_p instead of optimize_size.
700ae70c
L
5650 * config/i386/predicates.md (incdec_operand): Likewise.
5651 (aligned_operand): Likewise.
5652 * config/i386/sse.md (divv8sf3): Likewise.
5653 (sqrtv8sf2): Likewise.
5654
67341fb5
L
56552009-05-06 H.J. Lu <hongjiu.lu@intel.com>
5656
5657 * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
5658
5659 * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
5660
87946f42
L
56612009-05-06 H.J. Lu <hongjiu.lu@intel.com>
5662
5663 * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
5664 ssemodesuffixf2c with avxmodesuffixf2c.
5665
1202aec1
JM
56662009-05-06 Joseph Myers <joseph@codesourcery.com>
5667
5668 PR c/40032
aa016ff7 5669 * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
1202aec1 5670
6e57a01d
JJ
56712009-05-05 Jakub Jelinek <jakub@redhat.com>
5672
5673 * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
5674 (struct tree_base): Adjust spacing for 8 bit boundaries.
5675 (struct tree_decl_common): Add decl_by_reference_flag bit.
5676 (DECL_BY_REFERENCE): Adjust.
5677 * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
5678 print DECL_BY_REFERENCE bit.
5679 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
5680 * dwarf2out.c (loc_by_reference, gen_decl_die): Check
5681 DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
5682 (gen_variable_die): Likewise. Check TREE_PRIVATE/TREE_PROTECTED
5683 unconditionally.
5684
32f579f6
JJ
5685 PR middle-end/39666
5686 * gimplify.c (gimplify_switch_expr): If case labels cover the whole
5687 range of the type, but default label is missing, add it with one
5688 of the existing labels instead of adding a new label for it.
5689
617ab743
JM
56902009-05-05 Joseph Myers <joseph@codesourcery.com>
5691
5692 * dwarf.h: Remove.
5693
bf016de8
RAE
56942009-05-05 Rafael Avila de Espindola <espindola@google.com>
5695
5696 * Makefile.in (enable_plugin, plugin_includedir): New.
5697 (install): Depend on install-plugin.
5698 (PLUGIN_HEADERS): New.
5699 (install-plugin): New.
5700 * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
5701
7f8fdb9f
RG
57022009-05-05 Richard Guenther <rguenther@suse.de>
5703
5704 PR tree-optimization/40022
5705 * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
5706 the only vuse.
5707 (phivn_valid_p): Fix tuplification error, simplify.
5708 (phiprop_insert_phi): Add dumps.
5709 (propagate_with_phi): Simplify.
5710
8d972839
RG
57112009-05-05 Richard Guenther <rguenther@suse.de>
5712
5713 PR middle-end/40023
aa016ff7 5714 * builtins.c (gimplify_va_arg_expr): Properly build the address.
8d972839 5715
66ba9b0b
SZ
57162009-05-05 Shujing Zhao <pearly.zhao@oracle.com>
5717
5718 * tree.h (strip_float_extensions): Remove duplicate declaration.
aa016ff7
UB
5719 (build_low_bits_mask, debug_fold_checksum, expand_function_end,
5720 expand_function_start, stack_protect_prologue, stack_protect_epilogue,
5721 block_ultimate_origin): Rearrange the declarations line to match the
5722 comment that indicates the .c file which the functions are defined.
5723 (dwarf2out_*, set_decl_rtl): Add comment.
5724 (get_base_address): Adjust comment.
5725 (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
5726 declarations line and add comment.
5727 (is_builtin_name): Add blank after function name, for clarity.
66ba9b0b 5728
4f1e4960
JM
57292009-05-04 Joseph Myers <joseph@codesourcery.com>
5730
5731 * attribs.c (decl_attributes): Use %qE for identifiers in
5732 diagnostics.
5733 * cgraphunit.c (verify_cgraph_node): Translate function names to
5734 locale character set in diagnostics.
5735 * coverage.c (get_coverage_counts): Use %qE for identifiers in
5736 diagnostics.
5737 * doc/invoke.texi (-finstrument-functions-exclude-function-list):
5738 Document that functions are named in UTF-8.
5739 * expr.c (expand_expr_real_1): Translate function names to locale
5740 character set in diagnostics.
5741 * gimplify.c (omp_notice_variable, omp_is_private,
5742 gimplify_scan_omp_clauses): Use %qE for identifiers in
5743 diagnostics.
5744 * langhooks.c (lhd_print_error_function): Translate function names
5745 to locale character set.
5746 * langhooks.h (decl_printable_name): Document that return value is
5747 in internal character set.
5748 * stmt.c: Include pretty-print.h
5749 (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
5750 diagnostics.
5751 (resolve_operand_name_1): Translate named operand name to locale
5752 character set.
5753 * stor-layout.c (finalize_record_size): Use %qE for identifiers in
5754 diagnostics.
5755 * toplev.c (announce_function): Translate function names to locale
5756 character set.
5757 (warn_deprecated_use): Use %qE for identifiers in diagnostics.
5758 (default_tree_printer): Use pp_identifier or translate identifiers
5759 to locale character set. Mark "<anonymous>" for translation.
5760 * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
5761 for identifiers in diagnostics.
5762 * tree.c (handle_dll_attribute): Use %qE for identifiers in
5763 diagnostics.
5764 * varasm.c (output_constructor): Use %qE for identifiers in
5765 diagnostics.
5766
40540e68
RAE
57672009-05-04 Rafael Avila de Espindola <espindola@google.com>
5768
5769 * configure.ac: use ` ` instead of $()
5770 * configure: Regenerate.
5771
33fc884c
BE
57722009-05-05 Ben Elliston <bje@au.ibm.com>
5773
5774 * config/pa/linux-atomic.c: Eliminate conditional include of
5775 errno.h on non-LP64 systems to simplify build requirements.
5776
88388a52
JM
57772009-05-04 Joseph Myers <joseph@codesourcery.com>
5778
5779 * c-common.c (handle_mode_attribute): Use %qE for identifiers in
5780 diagnostics.
5781 * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
5782 and pass value to identifier_to_locale.
5783 (warn_variable_length_array): Make name a tree.
5784 (grokdeclarator): Separate diagnostic texts for named and unnamed
5785 declarators. Use %qE for named declarators.
5786 * c-parser.c (c_lex_one_token): Use %qE for identifiers in
5787 diagnostics.
5788 * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
5789 identifiers in diagnostics.
5790 * c-typeck.c (push_member_name, start_init): Pass identifiers to
5791 identifier_to_locale. Mark "anonymous" strings for translation.
5792
960c5c79
ME
57932009-05-04 Michael Eager <eager@eagercon.com>
5794
5795 * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
aa016ff7 5796 address for DImode/DFmode only if double-precision FP regs.
960c5c79 5797
d083fbba
ME
57982009-05-04 Michael Eager <eager@eagercon.com>
5799
5800 * config/rs6000/rs6000.c (rs6000_libcall_value): Add
5801 TARGET_SINGLE_FLOAT check.
5802
c3ba8d32
ME
58032009-05-04 Michael Eager <eager@eagercon.com>
5804
5805 * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
5806
edce9f18
ME
58072009-05-04 Michael Eager <eager@eagercon.com>
5808
5809 * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
5810 * config/rs6000/t-xilinx: New
5811
506d7b68
PB
58122009-05-04 Paolo Bonzini <bonzini@gnu.org>
5813
e913423f 5814 * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
506d7b68
PB
5815 * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
5816 * gcc/explow.c (memory_address): Use target hook.
5817 * gcc/targhooks.c (default_legitimize_address): New.
5818 * gcc/targhooks.h (default_legitimize_address): New.
5819 * gcc/target.h (legitimize_address): New.
5820 * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
5821 (TARGET_INITIALIZER): Include it.
5822 * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
5823
5824 * config/bfin/bfin-protos.h (legitimize_address): Remove.
5825 * config/bfin/bfin.c (legitimize_address): Remove.
5826 * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
aa016ff7
UB
5827 * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
5828 Remove.
506d7b68
PB
5829 * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
5830 * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
5831
5832 * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
5833 THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
5834 * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
5835 * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
5836 * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
5837 * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
5838 * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
5839 * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
5840 * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
5841 * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
5842 * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
5843 * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
5844 * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
5845 * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
5846 * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
5847 * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
5848 * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
5849 * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
5850 * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
5851 * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
5852 * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
5853 * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
5854 * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
5855
5856 * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
5857 * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
5858 * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
5859 * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
5860 * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
5861 * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
5862 * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
5863 * gcc/config/arm/arm-protos.h (arm_legitimize_address,
5864 (thumb_legitimize_address): Delete.
5865 * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
5866 * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
5867 * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
5868 * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
5869 * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
aa016ff7
UB
5870 * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
5871 Delete.
5872 * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
5873 Delete.
506d7b68
PB
5874
5875 * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
5876 * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
5877 * config/m32r/m32r.c (m32r_legitimize_address): New.
5878 * config/m68k/m68k.c (m68k_legitimize_address): New.
5879 * config/score/score.c (score_legitimize_address): Standardize.
5880 * config/score/score3.c (score3_legitimize_address): Standardize.
5881 * config/score/score3.h (score3_legitimize_address): Adjust.
5882 * config/score/score7.c (score7_legitimize_address): Standardize.
5883 * config/score/score7.h (score7_legitimize_address): Adjust.
5884 * config/sh/sh.c (sh_legitimize_address): New.
5885 * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
5886
5887 * gcc/config/s390/s390.c (legitimize_address): Rename to...
5888 (s390_legitimize_address): ... this.
5889 * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
5890 (sparc_legitimize_address): ... this.
5891 * gcc/config/i386/i386.c (legitimize_address): Rename to...
5892 (ix86_legitimize_address): ... this.
5893 * gcc/config/avr/avr.c (legitimize_address): Rename to...
5894 (avr_legitimize_address): ... this.
5895 * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
5896 (mn10300_legitimize_address): ... this.
5897 * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
5898 (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
5899 (alpha_expand_mov): Adjust call.
5900
5901 * config/frv/frv.c (frv_legitimize_address): Return x on failure.
5902 * config/spu/spu.c (spu_legitimize_address): Likewise.
5903 * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
5904 * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
5905
a3af5087
JM
59062009-05-04 Joseph Myers <joseph@codesourcery.com>
5907
5908 * intl.c (locale_encoding, locale_utf8): New.
5909 (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
5910 * intl.h (locale_encoding, locale_utf8): Declare.
5911 * pretty-print.c: Include ggc.h. Include iconv.h if HAVE_ICONV.
5912 (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
5913 New.
5914 * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
5915 argument.
5916 (pp_tree_identifier): Define to call pp_base_tree_identifier.
5917 (pp_base_tree_identifier): Declare as function.
5918 (identifier_to_locale): Declare.
5919 * Makefile.in (pretty-print.o): Update dependencies.
aa016ff7 5920 * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
a3af5087 5921
ea5cd5f1
RG
59222009-05-04 Richard Guenther <rguenther@suse.de>
5923
5924 PR middle-end/40015
5925 * builtins.c (fold_builtin_memory_op): Do not decay to element
5926 type if the size matches the whole array.
5927
ddc2690a
KH
59282009-05-04 Kazu Hirata <kazu@codesourcery.com>
5929
5930 * expmed.c (synth_mult): When trying out a shift, pass the result
5931 of a signed shift.
5932
ef268d34
KH
59332009-05-04 Kazu Hirata <kazu@codesourcery.com>
5934
5935 * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
5936 (shiftsub1_cost): New.
5937 (init_expmed): Compute shiftsub1_cost.
5938 (synth_mult): Optimize multiplications by constants of the form
5939 -(2^^m-1) for some constant positive integer m.
5940
255d3827
RG
59412009-05-03 Richard Guenther <rguenther@suse.de>
5942
5943 PR c/39983
5944 * c-typeck.c (array_to_pointer_conversion): Do not built
5945 ADDR_EXPRs of arrays of pointer-to-element type.
5946 * c-gimplify.c (c_gimplify_expr): Revert change fixing
5947 up wrong ADDR_EXPRs after-the-fact.
5948 * c-common.c (strict_aliasing_warning): Strip pointer
5949 conversions for obtaining the original type.
5950 * builtins.c (fold_builtin_memset): Handle array types.
5951 (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
5952 and array types
5953
16c33770
RG
59542009-05-03 Richard Guenther <rguenther@suse.de>
5955
5956 PR middle-end/23329
5957 * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
5958 Do not lose casts from array types with unknown extent to array
5959 types with known extent.
5960 * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
5961 alias set compatibility.
5962
62a67c94
MLI
59632009-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
5964
5965 * flags.h (extra_warnings): Delete.
5966 * toplev.c (process_options): Handle Wuninitialized here.
5967 * opts.c (extra_warnings): Delete.
5968 (set_Wextra): Delete.
5969 (common_handle_option): -Wextra can be handled automatically.
5970 * c-opts.c (c_common_handle_option): Delete obsolete code.
5971 (c_common_post_options): Simplify comment.
5972 * common.opt (W): Add Var.
5973 (Wextra): Add Var.
5974 (Wuninitialized): Initialize to -1.
5975
8c7926c4
AN
59762009-05-03 Adam Nemet <anemet@caviumnetworks.com>
5977 Richard Guenther <rguenther@suse.de>
5978
5979 * expr.c (get_def_for_expr): New function.
5980 (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
5981 SSA rather than trees.
5982 <MULT_EXPR>: Likewise. Use subexp0 and subexp1 instead of
5983 TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
5984
fa5da7de
JM
59852009-05-03 Joseph Myers <joseph@codesourcery.com>
5986
5987 * c-common.c (reswords): Add _Imaginary.
5988 * c-common.c (enum rid): Add RID_IMAGINARY.
5989
2ddd5020
PB
59902009-05-03 Paolo Bonzini <bonzini@gnu.org>
5991
5992 * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
5993 Patch by Richard Guenther.
5994
aea88c05
AS
59952009-05-03 Anatoly Sokolov <aesok@post.ru>
5996
5997 * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
5998 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
5999 * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
6000 * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
6001 * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
6002 * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
6003 * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
6004 * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
6005 * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
6006 * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
6007 * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
6008 * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
6009 * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
6010 * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
6011 * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
6012 * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
6013 * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
6014 * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
6015
85e59f3a
RG
60162009-05-02 Richard Guenther <rguenther@suse.de>
6017
6018 PR tree-optimization/39940
6019 * tree-ssa-pre.c (eliminate): Make sure we may propagate before
6020 doing so.
6021
4636b850
RG
60222009-05-02 Richard Guenther <rguenther@suse.de>
6023
6024 PR middle-end/40001
6025 * tree-ssa.c (execute_update_addresses_taken): Properly check
6026 if we can mark a variable DECL_GIMPLE_REG_P.
6027 * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
6028 back to the end of the function.
6029 (is_gimple_reg_type): Remove complex type special casing.
6030 * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
6031 if not optimizing.
6032
5e10cb5a
BE
60332009-05-02 Ben Elliston <bje@au.ibm.com>
6034
6035 * doc/collect2.texi (Collect2): Document search path behaviour
6036 when configured with --with-ld.
6037
048bf48b
JH
60382009-05-02 Jan Hubicka <jh@suse.cz>
6039
6040 * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
6041 parameter; update callers.
aa016ff7
UB
6042 (coalesce_cost_edge): EH edges are costier because they needs
6043 splitting even if not critical and even more costier when there are
6044 multiple EH predecestors.
048bf48b 6045
d5c5f9ab
JH
60462009-05-02 Jan Hubicka <jh@suse.cz>
6047
6048 * except.c (remove_eh_handler_and_replace): Handle updating after
6049 removing TRY blocks.
6050
2ed1959a
EB
60512009-05-02 Eric Botcazou <ebotcazou@adacore.com>
6052
6053 * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
6054
d363a7e7
SB
60552009-05-02 Steven Bosscher <steven@gcc.gnu.org>
6056
6057 * varasm.c: Do not include c-pragma.h.
6058 * attribs.c: Do not incude c-common.h.
6059
9c3d55b4
MM
60602009-05-01 Michael Matz <matz@suse.de>
6061
6062 * calls.c (initialize_argument_information): Handle SSA names like
6063 decls with a non MEM_P DECL_RTL.
6064
ea264ca5
SB
60652009-05-01 Steven Bosscher <steven@gcc.gnu.org>
6066
6067 * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
6068 * ipa-utils.c: Likewise.
6069 * ipa-type-escape.c: Likewise.
6070 * cgraphunit.c Do not include c-common.h.
6071 * ipa-pure-const.c: Likewise.
6072 * tree-if-conv.c: Likewise.
6073 * matrix-reorg.c: Do not include c-common.h and c-tree.h.
6074 * ipa-struct-reorg.c: Likewise.
6075 * tree-nomudflap.c: Likewise.
6076 * tree-ssa-structalias.c: Likewise.
6077
6c5d4d1a
SB
60782009-05-01 Steven Bosscher <steven@gcc.gnu.org>
6079
6080 * store-motion.c: Many cleanups to make this pass a first-class
6081 citizen instead of an appendix to gcse load motion. Add TODO list
6082 to make this pass faster/cleaner/better.
6083
6084 (struct ls_expr): Post gcse.c-split cleanups.
6085 Rename to st_expr. Rename "loads" field to "antic_stores". Rename
6086 "stores" field to "avail_stores".
6087 (pre_ldst_mems): Rename to store_motion_mems.
6088 (pre_ldst_table): Rename to store_motion_mems_table.
6089 (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
6090 (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
6091 (ldst_entry): Rename to st_expr_entry, update users.
6092 (free_ldst_entry): Rename to free_st_expr_entry, update users.
6093 (free_ldst_mems): Rename to free_store_motion_mems, update users.
aa016ff7
UB
6094 (enumerate_ldsts): Rename to enumerate_store_motion_mems,
6095 update caller.
6c5d4d1a
SB
6096 (first_ls_expr): Rename to first_st_expr, update users.
6097 (next_ls_expr): Rename to next_st_expr, update users.
6098 (print_ldst_list): Rename to print_store_motion_mems. Print names of
6099 fields properly for store motion instead of names inherited from load
6100 motion in gcse.c.
6101 (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
6102 (LAST_AVAIL_CHECK_FAILURE): Explain what this is. Undefine when we
6103 are done with it.
6104
6105 (ae_kill): Rename to st_kill, update users.
6106 (ae_gen): Rename to st_avloc, update users.
6107 (transp): Rename to st_transp, update users.
6108 (pre_insert_map): Rename to st_insert_map, update users.
6109 (pre_delete_map): Rename to st_delete_map, update users.
6110 (insert_store, build_store_vectors, free_store_memory,
6111 one_store_motion_pass): Update for abovementioned changes.
6112
6113 (gcse_subst_count, gcse_create_count): Remove.
6114 (one_store_motion_pass): New statistics counters "n_stores_deleted"
6115 and "n_stores_created", local variables.
6116
6117 (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
6118 use for_each_rtx.
6119
6120 (regvec, compute_store_table_current_insn): Remove.
6121 (reg_set_info, reg_clear_last_set): Remove.
6122 (compute_store_table): Use DF caches instead of local dataflow
6123 solvers.
6124
b02cec6e
JM
61252009-05-01 Joseph Myers <joseph@codesourcery.com>
6126
6127 * c-objc-common.c (c_tree_printer): Print identifiers with
6128 pp_identifier, not pp_string. Mark "({anonymous})" for
6129 translation.
6130 * c-pretty-print.c (pp_c_ws_string): New.
6131 (pp_c_cv_qualifier, pp_c_type_specifier,
6132 pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
6133 pp_c_storage_class_specifier, pp_c_function_specifier,
6134 pp_c_attributes, pp_c_bool_constant, pp_c_constant,
6135 pp_c_primary_expression, pp_c_postfix_expression,
6136 pp_c_unary_expression, pp_c_shift_expression,
6137 pp_c_relational_expression, pp_c_equality_expression,
6138 pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
6139 use pp_string and pp_c_ws_string in place of pp_identifier and
6140 pp_c_identifier for non-identifiers. Mark English strings for
6141 translation.
6142 * c-pretty-print.h (pp_c_ws_string): Declare.
6143
cd533689
PP
61442009-04-30 Paul Pluzhnikov <ppluzhnikov@google.com>
6145 Roland McGrath <roland@redhat.com>
6146
aa016ff7 6147 * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
cd533689
PP
6148 (ENABLE_LD_BUILDID): New configuration option.
6149 * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
6150 (LINK_BUILDID_SPEC): New macro.
6151 (init_spec): If defined, prepend it between LINK_EH_SPEC and
6152 link_spec.
6153 * doc/install.texi: Document --enable-linker-build-id option.
6154 * configure: Rebuild.
6155 * config.in: Rebuild.
6156
ba6adec4
AN
61572009-04-30 Adam Nemet <anemet@caviumnetworks.com>
6158
6159 * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
6160 MIPS_GP_SAVE_AREA_SIZE): Define new macros.
6161 (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD. Use
6162 MIPS_GP_SAVE_AREA_SIZE.
6163 * config/mips/mips.c (struct mips_frame_info): Update comment
6164 before arg_pointer_offset and hard_frame_pointer_offset.
6165 (mips_compute_frame_info): Update diagram before function: to
6166 correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
6167 indicate the position of frame_pointer_rtx with -fstack-protector and
6168 to show args_size. Don't allocate cprestore area for leaf functions
6169 if FRAME_GROWS_DOWNWARD. Use MIPS_GP_SAVE_AREA_SIZE to set
6170 cprestore_size.
6171 (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
6172
48f5b722
MM
61732009-04-30 Michael Matz <matz@suse.de>
6174
ba6adec4
AN
6175 PR tree-optimization/39955
6176 * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
48f5b722 6177
b65d6744
DK
61782009-04-30 Dave Korn <dave.korn.cygwin@gmail.com>
6179
6180 * ira.c (setup_cover_and_important_classes): Use safe macro
6181 REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
6182 directly.
6183 * genpreds.c (write_tm_preds_h): Output suitable definition of
6184 REG_CLASS_FOR_CONSTRAINT.
6185
f136c8ae
RAE
61862009-04-30 Rafael Avila de Espindola <espindola@google.com>
6187
6188 * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
6189 instead of an int.
6190 * bitmap.c (bitmap_descriptor): Likewise.
6191 * ggc-common.c (loc_descriptor): Likewise.
6192 * varray.c (varray_descriptor): Likewise.
6193 * vec.c (vec_descriptor): Likewise.
6194
43fcece8 61952009-04-30 Eric Botcazou <ebotcazou@adacore.com>
35debead
EB
6196
6197 * Makefile.in (dce.o): Add $(EXCEPT_H).
6198 * dce.c: Include except.h and delete redundant vector definitions.
6199 (deletable_insn_p): Return false for non-call insns that can throw
6200 if DF is running.
6201
df35c271
SB
62022009-04-30 Steven Bosscher <steven@gcc.gnu.org>
6203
6204 * gcse.c (ae_gen): Remove.
6205 (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
6206 and make non-static function to make it available in store-motion.c.
6207 Update call sites with search-and-replace.
6208 (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
6209 extract_mentioned_regs, extract_mentioned_regs_helper,
6210 find_moveable_store, compute_store_table, load_kills_store, find_loads,
6211 store_killed_in_insn, store_killed_after, store_killed_before,
6212 build_store_vectors, insert_insn_start_basic_block, insert-store,
6213 remove_reachable_equiv_notes, replace_store_insn, delete_store,
6214 free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
6215 execute_rtl_store_motion, pass_rtl_store_motion): Move to...
6216 * store-motion.c: ...new file. Also copy data structures from gcse.c
6217 and clean up to remove parts not used by store motion.
6218 * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
6219 * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
6220
f711a87a
RR
62212009-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6222
6223 PR target/38571
6224 * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
6225 when optimizing for size.
6226
fa5ed76e
HPN
62272009-04-30 Hans-Peter Nilsson <hp@axis.com>
6228
6229 * gcse.c (gcse_constant_p): Fix typo in last change.
6230
0acbbdb0
RAE
62312009-04-30 Rafael Avila de Espindola <espindola@google.com>
6232
6233 * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
6234
82f5c05d
AK
62352009-04-30 Andreas Krebbel <krebbel1@de.ibm.com>
6236
6237 * gcse.c (gcse_constant_p): Make sure the constant is sharable.
6238
6d8f135b
JW
62392009-04-29 James E. Wilson <wilson@codesourcery.com>
6240
6241 * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
6242 CONST_HIGH_PART result.
6243
c21ca196
AS
62442009-04-29 Anatoly Sokolov <aesok@post.ru>
6245
6246 * config/avr/avr.c (initial_elimination_offset): Rename to
6247 avr_initial_elimination_offset.
6248 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
6249 change return type to bool.
6250 (avr_can_eliminate): New function.
6251 * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
6252 (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
6253 (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
0d50d55a 6254 * config/avr/avr-protos.h (initial_elimination_offset): Rename to
c21ca196
AS
6255 avr_initial_elimination_offset.
6256 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
6257 (avr_initial_elimination_offset): Define.
6258
2a34bece 62592009-04-29 Eric Botcazou <ebotcazou@adacore.com>
aa016ff7 6260 Steven Bosscher <steven@gcc.gnu.org>
2a34bece
EB
6261
6262 PR rtl-optimization/39938
6263 * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
6264 * cfgrtl.c: Include insn-attr.h.
6265 (rest_of_pass_free_cfg): New function.
6266 (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
6267 * resource.c (init_resource_info): Remove call to df_analyze.
6268
5dc7911e
RG
62692009-04-29 Richard Guenther <rguenther@suse.de>
6270
6271 PR target/39943
6272 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
6273 allow conversion to signed integers.
6274
1fe479fd
RG
62752009-04-29 Richard Guenther <rguenther@suse.de>
6276
6277 * tree-cfg.c (verify_gimple_assign_binary): Allow vector
6278 shifts of floating point vectors if the shift amount is
6279 a constant multiple of the element size.
6280
8e001680
AK
62812009-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
6282 Michael Matz <matz@suse.de>
6283
6284 PR middle-end/39927
6285 PR bootstrap/39929
6286 * tree-outof-ssa.c (emit_partition_copy): New function.
6287 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
6288 insert_part_to_rtx_on_edge): Perform the partition base var
6289 copy using emit_partition_copy.
6290 (insert_value_copy_on_edge): Convert constants to the right mode.
6291 (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
6292 (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
6293
e50e3081
BS
62942009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
6295
6296 * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
6297 scan backwards to try to find a constant to initialize it.
6298
4e5d521b
BS
6299 * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
6300 insn before the loop_end instruction, don't look past labels.
6301
7c90021d
RG
63022009-04-29 Richard Guenther <rguenther@suse.de>
6303
6304 PR middle-end/39937
6305 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
6306 loose type conversions.
6307 (forward_propagate_addr_expr): Fix tuplification bug. Remove
6308 stmts only if there are no uses of its definition.
6309
97a988bc
BS
63102009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
6311
6312 * config/bfin/bfin.h (splitting_loops): Declare.
6313 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
6314 Reorder bit definitions to be ascending.
6315 (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
6316 * config/bfin/bfin.c (splitting_loops): New variable.
6317 (bfin_cpus): Add WA_LOAD_LCREGS as needed.
6318 (struct loop_info): Remove members INIT and LOOP_INIT.
6319 (bfin_optimize_loop): Don't set them. Reorder the code that generates
aa016ff7
UB
6320 the LSETUP sequence. Allow LC to be loaded from any register, but
6321 also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
97a988bc
BS
6322 (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
6323 set to 1.
6324 * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
6325 of reload_completed.
aa016ff7 6326
97a988bc
BS
6327 From Jie Zhang:
6328 * config/bfin/bfin.md (movsi_insn): Refine constraints.
6329
0c463e16
RAE
63302009-04-29 Rafael Avila de Espindola <espindola@google.com>
6331
6332 * Makefile.in (PLUGIN_VERSION_H): New.
6333 (OBJS-common): Remove plugin-version.o.
6334 (plugin.o): Depend on (PLUGIN_VERSION_H).
6335 (plugin-version.o): Remove.
6336 * configure: Regenerate
6337 * configure.ac: Create plugin-version.h.
6338 * gcc-plugin.h (plugin_gcc_version): Remove.
6339 (plugin_default_version_check): Change signature.
6340 * plugin-version.c: Remove.
6341 * plugin.c: Include plugin-version.h.
6342 (str_plugin_gcc_version_name): Remove.
6343 (try_init_one_plugin): Pass gcc version to plugin_init.
6344 (plugin_default_version_check): Both gcc and plugin versions are now
6345 arguments.
6346
307e7eab
BS
63472009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
6348
6349 * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
6350 problematic last insns. Test for TYPE_CALL rather than CALL_P.
aa016ff7
UB
6351 Remove special case testing for last insn of inner loops. Don't fail
6352 if the loop ends with a jump, emit an extra nop instead.
307e7eab 6353
c5d96723
BS
6354 * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
6355 DREGS rather than comparing directly. Remove code that tries to
6356 account for latencies.
6357
de0b4ad5
RG
63582009-04-29 Richard Guenther <rguenther@suse.de>
6359
6360 PR tree-optimization/39941
6361 * tree-ssa-pre.c (eliminate): Schedule update-ssa after
6362 eliminating an indirect call.
6363
3a19701a
RG
63642009-04-29 Richard Guenther <rguenther@suse.de>
6365
6366 * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
6367 parameter. Allow invariants as base if !require_lvalue.
6368 (verify_gimple_assign_single): Adjust.
6369
a0a31d1e
BS
63702009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
6371
6372 * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
6373 (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
aa016ff7
UB
6374 ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
6375 ssubhi3, ssaddhi3_parts and sssubhi3_parts.
a0a31d1e
BS
6376 (flag_mulhi3_parts): Produce a HImode output rather than trying to set
6377 a VEC_SELECT.
aa016ff7
UB
6378 * config/bfin/bfin.c (bfin_expand_builtin,
6379 case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
a0a31d1e 6380
795bd26a
RG
63812009-04-28 Richard Guenther <rguenther@suse.de>
6382
6383 * tree-vect-loop.c (get_initial_def_for_induction): Use
6384 correct types for pointer increment.
6385
04be270f
KG
63862009-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6387
6388 * toplev.c (print_version): Update GMP version string calculation.
6389
e1a3b85c
EB
63902009-04-28 Eric Botcazou <ebotcazou@adacore.com>
6391
6392 PR rtl-optimization/39938
6393 * resource.c (init_resource_info): Add call to df_analyze.
6394
8224166e
UB
63952009-04-28 Uros Bizjak <ubizjak@gmail.com>
6396
6397 * config/alpha/alpha.md (usegp): Cast the result of
6398 alpha_find_lo_sum_using_gp to enum attr_usegp.
6399 * config/alpha/alpha.c (override_options): Remove end-of-structure
6400 marker element from cpu_table. Use array size of cpu_table to handle
6401 -mcpu and -mtune options.
6402 (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
6403
c5f0fe67
JM
64042009-04-28 Joseph Myers <joseph@codesourcery.com>
6405
6406 * config.gcc (powerpc*-*-* | rs6000-*-*): Add
6407 rs6000/option-defaults.h to tm_file. Support cpu_32, cpu_64,
6408 tune_32 and tune_64.
6409 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
6410 support on PowerPC.
6411 * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
6412 * config/rs6000/option-defaults.h: ... here. New file.
6413 (OPT_64, OPT_32): Define.
6414 (MASK_64BIT): Define to 0 if not already defined.
6415 (OPT_ARCH64, OPT_ARCH32): Define.
6416 (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
6417 and tune_64.
6418
0c48a567
RR
64192009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6420
6421 * config/arm/arm.c (arm_override_options): Emit error on using
6422 fpa with AAPCS.
6423
f1028b9d
UB
64242009-04-28 Uros Bizjak <ubizjak@gmail.com>
6425
6426 PR rtl-optimization/39914
6427 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
6428 registers for allocnos created from user-defined variables only
6429 when not optimizing.
6430
e0dd989a
RG
64312009-04-28 Richard Guenther <rguenther@suse.de>
6432
6433 PR middle-end/39937
6434 * fold-const.c (fold_binary): Use distribute_real_division only
6435 on float types.
6436
9a17c91d
SE
64372009-04-28 Steve Ellcey <sje@cup.hp.com>
6438
6439 * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
6440 add hpux-stdint.h to tm_file.
6441 (hppa[12]*-*-hpux11*): Ditto.
6442 (ia64*-*-hpux*): Ditto.
6443 * config/hpux-stdint.h: New.
60839f5d 6444 * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
9a17c91d 6445 __STDC_EXT__ for all compiles.
60839f5d
EB
6446 * config/pa/pa-hpux.h: Ditto.
6447 * config/pa/pa-hpux10.h: Ditto.
6448 * config/pa/pa-hpux11.h: Ditto.
9a17c91d 6449
af04e659
CM
64502009-04-28 Catherine Moore <clm@codesourcery.com>
6451
6452 * debug.h (set_name): Add comment.
6453
04ef80ce
AP
64542009-04-28 Andrew Pinski <pinskia@gmail.com>
6455
6456 PR target/39929
6457 * config/darwin.c (machopic_gen_offset): Check
6458 currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
6459 * config/arm/arm.c (require_pic_register): Likewise.
6460
65ad77af
PB
64612009-04-28 Paolo Bonzini <bonzini@gnu.org>
6462
8224166e
UB
6463 * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
6464 m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
6465 m32c_promote_prototypes): Delete.
65ad77af 6466
1b15a008
MM
64672009-04-28 Michael Matz <matz@suse.de>
6468
6469 PR middle-end/39922
6470 * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
6471 constants.
6472
7569a6cc
RG
64732009-04-28 Richard Guenther <rguenther@suse.de>
6474
f1028b9d 6475 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
7569a6cc 6476
ead204d9
RR
64772009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6478
6479 * config/arm/arm-cores.def: Add support for arm1156t2f-s.
6480 * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
6481 * config/arm/arm-tune.md: Regenerate.
6482
f2c45f08 64832009-04-28 Alexander Monakov <amonakov@ispras.ru>
60839f5d 6484
f2c45f08
AM
6485 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
6486 block if there are complex incoming edges.
6487 (sel_merge_blocks): Remove useless assert.
6488 (sel_redirect_edge_and_branch): Check that edge was redirected.
6489 * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
6490 (sel_find_rgns): Delete declaration.
6491 * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
6492 the region when it is not a preheader.
6493
7a00d767
UB
64942009-04-28 Uros Bizjak <ubizjak@gmail.com>
6495
6496 PR c/39323
6497 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
6498
448ee662
RG
64992009-04-28 Richard Guenther <rguenther@suse.de>
6500
6501 * tree.h (SSA_NAME_VALUE): Remove.
6502 (struct tree_ssa_name): Remove value_handle member.
6503 * tree-vrp.c (execute_vrp): Initialize/free the value-handle
6504 array for jump threading.
6505 * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
6506 SSA_NAME_VALUEs.
6507 * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
6508 * tree-flow.h (threadedge_initialize_values): Declare.
6509 (threadedge_finalize_values): Likewise.
6510 * tree-ssa-threadedge.c (ssa_name_values): New global variable.
6511 (SSA_NAME_VALUE): Define.
6512 (threadedge_initialize_values): New function.
6513 (threadedge_finalize_values): Likewise.
6514 * tree-ssa-dom.c (ssa_name_values): New global variable.
6515 (SSA_NAME_VALUE): Define.
f1028b9d 6516 (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
448ee662 6517
8644a673
IR
65182009-04-28 Ira Rosen <irar@il.ibm.com>
6519
6520 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
6521 Use REPORT_VECTORIZED_LOCATIONS instead
6522 REPORT_VECTORIZED_LOOPS.
6523 * tree-vectorizer.c (vect_verbosity_level): Make static.
6524 (vect_loop_location): Rename to vect_location.
6525 (vect_set_verbosity_level): Update comment.
6526 (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
6527 and vect_location.
6528 (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
6529 and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
6530 instead REPORT_UNVECTORIZED_LOOPS.
fbdf817d
UB
6531 * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
6532 and vect_loop_def to vect_external_def and vect_internal_def.
8644a673 6533 (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
7a00d767 6534 and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and
8644a673
IR
6535 REPORT_UNVECTORIZED_LOCATIONS.
6536 (enum vect_relevant): Update comment. Rename vect_unused_in_loop
6537 and vect_used_in_loop and to vect_unused_in_scope and
6538 vect_used_in_scope.
6539 (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
6540 (vect_verbosity_level): Remove declaration.
6541 (vect_analyze_operations): Likewise.
6542 (vect_analyze_stmt): Declare.
6543 * tree-vect-loop.c (vect_determine_vectorization_factor): Use
6544 REPORT_UNVECTORIZED_LOCATIONS.
6545 (vect_get_loop_niters): Fix indentation.
6546 (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
6547 (vect_analyze_loop_operations): New function.
6548 (vect_analyze_loop): Call vect_analyze_loop_operations instead of
6549 vect_analyze_operations.
6550 (vect_is_simple_reduction): Use new names.
6551 (vectorizable_live_operation, vect_transform_loop): Likewise.
fbdf817d
UB
6552 * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
6553 to specify whether the data references can be a part of interleaving
6554 chain.
8644a673
IR
6555 (vect_analyze_data_ref_dependence): Use new names.
6556 (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
6557 (vect_create_addr_base_for_vector_ref): Remove redundant code.
6558 * tree-vect-patterns.c (widened_name_p): Use new names.
6559 (vect_recog_dot_prod_pattern): Likewise.
6560 * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
6561 (process_use, vect_mark_stmts_to_be_vectorized,
6562 vect_model_simple_cost, vect_model_store_cost,
6563 vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
6564 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
6565 vectorizable_operation, vectorizable_type_demotion,
6566 vectorizable_type_promotion, vectorizable_store, vectorizable_load,
6567 vectorizable_condition): Likewise.
6568 (vect_analyze_operations): Split into vect_analyze_loop_operations
6569 and ...
6570 (vect_analyze_stmt): ... new function.
6571 (new_stmt_vec_info): Use new names.
6572 (vect_is_simple_use): Use new names and fix comment.
6573 * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
6574 (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
6575
b91322f2
UB
65762009-04-28 Uros Bizjak <ubizjak@gmail.com>
6577
6578 PR target/39911
6579 * config/i386/i386.c (print_operand) ['Z']: Handle floating point
6580 and integer modes for x87 operands. Do not ICE for unsupported size,
6581 generate error instead. Generate error for unsupported operand types.
6582 ['z']: Do not handle HImode memory operands specially. Warning
6583 for floating-point operands. Fallthru to 'Z' for unsupported operand
6584 types. Do not ICE for unsupported size, generate error instead.
6585 (output_387_binary_op): Use %Z to output operands.
6586 (output_fp_compare): Ditto.
6587 (output_387_reg_move): Ditto.
6588
b2ed71b6
BE
65892009-04-28 Ben Elliston <bje@au.ibm.com>
6590
6591 PR c++/35652
6592 Revert:
6593
6594 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6595
6596 * builtins.c (c_strlen): Do not warn here.
6597 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
6598 * c-common.c (pointer_int_sum): Take an explicit location.
6599 Warn about offsets out of bounds.
6600 * c-common.h (pointer_int_sum): Adjust declaration.
6601
81f40b79
ILT
66022009-04-27 Ian Lance Taylor <iant@google.com>
6603
6604 * collect2.c (is_ctor_dtor): Change type of ret field in struct
6605 names to symkind.
6606 * dce.c (run_fast_df_dce): Change type of old_flags to int.
6607 * df-core.c (df_set_flags): Change return type to int. Change
6608 type of old_flags to int.
6609 (df_clear_flags): Likewise.
6610 * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
6611 (df_get_conditional_uses): Likewise.
6612 * df.h (df_set_flags, df_clear_flags): Update declarations.
6613 * dwarf2out.c (struct indirect_string_node): Change type of form
6614 field to enum dwarf_form.
6615 (AT_string_form): Change return type to enum dwarf_form.
6616 * fixed-value.c (fixed_compare): Add cast to enum type.
6617 * fwprop.c (update_df): Change 0 to VOIDmode.
6618 * gensupport.c: Change 0 to UNKNOWN.
6619 * gimple.h (gimple_cond_code): Add cast to enum type.
6620 * haifa-sched.c (reemit_notes): Add cast to enum type.
6621 * hooks.c (hook_int_void_no_regs): Remove function.
6622 * hooks.h (hook_int_void_no_regs): Remove declaration.
6623 * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
7a00d767 6624 * predict.c (combine_predictions_for_insn): Add casts to enum type.
81f40b79
ILT
6625 * real.c (real_arithmetic): Add cast to enum type.
6626 (real_compare): Likewise.
6627 * target.h (struct gcc_target): Change return type of
6628 branch_target_register_class to enum reg_class.
6629 * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
6630 default_branch_target_register_class.
7a00d767 6631 * targhooks.c (default_branch_target_register_class): New function.
81f40b79 6632 * targhooks.h (default_branch_target_register_class): Declare.
7a00d767 6633 * tree-data-ref.c (print_direction_vector): Add cast to enum type.
81f40b79
ILT
6634 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
6635 cast to int.
6636 * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
6637 ERROR_MARK.
6638 * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
6639 vect_uninitialized_def. Change 0 to ERROR_MARK.
6640 * tree-vect-stmts.c (supportable_widening_operation): Don't
6641 initialize icode1 and icode2.
7a00d767 6642 * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
81f40b79
ILT
6643 * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
6644 and to STD_C89.
6645 (cmn_err_flag_specs): Change 0 to STD_C89.
6646 (cmn_err_char_table): Likewise.
6647 * config/arm/arm.c (get_arm_condition_code): Change type of code
6648 to enum arm_cond_code.
6649 (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
6650 (IWMMXT_BUILTIN2): Likewise.
6651 (neon_builtin_type_bits): Don't define typedef.
6652 (neon_builtin_datum): Change type of bits field to int.
6653 (arm_expand_neon_args): Add cast to enum type.
6654 * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
6655 TLS_MODEL_NONE.
6656 * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN. Add
6657 casts to enum type.
6658 * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
6659 MIPS_FP_COND_f.
6660 * config/mips/mips.md (jal_macro): Return enum constant.
6661 (single_insn): Likewise.
6662 * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
6663 CODE_FOR_nothing.
6664 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
6665 casts to enum type.
6666 * config/s390/s390.c (s390_tune_flags): Change type to int.
6667 (s390_arch_flags): Likewise.
7a00d767 6668 (s390_handle_arch_option): Change flags field of struct pta to int.
81f40b79
ILT
6669 * config/s390/s390.h (s390_tune_flags): Update declaration.
6670 (s390_arch_flags): Likewise.
6671 * config/sh/sh.c (prepare_move_operands): Compare
6672 tls_symbolic_operand result with enum constant.
6673 (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
6674 (sh_expand_prologue): Add cast to enum type.
6675 (sh_expand_epilogue): Likewise.
6676 (tls_symbolic_operand): Change return type to enum tls_model.
6677 (fpscr_set_from_mem): Add cast to enum type.
6678 (legitimize_pic_address): Compare tls_symbolic_operand result with
6679 enum constant.
6680 (sh_target_reg_class): Change return type to enum reg_class.
6681 * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
6682 PROCESSOR_xxx.
7a00d767
UB
6683 * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
6684 * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
81f40b79
ILT
6685 * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
6686 (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
6687 (delayed_branch, tls_call_delay): Likewise.
6688 (eligible_for_sibcall_delay): Likewise.
6689 (eligible_for_return_delay): Likewise.
6690 * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
6691 (spu_expand_builtin_1): Likewise.
6692
6693 * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
6694 for all types of conversions.
6695 (output_init_element): Issue -Wc++-compat warning if needed when
6696 initializing a bitfield with enum type.
6697 * c-parser.c (c_parser_expression): Set original_type to
6698 original_type of right hand operand of comman operator.
6699
e4ae5e77
RW
67002009-04-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6701
6702 * doc/c-tree.texi (Types, Functions, Expression trees): Fix
6703 grammar nits.
7a00d767 6704 * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
e4ae5e77
RW
6705 * doc/cpp.texi (Standard Predefined Macros)
6706 (Implementation-defined behavior): Likewise.
7a00d767 6707 * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
e4ae5e77
RW
6708 * doc/gimple.texi (GIMPLE Exception Handling)
6709 (@code{GIMPLE_ASSIGN}): Likewise.
7a00d767 6710 * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
e4ae5e77
RW
6711 * doc/invoke.texi (Warning Options, Optimize Options)
6712 (AVR Options, Darwin Options): Likewise.
6713 (Optimize Options): Reformulate -fwhole-program description.
6714 * doc/loop.texi (Lambda): Likewise.
6715 * doc/md.texi (Output Template, Define Constraints)
6716 (Standard Names, Insn Splitting): Likewise.
6717 * doc/options.texi (Option properties): Likewise.
6718 * doc/passes.texi (Tree-SSA passes): Likewise.
6719 * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
6720 * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
6721 (File Names and DBX): Likewise.
6722 * doc/trouble.texi (Incompatibilities): Likewise.
6723
1883802f 67242009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
6e37f6d4
TS
6725
6726 * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
6727 instruction is correct.
6728
1883802f 67292009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
5345cf68
TS
6730
6731 Allow non-constant arguments to conversion intrinsics.
6732 * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
6733 * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
6734 * spu.c (print_operand): Handle 'v' and 'w'.
6735 (exp2_immediate_p, spu_gen_exp2): Define.
6736 * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
6737 spu_convtf_1): Update parameter descriptions.
7a00d767 6738 * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
5345cf68
TS
6739 * constraints.md ('v', 'w'): New.
6740 * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
6741 Remove.
6742 (i2f, I2F): New define_mode_attr.
6743 (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
6744 floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
6745 fixuns_truncv4sfv4si2): Update to use mode attribute.
6746 (float<mode><i2f>2_mul, float<mode><i2f>2_div,
6747 fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
6748 floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
6749 patterns for combine.
6750
5f39ad47
SB
67512009-04-27 Steven Bosscher <steven@gcc.gnu.org>
6752
6753 * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
6754 (cprop, hoist, pre, store_motion): New debug counters.
6755 * tree-pass.h (pass_tracer): Move to list of gimple passes, it
6756 is not an RTL pass anymore.
6757 (pass_profiling): Remove extern decl for pass removed in 2005.
6758 (pass_gcse, pass_jump_bypass): Remove.
6759 * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
6760 to 0 for clean state.
6761 * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
6762 * cse.c (gate_handle_cse_after_global_opts,
6763 rest_of_handle_cse_after_global_opts): New functions.
6764 (pass_cse_after_global_opts): New pass, does local CSE.
6765 * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
6766 (TV_CPROP): New timevar.
6767 * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
6768 (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
6769 (gcse_main, recompute_all_luids): Remove.
6770 (compute_hash_table_work): Call max_reg_num instead of reading
6771 max_gcse_regno.
6772 (cprop_jump): Don't set run_jump_opt_after_gcse.
6773 (constprop_register): Always allow to alter jumps.
6774 (cprop_insn): Likewise.
6775 (do_local_cprop): Likewise.
6776 (local_cprop_pass): Likewise. Return non-zero if something changed.
6777 (cprop): Remove function, fold interesting bits into one_cprop_pass.
6778 (find_implicit_sets): Add note about missed optimization opportunity.
6779 (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
6780 pass_rtl_cprop execute function.
6781 Don't bother tracking the pass number, each pass gets its own dumpfile
6782 now anyway.
6783 Always allow to alter jumpsand bypass jumps.
6784 (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
6785 will just find no suitable set.
6786 (pre_edge_insert): Fix dumping, this function is for PRE only.
6787 (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
6788 pass_rtl_pre execute function.
6789 (hoist_code): Return non-zero if something changed. Keep track of
6790 substitutions and insertions for statistics gathering similar to PRE.
6791 (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
6792 called from the pass_rtl_hoist execute function. Show pass statistics.
6793 (compute_store_table): Use max_reg_num directly instead of using the
6794 formerly global max_gcse_regno.
6795 (build_store_vectors): Likewise.
6796 (replace_store_insn): Fix dumping.
6797 (store_motion): Rename to ...
6798 (one_store_motion_pass): ... this. Rewrite to be "the" STORE_MOTION
6799 pass, called from the pass_rtl_store_motion execute function. Keep
6800 track of substitutions and insertions for statistics gathering similar
6801 to PRE.
6802 (bypass_jumps): Remove, fold interesting bits into ...
6803 (one_cprop_pass): ... this. Rewrite to be "the" CPROP pass, called
6804 from the pass_rtl_cprop execute function.
6805 (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
6806 pass_jump_bypass): Remove.
6807 (gate_handle_gcse, rest_of_handle_gcse): Remove.
6808 (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
6809 (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
6810 (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
6811 (gate_rtl_store_motion, execute_rtl_store_motion,
6812 pass_rtl_store_motion): New.
6813 * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
6814 make it clear that -fcse-skip-blocks is a no-op for backward compat.
6815 * passes.c (init_optimization_passes): Remove pass_gcse and
6816 pass_jump_bypass. Schedule cprop, pre, hoist, cprop, store_motion,
6817 and cse_after_global_opts in place of pass_gcse. Schedule cprop
6818 instead of pass_jump_bypass.
6819
c685de4a
RG
68202009-04-27 Richard Guenther <rguenther@suse.de>
6821
6822 PR middle-end/39928
6823 * gimplify.c (gimplify_expr): If we are required to create
6824 a temporary make sure it ends up as register.
6825
72d41f29
L
68262009-04-27 H.J. Lu <hongjiu.lu@intel.com>
6827
6828 PR target/39903
6829 * config/i386/i386.c (construct_container): Don't call
6830 gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
6831 X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
6832
e97809c6
MM
68332009-04-27 Michael Matz <matz@suse.de>
6834
6835 * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
6836 (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
6837 * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
6838 (dump_replaceable_exprs): Take a bitmap.
6839 * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
6840 array.
6841 (expand_gimple_basic_block): Likewise.
6842 * tree-ssa-ter.c (struct temp_expr_table_d): Make
6843 replaceable_expressions member a bitmap.
6844 (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
6845 (mark_replaceable): Likewise.
6846 (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
6847 * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
6848
211ca15c
RG
68492009-04-27 Richard Guenther <rguenther@suse.de>
6850
6851 * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
6852 (verify_stmts): Dispatch to gimple/type verification code.
6853 * tree-inline.c (remap_gimple_op_r): Work around C++ FE
6854 issue with call argument types.
6855
fca5f3d1
MM
68562009-04-27 Michael Matz <matz@suse.de>
6857
6858 * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
6859 (init_update_ssa, delete_update_ssa, update_ssa): Remove references
6860 to above.
6861
a1fa3e79 68622009-04-27 Richard Sandiford <rdsandiford@googlemail.com>
8224166e 6863 Eric Botcazou <ebotcazou@adacore.com>
a1fa3e79
EB
6864
6865 * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
6866 a label's basic block.
6867 (mark_target_live_regs): Tidy and rework obsolete comments.
6868 Change back DF problem to LIVE. If a label starts a basic block,
6869 assume that all registers that used to be live then still are.
6870 (init_resource_info): If a label starts a basic block, set its
6871 BLOCK_FOR_INSN accordingly.
6872 (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
6873
33b223c0
RG
68742009-04-27 Richard Guenther <rguenther@suse.de>
6875
6876 * tree-flow-inline.h (function_ann): Remove.
6877 (get_function_ann): Likewise.
6878 * tree-dfa.c (create_function_ann): Remove.
6879 * tree-flow.h (struct static_var_ann_d): Remove.
6880 (struct function_ann_d): Likewise.
6881 (union tree_ann_d): Remove fdecl member.
6882 (function_ann_t): Remove.
6883 (function_ann, get_function_ann, create_function_ann): Remove
6884 declarations.
6885
e3136fa2
UB
68862009-04-27 Uros Bizjak <ubizjak@gmail.com>
6887
6888 * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
6889
f87c9042
JH
68902009-04-27 Jan Hubicka <jh@suse.cz>
6891
6892 * ipa-pure-const.c (struct funct_state_d): New fields
6893 state_previously_known, looping_previously_known; remove
6894 state_set_in_source.
6895 (analyze_function): Use new fields.
6896 (propagate): Avoid assumption that state_set_in_source imply
6897 nonlooping.
6898
6899 * tree-ssa-loop-niter.c (finite_loop_p): New function.
6900 * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
6901 * cfgloop.h (finite_loop_p): Declare.
6902
33abd718
MM
69032009-04-26 Michael Matz <matz@suse.de>
6904
e3136fa2 6905 * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
33abd718 6906
ddc34084
MM
69072009-04-26 Michael Matz <matz@suse.de>
6908
6909 * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
6910 pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
6911 * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
6912 pass_mark_used_blocks): Remove.
6913 * tree-optimize.c (pass_free_datastructures,
6914 execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
6915 * passes.c (init_optimization_passes): Don't call
6916 pass_mark_used_blocks, remove dead code.
6917
1fec7ed4
L
69182009-04-26 H.J. Lu <hongjiu.lu@intel.com>
6919
6920 * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
6921 * tree-ssa-live.h (register_ssa_partition): Likewise.
6922
4e3825db
MM
69232009-04-26 Michael Matz <matz@suse.de>
6924
6925 Expand from SSA.
6926 * builtins.c (fold_builtin_next_arg): Handle SSA names.
6927 * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
6928 * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
6929 SSA names.
6930 (compare_pairs): Swap cost comparison.
6931 (coalesce_ssa_name): Don't use change_partition_var.
6932 * tree-nrv.c (struct nrv_data): Add modified member.
6933 (finalize_nrv_r): Set it.
6934 (tree_nrv): Use it to update statements.
6935 (pass_nrv): Require PROP_ssa.
6936 * tree-mudflap.c (mf_decl_cache_locals,
6937 mf_build_check_statement_for): Use make_rename_temp.
6938 (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
6939 * alias.c (find_base_decl): Handle SSA names.
6940 * emit-rtl (set_reg_attrs_for_parm): Make non-static.
6941 (component_ref_for_mem_expr): Don't leak SSA names into RTL.
6942 * rtl.h (set_reg_attrs_for_parm): Declare.
6943 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
6944 to "optimized", remove unused locals at finish.
6945 (execute_free_datastructures): Make global, call
6946 delete_tree_cfg_annotations.
6947 (execute_free_cfg_annotations): Don't call
6948 delete_tree_cfg_annotations.
6949
6950 * ssaexpand.h: New file.
6951 * expr.c (toplevel): Include ssaexpand.h.
e3136fa2 6952 (expand_assignment): Handle SSA names the same as register variables.
4e3825db
MM
6953 (expand_expr_real_1): Expand SSA names.
6954 * cfgexpand.c (toplevel): Include ssaexpand.h.
6955 (SA): New global variable.
6956 (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
6957 (SSAVAR): New macro.
6958 (set_rtl): New helper function.
6959 (add_stack_var): Deal with SSA names, use set_rtl.
6960 (expand_one_stack_var_at): Likewise.
6961 (expand_one_stack_var): Deal with SSA names.
6962 (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
6963 before unique numbers.
6964 (expand_stack_vars): Use set_rtl.
6965 (expand_one_var): Accept SSA names, add asserts for them, feed them
6966 to above subroutines.
6967 (expand_used_vars): Expand all partitions (without default defs),
6968 then only the local decls (ignoring those expanded already).
6969 (expand_gimple_cond): Remove edges when jumpif() expands an
6970 unconditional jump.
6971 (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
6972 or remove abnormal edges. Ignore insns setting the LHS of a TERed
6973 SSA name.
6974 (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
6975 members of SA; deal with PARM_DECL partitions here; expand
6976 all PHI nodes, free tree datastructures and SA. Commit instructions
6977 on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
6978 (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
6979 info and statements at start, collect garbage at finish.
6980 * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
6981 (VAR_ANN_PARTITION) Remove.
6982 (change_partition_var): Don't declare.
6983 (partition_to_var): Always return SSA names.
6984 (var_to_partition): Only accept SSA names.
6985 (register_ssa_partition): Only check argument.
6986 * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
6987 member.
6988 (delete_var_map): Don't free it.
6989 (var_union): Only accept SSA names, simplify.
6990 (partition_view_init): Mark only useful SSA names as used.
6991 (partition_view_fini): Only deal with SSA names.
6992 (change_partition_var): Remove.
6993 (dump_var_map): Use ssa_name instead of partition_to_var member.
6994 * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
6995 basic blocks.
6996 * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
6997 (struct _elim_graph): New member const_dests; nodes member vector of
6998 ints.
6999 (set_location_for_edge): New static helper.
7000 (create_temp): Remove.
7001 (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
e3136fa2 7002 insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
4e3825db
MM
7003 (new_elim_graph): Allocate const_dests member.
7004 (clean_elim_graph): Truncate const_dests member.
7005 (delete_elim_graph): Free const_dests member.
7006 (elim_graph_size): Adapt to new type of nodes member.
7007 (elim_graph_add_node): Likewise.
7008 (eliminate_name): Likewise.
7009 (eliminate_build): Don't take basic block argument, deal only with
7010 partition numbers, not variables.
7011 (get_temp_reg): New static helper.
7012 (elim_create): Use it, deal with RTL temporaries instead of trees.
7013 (eliminate_phi): Adjust all calls to new signature.
7014 (assign_vars, replace_use_variable, replace_def_variable): Remove.
7015 (rewrite_trees): Only do checking.
7016 (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
7017 (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
7018 init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
7019 contains_tree_r, MAX_STMTS_IN_LATCH,
7020 process_single_block_loop_latch, analyze_edges_for_bb,
7021 perform_edge_inserts): Remove.
7022 (expand_phi_nodes): New global function.
7023 (remove_ssa_form): Take ssaexpand parameter. Don't call removed
7024 functions, initialize new parameter, remember partitions having a
7025 default def.
7026 (finish_out_of_ssa): New global function.
7027 (rewrite_out_of_ssa): Make global. Adjust call to remove_ssa_form,
7028 don't reset in_ssa_p here, don't disable TER when mudflap.
7029 (pass_del_ssa): Remove.
7030 * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
7031 partition members.
7032 (execute_free_datastructures): Declare.
7033 * Makefile.in (SSAEXPAND_H): New variable.
7034 (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
7035 * basic-block.h (commit_one_edge_insertion): Declare.
7036 * passes.c (init_optimization_passes): Move pass_nrv and
7037 pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
7038 pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
7039 * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
7040 (redirect_branch_edge): Deal with super block when expanding, split
7041 out jump patching itself into ...
7042 (patch_jump_insn): ... here, new static helper.
7043
17c665a9
MM
70442009-04-26 Michael Matz <matz@suse.de>
7045
7046 * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
7047 beyond num_ssa_names.
7048 * tree-ssa-ter.c (free_temp_expr_table): Likewise.
7049 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
7050
92061771
JJ
70512009-04-26 Jakub Jelinek <jakub@redhat.com>
7052
ce372372
JJ
7053 PR inline-asm/39543
7054 * fwprop.c (forward_propagate_asm): New function.
7055 (forward_propagate_and_simplify): Propagate also into __asm, if it
7056 doesn't increase the number of referenced registers.
7057
92061771
JJ
7058 PR c/39889
7059 * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
7060
70612009-04-26 Jakub Jelinek <jakub@redhat.com>
77f2a970
JJ
7062
7063 * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
7064 note_nonlocal_vla_type for nonlocal VLAs.
7065 (note_nonlocal_vla_type, note_nonlocal_block_vlas,
7066 contains_remapped_vars, remap_vla_decls): New functions.
7067 (convert_nonlocal_reference_stmt): If not optimizing, call
7068 note_nonlocal_block_vlas on GIMPLE_BIND block vars.
7069 (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
7070 if it wasn't found in var_map.
7071 (finalize_nesting_tree_1): Call remap_vla_decls. If outermost
7072 GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
7073 to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
7074 declare_vars.
7075 * gimplify.c (nonlocal_vlas): New variable.
7076 (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
7077 referenced VLAs.
7078 (gimplify_body): Create and destroy nonlocal_vlas.
a9548ddf 7079
4561e242
JJ
7080 * dwarf2out.c (loc_descr_plus_const): New function.
7081 (build_cfa_aligned_loc, tls_mem_loc_descriptor,
7082 mem_loc_descriptor, loc_descriptor_from_tree_1,
7083 descr_info_loc, gen_variable_die): Use it.
7084
a9548ddf
JJ
7085 * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
7086 !TREE_STATIC VAR_DECLs.
7087 * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
7088 DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
7089 (gen_variable_die): Likewise. Don't look at TREE_PRIVATE if
7090 DECL_BY_REFERENCE is valid.
7091 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
7092 for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
7093 * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
7094 Copy DECL_BY_REFERENCE.
7095 (struct nesting_copy_body_data): New type.
7096 (nesting_copy_decl): New function.
7097 (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
7098 if they have variable length.
7099
10555d08
MM
71002009-04-26 Michael Matz <matz@suse.de>
7101
7102 * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
7103 mark new temporaries for renaming.
7104
e11187cc
JM
71052009-04-26 Joseph Myers <joseph@codesourcery.com>
7106
7107 PR c/39581
7108 * c-decl.c (global_bindings_p): Return negative value.
7109 (c_variable_size): New. Based on variable_size from
7110 stor-layout.c.
7111 (grokdeclarator): Call c_variable_size not variable_size.
7112
f6a51d31
UB
71132009-04-26 Uros Bizjak <ubizjak@gmail.com>
7114
7115 * config/i386/i386.c (print_operand) ['z']: Fix typo.
7116
4b97723d
KT
71172009-04-26 Kai Tietz <kai.tietz@onevision.com>
7118
7119 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
7120 Redefine it to just use mingw/include.
7121 (ASM_SPEC): Rules for -m32 and -m64.
7122 (LINK_SPEC): Use Likewise.
7123 (SPEC_32): New define.
7124 (SPEC_64): Likewise.
7125 (SUB_LINK_SPEC): Likewise.
7126 (MULTILIB_DEFAULTS): New define.
7127 * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
7128 Add multilib options.
7129 (MULTILIB_DIRNAMES): Likewise.
7130 (MULTILIB_OSDIRNAMES): Likewise.
7131 (LIBGCC): Likewise.
7132 (INSTALL_LIBGCC): Likewise.
7133
991d6621
JM
71342009-04-26 Joseph Myers <joseph@codesourcery.com>
7135
7136 PR c/39556
7137 * c-tree.h (enum c_inline_static_type): New.
7138 (record_inline_static): Declare.
7139 * c-decl.c (struct c_inline_static, c_inline_statics,
7140 record_inline_static, check_inline_statics): New.
7141 (pop_file_scope): Call check_inline_statics.
7142 (start_decl): Call record_inline_static instead of pedwarning
7143 directly for static in inline function.
7144 * c-typeck.c (build_external_ref): Call record_inline_static
7145 instead of pedwarning directly for static referenced in inline
7146 function.
7147
4a81774c
SB
71482009-04-26 Steven Bosscher <steven@gcc.gnu.org>
7149
7150 * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
7151 not new but only being rescanned.
7152 * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
7153 reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
7154 alloc_reg_set_mem, free_reg_set_mem, record_one_set,
7155 record_set_info, compute_set, grealloc): Remove.
7156 (recompute_all_luids): New function.
7157 (gcse_main): Don't compute sets, and don't do related memory
7158 allocations/free-ing. If something changed before the end of the
7159 pass, update LUIDs using recompute_all_luids.
7160 (alloc_gcse_mem): Don't compute LUIDs. Don't allocate reg_set memory.
7161 (free_gcse_mem): Don't free it either.
7162 (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
7163 Use the df insn LUIDs.
7164 (load_killed_in_block): Likewise.
7165 (compute_hash_table_work): Don't compute reg_set_in_block.
7166 (compute_transp): Use DF_REG_DEF_CHAINs.
7167 (local_cprop_pass): Don't use compute_sets and related functions.
7168 (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
7169 Use get_max_uid() instead of max_cuid.
7170 (insert_insn_end_basic_block, pre_insert_copy_insn,
7171 update_ld_motion_stores): Don't try to
7172 keep reg_set tables up to date.
7173 (pre_insert_copies): Use df insn LUIDs.
7174 (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
7175 (reg_set_info): Don't use extra bitmap argument.
7176 (compute_store_table): Don't compute reg_set_in_block. Use DF scan
7177 information to compute regs_set_in_block.
7178 (free_store_memory, store_motion): Don't nullify reg_set_in_block.
7179 (bypass_jumps): Don't use compute_sets and friends.
7180
e8f99a9d
RW
71812009-04-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7182
7183 PR testsuite/39710
7184 * opts.c (undocumented_msg): Do not leave blank even with
7185 ENABLE_CHECKING.
7186
6895bac8
JM
71872009-04-25 Joseph Myers <joseph@codesourcery.com>
7188
7189 * c-decl.c (build_enumerator): Allow values folding to integer
7190 constants but not integer constant expressions with a pedwarn if
7191 pedantic.
7192
24070fcb
JM
71932009-04-25 Joseph Myers <joseph@codesourcery.com>
7194
7195 PR c/39582
7196 * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
7197 with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
7198 type is an integer constant.
7199
d6d89aa1
UB
72002009-04-25 Uros Bizjak <ubizjak@gmail.com>
7201
7202 PR target/39897
7203 * config/i386/i386.c (print_operand) ['z']: Revert handling of
7204 HImode operands.
7205
92f6fd0b
JM
72062009-04-25 Joseph Myers <joseph@codesourcery.com>
7207
7208 PR c/39564
7209 * c-decl.c (grokdeclarator): Diagnose declarations of functions
7210 with variably modified return type and no storage class
7211 specifiers, except for the case of nested functions. Distinguish
7212 extern declarations of functions with variably modified return
7213 types from those of objects with variably modified types.
7214
a3710436
JH
72152009-04-25 Jan Hubicka <jh@suse.cz>
7216
7217 * tree.c (list_equal_p): New function.
7218 * tree.h (list_equal_p): Declare.
7219 * coretypes.h (edge_def, edge, const_edge, basic_block_def
7220 basic_block_def, basic_block, const_basic_block): New.
7221 * tree-eh.c (make_eh_edge): EH edges are not abnormal.
7222 (redirect_eh_edge): New function.
7223 (make_eh_edge_update_phi): EH edges are not abnormal.
7224 * except.c: Include tree-flow.h.
7225 (list_match): New function.
7226 (eh_region_replaceable_by_p): New function.
7227 (replace_region): New function.
7228 (hash_type_list): New function.
7229 (hash_eh_region): New function.
7230 (eh_regions_equal_p): New function.
7231 (merge_peers): New function.
7232 (remove_unreachable_regions): Verify EH tree when checking;
7233 merge peers.
7234 (copy_eh_region_1): New function.
7235 (copy_eh_region): New function.
7236 (push_reachable_handler): New function.
7237 (build_post_landing_pads, dw2_build_landing_pads): Be ready for
7238 regions without label but with live RESX.
7239 * except.h (redirect_eh_edge_to_label): New.
7240 * tree-flow.h (redirect_eh_edge): New.
7241 * coretypes.h (edge_def, edge, const_edge, basic_block_def
7242 basic_block_def, basic_block, const_basic_block): Remove.
7243 * Makefile.in (except.o): Add dependency on tree-flow.h
7244 * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
7245 * basic-block.h (edge, const_edge, basic_block, const_basic_block):
7246 Remove.
7247
3764d512
EB
72482009-04-25 Eric Botcazou <ebotcazou@adacore.com>
7249
7250 PR bootstrap/39645
7251 * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
7252 on the destination of memcpy.
7253
1c62e8f2
PB
72542009-04-25 Paolo Bonzini <bonzini@gnu.org>
7255
7256 * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
7257 REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
7258 REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
7259
496a4ef5
JH
72602009-04-25 Jan Hubicka <jh@suse.cz>
7261
7262 * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
7263 (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
7264 to be reached by different label than left.
7265 (update_eh_edges): Update comment; remove edge_to_remove if possible
7266 and return true if suceeded.
7267 (cleanup_empty_eh): Accept sharing map; handle shared regions.
7268 (cleanup_eh): Compute sharing map.
7269 * except.c (remove_eh_handler_and_replace): Add argument if we should
7270 update regions.
7271 (remove_unreachable_regions): Update for label sharing.
7272 (label_to_region_map): Likewise.
7273 (get_next_region_sharing_label): New function.
7274 (remove_eh_handler_and_replace): Add update_catch_try parameter; update
7275 prev_try pointers.
7276 (remove_eh_handler): Update.
7277 (remove_eh_region_and_replace_by_outer_of): New function.
7278 * except.h (struct eh_region): Add next_region_sharing_label.
7279 (remove_eh_region_and_replace_by_outer_of,
7280 get_next_region_sharing_label): Declare.
7281 * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
7282
72832009-04-25 Jan Hubicka <jh@suse.cz>
7284
7285 * tree-cfg.c (split_critical_edges): Split also edges where we can't
7286 insert code even if they are not critical.
7287
72882009-04-25 Jan Hubicka <jh@suse.cz>
7289
7290 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
7291 (gimple_can_remove_branch_p): EH edges won't remove branch by
7292 redirection.
7293 * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
7294 updating of non-abnormal EH edges.
7295 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
7296 (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
7297 (split_critical_edges): Split also edges where emitting code on them
7298 will lead to splitting later.
7299
a3a5e3d1
UB
73002009-04-25 Uros Bizjak <ubizjak@gmail.com>
7301 H.J. Lu <hongjiu.lu@intel.com>
7302
7303 PR target/39590
7304 * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
7305 the configured assembler supports fildq and fistpq mnemonics.
7306 (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
7307 * configure: Regenerated.
7308 * config.in: Ditto.
7309
7310 * config/i386/i386.c (print_operand): Handle 'Z'.
7311 ['z']: Remove handling of special fild/fist suffixes.
7312 (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
7313 * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
7314 suffix of fild insn.
7315 (*floatsi<mode>2_vector_mixed): Ditto.
7316 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
7317 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
7318 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
7319 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
7320 * config/i386/gas.h (GAS_MNEMONICS): Remove.
7321
23750d7f
BE
73222009-04-25 Ben Elliston <bje@au.ibm.com>
7323
7324 * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
7325 the source of a set operation.
7326
e6ff3083
AS
73272009-04-25 Anatoly Sokolov <aesok@post.ru>
7328
7329 * target.h (struct gcc_target): Add case_values_threshold field.
7330 * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
7331 (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
7332 * targhooks.c (default_case_values_threshold): New function.
7333 * targhooks.h (default_case_values_threshold): Declare function.
7334 * stmt.c (expand_case): Use case_values_threshold target hook.
7335 * expr.h (case_values_threshold): Remove declartation.
7336 * expr.c (case_values_threshold): Remove function.
7337 * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
7338
7339 * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
7340 * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
7341 (avr_case_values_threshold): Declare as static.
7342 * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
7343
7344 * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
7345 * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
7346 (mn10300_case_values_threshold): New function.
7347
569c72fc
L
73482009-04-24 H.J. Lu <hongjiu.lu@intel.com>
7349
7350 * ira.c (setup_cover_and_important_classes): Add enum cast.
7351
ff3cb468
VM
73522009-04-24 Vladimir Makarov <vmakarov@redhat.com>
7353
7354 * genpreds.c (write_enum_constraint_num): Output definition of
7355 CONSTRAINT_NUM_DEFINED_P macro.
7356 * ira.c (setup_cover_and_important_classes): Use
7357 CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
7358
4f7be849
DD
73592009-04-24 DJ Delorie <dj@redhat.com>
7360
7361 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
7362 __SH2A_SINGLE_ONLY__ also.
7363
735b94a7
SE
73642009-04-24 Steve Ellcey <sje@cup.hp.com>
7365
7366 * config/ia64/ia64.md (movfs_internal): Allow flt constants.
7367 (movdf_internal): Ditto.
7368 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
7369 SFmode and DFmode constants.
7370 (ia64_print_operand): Add 'G' format for printing
7371 floating point constants.
7372
77a30264
RG
73732009-04-24 Richard Guenther <rguenther@suse.de>
7374
7375 * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
7376 from unsigned additions.
7377
2b6da65c
JM
73782009-04-24 Joseph Myers <joseph@codesourcery.com>
7379
7380 * c-typeck.c (set_init_index): Allow array designators that are
7381 not integer constant expressions with a pedwarn if pedantic.
7382
f5a17c43
BS
73832009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
7384
7385 * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
7386 zero if no overlap in nonzero bits between the operands.
7387
32e8bb8e
ILT
73882009-04-24 Ian Lance Taylor <iant@google.com>
7389
7390 * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
7391 (record_dead_and_set_regs): Likewise.
7392 * df.h (struct df_mw_hardreg): Change flags field to int.
7393 (struct df_base_ref): Likewise.
7394 (struct df): Change changeable_flags field to int.
7395 * df-scan.c (df_defs_record): Change clobber_flags to int.
7396 * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
7397 constants rather than #define macros.
7398 (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
7399 (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
7400 (enum dwarf_calling_convention): Likewise.
7401 (enum dwarf_line_number_x_ops): Likewise.
7402 (enum dwarf_call_frame_info): Likewise.
7403 (enum dwarf_source_language): Likewise.
7404 * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
7405 (add_calling_convention_attribute): Likewise.
a3a5e3d1
UB
7406 * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
7407 (combine_comparisons): Change compcode to int. Add cast to enum type.
32e8bb8e
ILT
7408 * genrecog.c (maybe_both_true_2): Change c to int.
7409 (write_switch): Likewise. Add cast to enum type.
7410 * gimplify.c (gimplify_omp_for): Handle return values from
7411 gimplify_expr using MIN rather than bitwise or.
7412 (gimplify_expr): Add cast to enum type.
7413 * ipa-prop.c (update_jump_functions_after_inlining): Change
7414 IPA_BOTTOM to IPA_JF_UNKNOWN.
a3a5e3d1
UB
7415 * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
7416 Add casts to enum type.
32e8bb8e
ILT
7417 (setup_cover_and_important_classes): Change cl to int. Add casts
7418 to enum type.
7419 (setup_class_translate): Change cl and mode to int.
7420 (ira_init_once): Change mode to int.
7421 (free_register_move_costs): Likewise.
7422 (setup_prohibited_mode_move_regs): Add casts to enum type.
7423 * langhooks.c (add_builtin_function_common): Rework assertion that
7424 value fits bitfield.
7425 * mcf.c (add_fixup_edge): Change type parameter to edge_type.
7426 * omega.c (omega_do_elimination): Avoid math on enum types.
7427 * optabs.c (expand_vec_shift_expr): Remove casts to int.
7428 * opts.c (set_debug_level): Change 2 to enum constant. Use new
7429 int local to handle integral_argment value.
7430 * regmove.c (try_auto_increment): Change PUT_MODE to
7431 PUT_REG_NOTE_KIND.
7432 * reload.c (push_secondary_reload): Add casts to enum type.
7433 (secondary_reload_class, find_valid_class): Likewise.
7434 * reload1.c (emit_input_reload_insns): Likewise.
7435 * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
7436 * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
7437 * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
7438 constant.
7439 * tree.c (build_common_builtin_nodes): Add casts to enum type.
7440 * tree-complex.c (complex_lattice_t): Typedef to int rather than
7441 enum type.
7442 (expand_complex_libcall): Add casts to enum type.
7443 * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
7444 * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
7445 with ERROR_MARK, not NUM_TREE_CODES.
7446 (vect_create_epilog_for_reduction): Likewise.
7447 (vectorizable_reduction): Don't initialize epiloc_reduc_code.
a3a5e3d1 7448 When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
32e8bb8e
ILT
7449 * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
7450 enum machine_mode.
7451 * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
7452 vect_unused_in_loop. Change 0 to loop_vect.
a3a5e3d1 7453 * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
32e8bb8e
ILT
7454 * var-tracking.c (get_init_value): Change return type to enum
7455 var_init_status.
7456 * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
7457 * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
7458 arm_fp_model.
7459 (arm_override_options): Add casts to enum type.
7460 (arm_emit_tls_decoration): Likewise.
7461 * config/i386/i386.c (ix86_function_specific_restore): Add casts
7462 to enum type.
7463 * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
7464 * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
7465 * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
7466 enum type.
7467 * config/s390/s390.c (code_for_builtin_64): Change to array of
7468 enum insn_code.
7469 (code_for_builtin_31): Likewise.
7470 (s390_expand_builtin): Change code_for_builtin to enum insn_code
7471 const *.
7472 * config/sparc/sparc.c (sparc_override_options): Change value
7473 field in struct code_model to enum cmodel. In initializer change
7474 0 to NULL and add cast to enum type.
7475
7476 * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
7477 Change all callers. Issue a -Wc++-compat warning using
7478 lhs_origtype if necessary.
7479 (convert_for_assignment): Issue -Wc++-compat warnings about
7480 invalid conversions to enum type on assignment.
7481 * c-common.h (build_modify_expr): Update declaration.
7482
ac4fc08a
NC
74832009-04-24 Nick Clifton <nickc@redhat.com>
7484
7485 * config/iq2000/iq2000.c (function_arg): Handle TImode values.
7486 (function_arg_advance): Likewise.
7487 * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
7488 5th alternative.
7489
f22e891a
AK
74902009-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
7491
7492 * config/s390/constraints.md ('I', 'J'): Fix condition.
7493
ad58aabe
DN
74942009-04-24 Diego Novillo <dnovillo@google.com>
7495
7496 * gengtype-parse.c (parse_error): Add newline after message.
7497
879a4a01
L
74982009-04-24 H.J. Lu <hongjiu.lu@intel.com>
7499
7500 * config/i386/sse.md (avxmodesuffixs): Removed.
7501 (*avx_pinsr<avxmodesuffixs>): Renamed to ...
7502 (*avx_pinsr<ssevecsize>): This.
7503
f63426af
BS
75042009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
7505
7506 * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
7507 follow chains of regs with a single definition, and allow expressions
7508 that are function_invariant_p.
ce72fe6c 7509 (simple_rhs_p): Allow expressions that are function_invariant_p.
f63426af 7510
30349c74
PB
75112009-04-24 Paolo Bonzini <bonzini@gnu.org>
7512
7513 PR middle-end/39867
7514 * fold-const.c (fold_cond_expr_with_comparison): When folding
7515 > and >= to MAX, make sure the MAX uses the same type as the
7516 comparison's operands.
7517
8d8256c1
NC
75182009-04-24 Nick Clifton <nickc@redhat.com>
7519
7520 * config/frv/frv.c (frv_frame_access): Do not use reg+reg
7521 addressing for DImode accesses.
7522 (frv_print_operand_address): Handle PLUS case.
a3a5e3d1 7523 * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
8d8256c1 7524
6216f94e
JJ
75252009-04-24 Jakub Jelinek <jakub@redhat.com>
7526
7527 PR rtl-optimization/39794
7528 * alias.c (canon_true_dependence): Add x_addr argument.
7529 * rtl.h (canon_true_dependence): Adjust prototype.
7530 * cse.c (check_dependence): Adjust canon_true_dependence callers.
7531 * cselib.c (cselib_invalidate_mem): Likewise.
7532 * gcse.c (compute_transp): Likewise.
7533 * dse.c (scan_reads_nospill): Likewise.
7534 (record_store, check_mem_read_rtx): Likewise. For non-const-or-frame
7535 addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
7536 canon_base_addr of the group, plus optional offset.
7537 (struct group_info): Rename canon_base_mem to
7538 canon_base_addr.
7539 (get_group_info): Set canon_base_addr to canon_rtx of base, not
7540 canon_rtx of base_mem.
7541
6de7a512
PB
75422009-04-23 Paolo Bonzini <bonzini@gnu.org>
7543
7544 * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
7545 Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
7546
4a3a2376
UW
75472009-04-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7548
7549 * config/spu/spu-builtins.h: Delete file.
7550
7551 * config/spu/spu.h (enum spu_builtin_type): Move here from
7552 spu-builtins.h.
7553 (struct spu_builtin_description): Likewise. Add GTY marker.
7554 Do not use enum spu_function_code or enum insn_code.
7555 (spu_builtins): Add extern declaration.
7556
7557 * config/spu/spu.c: Do not include "spu-builtins.h".
7558 (enum spu_function_code, enum spu_builtin_type_index,
7559 V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
7560 V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
7561 unsigned_V8HI_type_node, unsigned_V4SI_type_node,
7562 unsigned_V2DI_type_node): Move here from spu-builtins.h.
7563 (spu_builtin_types): Make static. Add GTY marker.
7564 (spu_builtins): Add extern declaration with GTY marker.
7565 Include "gt-spu.h".
7566
7567 * config/spu/spu-c.c: Do not include "spu-builtins.h".
7568 (spu_resolve_overloaded_builtin): Do not use spu_function_code.
7569 Check programmatically whether all parameters are scalar.
7570
7571 * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
7572
bbaba73f
EB
75732009-04-23 Eric Botcazou <ebotcazou@adacore.com>
7574
7575 * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
7576 assignment from the constructor either if the target is volatile.
7577
ee93c1c6
DJ
75782009-04-23 Daniel Jacobowitz <dan@codesourcery.com>
7579
7580 * config/arm/arm.md (insv): Do not share operands[0].
7581
b2f21330
NS
75822009-04-23 Nathan Sidwell <nathan@codesourcery.com>
7583
7584 * config/vxlib-tls.c (active_tls_threads): Delete.
7585 (delete_hook_installed): New.
7586 (tls_delete_hook): Don't delete the delete hook.
7587 (tls_destructor): Delete it here.
7588 (__gthread_set_specific): Adjust installing the delete hook.
7589 (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
7590 __gthread_leave_tsd_dtor_context.
7591
4782dfa7
RAE
75922009-04-23 Rafael Avila de Espindola <espindola@google.com>
7593
7594 * c-format.c (gcc_tdiag_char_table): Add support for %E.
7595
bf758008
UB
75962009-04-23 Uros Bizjak <ubizjak@gmail.com>
7597
7598 * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
7599 enum type.
7600 (alpha_rtx_costs): Ditto.
7601 (emit_unlikely_jump): Use add_reg_note.
7602 (emit_frame_store_1): Ditto.
7603 (alpha_expand_prologue): Ditto.
7604 (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
7605 * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
7606
7323a100
NC
76072009-04-23 Nick Clifton <nickc@redhat.com>
7608
7609 * config/v850/v850.md (epilogue): Remove suppressed code.
7610 (return): Rename to return_simple and remove test of frame size.
7611 * config/v850/v850.c (expand_epilogue): Rename call to gen_return
7612 to gen_return_simple.
7613
360032ba
JY
76142009-04-22 Jing Yu <jingyu@google.com>
7615
7616 PR testsuite/39781
7617 * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
7618
53650abe
AP
76192009-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
7620
7621 PR C/31499
7622 * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
7623 and RECORD_TYPE/UNION_TYPE. When outputing the actual element and the
7624 value is a VECTOR_CST, the element type is the element type of the
7625 vector.
7626
89043e8a
DD
76272009-04-22 DJ Delorie <dj@redhat.com>
7628
7629 * config/m32c/m32c.h: Update GTY annotations to new syntax.
7630
023f059b
JJ
76312009-04-22 Jakub Jelinek <jakub@redhat.com>
7632
7633 * alias.c (find_base_term): Move around LO_SUM case, so that
7634 CONST falls through into PLUS/MINUS handling.
7635
2c0eba5a
JJ
7636 PR c/39855
7637 * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
7638 into 0, use omit_one_operand.
7639
9a461028
BE
76402009-04-23 Ben Elliston <bje@au.ibm.com>
7641
7642 * config/rs6000/linux-unwind.h (get_regs): Remove type
7643 puns. Change the type of `pc' to an array of unsigned ints and
7644 update all users. Constify frame24.
7645
653e2568
DD
76462009-04-22 DJ Delorie <dj@redhat.com>
7647
7648 * config/m32c/m32c.c (m32c_special_page_vector_p): Move
7649 declarations before code.
7650 (current_function_special_page_vector): Likewise.
7651 (m32c_expand_insv): Silence a warning.
7652
60839f5d 76532009-04-21 Taras Glek <tglek@mozilla.com>
d1b38208
TG
7654
7655 * alias.c: Update GTY annotations to new syntax.
7656 * basic-block.h: Likewise.
7657 * bitmap.h: Likewise.
7658 * c-common.h: Likewise.
7659 * c-decl.c: Likewise.
7660 * c-parser.c: Likewise.
7661 * c-pragma.c: Likewise.
7662 * c-tree.h: Likewise.
7663 * cfgloop.h: Likewise.
7664 * cgraph.h: Likewise.
7665 * config/alpha/alpha.c: Likewise.
7666 * config/arm/arm.h: Likewise.
7667 * config/avr/avr.h: Likewise.
7668 * config/bfin/bfin.c: Likewise.
7669 * config/cris/cris.c: Likewise.
7670 * config/darwin.c: Likewise.
7671 * config/frv/frv.c: Likewise.
7672 * config/i386/i386.c: Likewise.
7673 * config/i386/i386.h: Likewise.
7674 * config/i386/winnt.c: Likewise.
7675 * config/ia64/ia64.h: Likewise.
7676 * config/iq2000/iq2000.c: Likewise.
7677 * config/mips/mips.c: Likewise.
7678 * config/mmix/mmix.h: Likewise.
7679 * config/pa/pa.c: Likewise.
7680 * config/pa/pa.h: Likewise.
7681 * config/rs6000/rs6000.c: Likewise.
7682 * config/s390/s390.c: Likewise.
7683 * config/sparc/sparc.c: Likewise.
7684 * config/xtensa/xtensa.c: Likewise.
7685 * cselib.h: Likewise.
7686 * dbxout.c: Likewise.
7687 * dwarf2out.c: Likewise.
7688 * except.c: Likewise.
7689 * except.h: Likewise.
7690 * fixed-value.h: Likewise.
7691 * function.c: Likewise.
7692 * function.h: Likewise.
7693 * gimple.h: Likewise.
7694 * integrate.c: Likewise.
7695 * optabs.c: Likewise.
7696 * output.h: Likewise.
7697 * real.h: Likewise.
7698 * rtl.h: Likewise.
7699 * stringpool.c: Likewise.
7700 * tree-data-ref.c: Likewise.
7701 * tree-flow.h: Likewise.
7702 * tree-scalar-evolution.c: Likewise.
7703 * tree-ssa-address.c: Likewise.
7704 * tree-ssa-alias.h: Likewise.
7705 * tree-ssa-operands.h: Likewise.
7706 * tree.c: Likewise.
7707 * tree.h: Likewise.
7708 * varasm.c: Likewise.
7709 * varray.h: Likewise.
7710 * vec.h: Likewise.
bf758008 7711 * coretypes.h: Do not define GTY macro if it is already defined.
d1b38208
TG
7712 * doc/gty.texi: Update GTY documentation to new syntax.
7713 * gengtype-lex.l: Enforce attribute-like syntax for GTY
7714 annotations on structs.
7715 * gengtype-parse.c: Likewise.
7716
a123d175
MH
77172009-04-22 Mark Heffernan <meheff@google.com>
7718
bf758008 7719 * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
a123d175 7720
4c7c486a
KH
77212009-04-22 Kazu Hirata <kazu@codesourcery.com>
7722
7723 * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
7724 where appropriate.
7725
6e782a29
KH
77262009-04-22 Kazu Hirata <kazu@codesourcery.com>
7727
7728 * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
7729 the same as a PLUS without a shift. Increase the cost of a
7730 CONST_INT in MULT.
7731
38d2336a
MLI
77322009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7733
7734 * Makefile.in: Update dependencies.
bf758008 7735 * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
38d2336a
MLI
7736 * errors.h: Remove bogus comment about compatibility.
7737 (warning): Update declaration.
7738 * genautomata.c: Update all calls to warning.
7739 * gimple.c: Do not include errors.h. Include toplev.h.
7740 * tree-ssa-structalias.c: Do not include errors.h.
7741 * omega.c: Likewise.
7742 * tree-ssa-reassoc.c: Likewise.
7743 * config/spu/spu-c.c: Likewise.
7744 * config/spu/t-spu-elf: Update dependencies.
7745
aea4deba
RG
77462009-04-22 Richard Guenther <rguenther@suse.de>
7747
7748 PR tree-optimization/39824
7749 * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
7750 make sure the types are compatible.
7751
cfc93532
MLI
77522009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7753
7754 PR c++/14875
7755 * c-common.c (c_parse_error): Take a token_flags parameter.
7756 Use token_type for the token type instead.
7757 Pass token_flags to cpp_type2name.
7758 * c-common.h (c_parse_error): Update declaration.
7759 * c-parser.c (c_parser_error): Pass 0 as token flags.
7760
8632d02a
AB
77612009-04-22 Andrey Belevantsev <abel@ispras.ru>
7762
7763 PR rtl-optimization/39580
7764 * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert.
7765
4c33221c
UW
77662009-04-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7767
7768 * function.c (expand_function_end): Do not emit a jump to the "naked"
7769 return label for fall-through returns.
7770 * except.c (sjlj_emit_function_exit): Always place the call to the
7771 unregister function at the location installed by expand_function_end.
7772
9925bce0
RG
77732009-04-22 Richard Guenther <rguenther@suse.de>
7774
7775 PR tree-optimization/39845
7776 * tree-switch-conversion.c (build_arrays): Add new referenced vars.
7777 (gen_inbound_check): Likewise.
7778
24a40b35
NS
77792009-04-22 Nathan Sidwell <nathan@codesourcery.com>
7780
7781 * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
7782 padding for PPC.
7783 (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
7784 * config/vxlib.c (__gthread_once): Add race guard for PPC.
7785
6c34a092
PB
77862009-04-22 Paolo Bonzini <bonzini@gnu.org>
7787
7788 * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
7789 sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
7790 shift counts to avoid out-of-bounds array accesses.
7791
baa48dfa
PB
77922009-04-22 Paolo Bonzini <bonzini@gnu.org>
7793
7794 * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
7795 (Pmode): Move above.
7796
7d83f4f5
UB
77972009-04-22 Uros Bizjak <ubizjak@gmail.com>
7798
7799 * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
7800 NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
7801 GET_CODE macro. Use IN_RANGE macro where appropriate.
7802 * config/alpha/alpha.h: Ditto.
7803 * config/alpha/alpha.md: Ditto.
7804 * config/alpha/constraints.md: Ditto.
7805 * config/alpha/predicates.md: Ditto.
7806
3ad606bc
PB
78072009-04-22 Paolo Bonzini <bonzini@gnu.org>
7808
7809 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
7810 * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7811 * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7812 * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7813 * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7814 * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7815 * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7816 * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7817 * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7818 * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7819 * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7820 * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7821 * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7822 * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7823 * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7824 * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7825 * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7826 * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7827 * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7828 * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7829 * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7830 * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7831 * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7832 * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7833 * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7834 * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7835 * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7836
3cabd6d1
LB
78372009-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
7838
7839 * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
7840 references from comments.
7841 * cfgbuild.c: (count_basic_blocks): Delete.
7842 (find_basic_blocks_1): Delete.
7843 (find_basic_blocks): Delete.
7844 * except.c (finish_eh_generation): Make static. Move comment from
7d83f4f5 7845 except.h here. Remove find_basic_blocks references from comments.
3cabd6d1
LB
7846 * except.h (finish_eh_generation): Delete.
7847 * basic-block.h (find_basic_blocks): Delete.
7848 * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
7849
270d1bcd
DK
78502009-04-22 Dave Korn <dave.korn.cygwin@gmail.com>
7851
7852 * sdbout.c (sdbout_symbol): Pass VOIDmode to eliminate_regs.
7853 (sdbout_parms): Likewise.
7854
b757d36f
KK
78552009-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
7856
7857 * config/sh/sh.c (prepare_cbranch_operands): Use
7858 LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
7859 (expand_cbranchdi4): Likewise.
7860 (from_compare): Add cast to enum type.
7861 (expand_cbranchsi4): Use add_reg_note.
7862 (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
7863 (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
7864 (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
7865 (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
7866 * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
7867 instead of CODE_FOR_nothing.
7868 (cbranchdi4): Likewise. Fix the order of arguments for
7869 gen_rtx_fmt_ee.
7870 (push_fpscr): Use add_reg_note.
7871 (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
7872 reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
7873
ad41bd84
JM
78742009-04-21 Joseph Myers <joseph@codesourcery.com>
7875
7876 * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
7877 ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
7878 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
7879 ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
7880 ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
7881 FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
7882 config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
7883 config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
7884 config/alpha/x-vms, config/arc/t-arc,
7885 config/arm/README-interworking, config/arm/arm-c.c,
7886 config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
7887 config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
7888 config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
7889 config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
7890 config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
7891 config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
7892 config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
7893 config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
7894 config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
7895 config/cris/t-elfmulti, config/crx/t-crx,
7896 config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
7897 config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
7898 config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
7899 config/h8300/t-h8300, config/i386/athlon.md,
7900 config/i386/darwin-libgcc.10.4.ver,
7901 config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
7902 config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
7903 config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
7904 config/i386/t-linux64, config/i386/t-nwld,
7905 config/i386/t-rtems-i386, config/i386/t-sol2-10,
7906 config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
7907 config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
7908 config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
7909 config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
7910 config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
7911 config/iq2000/t-iq2000, config/libgcc-glibc.ver,
7912 config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
7913 config/m32r/t-m32r, config/m68hc11/t-m68hc11,
7914 config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
7915 config/m68k/t-uclinux, config/mcore/t-mcore,
7916 config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
7917 config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
7918 config/mips/crtn.asm, config/mips/irix-crti.asm,
7919 config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
7920 config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
7921 config/mips/mips-fixed.md, config/mips/sb1.md,
7922 config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
7923 config/mips/t-iris6, config/mips/t-isa3264,
7924 config/mips/t-libgcc-mips16, config/mips/t-linux64,
7925 config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
7926 config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
7927 config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
7928 config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
7929 config/mn10300/t-linux, config/mn10300/t-mn10300,
7930 config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
7931 config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
7932 config/picochip/libgccExtras/clzsi2.asm,
7933 config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
7934 config/rs6000/darwin-libgcc.10.4.ver,
7935 config/rs6000/darwin-libgcc.10.5.ver,
7936 config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
7937 config/rs6000/t-aix43, config/rs6000/t-aix52,
7938 config/rs6000/t-darwin, config/rs6000/t-fprules,
7939 config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
7940 config/rs6000/t-lynx, config/rs6000/t-netbsd,
7941 config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
7942 config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
7943 config/rs6000/t-rtems, config/rs6000/t-spe,
7944 config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
7945 config/score/t-score-elf, config/sh/divcost-analysis,
7946 config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
7947 config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
7948 config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
7949 config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
7950 config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
7951 config/stormy16/stormy-abi, config/stormy16/t-stormy16,
7952 config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
7953 config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
7954 config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
7955 config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
7956 config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
7957 gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
7958 java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
7959 limitx.h, version.c, xcoff.h: Add copyright and license notices.
7960 * config/h8300/genmova.sh: Include copyright and license notices
7961 in generated output.
7962 * config/h8300/mova.md: Regenerate.
7963 * doc/install.texi2html: Include word "Copyright" in copyright
7964 notice and use name "Free Software Foundation, Inc.".
7965 * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
7966 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
7967 ChangeLog-2007, ChangeLog-2008: Correct dates.
7968
ca80e52b
EB
79692009-04-21 Eric Botcazou <ebotcazou@adacore.com>
7970
7971 * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
7972 NE_EXPR operations as well.
7973 * c-parser.c (c_parser_condition): Do not set location information on
7974 the condition.
7975 (c_parser_conditional_expression): Likewise.
7976 (c_parser_binary_expression): Set location information on operators.
7977 * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
7978 TRUTH_NOT_EXPR has been folded.
7979 * fold-const.c (fold_truth_not_expr): Copy location information from
7980 the incoming expression to the outgoing one.
7981 * gimplify.c (shortcut_cond_r): Add locus parameter. Pass it to
7982 recursive calls on the LHS of the operator but pass that of the
7983 operator to recursive calls on the RHS of the operator. Set it
7984 on the COND_EXPR.
7985 (shortcut_cond_expr): Set the locus of the operator on the second
7986 COND_EXPR and that of the expression on the first in degenerate cases.
7987 Pass the locus of the expression to calls to shortcut_cond_r.
7988 Set the locus of the 'then' block on the associated jump, if any.
7989 (gimplify_boolean_expr): Add locus parameter. Set it on the COND_EXPR.
7990 (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
7991 expression to call to gimplify_boolean_expr.
7992
35091630
KT
79932009-04-21 Kai Tietz <kai.tietz@onevision.com>
7994
7995 * config.gcc: Add additional configuration for
7996 i686-w64-mingw* and x86_64-w64-mingw* triplet.
7997 * config/i386/mingw-w64.h: New mingw-w64 specific header.
7998 (CPP_SPEC): Redefine for allowing -municode option.
7999 (STARTFILE_SPEC): Likewise.
8000 * config/i386/t-mingw-w64: New.
8001 * config/i386/mingw-w64.opt: New.
8002 (municode): Add new target option.
8003 * doc/invoke.texi (municode): Add documentation for new option.
8004
0267afc4
ILT
80052009-04-21 Ian Lance Taylor <iant@google.com>
8006
8007 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
8008 Correct test for number of arguments.
8009 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
8010
2ba9daa7
AS
80112009-04-21 Andreas Schwab <schwab@linux-m68k.org>
8012
8013 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
8014 argument of emit_library_call.
8015
ad8a1ac0
RG
80162009-04-21 Richard Guenther <rguenther@suse.de>
8017
8018 PR middle-end/39829
8019 * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
8020 inside VIEW_CONVERT_EXPRs.
8021
7156c8ab
MJ
80222009-04-21 Martin Jambor <mjambor@suse.cz>
8023
8024 * tree-switch-conversion.c (build_constructors): Split a long line.
8025 (constructor_contains_same_values_p): New function.
7d83f4f5
UB
8026 (build_one_array): Create assigns of constants if possible, do not
8027 call mark_sym_for_renaming, call update_stmt.
7156c8ab
MJ
8028 (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
8029 make_rename_temp. Do not call mark_symbols_for_renaming, call
8030 update_stmt.
8031 (gen_def_assigns): Do not call mark_symbols_for_renaming or
8032 find_new_referenced_vars, call update_stmt.
8033 (gen_inbound_check): Use create_tmp_var and create ssa names manually
8034 instead of calling make_rename_temp. Do not call
8035 find_new_referenced_vars or mark_symbols_for_renaming, call
8036 update_stmt.
8037
2970ccb3
RG
80382009-04-21 Richard Guenther <rguenther@suse.de>
8039
8040 PR tree-optimization/39827
7d83f4f5 8041 * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
2970ccb3
RG
8042 (tree_ssa_phiprop): Pass the correct array size.
8043
47f402d1
UB
80442009-04-21 Uros Bizjak <ubizjak@gmail.com>
8045
8046 * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
8047
1e4ae551
MLI
80482009-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
8049
8050 PR 16202
8051 * c-typeck.c (lvalue_p): Move declaration ...
8052 * c-common.h (lvalue_p): ... to here.
8053 * c-common.c (candidate_equal_p): New.
8054 (add_tlist): Use it.
8055 (merge_tlist): Use it.
8056 (warn_for_collisions_1): Likewise.
8057 (warning_candidate_p): Accept more candidates.
8058 (verify_tree): A warning candidate can be an expression. Use
8059 candidate_equal_p.
8060
244609a6
BE
80612009-04-21 Ben Elliston <bje@au.ibm.com>
8062
8063 PR target/5267
8064 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
8065 for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
8066 options. Remove -mcall-solaris documentation.
8067
9c650d90
MLI
80682009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8069
8070 PR c++/13358
8071 * doc/invoke.texi (-Wlong-long): Update description.
8072 * c-lex (interpret_integer): Only warn if there was no previous
8073 overflow and -Wlong-long is enabled.
8074 * c-decl.c (declspecs_add_type): Drop redundant flags.
8075 * c.opt (Wlong-long): Init to -1.
8076 * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
8077 and front-end warn_long_long. Wlong-long only depends on other
8078 flags if it is uninitialized.
8079 * c-parser.c (disable_extension_diagnostics): warn_long_long is
8080 the same for CPP and FE.
8081 (restore_extension_diagnostics): Likewise.
8082
bbbbb16a
ILT
80832009-04-20 Ian Lance Taylor <iant@google.com>
8084
8085 Fix enum conversions which are invalid in C++:
47f402d1
UB
8086 * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
8087 * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
8088 * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
8089 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
47f402d1 8090 * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
bbbbb16a 8091 (dbxout_parms): Likewise.
47f402d1 8092 * df-core.c (df_set_flags): Change changeable_flags parameter to int.
bbbbb16a
ILT
8093 (df_clear_flags): Likewise.
8094 * df-problems.c (df_rd_bb_local_compute_process_def): Change
8095 top_flag parameter to int.
8096 (df_chain_create_bb_process_use): Likewise.
47f402d1
UB
8097 (df_chain_add_problem): Change chain_flags parameter to unsigned int.
8098 Remove cast.
bbbbb16a
ILT
8099 * df-scan.c (df_ref_create): Change ref_flags parameter to int.
8100 (df_ref_create_structure, df_def_record_1): Likewise.
8101 (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
8102 (df_notes_rescan): Change 0 to VOIDmode in function call.
8103 (df_get_call_refs, df_insn_refs_collect): Likewise.
8104 (df_bb_regs_collect): Likewise.
8105 (df_entry_block_defs_collect): Likewise.
8106 (df_exit_block_uses_collect): Likewise.
8107 * df.h: Update declarations.
8108 * double-int.c (double_int_divmod): Add cast to enum type.
8109 * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
8110 * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
8111 (based_loc_descr): Likewise.
8112 (loc_descriptor_from_tree_1): Change first_op and second_op to
8113 enum dwarf_location_atom. Add cast to enum type.
8114 * expmed.c (init_expmed): Change 0 to SET in function call.
47f402d1 8115 * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
8116 (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
8117 (do_store_flag): Likewise.
8118 * fixed-value.h (struct fixed_value): Change mode to enum
8119 machine_mode.
47f402d1 8120 * function.c (assign_parms): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
8121 * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
8122 function call.
8123 (insert_insn_decl, insert_decl, insert_state): Likewise.
8124 (automata_list_finish): Likewise.
8125 * genrecog.c (process_define_predicate): Add cast to enum type.
8126 * gensupport.c (init_predicate_table): Add cast to enum type.
8127 * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
8128 function call.
8129 (gimple_build_call_1, gimple_build_label): Likewise.
8130 (gimple_build_goto, gimple_build_asm_1): Likewise.
8131 (gimple_build_switch_1, gimple_build_cdt): Likewise.
47f402d1 8132 * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
bbbbb16a
ILT
8133 (enum fallback): Rename from enum fallback_t.
8134 (fallback_t): Typedef as int.
8135 * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
8136 GSI_SAME_STMT in function call.
8137 * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
8138 enum type.
8139 (setup_reg_class_relations): Likewise.
47f402d1 8140 (setup_reg_class_nregs): Change cl to int. Add casts to enum type.
bbbbb16a
ILT
8141 (setup_prohibited_class_mode_regs): Add cast to enum type.
8142 (setup_prohibited_mode_move_regs): Likewise.
47f402d1 8143 * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
bbbbb16a
ILT
8144 (record_address_regs): Change i to enum reg_class.
8145 * lists.c (alloc_EXPR_LIST): Add cast to enum type.
8146 * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
8147 (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
8148 (GET_MODE_2XWIDER_MODE): Likewise.
8149 (GET_CLASS_NARROWEST_MODE): Likewise.
8150 * omp-low.c (expand_omp_for): Add cast to enum type.
8151 * optabs.c (debug_optab_libfuncs): Add casts to enum type.
8152 * opts.c (enable_warning_as_error): Change kind to diagostic_t.
8153 * postreload.c (reload_cse_simplify_operands): Change rclass local
8154 to enum reg_class.
8155 * predict.c (combine_predictions_for_insn): Change best_predictor
8156 and predictor to enum br_predictor.
8157 (combine_predictions_for_bb): Likewise.
8158 (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
8159 use SET_PREDICT_EXPR_OUTCOME.
47f402d1 8160 * real.c (real_arithmetic): Change icode to code in function call.
bbbbb16a
ILT
8161 * reginfo.c (init_move_cost): Add casts to enum type.
8162 (init_reg_sets_1, init_fake_stack_mems): Likewise.
8163 * regmove.c (regclass_compatible_p): Change class0 and class1 to
8164 enum reg_class.
8165 * reload.c (find_valid_class): Add casts to enum type.
8166 (push_reload): Change 0 to NO_REGS in function call.
8167 (find_reloads): Change this_alternative to array of enum
8168 reg_class. Remove some now-unnecessary casts.
8169 (make_memloc): Change 0 to VOIDmode in function call.
8170 * reload1.c (reload): Change 0 to VOIDmode in function call.
8171 (eliminate_regs_1, elimination_effects): Likewise.
8172 (eliminate_regs_in_insn): Likewise.
8173 (emit_input_reload_insns): Add cast to enum type.
8174 (delete_output_reload): Change 0 to VOIDmode in function call.
8175 * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
8176 to enum type in function call.
8177 * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
8178 (SET_PREDICT_EXPR_OUTCOME): Define.
47f402d1 8179 * tree-dump.c (get_dump_file_info): Change phase parameter to int.
bbbbb16a
ILT
8180 (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
8181 (dump_initialized_p, dump_flag_name, dump_end): Likewise.
8182 (dump_function): Likewise.
8183 * tree-dump.h: Update declarations.
8184 * tree-pass.h: Update declarations.
8185 * varasm.c (assemble_integer): Change mclass to enum mode_class.
8186 * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
8187 enum type.
8188 (arm_rtx_costs_1): Correct parenthesization.
8189 (arm_rtx_costs): Add casts to enum type.
8190 (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
8191 (vfp_emit_fstmd): Use add_rg_note.
8192 (emit_multi_reg_push, emit_sfm): Likewise.
8193 (thumb_set_frame_pointer): Likewise.
8194 (arm_expand_prologue): Likewise.
8195 (arm_regno_class): Change return type to enum reg_class.
8196 (thumb1_expand_prologue): Use add_reg_note.
8197 * config/arm/arm-protos.h (arm_regno_class): Update declaration.
8198 * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
8199 in function call.
8200 * config/arm/gentune.sh: Add cast to enum type.
8201 * config/arm/arm-tune.md: Rebuild.
8202 * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
8203 (ix86_split_fp_branch, predict_jump): Likewise.
8204 (ix86_expand_multi_arg_builtin): Change sub_code from enum
8205 insn_code to enum rtx_code.
8206 (ix86_builtin_vectorized_function): Add cast to enum type.
8207 * config/i386/i386.md (truncdfsf2): Change slot to enum
8208 ix86_stack_slot.
8209 (truncxf<mode>2, isinf<mode>2): Likewise.
8210 * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
8211 enum type.
8212 * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
8213 (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
8214 (insert_bundle_state): Change 1 to INSERT in function call.
8215 (ia64_add_bundle_selector_before): Likewise.
8216 * config/ia64/ia64.md (cpu attr): Add cast to enum type.
8217 (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
8218 (restore_stack_nonlocal): Likewise.
8219 * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
8220 function call.
8221 * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
8222 function call.
8223 (mips_rtx_costs): Likewise.
8224 (mips_override_options): Add casts to enum type.
8225 * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
8226 in function call.
8227 * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
8228 (store_reg, set_reg_plus_d): Likewise.
8229 (hppa_expand_prologue, hppa_profile_hook): Likewise.
8230 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
8231 cast to enum type.
8232 (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
8233 function call.
8234 (emit_unlikely_jump): Use add_reg_note.
8235 (rs6000_emit_allocate_stack): Likewise.
8236 (rs6000_frame_related, rs6000_emit_prologue): Likewise.
8237 (output_toc): Change 1 to INSERT in function call.
8238 (output_profile_hook): Change 0 to LCT_NORMAL in function call.
8239 (rs6000_initialize_trampoline): Likewise.
8240 (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
8241 function call.
8242 * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
8243 (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
8244 (s390_expand_setmem, s390_expand_cmpmem): Likewise.
8245 (save_gprs): Use add_reg_note.
8246 (s390_emit_prologue): Likewise.
47f402d1 8247 (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
8248 * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
8249 (sparc_fold_builtin): Add cast to enum type.
8250 * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
8251 enum insn_code.
8252 (spu_expand_prologue): Use add_reg_note.
47f402d1 8253 (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
8254
82552009-04-20 Ian Lance Taylor <iant@google.com>
8256
8257 * c-parser.c (c_parser_attributes): Change VEC back to tree list.
8258 (c_parser_postfix_expression_after_primary): Get VEC for list of
8259 arguments. Get original types of arguments. Call
8260 build_function_call_vec.
8261 (cached_expr_list_1, cached_expr_list_2): New static variables.
8262 (c_parser_expr_list): Change return type to VEC *. Add
8263 p_orig_types parameter. Change all callers.
8264 (c_parser_release_expr): New static function.
8265 (c_parser_vec_to_tree_list): New static function.
8266 * c-typeck.c (build_function_call): Rewrite to build a VEC and
8267 call build_function_call_vec.
8268 (build_function_call_vec): New function, based on old
8269 build_function_call.
8270 (convert_arguments): Remove nargs and argarray parameters. Change
8271 values to a VEC. Add origtypes parameter.
47f402d1 8272 (build_modify_expr): Add rhs_origtype parameter. Change all callers.
bbbbb16a
ILT
8273 (convert_for_assignment): Add origtype parameter. Change all
8274 callers. If warn_cxx_compat, check for conversion to an enum
8275 type when calling a function.
8276 (store_init_value): Add origtype parameter. Change all callers.
8277 (digest_init): Likewise.
8278 (struct init_node): Add origtype field.
8279 (add_pending_init): Add origtype parameter. Change all callers.
8280 (output_init_element): Likewise.
8281 (output_pending_init_elements): Pass origtype from init_node to
8282 output_init_element.
f28a61ab 8283 (process_init_element): Pass origtype from c_expr to
bbbbb16a
ILT
8284 output_init_element.
8285 (c_finish_return): Add origtype parameter. Change all callers.
8286 * c-common.c (sync_resolve_size): Change params to VEC *. Change
8287 caller.
8288 (sync_resolve_params): Likewise.
47f402d1 8289 (sync_resolve_return): Change params to first_param. Change caller.
bbbbb16a 8290 (resolve_overloaded_builtins): Change params to VEC *. Change
47f402d1 8291 callers. Save first parameter around call to build_function_call_vec.
bbbbb16a
ILT
8292 * c-decl.c (finish_decl): Add origtype parameter. Change all
8293 callers. Call build_function_call_vec rather than
8294 build_function_call for cleanup.
8295 * c-tree.h: Update declarations.
8296 * c-common.h: Update declarations.
8297 * stub-objc.c (objc_rewrite_function_call): Change parameter from
8298 params to first_param.
8299 * target.h (struct gcc_target): Change resolve_overloaded_builtin
8300 params parameter from tree to void *.
8301 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
8302 Change arglist parameter to have type void *, and to be a pointer
8303 to a VEC.
8304 * config/rs6000/rs6000-protos.h
8305 (altivec_resolve_overloaded_builtin): Update declaration.
8306 * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
8307 fnargs parameter to have type void *, and to be a pointer to a
8308 VEC. Call build_function_call_vec instead of
8309 build_function_call.
47f402d1 8310 * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
bbbbb16a 8311
6ff078d4 83122009-04-20 Joey Ye <joey.ye@intel.com>
60839f5d 8313 Xuepeng Guo <xuepeng.guo@intel.com>
6ff078d4
JY
8314 H.J. Lu <hongjiu.lu@intel.com>
8315
8316 * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
8317
8318 * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
8319 (IX86_LEA_PRIORITY): Likewise.
8320 (distance_non_agu_define): New function.
8321 (distance_agu_use): Likewise.
8322 (ix86_lea_for_add_ok): Likewise.
8323 (ix86_dep_by_shift_count): Likewise.
8324
8325 * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
8326 should split for LEA.
8327
8328 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
8329 function.
8330 (ix86_dep_by_shift_count): Likewise.
8331
87a5b4cc
RG
83322009-04-20 Richard Guenther <rguenther@suse.de>
8333
8334 * expr.c (handled_component_p): Move ...
8335 * tree.h (handled_component_p): ... here.
8336 * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
8337 ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
8338 and REALPART_EXPR to be in one group.
8339
438c239d
RG
83402009-04-20 Richard Guenther <rguenther@suse.de>
8341
8342 * basic-block.h (get_all_dominated_blocks): Declare.
8343 * dominance.c (get_all_dominated_blocks): New function.
8344 * tree-cfg.c (get_all_dominated_blocks): Remove.
8345 (remove_edge_and_dominated_blocks): Adjust.
8346 * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
8347 (tree_ssa_phiprop): ... here. Use get_all_dominated_blocks
8348 instead of recursing.
8349
fed5ae11
DK
83502009-04-20 Doug Kwan <dougkwan@google.com>
8351
8352 * cgraph.h (cgraph_node_ptr): New type for vector functions.
8353 (struct cgraph_node_set_def): New type.
8354 (cgraph_node_set) New type. Also declare vector functions.
8355 (struct cgraph_node_set_element_def): New type.
8356 (cgraph_node_set_element): Ditto.
8357 (cgraph_node_set_iterator): New iterator type.
8358 (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
8359 cgraph_node_set_remove, dump_cgraph_node_set,
8360 debug_cgraph_node_set): New prototypes.
8361 (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
8362 cgraph_node_set_size): New inlines.
8363 * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
8364 including cgraph.h.
8365 (struct ipa_opt_pass): Add struct cgraph_node_set_def
8366 argument to function 'write_summary'.
8367 * ipa.c: Include ggc.h.
8368 (hash_cgraph_node_set_element,
8369 eq_cgraph_node_set_element, cgraph_node_set_new,
8370 cgraph_node_set_add, cgraph_node_set_remove,
8371 cgraph_node_set_find, dump_cgraph_node_set,
8372 debug_cgraph_node_set): New functions.
8373 * Makefile.in (ipa.o): Add dependency on GGC_H.
8374
c4551b28
IR
83752009-04-20 Ira Rosen <irar@il.ibm.com>
8376
8377 PR tree-optimization/39675
2ba9daa7 8378 * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
47f402d1
UB
8379 check of the return code of vect_schedule_slp. Check that
8380 stmt_vec_info still exists for the statement, before checking its
8381 vectorization type.
c4551b28 8382
21a495fb
MM
83832009-04-20 Michael Matz <matz@suse.de>
8384
8385 * Makefile.in (generated_files): Take out $(simple_generated_c).
8386
8e208874
DK
83872009-04-19 Dave Korn <dave.korn.cygwin@gmail.com>
8388
8389 * config/i386/cygwin-stdint.h (INTPTR_TYPE): Remove "long".
8390 (UINTPTR_TYPE): Likewise.
8391
a45e580b
JM
83922009-04-19 Joseph Myers <joseph@codesourcery.com>
8393
8394 PR c/37481
8395 * c-typeck.c (digest_init): Check for initializing an array with a
8396 string literal.
8397
20845d35
JM
83982009-04-19 Joseph Myers <joseph@codesourcery.com>
8399
8400 PR c/19771
8401 * c-semantics.c (pop_stmt_list): Propagate
8402 STATEMENT_LIST_HAS_LABEL to parent statement list.
8403
28143fdd
AN
84042009-04-19 Adam Nemet <anemet@caviumnetworks.com>
8405
8406 * config/mips/mips.h (mips_tune_attr): New macro.
8407 * config/mips/mips.md (cpu): Use it.
8408
da377db9
JM
84092009-04-19 Joseph Myers <joseph@codesourcery.com>
8410
8411 PR c/38243
8412 * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
8413 declaring a tag.
8414
3baf459d
DN
84152009-04-19 Diego Novillo <dnovillo@google.com>
8416
8417 * toplev.c (compile_file): Move call to coverage_finish ...
8418 * cgraphunit.c (ipa_passes): ... here.
8419 Call cgraph_process_new_functions.
8420 * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
8421 * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
8422
b6fa5b01
JH
84232009-04-19 Jan Hubicka <jh@suse.cz>
8424
47f402d1
UB
8425 * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
8426 cfun.
b6fa5b01
JH
8427 (dump_cgraph_node): Dump can throw external flag.
8428 * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
8429
ca409efd
MLI
84302009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
8431
8432 PR c/32061
8433 PR c++/36954
8434 * doc/invoke.texi: Add -Wlogical-op to -Wextra.
8435 * common.opt (Wlogical-op): Move from here...
8436 * c.opt (Wlogical-op): ... to here.
8437 * c-typeck.c (parser_build_binary_op): Update call to
8438 warn_logical_operator.
8439 * c-opts.c (c_common_post_options): Enable warn_logical_op with
8440 extra_warnings.
8441 * c-common.c (warn_logical_op): Update.
8442 * c-common.h (warn_logical_op): Update declaration.
8443
9db4cdd3
EB
84442009-04-19 Eric Botcazou <ebotcazou@adacore.com>
8445
8446 * tree.c (protected_set_expr_location): Fix formatting.
8447
f37acdf9
JM
84482009-04-18 Joseph Myers <joseph@codesourcery.com>
8449
8450 PR c/27676
8451 * c-typeck.c (readonly_warning): new.
8452 (build_unary_op, build_modify_expr): Use readonly_warning for
8453 storing into something readonly but not const-qualified.
8454
2b4b7036
JM
84552009-04-18 Joseph Myers <joseph@codesourcery.com>
8456
8457 PR c/22367
8458 * c-typeck.c (build_unary_op): Check for taking address of
8459 expression of type void.
8460
3ce62965
JM
84612009-04-18 Joseph Myers <joseph@codesourcery.com>
8462
8463 PR c/35210
8464 * c-typeck.c (build_function_call): Check for calling a function
8465 with qualified void return types. Call require_complete_type when
8466 generating a trap.
8467
2505c5ed
JH
84682009-04-18 Jan Hubicka <jh@suse.cz>
8469
8470 * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
8471 Set nothrow flag.
8472 * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
8473 can_throw_external flag.
8474 * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
8475 * ipa-pure-const.c (ignore_edge): New function.
8476 (propagate): Compute order for NOTHROW computation; set NOTHROWs
8477 only over can_throw_external edges.
8478 (local_pure_const): Add nothrow flag.
8479 * ipa-utils.c (searchc): Add ignore_edge callback.
8480 (ipa_utils_reduced_inorder): Add ignore_edge callback.
8481 * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
8482 (set_nothrow_function_flags): Update cgraph.
8483 * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
8484
2586ba4b
RG
84852009-04-18 Richard Guenther <rguenther@suse.de>
8486
8487 PR middle-end/39804
8488 * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
8489 (fold_stmt): ... this and ...
8490 (fold_stmt_inplace): ... this.
8491 (fold_stmt_1): Fold references in calls and asms.
8492 * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
8493
1eefab17
KH
84942009-04-18 Kazu Hirata <kazu@codesourcery.com>
8495
8496 * tree-vrp.c (ssa_name_nonzero_p): Remove.
8497 * tree.h: Remove the prototype for ssa_name_nonzero_p.
8498
aa424b01
KH
84992009-04-18 Kazu Hirata <kazu@codesourcery.com>
8500
8501 * tree.c (function_args_count): Remove.
8502 * tree.h: Remove the prototype for function_args_count.
8503
613a896b
KH
85042009-04-18 Kazu Hirata <kazu@codesourcery.com>
8505
8506 * tree-iterator.c (expr_only): Remove.
8507 * tree.h: Remove the prototype for expr_only.
8508
579e694c
KH
85092009-04-18 Kazu Hirata <kazu@codesourcery.com>
8510
8511 * reginfo.c (cannot_change_mode_set_regs): Remove.
8512 * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
8513
ee7e3ad3
AS
85142009-04-08 Anatoly Sokolov <aesok@post.ru>
8515
8516 * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
8517 whether operands 0 and 1 overlaps.
8518
92ef7fb1
MLI
85192009-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
8520
8521 PR middle-end/36902
8522 * tree-vrp.c (check_array_ref): Pass a location_t instead of a
8523 pointer. Use warning_at instead of warning.
8524 (search_for_addr_array): Likewise.
8525 (check_array_bounds): Likewise.
8526 (check_all_array_refs): Check that the incoming edge is not in the
8527 list of edges to be removed.
8528 (check_all_array_refs): Avoid the temporal pointer.
8529 (vrp_visit_cond_stmt): Fix typo.
8530 (simplify_switch_using_ranges): Handle the case where the switch
8531 index is an integer constant.
8532
0e097268
AN
85332009-04-18 Adam Nemet <anemet@caviumnetworks.com>
8534
8535 * config/mips/mips.c (mips_final_postscan_insn): Make it static.
8536
c782f1dd
KH
85372009-04-18 Kazu Hirata <kazu@codesourcery.com>
8538
8539 * doc/extend.texi, doc/invoke.texi: Fix typos.
8540
668fb0e8
CC
85412009-04-17 Cary Coutant <ccoutant@google.com>
8542
8543 * tree-flow-inline.h (get_lineno): Fix inverted test.
8544
4d4014c1
DN
85452009-04-17 Diego Novillo <dnovillo@google.com>
8546
8547 * tree-ssa-pre.c (create_expression_by_pieces): Remove
8548 assertion for AVAIL_OUT.
8549
2984e1b6
MF
85502009-04-17 Mike Frysinger <vapier@gentoo.org>
8551
8552 PR target/38627
8553 * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
8554 * config/sh/linux-atomic.asm: Likewise.
8555
9994a182
DN
85562009-04-17 Diego Novillo <dnovillo@google.com>
8557
8558 * except.c (debug_eh_tree): New.
8559 (struct eh_region, struct eh_status): Move ...
8560 * except.h: ... here.
8561 (add_type_for_runtime): Declare extern.
8562 (lookup_type_for_runtime): Likewise.
8563 (debug_eh_tree): Declare.
8564 * Makefile.in (GTFILES): List except.h before except.c
8565
07485407
DN
85662009-04-17 Diego Novillo <dnovillo@google.com>
8567
47f402d1 8568 * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
07485407
DN
8569 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
8570 * tree-dfa.c (find_referenced_vars_in): Factor out of ...
8571 (find_vars_r): ... here.
8572 * tree-flow.h (find_referenced_vars_in): Declare.
8573 * tree-ssa-pre.c (create_expression_by_pieces): Assert
8574 that AVAIL_OUT exists for BLOCK.
8575 * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
8576 (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
8577 (tree-parloops.o): Likewise.
8578
4e53d196
SB
85792009-04-17 Simon Baldwin <simonb@google.com>
8580
8581 * toplev.c (default_tree_printer): Add handling for %E format.
8582
413d3aa8
DN
85832009-04-17 Diego Novillo <dnovillo@google.com>
8584
47f402d1
UB
8585 * tree-pretty-print.c (dump_generic_node): Add break after
8586 TREE_BINFO handler. Handle COMPLEX_TYPE, REAL_TYPE and
8587 FIXED_POINT_TYPE. Handle NULL TREE_TYPEs. Handle METHOD_TYPE and
8588 FUNCTION_TYPE together. Call print_struct_decl when printing
8589 structures and TDF_SLIM is not given.
413d3aa8
DN
8590 (print_struct_decl): Fix logic for detecting recursion.
8591
5a691e98
RAE
85922009-04-17 Rafael Avila de Espindola <espindola@google.com>
8593
8594 PR 31567
8595 * gcc.c (create_at_file): New.
8596 (compile_input_file_p): New.
8597 (do_spec_1): Use @args files for %i. Use create_at_file for %o.
8598 * main.c (main): Update call to toplev_main.
8599 * toplev.c (toplev_main): Change signature. Call expandargv.
8600 * toplev.h (toplev_main): Change signature.
8601
9eacf7a6
EB
86022009-04-17 Eric Botcazou <ebotcazou@adacore.com>
8603
8604 * dwarf2out.c (field_byte_offset): Use the type size as the field size
8605 if the latter is not constant.
8606
58298177
DE
86072009-04-17 David Edelsohn <edelsohn@gnu.org>
8608
8609 * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
8610
5b4c43d7
EB
86112009-04-17 Eric Botcazou <ebotcazou@adacore.com>
8612
8613 * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
8614 * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
8615
b51605c4
RG
86162009-04-17 Richard Guenther <rguenther@suse.de>
8617
8618 * tree-ssa-structalias.c (get_constraint_for_component_ref):
8619 Handle component references view-converting an invariant address.
8620
9e3be889
AN
86212009-04-17 Adam Nemet <anemet@caviumnetworks.com>
8622
8623 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
8624 TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
8625 TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
8626 TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
8627 Use @deftypevr rather than @deftypevar.
8628
7c3e9dc3
RG
86292009-04-17 Richard Guenther <rguenther@suse.de>
8630
47f402d1 8631 * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
7c3e9dc3
RG
8632 (get_prop_source_stmt): Likewise.
8633 (can_propagate_from): Likewise.
8634
aca600aa
AS
86352009-04-17 Andrew Stubbs <ams@codesourcery.com>
8636
8637 * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
8638 TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
8639 (--with-multilib-list): Add default value.
8640 * configure: Regenerate.
8641 * Makefile.in (TM_ENDIAN_CONFIG): Define.
8642 (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
8643 * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
8644 TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
8645 Don't add default cpu to multilib list unnecessarily, but do enable
8646 the relevant compiler option..
8647 Add support for --with-multilib-list=<blank> and
8648 --with-multilib-list=!<somelib> to supress unwanted multilibs.
8649 * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
8650 (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
8651 (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
8652 TM_MULTILIB_CONFIG.
8653 (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
8654 (MULTILIB_OSDIRNAMES): New variable.
8655 * config/sh/t-1e: Delete file.
8656 * config/sh/t-mlib-sh1: Delete file.
8657 * config/sh/t-mlib-sh2: Delete file.
8658 * config/sh/t-mlib-sh2a: Delete file.
8659 * config/sh/t-mlib-sh2a-nofpu: Delete file.
8660 * config/sh/t-mlib-sh2a-single: Delete file.
8661 * config/sh/t-mlib-sh2a-single-only: Delete file.
8662 * config/sh/t-mlib-sh2e: Delete file.
8663 * config/sh/t-mlib-sh3e: Delete file.
8664 * config/sh/t-mlib-sh4: Delete file.
8665 * config/sh/t-mlib-sh4-nofpu: Delete file.
8666 * config/sh/t-mlib-sh4-single: Delete file.
8667 * config/sh/t-mlib-sh4-single-only: Delete file.
8668 * config/sh/t-mlib-sh4a: Delete file.
8669 * config/sh/t-mlib-sh4a-nofpu: Delete file.
8670 * config/sh/t-mlib-sh4a-single: Delete file.
8671 * config/sh/t-mlib-sh4a-single-only: Delete file.
8672 * config/sh/t-mlib-sh4al: Delete file.
8673 * config/sh/t-mlib-sh5-32media: Delete file.
8674 * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
8675 * config/sh/t-mlib-sh5-64media: Delete file.
8676 * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
8677 * config/sh/t-mlib-sh5-compact: Delete file.
8678 * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
8679 * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
8680 * doc/install.texi (Options specification): Add
8681 --with-multilib-list and --with-endian.
8682
cf8aba7f
RAE
86832009-04-17 Rafael Avila de Espindola <espindola@google.com>
8684
8685 * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
8686 REVISION_c.
8687 (OBJS-common): Add plugin-version.o.
8688 (plugin-version.o): New.
8689 * gcc-plugin.h (plugin_gcc_version): New.
8690 (plugin_default_version_check): New.
8691 (plugin_init_func, plugin_init): Add version argument.
8692 * plugin-version.c: New.
8693 * plugin.c (str_plugin_gcc_version_name): New.
8694 (try_init_one_plugin): Read plugin_gcc_version from the plugin and
8695 pass it to the init function.
8696 (plugin_default_version_check): New.
8697
61e20b90
RG
86982009-04-17 Richard Guenther <rguenther@suse.de>
8699
8700 * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
8701 for decl-vs-decl disambiguation.
8702
90c6fd8a
AK
87032009-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
8704
8705 * config/s390/s390.h (s390_tune_attr): New macro definition.
8706 * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
8707
9fe9fe04
RG
87082009-04-17 Richard Guenther <rguenther@suse.de>
8709
8710 * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
8711 (fold_stmt_r): Likewise.
8712 (maybe_fold_reference): New function.
8713 (fold_gimple_assign): Handle cases fold_stmt_r did.
8714 (fold_stmt): Do not use fold_stmt_r.
8715 (fold_stmt_inplace): Likewise.
8716
7e673273
RG
87172009-04-17 Richard Guenther <rguenther@suse.de>
8718
8719 * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
8720 (record_equivalences_from_stmt): Remove useless checks and
8721 simplifications.
8722 * tree-ssa-pre.c (eliminate): Avoid converting a constant if
8723 the type is already suitable.
8724
fabf2749
PB
87252009-04-17 Paolo Bonzini <bonzini@gnu.org>
8726
8727 * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
8728
68f7b061
UB
87292009-04-17 Uros Bizjak <ubizjak@gmail.com>
8730
8731 * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
8732 (CMPtype): Define as __gcc_CMPtype.
8733
532bfb0a
AJ
87342009-04-17 Aurelien Jarno <aurelien@aurel32.net>
8735
8736 * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
8737 for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
8738
e3ac77ff
RG
87392009-04-17 Richard Guenther <rguenther@suse.de>
8740
8741 PR tree-optimization/39746
8742 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
8743 special-casing for builtins and static variable use/def.
8744 (call_may_clobber_ref_p_1): Likewise.
8745
7072a650
ILT
87462009-04-16 Ian Lance Taylor <iant@google.com>
8747
8748 * df.h: Include "timevar.h".
8749 (struct df_problem): Change tv_id field to timevar_id_t.
8750 * tree-pass.h: Include "timevar.h".
8751 (struct opt_pass): Change tv_id field to timevar_id_t.
8752 * timevar.h (timevar_id_t): Define TV_NONE.
8753 * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
8754 TV_NONE rather than tv_id != 0.
8755 (execute_one_pass): Likewise.
8756 * Makefile.in (DF_H): Add $(TIMEVAR_H).
8757 (TREE_PASS_H): Define. Change all instances of tree-pass.h in
8758 dependencies to $(TREE_PASS_H).
8759 * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
8760 to TV_NONE.
8761 (pass_branch_target_load_optimize2): Likewise.
8762 * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
8763 (pass_outof_cfg_layout_mode): Likewise.
8764 * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
8765 (pass_rebuild_cgraph_edges): Likewise.
8766 (pass_remove_cgraph_callee_edges): Likewise.
8767 * df-core.c (pass_df_initialize_opt): Likewise.
8768 (pass_df_initialize_no_opt): Likewise.
8769 (pass_df_finish): Likewise.
8770 * emit-rtl.c (pass_unshare_all_rtl): Likewise.
8771 * except.c (pass_set_nothrow_function_flags): Likewise.
8772 (pass_convert_to_eh_region_ranges): Likewise.
8773 * final.c (pass_compute_alignments): Likewise.
8774 * function.c (pass_instantiate_virtual_regs): Likewise.
8775 (pass_init_function): Likewise.
8776 (pass_leaf_regs): Likewise.
8777 (pass_match_asm_constraints): Likewise.
8778 * gimple-low.c (pass_lower_cf): Likewise.
8779 (pass_mark_used_blocks): Likewise.
8780 * init-regs.c (pass_initialize_regs): Likewise.
8781 * integrate.c (pass_initial_value_sets): Likewise.
8782 * ira.c (pass_ira): Likewise.
8783 * jump.c (pass_cleanup_barriers): Likewise.
8784 * omp-low.c (pass_expand_omp): Likewise.
8785 (pass_lower_omp): Likewise.
8786 * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
8787 * recog.c (pass_split_all_insns): Likewise.
8788 (pass_split_after_reload): Likewise.
8789 (pass_split_before_regstack): Likewise.
8790 (pass_split_before_sched2): Likewise.
8791 (pass_split_for_shorten_branches): Likewise.
8792 * reginfo.c (pass_reginfo_init): Likewise.
8793 (pass_subregs_of_mode_init): Likewise.
8794 (pass_subregs_of_mode_finish): Likewise.
8795 * passes.c (pass_postreload): Likewise.
8796 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
8797 * tree-cfg.c (pass_remove_useless_stmts): Likewise.
8798 (pass_warn_function_return): Likewise.
8799 (pass_warn_function_noreturn): Likewise.
8800 * tree-complex.c (pass_lower_complex): Likewise.
8801 (pass_lower_complex_O0): Likewise.
8802 * tree-if-conv.c (pass_if_conversion): Likewise.
8803 * tree-into-ssa.c (pass_build_ssa): Likewise.
8804 * tree-mudflap.c (pass_mudflap_1): Likewise.
8805 (pass_mudflap_2): Likewise.
8806 * tree-nomudflap.c (pass_mudflap_1): Likewise.
8807 (pass_mudflap_2): Likewise.
8808 * tree-nrv.c (pass_return_slot): Likewise.
8809 * tree-object-size.c (pass_object_sizes): Likewise.
8810 * tree-optimize.c (pass_all_optimizations): Likewise.
8811 (pass_early_local_passes): Likewise.
8812 (pass_all_early_optimizations): Likewise.
8813 (pass_cleanup_cfg): Likewise.
8814 (pass_cleanup_cfg_post_optimizing): Likewise.
8815 (pass_free_datastructures): Likewise.
8816 (pass_free_cfg_annotations): Likewise.
8817 (pass_fixup_cfg): Likewise.
8818 (pass_init_datastructures): Likewise.
8819 * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
8820 (pass_late_warn_uninitialized): Likewise.
8821 (pass_update_address_taken): Likewise.
8822 * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
8823 * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
8824 (pass_cse_sincos): Likewise.
8825 (pass_convert_to_rsqrt): Likewise.
8826 * tree-ssa-structalias.c (pass_build_alias): Likewise.
8827 * tree-stdarg.c (pass_stdarg): Likewise.
8828 * tree-tailcall.c (pass_tail_recursion): Likewise.
8829 (pass_tail_calls): Likewise.
8830 * tree-vect-generic.c (pass_lower_vector): Likewise.
8831 (pass_lower_vector_ssa): Likewise.
8832 * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
8833
0051ef59
JM
88342009-04-16 Joseph Myers <joseph@codesourcery.com>
8835
8836 * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
8837 XLR entry.
8838 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
8839 Handle -march=xlr.
8840 * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
8841 logical and signext.
8842
b3f8558a
KK
88432009-04-16 Kaz Kojima <kkojima@gcc.gnu.org>
8844
8845 PR target/39767
8846 * config/sh/predicates.md (arith_operand): Check if the operand
8847 of TRUNCATE is a REG.
8848
f57597d9
KH
88492009-04-16 Kazu Hirata <kazu@codesourcery.com>
8850
8851 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
8852 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
8853
b172d063
KH
88542009-04-16 Kazu Hirata <kazu@codesourcery.com>
8855
8856 * tree-iterator.c (tsi_split_statement_list_after,
8857 tsi_split_statement_list_before): Remove.
8858 * tree-iterator.h: Remove the prototypes for
532bfb0a 8859 tsi_split_statement_list_after and tsi_split_statement_list_before.
b172d063 8860
78fe4f1f
KH
88612009-04-16 Kazu Hirata <kazu@codesourcery.com>
8862
8863 * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
8864 * tree-ssa-propagate.h: Remove the prototype for
8865 stmt_makes_single_load.
8866
43dd3201
KH
88672009-04-16 Kazu Hirata <kazu@codesourcery.com>
8868
8869 * emit-rtl.c (set_mem_attrs_from_reg): Remove.
8870 * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
8871
4252a4aa
KH
88722009-04-16 Kazu Hirata <kazu@codesourcery.com>
8873
8874 * tree-iterator.c (EXPR_LAST_BODY): Remove.
8875
bfb69968
KH
88762009-04-16 Kazu Hirata <kazu@codesourcery.com>
8877
8878 * except.c (eh_region_outer_p): Remove.
8879 * except.h: Remove the prototype for eh_region_outer_p.
8880
c7db7fa5
KH
88812009-04-16 Kazu Hirata <kazu@codesourcery.com>
8882
8883 * function.c (current_function_assembler_name): Remove.
8884 * function.h: Remove the prototype for
8885 current_function_assembler_name.
8886
efc0b2bd
ILT
88872009-04-16 Ian Lance Taylor <iant@google.com>
8888
532bfb0a 8889 * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
efc0b2bd
ILT
8890 (add_reg_note): Call alloc_reg_note.
8891 * rtl.h (alloc_reg_note): Declare.
8892 * combine.c (try_combine): Use alloc_reg_note.
8893 (recog_for_combine, move_deaths): Likewise.
8894 (distribute_notes): Use alloc_reg_note and add_reg_note.
8895 * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
8896 * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
8897 * reload1.c (eliminate_regs_1): Use alloc_reg_note.
8898
6080348f
VM
88992009-04-16 Vladimir Makarov <vmakarov@redhat.com>
8900
8901 PR rtl-optimization/39762
8902 * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
8903 ira_may_move_out_cost): Add comments about way of their usage.
532bfb0a 8904 (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
2ba9daa7 8905
6080348f
VM
8906 * ira-conflicts.c (process_regs_for_copy): Use function
8907 ira_get_register_move_cost instead of global
8908 ira_register_move_cost.
8909
8910 * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
8911 color_pass, move_spill_restore, update_curr_costs): Ditto.
8912
8913 * ira-lives.c (process_single_reg_class_operands): Ditto.
8914
8915 * ira-emit.c (emit_move_list): Ditto.
8916
8917 * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
8918 (record_reg_classes): Ditto. Use functions
8919 ira_get_register_move_cost and ira_get_may_move_cost instead of
8920 global vars ira_register_move_cost, ira_may_move_out_cost and
8921 ira_may_move_in_cost.
8922 (record_address_regs): Don't call ira_init_register_move_cost.
8923 Use function ira_get_may_move_cost instead of global
8924 ira_may_move_in_cost.
8925 (process_bb_node_for_hard_reg_moves): Use function
532bfb0a 8926 ira_get_register_move_cost instead of global ira_register_move_cost.
6080348f 8927 (ira_costs): Don't call ira_init_register_move_cost.
2ba9daa7 8928
646bea10
RG
89292009-04-16 Richard Guenther <rguenther@suse.de>
8930
8931 * tree-cfg.c (verify_gimple_assign_binary):
8932 Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
8933 * ipa-struct-reorg.c (gen_size): Fold the built expressions.
8934 (create_general_new_stmt): Note that this function is broken.
8935
02e819ff
RAE
89362009-04-16 Rafael Avila de Espindola <espindola@google.com>
8937
8938 * common.opt (fhelp): Add Var(help_flag).
8939 * gcc-plugin.h (plugin_info): Add help.
8940 * plugin.c (plugin_name_args): Add help.
8941 (register_plugin_info): Set plugin->help.
8942 (print_help_one_plugin): New.
8943 (print_plugins_help): New.
8944 * plugin.h (print_plugins_help): New.
8945 * toplev.c (toplev_main): Call print_plugins_help if needed.
8946
ccacdf06
RG
89472009-04-16 Richard Guenther <rguenther@suse.de>
8948
8949 * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
8950 (gimple_ior_addresses_taken_1): New function.
8951 (gimple_ior_addresses_taken): Likewise.
8952 * gimple.h (struct gimple_statement_with_ops_base): Remove
8953 addresses_taken member.
8954 (gimple_ior_addresses_taken): Declare.
8955 (gimple_addresses_taken, gimple_addresses_taken_ptr,
8956 gimple_set_addresses_taken): Remove.
8957 * ipa-reference.c (mark_address): New function.
8958 (scan_stmt_for_static_refs): Use it for marking addresses taken.
8959 * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
8960 (mark_address_taken): ... this. Just set TREE_ADDRESSABLE.
8961 (gimple_add_to_addresses_taken): Remove.
8962 (get_tmr_operands): Call mark_address_taken.
8963 (get_asm_expr_operands): Likewise.
8964 (get_expr_operands): Likewise.
8965 (build_ssa_operands): Do not clear the addresses_taken bitmap.
8966 (free_stmt_operands): Do not free it.
8967 * tree-ssa.c (delete_tree_ssa): Likewise.
8968 (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
8969
346ef3fa
RG
89702009-04-16 Richard Guenther <rguenther@suse.de>
8971
8972 * gimple.h (walk_stmt_load_store_addr_ops): Declare.
8973 (walk_stmt_load_store_ops): Likewise.
8974 * gimple.c (get_base_loadstore): New function.
8975 (walk_stmt_load_store_addr_ops): Likewise.
8976 (walk_stmt_load_store_ops): Likewise.
8977 * ipa-pure-const.c (check_op): Simplify.
8978 (check_load, check_store): New functions.
8979 (check_stmt): Use walk_stmt_load_store_ops.
8980 * ipa-reference.c (mark_load): Adjust signature.
8981 (mark_store): Likewise.
8982 (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
8983
44e9f006
RAE
89842009-04-16 Rafael Avila de Espindola <espindola@google.com>
8985
8986 * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
8987 (plugin_info): New.
8988 * opts.c (common_handle_option): Don't call print_version.
8989 * plugin.c (plugin_name_args): Add version.
8990 (register_plugin_info): New.
8991 (register_callback): Handle PLUGIN_INFO.
8992 (try_init_one_plugin): New.
8993 (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
8994 if failed to init.
8995 (finalize_one_plugin): New.
8996 (finalize_plugins): New.
8997 (print_one_plugin): New.
8998 (print_plugins_versions): New.
8999 * plugin.h (print_plugins_versions): New.
9000 (finalize_plugins): New.
9001 * toplev.c (compile_file): Don't call initialize_plugins.
9002 (print_version): Call print_plugins_versions.
9003 (toplev_main): Call initialize_plugins. Print version if needed.
9004 Call finalize_plugins.
9005
41fd0f9b
RAE
90062009-04-16 Rafael Avila de Espindola <espindola@google.com>
9007
9008 * common.opt (fversion): New.
9009 * gcc.c (print_version): New.
9010 (process_command): Don't print the version. Just set print_version.
9011 (main): Print version. Call subprocesses if print_version and
9012 verbose_flag are set.
9013 * opts.c (common_handle_option): Handle OPT_fversion.
9014
550918ca 90152009-04-16 Richard Guenther <rguenther@suse.de>
532bfb0a 9016 Ira Rosen <irar@il.ibm.com>
550918ca
RG
9017
9018 PR tree-optimization/39698
9019 * tree-vect-loop.c (get_initial_def_for_reduction): Use the
9020 type of the reduction variable. Only generate the def if
9021 it is needed.
9022
9023 * omp-low.c (expand_omp_for_generic): When converting to a pointer
9024 make sure to first convert to an integer of the same precision.
9025 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
9026 the type of the evolution correctly in computing the new
9027 induction variable base.
9028
54634841
RG
90292009-04-16 Richard Guenther <rguenther@suse.de>
9030
9031 PR middle-end/39625
9032 * tree-cfg.c (make_blocks): Split statements with to-be
9033 abnormal SSA names on the lhs.
9034
b6fc2cdb
PB
90352009-04-16 Paolo Bonzini <bonzini@gnu.org>
9036
9037 * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
9038 Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
9039 * c-typeck.c (really_start_incremental_init): Likewise.
9040 * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
9041 (TARGET_INITIALIZER): Remove it.
9042 * target.h (struct target): Remove vector_opaque_p.
9043 * tree.c (build_opaque_vector_type): New.
9044 * tree.h (TYPE_VECTOR_OPAQUE): New.
9045 (build_opaque_vector_type): Declare.
9046 * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
9047 * config/rs6000/rs6000.c (build_opaque_vector_type,
9048 rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
9049 (rs6000_init_builtins): Use build_opaque_vector_type for
9050 opaque_V4SI_type_node.
9051
a417cdd9
CM
90522009-04-15 Catherine Moore <clm@codesourcery.com>
9053
532bfb0a
AJ
9054 * debug.h (set_name): Declare.
9055 * dwarf2out.c (dwarf2out_set_name): Declare.
9056 (dwarf2_debug_hooks): Add set_name.
9057 (find_AT_string): New.
9058 (add_AT_string): Call find_AT_string.
9059 (dwarf2out_set_name): New.
9060 * cp/decl.c (grokdeclarator): Call set_name.
9061 * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
9062 * debug.c (do_nothing_debug_hooks): Likewise.
9063 * dbxout.c (dbx_debug_hooks): Likewise.
9064 * sdbout.c (sdb_debug_hooks): Likewise.
a417cdd9 9065
60839f5d 90662009-04-15 Michael Eager <eager@eagercon.com>
2c5cac98 9067
532bfb0a
AJ
9068 * config/rs6000/rs6000.c (rs6000_function_value): Set function return
9069 reg for single-precision FPU.
9070 * config/rs6000/rs6000.md (movsi_internal1): Only for
9071 !TARGET_SINGLE_FPU.
9072 (movsi_internal1_single): New. Add pattern to move SI values to/from
2c5cac98
ME
9073 single-precision FP regs.
9074
ada39f0b
RG
90752009-04-15 Richard Guenther <rguenther@suse.de>
9076
9077 * omp-low.c (lower_rec_input_clauses): Build correct address
9078 expressions.
9079 (expand_omp_for_generic): Fix multiplication type.
532bfb0a 9080 * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
ada39f0b
RG
9081 (generate_memset_zero): Fix types.
9082 * tree-profile.c (prepare_instrumented_value): Correctly
9083 widen a pointer.
9084
6866c6e8
ILT
90852009-04-15 Ian Lance Taylor <iant@google.com>
9086
9087 * c.opt (Wenum-compare): Enable for C and Objc. Initialize to -1.
9088 * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
9089 for -Wall and for -Wc++-compat.
9090 (c_common_post_options): For C++, set warn_enum_compare if not
9091 already set.
9092 * c-tree.h (struct c_expr): Add field original_type.
9093 (build_external_ref): Update declaration.
9094 * c-parser.c (c_parser_braced_init): Set original_type.
9095 (c_parser_initelt): Likewise.
9096 (c_parser_expr_no_commas): Likewise.
9097 (c_parser_conditional_expression): Likewise.
9098 (c_parser_cast_expression): Likewise.
9099 (c_parser_unary_expression): Likewise. Pull setting of
9100 original_code to top of function.
9101 (c_parser_sizeof_expression): Set original_type.
9102 (c_parser_alignof_expression): Likewise.
9103 (c_parser_postfix_expression): Likewise. Pull setting of
9104 original_code to top of function.
532bfb0a 9105 (c_parser_postfix_expression_after_paren_type): Set original_type.
6866c6e8
ILT
9106 (c_parser_postfix_expression_after_primary): Likewise.
9107 (c_parser_expression): Likewise.
9108 * c-typeck.c (build_external_ref): Add type parameter. Change all
9109 callers.
9110 (c_expr_sizeof_expr): Set original_type field.
9111 (parser_build_unary_op): Likewise.
9112 (parser_build_binary_op): Likewise. Optionally warn about
9113 comparisons of enums of different types.
9114 (digest_init): Set original_type field.
9115 (really_start_incremental_init): Likewise.
9116 (push_init_level, pop_init_level): Likewise.
9117 * doc/invoke.texi (Warning Options): -Wenum-compare now
9118 supported in C.
9119
f116fecf
RG
91202009-04-15 Richard Guenther <rguenther@suse.de>
9121
9122 * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
9123 out a necessary conversion.
9124 * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
9125 names we didn't value number.
9126 * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
9127
25e20805
RG
91282009-04-15 Richard Guenther <rguenther@suse.de>
9129
9130 PR tree-optimization/39764
9131 * tree-ssa-ccp.c (get_value): Canonicalize value with
9132 canonicalize_float_value.
9133
90cc3676
JH
91342009-04-15 Jan Hubicka <jh@suse.cz>
9135
9136 * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
9137 Wrong version of patch.
9138
6d14c006
JH
91392009-04-15 Jan Hubicka <jh@suse.cz>
9140
9141 * builtins.def (va_start, va_end, va_copy): Mark nothrow.
9142
5afaa917
NS
91432009-04-15 Nathan Sidwell <nathan@codesourcery.com>
9144
9145 * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
9146 our distinct integral and vector types.
9147
3b482fca
RAE
91482009-04-15 Rafael Avila de Espindola <espindola@google.com>
9149
9150 * class.c (build_vtbl_ref_1): Remove call to assemble_external.
9151 * init.c (build_vtbl_address): Remove call to assemble_external.
9152
6cd1d2e2
DJ
91532009-04-14 Daniel Jacobowitz <dan@codesourcery.com>
9154
9155 * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
9156 output for other floating point modes.
9157
dab71827
DN
91582009-04-14 Diego Novillo <dnovillo@google.com>
9159
9160 * diagnostic.c (diagnostic_report_diagnostic): Do not
9161 warn about loaded plugins for DK_ERROR and DK_WARNING.
9162 * c-decl.c (declspecs_add_type): Move call to
9163 invoke_plugin_callbacks ...
9164 * c-parser.c (c_parser_declspecs): ... here.
9165 * plugin.c (dump_active_plugins): Tidy output.
9166
68a607d8
DN
91672009-04-14 Diego Novillo <dnovillo@google.com>
9168 Le-Chun Wu <lcwu@google.com>
9169
9170 * configure.ac: Add --enable-plugin support.
9171 Define ENABLE_PLUGIN and PLUGINLIBS when specified.
9172 * Makefile.in (PLUGIN_H): Define.
9173 Export ENABLE_PLUGIN and GMPINC to site.exp.
9174 Add PLUGINLIBS to link command.
9175 Add/modify dependencies for plugin.o and files including plugin.h.
9176 (plugin.o): New.
9177 * config.in: Regenerate.
2ba9daa7 9178
68a607d8
DN
9179 * opts.c (common_handle_option): Handle OPT_fplugin_ and
9180 OPT_fplugin_arg_.
9181
91822009-04-14 Le-Chun Wu <lcwu@google.com>
9183
9184 * tree-pass.h (register_one_dump_file): Add a prototype for
9185 register_one_dump_file.
9186 * toplev.c (compile_file): Call initialize_plugins.
9187 (do_compile): Call invoke_plugin_callbacks.
9188 (toplev_main): Call invoke_plugin_callbacks.
9189 * common.opt: Add -fplugin= and -fplugin-arg-.
9190 * gcc-plugin.h: New public header file for plugins to include.
9191 * plugin.c: New source file.
9192 * plugin.h: New internal header file.
9193 * passes.c (register_one_dump_file): Make it external.
2ba9daa7 9194
68a607d8
DN
9195 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
9196
91972009-04-14 Diego Novillo <dnovillo@google.com>
9198
9199 * doc/plugins.texi: New.
9200 * doc/gccint.texi: Add reference to Plugins chapter.
9201 * doc/invoke.texi: Document -fplugin and -fplugin-arg
9202 * diagnostic.c (diagnostic_report_diagnostic): Warn about
9203 loaded plugins, if any.
9204 * timevar.def (TV_PLUGIN_INIT): Define.
9205 (TV_PLUGIN_RUN): Define.
9206 * plugin.c: Include timevar.h
9207 (plugins_active_p): New.
9208 (dump_active_plugins): New.
9209 (debug_active_plugins): New.
9210
50617257
JM
92112009-04-14 Joseph Myers <joseph@codesourcery.com>
9212
9213 * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
9214 library paths.
9215 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
9216
b32f6fff
KH
92172009-04-14 Kazu Hirata <kazu@codesourcery.com>
9218
9219 * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
9220 the same as a minus without a shift.
9221
85d04fa2
NC
92222009-04-14 Nick Clifton <nickc@redhat.com>
9223
9224 * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
9225 comparisons with small integers will always produce a short
9226 branch.
9227
e495a0c8
RAE
92282009-04-14 Rafael Avila de Espindola <espindola@google.com>
9229
9230 Merge:
e495a0c8
RAE
9231 2008-12-19 Diego Novillo <dnovillo@google.com>
9232
532bfb0a 9233 * cgraph.c (dump_cgraph_node): Show memory address of NODE.
e495a0c8 9234
ad41bd84 92352009-04-14 Richard Guenther <rguenther@suse.de>
587aa063
RG
9236
9237 * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
9238 verification.
9239 (verify_gimple_assign_binary): Likewise. Handle shifts and
9240 rotates correctly.
9241 (verify_gimple_phi): Print the mismatched argument position.
9242 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
9243 Fix types.
9244 (vect_update_init_of_dr): Likewise.
9245 * matrix-reorg.c (transform_access_sites): Do what the
9246 comment suggests.
9247 * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
9248
60839f5d 92492009-04-13 Michael Eager <eager@eagercon.com>
9eca1774
ME
9250
9251 * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
9252 _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
9253 * config/rs6000/xilinx.h: New. Spec for powerpc-xilinx-eabi
2ba9daa7 9254 * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
9eca1774
ME
9255 remove duplicate config
9256
b0e2d008
DR
92572009-04-13 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
9258
9259 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
9260 file_name:line_number type locator of the call site.
2ba9daa7 9261
1244a8b7
VM
92622009-04-13 Vladimir Makarov <vmakarov@redhat.com>
9263
9264 * genautomata.c: Put blank after comma.
9265 (automaton_decls): New.
9266 (struct unit_usage): Add comments to member next.
9267 (store_alt_unit_usage): Keep the list ordered.
9268 (unit_present_on_list_p, equal_alternatives_p): New.
9269 (check_regexp_units_distribution): Check units distribution
9270 correctness correctly.
9271 (main): Don't write automata if error is found. Return correct
9272 exit code.
2ba9daa7 9273
1244a8b7
VM
9274 * config/m68k/cf.md (cfv4_ds): Remove.
9275 (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
9276 cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
9277
9278 * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
9279 power4-load-ext, power4-store, power4-store-update,
9280 power4-fpstore, power4-fpstore-update, power4-two, power4-three,
9281 power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
9282 power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
9283 power4-sqrt, power4-isync): Modify reservation to make correct
9284 unit distribution to automata.
9285
9286 * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
9287 power5-store-update, power5-two, power5-three, power5-lmul,
9288 power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
2ba9daa7 9289
f7dd1864
AN
92902009-04-13 Adam Nemet <anemet@caviumnetworks.com>
9291
9292 * except.c (pass_set_nothrow_function_flags): Set name and add
9293 TODO_dump_func.
9294 (set_nothrow_function_flags): Mention in the dump file when
9295 changing a function to nothrow.
9296
59a1171f
OS
92972009-04-13 Ozkan Sezer <sezeroz@gmail.com>
9298
9299 PR/39066
9300 * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
9301 instead of unsigned long.
9302
934c2060
RR
93032009-04-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9304
f7dd1864
AN
9305 * config/arm/arm.c (return_used_this_function): Remove.
9306 (arm_output_function_prologue): Remove use of
934c2060 9307 return_used_this_function.
f7dd1864 9308 (output_return_instruction): Replace use of
934c2060
RR
9309 return_used_this_function
9310 by cfun->machine->return_used_this_function.
f7dd1864
AN
9311 (arm_output_epilogue): Likewise.
9312 (arm_output_function_epilogue): Likewise.
9313 (thumb_unexpanded_epilogue): Likewise.
9314 * config/arm/arm.h (struct machine_function):
934c2060 9315 New member return_used_this_function.
f7dd1864 9316
ae5cc016
MM
93172009-04-12 Mark Mitchell <mark@codesourcery.com>
9318
9319 * doc/install.texi: Correct description of default directory for
9320 --with-gxx-include-dir.
9321
a0ce68df 93222009-04-12 Eric Botcazou <ebotcazou@adacore.com>
849d624b
EB
9323
9324 * fold-const.c (build_range_check): Properly deal with enumeral and
9325 boolean base types.
9326
3906a4a1
SB
93272009-04-12 Steven Bosscher <steven@gcc.gnu.org>
9328
9329 * doc/invoke.texi (max_gcse_passes): Remove documentation.
9330 * params.def (PARAM_MAX_GCSE_PASSES): Remove.
9331 * params.h (MAX_GCSE_PASSES): Remove.
9332 * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
9333 in sequence. Remove ability to run multiple passes.
9334 (bypass_jumps): Report run as third CPROP pass.
9335
efaadb93
AN
93362009-04-12 Adam Nemet <anemet@caviumnetworks.com>
9337
9338 PR middle-end/39651
9339 * except.c (can_throw_external): Look at each insn in a SEQUENCE
9340 when deciding whether the whole SEQUENCE can throw.
9341
4c48007b
UB
93422009-04-12 Uros Bizjak <ubizjak@gmail.com>
9343
9344 PR target/39740
9345 * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
9346 offseted label references.
9347
b4104018
JH
93482009-04-11 Jan Hubicka <jh@suse.cz>
9349
9350 * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
9351
32848948
RG
93522009-04-11 Richard Guenther <rguenther@suse.de>
9353
9354 PR middle-end/39732
9355 * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
9356 return variables as TREE_ADDRESSABLE.
9357
8810712e
RG
93582009-04-11 Richard Guenther <rguenther@suse.de>
9359
9360 PR tree-optimization/39713
9361 * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
9362 reference trees have SSA_NAME operands.
9363
fa78c0c1
RG
93642009-04-11 Richard Guenther <rguenther@suse.de>
9365
9366 PR c/39712
9367 * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
9368 address expressions.
9369
4d722130
DK
93702009-04-11 Dave Korn <dave.korn.cygwin@gmail.com>
9371
9372 * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE): Update to
9373 match changes in Cygwin 1.7
9374 (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
9375 UINT_FAST16_TYPE, UINT_FAST32_TYPE): Likewise.
9376
567a90f5
PB
93772009-04-10 Paolo Bonzini <bonzini@gnu.org>
9378
9379 PR tree-optimization/39701
9380 * doc/invoke.texi (Optimization Options): Document change in
9381 meaning and initialization of -fdelete-null-pointer-checks.
9382
1ad2f450
L
93832009-04-10 H.J. Lu <hongjiu.lu@intel.com>
9384
9385 PR middle-end/39701
9386 * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
9387
9388 * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
9389 here.
9390
9391 * doc/invoke.texi: Update -fdelete-null-pointer-checks.
9392
1afc5373
CF
93932009-04-10 Chao-ying Fu <fu@mips.com>
9394
9395 * doc/tm.texi (Instruction Output): Document
9396 TARGET_ASM_FINAL_POSTSCAN_INSN.
9397 * target.h (final_postscan_insn): New field in asm_out.
9398 * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
9399 (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
9400 * final.c (final_scan_insn): Call
9401 targetm.asm_out.final_postscan_insn after outputting
9402 an asm macro and a normal instruction.
9403
9404 * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
9405 * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
9406 * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
9407 (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
9408 (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
9409
4d35e75c
PB
94102009-04-10 Paolo Bonzini <bonzini@gnu.org>
9411
9412 PR middle-end/39701
1ad2f450
L
9413 * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
9414 variables as non-NULL even with -fdelete-null-pointer-checks.
4d35e75c 9415
62c49b83
L
94162009-04-10 H.J. Lu <hongjiu.lu@intel.com>
9417
9418 * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
9419
80558628
L
94202009-04-09 H.J. Lu <hongjiu.lu@intel.com>
9421
9422 PR target/39678
9423 * config/i386/i386.c (classify_argument): Handle SCmode with
9424 (bit_offset % 64) != 0.
9425
8c70d28b
SL
94262009-04-09 Sandra Loosemore <sandra@codesourcery.com>
9427
9428 * doc/invoke.texi (Optimize Options): Add cross-reference to
9429 -Q --help=optimizers examples.
9430
e1ff19bf
BE
94312009-04-10 Ben Elliston <bje@au.ibm.com>
9432
9433 PR target/36800
9434 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
9435 regalign for the reg == fpr and TDmode case.
9436
52daca75
DA
94372009-04-09 David Ayers <ayers@fsfe.org>
9438
9439 PR objc/29200
9440 * objc/objc-act.c (warn_with_method): Remove helper function.
9441 (check_duplicates): Call warning and inform directly.
9442 (really_start_method): Likewise.
9443
b45f0e58
PB
94442009-04-09 Paolo Bonzini <bonzini@gnu.org>
9445
9446 * expmed.c (expand_divmod): Always use a comparison for a division
9447 by a large unsigned integer.
9448
1ad2f450
L
9449 * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
9450 for things others than variables or functions as nonzero.
b45f0e58 9451
748086b7
JJ
94522009-04-09 Nick Clifton <nickc@redhat.com>
9453
9454 * unwind-compat.c: Change copyright header to refer to version
9455 3 of the GNU General Public License with version 3.1 of the
9456 GCC Runtime Library Exception and to point readers at the
7a715bba 9457 COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
748086b7
JJ
9458 * config/alpha/crtfastmath.c: Likewise.
9459 * config/alpha/linux-unwind.h: Likewise.
9460 * config/alpha/qrnnd.asm: Likewise.
9461 * config/alpha/vms-crt0-64.c: Likewise.
9462 * config/alpha/vms-crt0.c: Likewise.
9463 * config/alpha/vms-dwarf2.asm: Likewise.
9464 * config/alpha/vms-dwarf2eh.asm: Likewise.
9465 * config/alpha/vms-psxcrt0-64.c: Likewise.
9466 * config/alpha/vms-psxcrt0.c: Likewise.
9467 * config/alpha/vms_tramp.asm: Likewise.
9468 * config/arc/initfini.c: Likewise.
9469 * config/arc/lib1funcs.asm: Likewise.
9470 * config/arm/bpabi-v6m.S: Likewise.
9471 * config/arm/bpabi.S: Likewise.
9472 * config/arm/bpabi.c: Likewise.
9473 * config/arm/crti.asm: Likewise.
9474 * config/arm/crtn.asm: Likewise.
9475 * config/arm/ieee754-df.S: Likewise.
9476 * config/arm/ieee754-sf.S: Likewise.
9477 * config/arm/lib1funcs.asm: Likewise.
9478 * config/arm/libunwind.S: Likewise.
9479 * config/arm/linux-atomic.c: Likewise.
9480 * config/arm/mmintrin.h: Likewise.
9481 * config/arm/pr-support.c: Likewise.
9482 * config/arm/unaligned-funcs.c: Likewise.
9483 * config/arm/unwind-arm.c: Likewise.
9484 * config/arm/unwind-arm.h: Likewise.
9485 * config/avr/libgcc.S: Likewise.
9486 * config/bfin/crti.s: Likewise.
9487 * config/bfin/crtlibid.s: Likewise.
9488 * config/bfin/crtn.s: Likewise.
9489 * config/bfin/lib1funcs.asm: Likewise.
9490 * config/bfin/linux-unwind.h: Likewise.
9491 * config/cris/arit.c: Likewise.
9492 * config/cris/cris_abi_symbol.c: Likewise.
9493 * config/darwin-64.c: Likewise.
9494 * config/darwin-crt2.c: Likewise.
9495 * config/darwin-crt3.c: Likewise.
9496 * config/darwin.h: Likewise.
9497 * config/dbxelf.h: Likewise.
9498 * config/dfp-bit.c: Likewise.
9499 * config/dfp-bit.h: Likewise.
9500 * config/elfos.h: Likewise.
9501 * config/fixed-bit.c: Likewise.
9502 * config/fixed-bit.h: Likewise.
9503 * config/fp-bit.c: Likewise.
9504 * config/fp-bit.h: Likewise.
9505 * config/fr30/crti.asm: Likewise.
9506 * config/fr30/crtn.asm: Likewise.
9507 * config/fr30/lib1funcs.asm: Likewise.
9508 * config/freebsd-spec.h: Likewise.
9509 * config/frv/cmovd.c: Likewise.
9510 * config/frv/cmovh.c: Likewise.
9511 * config/frv/cmovw.c: Likewise.
9512 * config/frv/frvbegin.c: Likewise.
9513 * config/frv/frvend.c: Likewise.
9514 * config/frv/lib1funcs.asm: Likewise.
9515 * config/glibc-stdint.h: Likewise.
9516 * config/h8300/clzhi2.c: Likewise.
9517 * config/h8300/crti.asm: Likewise.
9518 * config/h8300/crtn.asm: Likewise.
9519 * config/h8300/ctzhi2.c: Likewise.
9520 * config/h8300/fixunssfsi.c: Likewise.
9521 * config/h8300/lib1funcs.asm: Likewise.
9522 * config/h8300/parityhi2.c: Likewise.
9523 * config/h8300/popcounthi2.c: Likewise.
9524 * config/i386/ammintrin.h: Likewise.
9525 * config/i386/att.h: Likewise.
9526 * config/i386/avxintrin.h: Likewise.
9527 * config/i386/biarch64.h: Likewise.
9528 * config/i386/bmmintrin.h: Likewise.
9529 * config/i386/cpuid.h: Likewise.
9530 * config/i386/cross-stdarg.h: Likewise.
9531 * config/i386/crtfastmath.c: Likewise.
9532 * config/i386/crtprec.c: Likewise.
9533 * config/i386/cygming-crtbegin.c: Likewise.
9534 * config/i386/cygming-crtend.c: Likewise.
9535 * config/i386/cygwin.asm: Likewise.
9536 * config/i386/emmintrin.h: Likewise.
9537 * config/i386/gmm_malloc.h: Likewise.
9538 * config/i386/gthr-win32.c: Likewise.
9539 * config/i386/i386.h: Likewise.
9540 * config/i386/immintrin.h: Likewise.
9541 * config/i386/linux-unwind.h: Likewise.
9542 * config/i386/linux64.h: Likewise.
9543 * config/i386/mm3dnow.h: Likewise.
9544 * config/i386/mmintrin-common.h: Likewise.
9545 * config/i386/mmintrin.h: Likewise.
9546 * config/i386/nmmintrin.h: Likewise.
9547 * config/i386/pmm_malloc.h: Likewise.
9548 * config/i386/pmmintrin.h: Likewise.
9549 * config/i386/smmintrin.h: Likewise.
9550 * config/i386/sol2-c1.asm: Likewise.
9551 * config/i386/sol2-ci.asm: Likewise.
9552 * config/i386/sol2-cn.asm: Likewise.
9553 * config/i386/sol2-gc1.asm: Likewise.
9554 * config/i386/tmmintrin.h: Likewise.
9555 * config/i386/unix.h: Likewise.
9556 * config/i386/w32-unwind.h: Likewise.
9557 * config/i386/wmmintrin.h: Likewise.
9558 * config/i386/x86-64.h: Likewise.
9559 * config/i386/x86intrin.h: Likewise.
9560 * config/i386/xmmintrin.h: Likewise.
9561 * config/ia64/crtbegin.asm: Likewise.
9562 * config/ia64/crtend.asm: Likewise.
9563 * config/ia64/crtfastmath.c: Likewise.
9564 * config/ia64/crti.asm: Likewise.
9565 * config/ia64/crtn.asm: Likewise.
9566 * config/ia64/fde-glibc.c: Likewise.
9567 * config/ia64/lib1funcs.asm: Likewise.
9568 * config/ia64/linux-unwind.h: Likewise.
9569 * config/ia64/quadlib.c: Likewise.
9570 * config/ia64/unwind-ia64.c: Likewise.
9571 * config/linux.h: Likewise.
9572 * config/m32c/m32c-lib1.S: Likewise.
9573 * config/m32c/m32c-lib2-trapv.c: Likewise.
9574 * config/m32c/m32c-lib2.c: Likewise.
9575 * config/m32r/initfini.c: Likewise.
9576 * config/m68hc11/larith.asm: Likewise.
9577 * config/m68hc11/m68hc11-crt0.S: Likewise.
9578 * config/m68k/cf.md: Likewise.
9579 * config/m68k/crti.s: Likewise.
9580 * config/m68k/crtn.s: Likewise.
9581 * config/m68k/lb1sf68.asm: Likewise.
9582 * config/m68k/linux-unwind.h: Likewise.
9583 * config/mcore/crti.asm: Likewise.
9584 * config/mcore/crtn.asm: Likewise.
9585 * config/mcore/lib1.asm: Likewise.
9586 * config/mips/linux-unwind.h: Likewise.
9587 * config/mips/loongson.h: Likewise.
9588 * config/mips/mips16.S: Likewise.
9589 * config/mmix/crti.asm: Likewise.
9590 * config/mmix/crtn.asm: Likewise.
9591 * config/pa/fptr.c: Likewise.
9592 * config/pa/hpux-unwind.h: Likewise.
9593 * config/pa/lib2funcs.asm: Likewise.
9594 * config/pa/linux-atomic.c: Likewise.
9595 * config/pa/linux-unwind.h: Likewise.
9596 * config/pa/milli64.S: Likewise.
9597 * config/pa/quadlib.c: Likewise.
9598 * config/pa/stublib.c: Likewise.
9599 * config/picochip/libgccExtras/adddi3.asm: Likewise.
9600 * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
9601 * config/picochip/libgccExtras/ashlsi3.c: Likewise.
9602 * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
9603 * config/picochip/libgccExtras/ashrsi3.c: Likewise.
9604 * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
9605 * config/picochip/libgccExtras/divmod15.asm: Likewise.
9606 * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
9607 * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
9608 * config/picochip/libgccExtras/longjmp.asm: Likewise.
9609 * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
9610 * config/picochip/libgccExtras/lshrsi3.c: Likewise.
9611 * config/picochip/libgccExtras/parityhi2.asm: Likewise.
9612 * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
9613 * config/picochip/libgccExtras/setjmp.asm: Likewise.
9614 * config/picochip/libgccExtras/subdi3.asm: Likewise.
9615 * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
9616 * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
9617 * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
9618 * config/rs6000/750cl.h: Likewise.
9619 * config/rs6000/altivec.h: Likewise.
9620 * config/rs6000/biarch64.h: Likewise.
9621 * config/rs6000/crtresfpr.asm: Likewise.
9622 * config/rs6000/crtresgpr.asm: Likewise.
9623 * config/rs6000/crtresxfpr.asm: Likewise.
9624 * config/rs6000/crtresxgpr.asm: Likewise.
9625 * config/rs6000/crtsavfpr.asm: Likewise.
9626 * config/rs6000/crtsavgpr.asm: Likewise.
9627 * config/rs6000/darwin-asm.h: Likewise.
9628 * config/rs6000/darwin-fallback.c: Likewise.
9629 * config/rs6000/darwin-fpsave.asm: Likewise.
9630 * config/rs6000/darwin-ldouble.c: Likewise.
9631 * config/rs6000/darwin-tramp.asm: Likewise.
9632 * config/rs6000/darwin-unwind.h: Likewise.
9633 * config/rs6000/darwin-vecsave.asm: Likewise.
9634 * config/rs6000/darwin-world.asm: Likewise.
9635 * config/rs6000/e500crtres32gpr.asm: Likewise.
9636 * config/rs6000/e500crtres64gpr.asm: Likewise.
9637 * config/rs6000/e500crtres64gprctr.asm: Likewise.
9638 * config/rs6000/e500crtrest32gpr.asm: Likewise.
9639 * config/rs6000/e500crtrest64gpr.asm: Likewise.
9640 * config/rs6000/e500crtresx32gpr.asm: Likewise.
9641 * config/rs6000/e500crtresx64gpr.asm: Likewise.
9642 * config/rs6000/e500crtsav32gpr.asm: Likewise.
9643 * config/rs6000/e500crtsav64gpr.asm: Likewise.
9644 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
9645 * config/rs6000/e500crtsavg32gpr.asm: Likewise.
9646 * config/rs6000/e500crtsavg64gpr.asm: Likewise.
9647 * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
9648 * config/rs6000/eabi-ci.asm: Likewise.
9649 * config/rs6000/eabi-cn.asm: Likewise.
9650 * config/rs6000/eabi.asm: Likewise.
9651 * config/rs6000/linux-unwind.h: Likewise.
9652 * config/rs6000/linux64.h: Likewise.
9653 * config/rs6000/paired.h: Likewise.
9654 * config/rs6000/paired.md: Likewise.
9655 * config/rs6000/ppc64-fp.c: Likewise.
9656 * config/rs6000/ppu_intrinsics.h: Likewise.
9657 * config/rs6000/rs6000.h: Likewise.
9658 * config/rs6000/si2vmx.h: Likewise.
9659 * config/rs6000/sol-ci.asm: Likewise.
9660 * config/rs6000/sol-cn.asm: Likewise.
9661 * config/rs6000/spe.h: Likewise.
9662 * config/rs6000/spu2vmx.h: Likewise.
9663 * config/rs6000/sysv4.h: Likewise.
9664 * config/rs6000/tramp.asm: Likewise.
9665 * config/rs6000/vec_types.h: Likewise.
9666 * config/s390/linux-unwind.h: Likewise.
9667 * config/s390/tpf-unwind.h: Likewise.
9668 * config/score/crti.asm: Likewise.
9669 * config/score/crtn.asm: Likewise.
9670 * config/sh/crt1.asm: Likewise.
9671 * config/sh/crti.asm: Likewise.
9672 * config/sh/crtn.asm: Likewise.
9673 * config/sh/divtab-sh4-300.c: Likewise.
9674 * config/sh/divtab-sh4.c: Likewise.
9675 * config/sh/divtab.c: Likewise.
9676 * config/sh/lib1funcs-4-300.asm: Likewise.
9677 * config/sh/lib1funcs-Os-4-200.asm: Likewise.
9678 * config/sh/lib1funcs.asm: Likewise.
9679 * config/sh/lib1funcs.h: Likewise.
9680 * config/sh/linux-atomic.asm: Likewise.
9681 * config/sh/linux-unwind.h: Likewise.
9682 * config/sh/shmedia.h: Likewise.
9683 * config/sh/sshmedia.h: Likewise.
9684 * config/sh/ushmedia.h: Likewise.
9685 * config/sparc/crtfastmath.c: Likewise.
9686 * config/sparc/linux-unwind.h: Likewise.
9687 * config/sparc/sol2-c1.asm: Likewise.
9688 * config/sparc/sol2-ci.asm: Likewise.
9689 * config/sparc/sol2-cn.asm: Likewise.
9690 * config/spu/divmodti4.c: Likewise.
9691 * config/spu/divv2df3.c: Likewise.
9692 * config/spu/float_disf.c: Likewise.
9693 * config/spu/float_unsdidf.c: Likewise.
9694 * config/spu/float_unsdisf.c: Likewise.
9695 * config/spu/float_unssidf.c: Likewise.
9696 * config/spu/mfc_multi_tag_release.c: Likewise.
9697 * config/spu/mfc_multi_tag_reserve.c: Likewise.
9698 * config/spu/mfc_tag_release.c: Likewise.
9699 * config/spu/mfc_tag_reserve.c: Likewise.
9700 * config/spu/mfc_tag_table.c: Likewise.
9701 * config/spu/multi3.c: Likewise.
9702 * config/spu/spu_internals.h: Likewise.
9703 * config/spu/spu_intrinsics.h: Likewise.
9704 * config/spu/spu_mfcio.h: Likewise.
9705 * config/spu/vec_types.h: Likewise.
9706 * config/spu/vmx2spu.h: Likewise.
9707 * config/stormy16/stormy16-lib2.c: Likewise.
9708 * config/svr4.h: Likewise.
9709 * config/sync.c: Likewise.
9710 * config/v850/lib1funcs.asm: Likewise.
9711 * config/vxlib-tls.c: Likewise.
9712 * config/vxlib.c: Likewise.
9713 * config/vxworks-dummy.h: Likewise.
9714 * config/xtensa/crti.asm: Likewise.
9715 * config/xtensa/crtn.asm: Likewise.
9716 * config/xtensa/ieee754-df.S: Likewise.
9717 * config/xtensa/ieee754-sf.S: Likewise.
9718 * config/xtensa/lib1funcs.asm: Likewise.
9719 * config/xtensa/lib2funcs.S: Likewise.
9720 * config/xtensa/linux-unwind.h: Likewise.
9721 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
9722 * config/xtensa/unwind-dw2-xtensa.h: Likewise.
9723 * coretypes.h: Likewise.
9724 * crtstuff.c: Likewise.
9725 * defaults.h: Likewise.
9726 * dwarf2.h: Likewise.
9727 * emutls.c: Likewise.
9728 * gbl-ctors.h: Likewise.
9729 * gcov-io.h: Likewise.
9730 * ginclude/float.h: Likewise.
9731 * ginclude/iso646.h: Likewise.
9732 * ginclude/stdarg.h: Likewise.
9733 * ginclude/stdbool.h: Likewise.
9734 * ginclude/stddef.h: Likewise.
9735 * ginclude/stdfix.h: Likewise.
9736 * ginclude/stdint-gcc.h: Likewise.
9737 * ginclude/tgmath.h: Likewise.
9738 * gthr-aix.h: Likewise.
9739 * gthr-dce.h: Likewise.
9740 * gthr-gnat.c: Likewise.
9741 * gthr-gnat.h: Likewise.
9742 * gthr-lynx.h: Likewise.
9743 * gthr-mipssde.h: Likewise.
9744 * gthr-nks.h: Likewise.
9745 * gthr-posix.c: Likewise.
9746 * gthr-posix.h: Likewise.
9747 * gthr-posix95.h: Likewise.
9748 * gthr-rtems.h: Likewise.
9749 * gthr-single.h: Likewise.
9750 * gthr-solaris.h: Likewise.
9751 * gthr-tpf.h: Likewise.
9752 * gthr-vxworks.h: Likewise.
9753 * gthr-win32.h: Likewise.
9754 * gthr.h: Likewise.
9755 * libgcc2.c: Likewise.
9756 * libgcc2.h: Likewise.
9757 * libgcov.c: Likewise.
9758 * tsystem.h: Likewise.
9759 * typeclass.h: Likewise.
9760 * unwind-c.c: Likewise.
9761 * unwind-compat.h: Likewise.
9762 * unwind-dw2-fde-compat.c: Likewise.
9763 * unwind-dw2-fde-darwin.c: Likewise.
9764 * unwind-dw2-fde-glibc.c: Likewise.
9765 * unwind-dw2-fde.c: Likewise.
9766 * unwind-dw2-fde.h: Likewise.
9767 * unwind-dw2.c: Likewise.
9768 * unwind-dw2.h: Likewise.
9769 * unwind-generic.h: Likewise.
9770 * unwind-pe.h: Likewise.
9771 * unwind-sjlj.c: Likewise.
9772 * unwind.inc: Likewise.
9773 * config/arm/neon-gen.ml: Change generated copyright header to
9774 refer to version 3 of the GNU General Public License with
9775 version 3.1 of the GCC Runtime Library Exception and to point
9776 readers at the COPYING3 and COPYING3.RUNTIME files and the
9777 FSF's license web page.
9778 * config/arm/arm_neon.h: Regenerate.
9779
97802009-04-09 Jakub Jelinek <jakub@redhat.com>
9781
9782 * config/cris/cris.md: Change copyright header to refer to version
9783 3 of the GNU General Public License.
9784 * doc/install.texi2html: Change copyright header to refer to version
9785 3 of the GNU General Public License and to point readers at the
9786 COPYING3 file and the FSF's license web page.
9787 * config/vax/linux.h: Likewise.
9788
4a77c72b
PB
97892009-04-09 Paolo Bonzini <bonzini@gnu.org>
9790
1ad2f450
L
9791 * config/i386/i386.md (cmpcc): New.
9792 * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
9793 (sync_compare_and_swap_cc*): Delete.
9794
9795 * config/s390/s390.c (s390_compare_emitted): Remove.
9796 (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
9797 s390_compare_emitted used to be handled. Assert that modes match.
9798 (s390_emit_compare_and_swap): Use s390_emit_compare, do not
9799 refer to sync_compare_and_swap_ccsi.
9800 * config/s390/s390.h (s390_compare_emitted): Remove.
9801 * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
9802 instead of s390_compare_emitted.
9803 (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
9804 instead of s390_compare_emitted.
9805 * config/s390/s390.md (cmpcc): New.
9806 (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
9807 CC_REGNUM, do not pretend it's set.
9808 (sync_compare_and_swap_cc*): Delete.
9809 * config/s390/predicates.md (cc_reg_operand): New.
9810
9811 * expr.c (sync_compare_and_swap_cc): Delete.
9812 * optabs.h (sync_compare_and_swap_cc): Delete.
9813 * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
9814 is being used with can_compare_p.
9815 (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
9816 (find_cc_set): New.
9817 (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
9818 look for a MODE_CC set instead. Use emit_store_flag.
9819 (expand_compare_and_swap_loop): Likewise, with some additional
9820 complication to avoid a force_reg when useless. Use
9821 emit_cmp_and_jump_insns.
9822 * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
9823 * doc/md.texi (sync_compare_and_swap_cc): Merge with
9824 sync_compare_and_swap documentation.
4a77c72b 9825
0c0efb33
JH
98262009-04-09 Jan Hubicka <jh@suse.cz>
9827
9828 * except.c (find_prev_try): Break out from ....
9829 (duplicate_eh_regions): ... here; properly update prev_try pointers
9830 when duplication part of tree.
9831 (dump_eh_tree): Improve dumping.
9832 (verify_eh_region): New.
9833 (verify_eh_tree): Use it.
9834
22a65a54
RG
98352009-04-06 Richard Guenther <rguenther@suse.de>
9836
9837 * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
9838 &ARRAY addresses by adjusting their types and prepending
9839 a conversion.
9840 * tree-cfg.c (verify_gimple_assign_single): Verify that
9841 addresses are correct.
9842
f76968e6
RG
98432009-04-09 Richard Guenther <rguenther@suse.de>
9844
9845 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
9846 indices into an array reference if possible.
9847 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
9848 Fold POINTER_PLUS_EXPR statements with invariant address.
9849
c90c5fb5
AM
98502009-04-09 Alan Modra <amodra@bigpond.net.au>
9851
9852 PR target/39634
9853 * config.gcc (powerpc64-*-linux*): Always build biarch.
9854
17cede2e
JM
98552009-04-09 Joseph Myers <joseph@codesourcery.com>
9856
9857 PR c/39613
9858 * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
9859 it and pedwarn if this results in an INTEGER_CST.
9860
a3337ea2
KG
98612009-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9862
9863 * doc/install.texi: Update minimum GMP version. Remove obsolete
9864 text in MPFR section.
9865
ce9ba79b
JJ
98662009-04-08 Jakub Jelinek <jakub@redhat.com>
9867
9868 * dwarf2out.c (class_scope_p): New static inline.
9869 (class_or_namespace_scope_p): Use it.
9870 (gen_variable_die): Use DW_TAG_member tag for static data member
9871 declarations instead of DW_TAG_variable.
9872
4f0ae266
JJ
9873 PR middle-end/39573
9874 * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
9875 variables.
9876
d27f0ddc
RG
98772009-04-08 Richard Guenther <rguenther@suse.de>
9878
9879 * tree-ssa-sccvn.c (valueize_refs): Do not continue to
9880 valueize random data.
9881
557cc596
DE
98822009-04-08 David Edelsohn <edelsohn@gnu.org>
9883
9884 * config.gcc (aix tm_file): Add aix-stdint.h.
9885 (aix tm clause use_gcc_stdint): Set to wrap.
9886 * config/rs6000/aix-stdint.h: New file.
2ba9daa7 9887
75ccc1e7
RG
98882009-04-08 Richard Guenther <rguenther@suse.de>
9889
9890 PR middle-end/36291
9891 * tree-dfa.c (add_referenced_var): Do not recurse into
9892 global initializers.
9893 * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
9894 exposed variables.
9895 (fold_const_aggregate_ref): Likewise.
9896
c6963675
PB
98972009-04-08 Paolo Bonzini <bonzini@gnu.org>
9898
6c44cf79
L
9899 * recog.c (ordered_comparison_operator): New.
9900 * gensupport.c (std_preds): Add it.
c6963675
PB
9901 * doc/md.texi (Machine-Independent Predicates): Document it.
9902
6d07ad98
JH
99032009-04-08 Jan Hubicka <jh@suse.cz>
9904
9905 * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
9906 * function.h (rtl_eh): Remove exception_handler_label_map.
9907 * except.c (ehl_hash, ehl_eq, add_ehl_entry,
9908 remove_exception_handler_label, for_each_eh_label_1): Remove.
9909 (rtl_remove_unreachable_regions): Remove.
9910 (convert_from_eh_region_ranges): Do not remove unreachable regions.
9911 (find_exception_handler_labels): Don't build the hashtable.
9912 (maybe_remove_eh_handler): Remove.
9913 (for_each_eh_label): Rewrite to walk the tree.
9914 (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
9915 * except.h (maybe_remove_eh_handler): Remove.
9916 * passes.c (init_optimization_passes): Schedule second EH cleanup
9917 before out-of-ssa.
9918 * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
9919 cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
9920
7ddf71e3
PB
99212009-04-08 Paolo Bonzini <bonzini@gnu.org>
9922
9923 * genoutput.c (validate_optab_operands): New.
9924 (gen_insn, gen_expand): Call it.
9925
9926 * genflags.c (gen_insn): Detect misused iterators.
9927 (main): Pass line_no to gen_insn, exit with status 1 on error.
9928
9929 * genextract.c (line_no): Make global.
9930 (VEC_safe_set_locstr): Change assertion to error message.
9931 (main): Exit with status 1 on error.
9932
4d84fe7c
JM
99332009-04-08 Joseph Myers <joseph@codesourcery.com>
9934
9935 PR c/39614
9936 PR c/39673
9937 * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
9938 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
9939 EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
9940 * c-convert.c (convert): Do not call fold on results of conversion
9941 functions when the result is a C_MAYBE_CONST_EXPR.
9942 * c-parser.c (c_parser_postfix_expression): Do not fold condition
9943 of __builtin_choose_expr.
9944 * c-typeck.c (remove_c_maybe_const_expr): New.
9945 (build_unary_op, build_conditional_expr, build_compound_expr,
9946 build_binary_op, c_objc_common_truthvalue_conversion): Call
9947 remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
9948 integer operands.
9949
60839f5d 99502009-04-08 Bingfeng Mei <bmei@broadcom.com>
d1d1c602 9951
2ba9daa7 9952 * fold-const.c (const_binop): Combine two VECTOR_CST under operation
6c44cf79 9953 CODE to produce a new one. Add a prototype to use fold_convert_const
d1d1c602 9954
8e481a2c
DS
99552009-04-08 Danny Smith <dannysmith@users.sourceforge.net>
9956
9957 PR bootstrap/39660
9958 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
9959 mix declarations and code.
9960
ee618c17
BE
99612009-04-08 Ben Elliston <bje@au.ibm.com>
9962
9963 * gcc.c: Replace `CC' with `GCC' throughout.
9964
f2a758a2
L
99652009-04-07 H.J. Lu <hongjiu.lu@intel.com>
9966
9967 * doc/invoke.texi: Document Atom support.
9968
6ea2bd47
JM
99692009-04-07 Jason Merrill <jason@redhat.com>
9970
9971 PR c++/25185
9972 * c-common.h, c-common.c: Add flag_pretty_templates.
9973 * c-opts.c (c_common_handle_option): Set it.
9974 * c.opt: Add -fno-pretty-templates.
9975 * doc/invoke.texi (C++ Dialect Options): Likewise.
9976
fcb82ab0
UB
99772009-04-07 Uros Bizjak <ubizjak@gmail.com>
9978
9979 * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
9980 (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
9981 (ia64_expand_builtin): Likewise.
9982
dc5e7298
MJ
99832009-04-07 Martin Jambor <mjambor@suse.cz>
9984
9985 * tree-ssa-alias.c (refs_may_alias_p_1): Check for
9986 is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
9987 ADDR_EXPRS are include too.
9988
0609b355
RG
99892009-04-07 Richard Guenther <rguenther@suse.de>
9990
9991 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
9992 decls are only used if passes as parameters or if they are
9993 local statics and the call is not to a builtin.
9994 (call_may_clobber_ref_p_1): Likewise.
9995
d8e535fa
PB
99962009-04-07 Paolo Bonzini <bonzini@gnu.org>
9997
9998 * expr.c (do_store_flag): Remove last argument. Simplify code
9999 to avoid duplication of tests already done by can_compare_p.
10000 (expand_expr_real_1): Adjust caller.
10001
c3c64f50
PB
100022009-04-07 Paolo Bonzini <bonzini@gnu.org>
10003
fcb82ab0
UB
10004 * optabs.c (can_compare_p): Test the predicate of a
10005 cbranch and cstore pattern.
c3c64f50 10006
9a53bc17
PB
100072009-04-07 Paolo Bonzini <bonzini@gnu.org>
10008
fcb82ab0
UB
10009 * expr.c (convert_move): Use emit_store_flag instead of
10010 "emulating" it.
9a53bc17 10011
67b8f1c1
PB
100122009-04-07 Paolo Bonzini <bonzini@gnu.org>
10013
fcb82ab0
UB
10014 * config/i386/i386.c (ix86_compare_emitted): Remove.
10015 (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
10016 ix86_compare_op0 like ix86_compare_emitted used to be handled.
10017 * config/i386/i386.h (ix86_compare_emitted): Remove.
10018 * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
10019 instead of ix86_compare_emitted.
10020 * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
67b8f1c1 10021
44509946
AS
100222009-04-07 Andrew Stubbs <ams@codesourcery.com>
10023
10024 * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
10025 Add t-sysroot-suffix to tmake_file.
10026 * config/print-sysroot-suffix.sh: New file.
10027 * config/t-sysroot-suffix: New file.
10028
ca22d882
BE
100292009-04-07 Ben Elliston <bje@au.ibm.com>
10030
10031 * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
10032 as the latter produces a warning when the target does not support
10033 infinity.
10034
95aac11b
BE
100352009-04-07 Ben Elliston <bje@au.ibm.com>
10036
10037 * dfp.c: Replace type punning assignments with memcpy throughout.
10038 * Makefile.in (dfp.o-warn): Remove.
2ba9daa7 10039
633dd061
AM
100402009-04-07 Alan Modra <amodra@bigpond.net.au>
10041
10042 PR target/39634
10043 * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
10044 Include soft-fp/t-softfp after rs6000/t-linux64.
10045
fe0a25ec
EB
100462009-04-06 Eric Botcazou <ebotcazou@adacore.com>
10047
10048 * stor-layout.c (set_sizetype): Use the full precision of their
10049 machine mode for bitsize types.
10050
0c011bc3
L
100512009-04-06 H.J. Lu <hongjiu.lu@intel.com>
10052
10053 * config/i386/i386.md: Revert 2 accidental checkins.
10054
b6837b94 100552009-04-06 Joey Ye <joey.ye@intel.com>
60839f5d 10056 Xuepeng Guo <xuepeng.guo@intel.com>
b6837b94
JY
10057 H.J. Lu <hongjiu.lu@intel.com>
10058
10059 Atom pipeline model, tuning and insn selection.
10060 * config.gcc (atom): Add atom config options and target.
10061
10062 * config/i386/atom.md: New.
10063
10064 * config/i386/i386.c (atom_cost): New cost.
10065 (m_ATOM): New macro flag.
10066 (initial_ix86_tune_features): Set m_ATOM.
10067 (x86_accumulate_outgoing_args): Likewise.
10068 (x86_arch_always_fancy_math_387): Likewise.
10069 (processor_target): Add Atom cost.
10070 (cpu_names): Add Atom cpu name.
10071 (override_options): Set Atom ISA.
10072 (ix86_issue_rate): New case PROCESSOR_ATOM.
10073 (ix86_adjust_cost): Likewise.
10074
10075 * config/i386/i386.h (TARGET_ATOM): New target macro.
10076 (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
10077 (TARGET_OPT_AGU): New target option.
10078 (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
10079 (processor_type): Add PROCESSOR_ATOM.
10080
10081 * config/i386/i386.md (cpu): Add new value "atom".
10082 (use_carry, movu): New attr.
10083 (atom.md): Include atom.md.
10084 (adddi3_carry_rex64): Set attr "use_carry".
10085 (addqi3_carry): Likewise.
10086 (addhi3_carry): Likewise.
10087 (addsi3_carry): Likewise.
10088 (*addsi3_carry_zext): Likewise.
10089 (subdi3_carry_rex64): Likewise.
10090 (subqi3_carry): Likewise.
10091 (subhi3_carry): Likewise.
10092 (subsi3_carry): Likewise.
10093 (x86_movdicc_0_m1_rex64): Likewise.
10094 (*x86_movdicc_0_m1_se): Likewise.
10095 (x86_movsicc_0_m1): Likewise.
10096 (*x86_movsicc_0_m1_se): Likewise.
10097 (*adddi_1_rex64): Emit add insn as much as possible.
10098 (*addsi_1): Likewise.
10099 (return_internal): Set atom_unit.
10100 (return_internal_long): Likewise.
10101 (return_pop_internal): Likewise.
10102 (*rcpsf2_sse): Set atom_sse_attr attr.
10103 (*qrt<mode>2_sse): Likewise.
10104 (*prefetch_sse): Likewise.
10105
10106 * config/i386/i386-c.c (ix86_target_macros_internal): New case
10107 PROCESSOR_ATOM.
10108 (ix86_target_macros_internal): Likewise.
10109
10110 * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
10111 (*prefetch_sse_rex): Likewise.
10112 (sse_rcpv4sf2): Likewise.
10113 (sse_vmrcpv4sf2): Likewise.
10114 (sse_sqrtv4sf2): Likewise.
10115 (<sse>_vmsqrt<mode>2): Likewise.
10116 (sse_ldmxcsr): Likewise.
10117 (sse_stmxcsr): Likewise.
10118 (*sse_sfence): Likewise.
10119 (sse2_clflush): Likewise.
10120 (*sse2_mfence): Likewise.
10121 (*sse2_lfence): Likewise.
10122 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
10123 (<sse>_movup<ssemodesuffixf2c>): Likewise.
10124 (avx_movdqu<avxmodesuffix>): Likewise.
10125 (avx_lddqu<avxmodesuffix>): Likewise.
10126 (sse2_movntv2di): Change attr "type" to "ssemov".
10127 (sse2_movntsi): Likewise.
10128 (rsqrtv8sf2): Change attr "type" to "sseadd".
10129 (sse3_addsubv2df3): Set attr "atom_unit".
10130 (sse3_h<plusminus_insn>v4sf3): Likewise.
10131 (*sse2_pmaddwd): Likewise.
10132 (*vec_extractv2di_1_rex64): Likewise.
10133 (*vec_extractv2di_1_avx): Likewise.
10134 (sse2_psadbw): Likewise.
10135 (ssse3_phaddwv8hi3): Likewise.
10136 (ssse3_phaddwv4hi3): Likewise.
10137 (ssse3_phadddv4si3): Likewise.
10138 (ssse3_phadddv2si3): Likewise.
10139 (ssse3_phaddswv8hi3): Likewise.
10140 (ssse3_phaddswv4hi3): Likewise.
10141 (ssse3_phsubwv8hi3): Likewise.
10142 (ssse3_phsubwv4hi3): Likewise.
10143 (ssse3_phsubdv4si3): Likewise.
10144 (ssse3_phsubdv2si3): Likewise.
10145 (ssse3_phsubswv8hi3): Likewise.
10146 (ssse3_phsubswv4hi3): Likewise.
10147 (ssse3_pmaddubsw128): Likewise.
10148 (sse3_pmaddubsw: Likewise.
10149 (ssse3_palignrti): Likewise.
10150 (ssse3_palignrdi): Likewise.
10151
53e350d3
GP
101522009-04-06 Gerald Pfeifer <gerald@pfeifer.com>
10153
10154 * doc/install.texi (Specific): Fix two cross-references to MinGW.
10155
439ef907
RG
101562009-04-06 Richard Guenther <rguenther@suse.de>
10157
10158 PR tree-optimization/28868
10159 * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
10160 of which PHI results we inserted.
10161 (insert_into_preds_of_block): Record inserted PHIs.
10162 (eliminate): Eliminate redundant PHI nodes.
10163 (init_pre): Init inserted_phi_names.
10164
4bad83f5
RG
101652009-04-06 Richard Guenther <rguenther@suse.de>
10166
10167 PR tree-optimization/39643
10168 * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
10169 IMAGPART_EXPRs of complex constants.
10170 (execute_fold_all_builtins): If we folded a call queue
10171 TODO_update_address_taken.
10172
570c4247
JH
101732009-04-06 Jan Hubicka <jh@suse.cz>
10174
10175 PR middle-end/39659
10176 * except.c (remove_unreachable_regions): Propagate may_contain_throw
10177 flag.
10178
a460d7a1
AS
101792009-04-06 Andrew Stubbs <ams@codesourcery.com>
10180
10181 * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
10182 delay slot.
10183 (ic_invalidate_array): Likewise.
10184
60839f5d 101852009-04-06 Hariharan Sandanagobalane <hariharan@picochip.com>
6bdf8c2e
HS
10186
10187 * calls.c (emit_library_call_value_1): Fix a problem with parameter
10188 alignment for library calls.
10189
7d253f6e
DS
101902009-04-06 Danny Smith <dannysmith@users.sourceforge.net>
10191
10192 * config.gcc (mingw32 tm_file): Add mingw-stdint.h.
10193 (mingw32 tm clause use_gcc_stdint): Set to wrap.
10194 * config/i386/mingw-stdint.h: New file.
10195
941c3614
RB
101962009-04-05 Richard Guenther <rguenther@suse.de>
10197
10198 PR tree-optimization/39648
10199 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
10200 our &A vs. &A[0] IL deficiencies.
10201
12633413
JH
102022009-04-04 Jan Hubicka <jh@suse.cz>
10203
941c3614
RB
10204 * except.c (sjlj_find_directly_reachable_regions): Be ready for
10205 removed toplevel regions.
12633413
JH
10206 (sjlj_mark_call_sites): Likewise.
10207
bb2aaded
DK
102082009-04-04 Dave Korn <dave.korn.cygwin@gmail.com>
10209
10210 * config.gcc (cygwin tm_file): Add cygwin-stdint.h.
10211 (cygwin tm clause use_gcc_stdint): Set to wrap.
10212 * config/i386/cygwin-stdint.h: New file.
10213
86290011
RG
102142009-04-04 Richard Guenther <rguenther@suse.de>
10215
10216 * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
10217 * tree-ssa-copy.c (init_copy_prop): Do not propagate through
10218 single-argument PHIs if we are in loop-closed SSA form.
10219 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
10220 for the pre-condition.
10221 (slpeel_tree_peel_loop_to_edge): Likewise.
10222 (vect_build_loop_niters): Take an optional sequence to append stmts.
10223 (vect_generate_tmps_on_preheader): Likewise.
10224 (vect_do_peeling_for_loop_bound): Take extra guards for the
10225 pre-condition.
10226 (vect_do_peeling_for_alignment): Adjust. Unconditionally apply
10227 the cost model check.
10228 (vect_loop_versioning): Take stmt and stmt list to put pre-condition
7a715bba 10229 guards if we are going to peel. Do not apply versioning in that case.
86290011
RG
10230 * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
10231 (vect_do_peeling_for_loop_bound): Likewise.
10232 * tree-vect-loop.c (vect_transform_loop): If we are peeling for
10233 loop bound only record extra pre-conditions, do not apply loop
10234 versioning.
10235
5eeeac64
RG
102362009-04-04 Richard Guenther <rguenther@suse.de>
10237
10238 * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
10239 renaming code.
10240
1ff7d06b
JH
102412009-04-04 Jan Hubicka <jh@suse.cz>
10242
10243 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
10244 last_basic_block for size of bb->index indexed array.
10245 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
10246 compute_out, link_btr_uses, build_btr_def_use_webs,
10247 build_btr_def_use_webs, migrate_btr_defs): Likewise.
10248
14925fcd
JH
102492009-04-04 Jan Hubicka <jh@suse.cz>
10250
10251 * except.c (remove_eh_handler_and_replace): Break out from ...
10252 (remove_eh_handler): ... here.
10253 (bring_to_root): New function.
10254 (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
10255 handled ones, bring others to root of tree.
10256
4e6d1743
JH
102572009-04-04 Jan Hubicka <jh@suse.cz>
10258
4cb735f7
JH
10259 * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
10260 (all_phis_safe_to_merge): New function.
10261 (update_info): New structure.
10262 (make_eh_edge_and_update_phi, update_eh_edges): New functions.
10263 (cleanup_empty_eh): Update SSA if possible.
4e6d1743 10264
c6803d43
RG
102652009-04-04 Richard Guenther <rguenther@suse.de>
10266
10267 * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
10268 * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
10269 (append_vuse): Likewise.
10270
54f5943c
JJ
102712009-04-04 Jakub Jelinek <jakub@redhat.com>
10272
10273 * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
10274 * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
10275 instead of REG_UNSAVED for DW_CFA_undefined.
10276 (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
10277 (uw_update_context): If RA column is REG_UNDEFINED, mark it as
10278 outermost frame.
10279
aad2bccb
RE
102802009-04-04 Richard Earnshaw <rearnsha@arm.com>
10281
10282 PR target/39501
10283 * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
10284 * testsuite/gcc.c-torture/execute/pr39501.c: New file.
10285 * testsuite/gcc.c-torture/execute/pr39501.x: New file.
10286
aa7069aa
RG
102872009-04-04 Richard Guenther <rguenther@suse.de>
10288
10289 PR tree-optimization/8781
10290 PR tree-optimization/37892
10291 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
10292 * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
10293 (valueize_refs): Call it for *& valueizations.
10294 (shared_reference_ops_from_ref): Rename to ...
10295 (valueize_shared_reference_ops_from_ref): ... this and valueize.
10296 (shared_reference_ops_from_call): Rename to ...
10297 (valueize_shared_reference_ops_from_call): ... this and valueize.
10298 (vn_reference_lookup): Update.
10299 (visit_reference_op_call): Likewise.
10300 * tree-ssa-pre.c (phi_translate_1): Fold *&.
10301 (eliminate): Value-replace the call address in call statements.
10302
cd15ad3e
RG
103032009-04-04 Richard Guenther <rguenther@suse.de>
10304
10305 PR tree-optimization/39636
10306 * tree-ssa-forwprop.c
10307 (forward_propagate_addr_into_variable_array_index): Check for
10308 GIMPLE_ASSIGN before accessing the rhs code.
10309
462f3262
JM
103102009-04-03 Jason Merrill <jason@redhat.com>
10311
10312 * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
10313
6adb807e
SE
103142009-04-03 Steve Ellcey <sje@cup.hp.com>
10315
10316 * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
10317 truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
10318 fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
10319 floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
10320 fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
10321 smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
10322 divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
10323 umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
10324 *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
10325 *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
10326 adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
10327 smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
10328 *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
10329 *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
10330 sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
10331 Use fr_reg_or_fp01_operand instead of fr_register_operand
10332
10333 * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
10334 recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
10335 divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
10336
174b3107
VM
103372009-04-03 Vladimir Makarov <vmakarov@redhat.com>
10338
b844e5d8
L
10339 PR rtl-optimization/39607
10340 PR rtl-optimization/39631
7a715bba
UB
10341
10342 Revert:
2ba9daa7 10343
174b3107
VM
10344 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
10345 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
10346 instead of DF_LR_OUT.
10347 * ira-lives.c (process_bb_node_lives): Ditto.
10348 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
10349 instead of DF_LR_{OUT,IN}.
10350 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
10351 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
10352
535b544a
SB
103532009-04-03 Steven Bosscher <steven@gcc.gnu.org>
10354
10355 * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
10356 (execute_lower_omp): Always run but take the short way out if -fopenmp
10357 is not given.
10358 (gate_lower_omp): Remove, forcing the pass manager to always run the
10359 pass and always set PROP_gimple_lomp.
10360 (pass_lower_omp): Remove gate function.
10361 * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
10362 PROP_trees. Instead, require it.
10363 * ipa-cp.c (pass_ipa_cp): Likewise.
10364 * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
10365 (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
10366 * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
10367 and PROP_gimple_leh.
10368
5006671f
RG
103692009-04-03 Richard Guenther <rguenther@suse.de>
10370
10371 PR middle-end/13146
10372 PR tree-optimization/23940
10373 PR tree-optimization/33237
10374 PR middle-end/33974
10375 PR middle-end/34093
10376 PR tree-optimization/36201
10377 PR tree-optimization/36230
10378 PR tree-optimization/38049
10379 PR tree-optimization/38207
10380 PR tree-optimization/38230
10381 PR tree-optimization/38301
10382 PR tree-optimization/38585
10383 PR middle-end/38895
10384 PR tree-optimization/38985
10385 PR tree-optimization/39299
10386 * tree-ssa-structalias.h: Remove.
10387 * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
10388 (NULL_DEF_OPERAND_P): Make of type def_operand_p.
10389 (struct vuse_element_d): Remove.
10390 (struct vuse_vec_d): Likewise.
10391 (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
10392 VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
10393 SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
10394 VUSE_ELEMENT_VAR): Likewise.
10395 (struct voptype_d): Likewise.
10396 (NUM_VOP_FREE_BUCKETS): Likewise.
10397 (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
10398 (struct stmt_operands_d): Remove.
10399 (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
10400 VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
10401 VDEF_NUM, VDEF_VECT): Likewise.
10402 (copy_virtual_operands): Remove.
10403 (operand_build_cmp): Likewise.
10404 (create_ssa_artificial_load_stmt): Likewise.
10405 (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
10406 (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
10407 vuse_index and mayuse_index members. Pack and move done and iter_type
10408 members to the front.
10409 (SSA_OP_VMAYUSE): Remove.
10410 (SSA_OP_VIRTUAL_USES): Adjust.
10411 (FOR_EACH_SSA_VDEF_OPERAND): Remove.
10412 (unlink_stmt_vdef): Declare.
10413 (add_to_addressable_set): Remove.
10414 * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
10415 (vrp_visit_stmt): Likewise.
10416 * doc/tree-ssa.texi (Alias analysis): Update.
10417 * doc/invoke.texi (max-aliased-vops): Remove docs.
10418 (avg-aliased-vops): Likewise.
10419 * tree-into-ssa.c (syms_to_rename): Remove.
10420 (need_to_update_vops_p): Likewise.
10421 (need_to_initialize_update_ssa_p): Rename to ...
10422 (update_ssa_initialized_fn): ... this. Track function we are
10423 initialized for.
10424 (symbol_marked_for_renaming): Simplify.
10425 (add_new_name_mapping): Do not set need_to_update_vops_p.
10426 (dump_currdefs): Use SYMS_TO_RENAME.
10427 (rewrite_update_stmt): Always walk all uses/defs.
10428 (dump_update_ssa): Adjust.
10429 (init_update_ssa): Take function argument. Track what we are
10430 initialized for.
10431 (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
10432 (create_new_def_for): Initialize for cfun, assert we are initialized
10433 for cfun.
10434 (mark_sym_for_renaming): Simplify.
10435 (mark_set_for_renaming): Do not initialize update-ssa.
10436 (need_ssa_update_p): Simplify. Take function argument.
10437 (name_mappings_registered_p): Assert we ask for the correct function.
10438 (name_registered_for_update_p): Likewise.
10439 (ssa_names_to_replace): Likewise.
10440 (release_ssa_name_after_update_ssa): Likewise.
10441 (update_ssa): Likewise. Use SYMS_TO_RENAME.
10442 (dump_decl_set): Do not print a newline.
10443 (debug_decl_set): Do it here.
10444 (dump_update_ssa): And here.
10445 * tree-ssa-loop-im.c (move_computations): Adjust.
10446 (movement_possibility): Likewise.
10447 (determine_max_movement): Likewise.
10448 (gather_mem_refs_stmt): Likewise.
10449 * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
10450 or NAME_MEMORY_TAG.
10451 * tree-complex.c (update_all_vops): Remove.
10452 (expand_complex_move): Adjust.
10453 * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
10454 Simplify test for memory referencing statement. Exclude
10455 non-invariant ADDR_EXPRs.
10456 * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
10457 * tree-loop-distribution.c (generate_memset_zero): Adjust.
10458 (rdg_flag_uses): Likewise.
10459 * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
10460 related code.
10461 (tree_optimize_tail_calls_1): Also split the
10462 edge from the entry block if we have degenerate PHI nodes in
10463 the first basic block.
10464 * tree.c (init_ttree): Remove memory-tag related code.
10465 (tree_code_size): Likewise.
10466 (tree_node_structure): Likewise.
10467 (build7_stat): Re-write to be build6_stat.
10468 * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
10469 (SSA_VAR_P): Adjust.
10470 (struct tree_memory_tag): Remove.
10471 (struct tree_memory_partition_tag): Likewise.
10472 (union tree_node): Adjust.
10473 (build7): Re-write to be build6.
10474 * tree-pass.h (pass_reset_cc_flags): Remove.
10475 (TODO_update_address_taken): New flag.
10476 (pass_simple_dse): Remove.
10477 * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
10478 * params.h (MAX_ALIASED_VOPS): Remove.
10479 (AVG_ALIASED_VOPS): Likewise.
10480 * omp-low.c (expand_omp_taskreg): Update SSA form.
10481 * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
10482 aliases the lhs in a copy stmt.
10483 * tree-ssa-dse.c (struct address_walk_data): Remove.
10484 (memory_ssa_name_same): Likewise.
10485 (memory_address_same): Likewise.
10486 (get_kill_of_stmt_lhs): Likewise.
10487 (dse_possible_dead_store_p): Simplify, use the oracle. Handle
10488 unused stores. Look through PHI nodes into post-dominated regions.
10489 (dse_optimize_stmt): Simplify. Properly remove stores.
10490 (tree_ssa_dse): Compute dominators.
10491 (execute_simple_dse): Remove.
10492 (pass_simple_dse): Likewise.
10493 * ipa-reference.c (scan_stmt_for_static_refs): Open-code
10494 gimple_loaded_syms and gimple_stored_syms computation.
10495 * toplev.c (dump_memory_report): Dump alias and pta stats.
10496 * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
10497 (vn_reference_eq): Likewise.
10498 (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
10499 copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
10500 valueize_vuses): Remove.
10501 (get_def_ref_stmt_vuses): Simplify. Rename to ...
10502 (get_def_ref_stmt_vuse): ... this.
10503 (vn_reference_lookup_2): New function.
10504 (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
10505 walking equivalent vuses. Simplify.
10506 (vn_reference_lookup): Likewise.
10507 (vn_reference_insert): Likewise.
10508 (vn_reference_insert_pieces): Likewise.
10509 (visit_reference_op_call): Simplify.
10510 (visit_reference_op_load): Likewise.
10511 (visit_reference_op_store): Likewise.
10512 (init_scc_vn): Remove shared_lookup_vuses initialization.
10513 (free_scc_vn): Remove shared_lookup_vuses freeing.
10514 (sort_vuses, sort_vuses_heap): Remove.
10515 (get_ref_from_reference_ops): Export.
10516 * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
10517 vector with single vuse pointer.
10518 (vn_reference_lookup_pieces, vn_reference_lookup,
10519 vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
10520 (shared_vuses_from_stmt): Remove.
10521 (get_ref_from_reference_ops): Declare.
10522 * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
10523 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
10524 memory-tag related code.
10525 * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
10526 (likely_value): Add comment, skip static-chain of call statements.
10527 (surely_varying_stmt_p): Adjust.
10528 (gimplify_and_update_call_from_tree): Likewise.
10529 (execute_fold_all_builtins): Do not rebuild alias info.
10530 (gimplify_and_update_call_from_tree): Properly update VOPs.
10531 * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
10532 (copy_ref_info): Remove memory-tag related code.
10533 * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
10534 * ipa-pure-const.c (check_decl): Remove memory-tag related code.
10535 (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
10536 computation.
10537 * tree-ssa-dom.c (gimple_p): Remove typedef.
10538 (eliminate_redundant_computations): Adjust.
10539 (record_equivalences_from_stmt): Likewise.
10540 (avail_expr_hash): Likewise.
10541 (avail_expr_eq): Likewise.
7a715bba 10542 * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
5006671f
RG
10543 (stmt_makes_single_load): Likewise.
10544 (stmt_makes_single_store): Likewise.
10545 * tree-ssa-alias.c: Rewrite completely.
10546 (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
10547 debug_mem_sym_stats, dump_mem_sym_stats_for_var,
10548 debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
10549 delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
10550 dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
10551 Remove public functions.
10552 (pass_reset_cc_flags): Remove.
10553 (pass_build_alias): Move ...
10554 * tree-ssa-structalias.c (pass_build_alias): ... here.
10555 * tree-ssa-alias.c (may_be_aliased): Move ...
10556 * tree-flow-inline.h (may_be_aliased): ... here.
10557 tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
10558 count_uses_and_derefs): Move ...
10559 * gimple.c: ... here.
10560 * gimple.h (count_uses_and_derefs): Declare.
10561 * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
10562 ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
10563 same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
10564 indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
10565 ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
10566 call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
10567 get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
10568 New functions.
10569 * tree-dfa.c (refs_may_alias_p): Move ...
10570 * tree-ssa-alias.c (refs_may_alias_p): ... here. Extend.
10571 * tree-ssa-alias.h: New file.
10572 * tree-ssa-sink.c (is_hidden_global_store): Adjust.
10573 (statement_sink_location): Likewise.
10574 * opts.c (decode_options): Do not adjust max-aliased-vops or
10575 avg-aliased-vops values.
10576 * timevar.def (TV_TREE_MAY_ALIAS): Remove.
10577 (TV_CALL_CLOBBER): Likewise.
10578 (TV_FLOW_SENSITIVE): Likewise.
10579 (TV_FLOW_INSENSITIVE): Likewise.
10580 (TV_MEMORY_PARTITIONING): Likewise.
10581 (TV_ALIAS_STMT_WALK): New timevar.
10582 * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
10583 * tree-ssa-address.c (create_mem_ref_raw): Use build6.
10584 (get_address_description): Remove memory-tag related code.
10585 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
10586 * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
10587 * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
10588 and immediate uses in statements. Document.
10589 * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
10590 (dump_symbols): Remove.
10591 (dump_gimple_mem_ops): Do not dump loaded or stored syms.
10592 * alias.c (get_deref_alias_set): New function split out from ...
10593 (get_alias_set): ... here.
10594 * alias.h (get_deref_alias_set): Declare.
10595 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
10596 type parameter. Remove restrict pointer handling. Create a
10597 ref-all pointer in case type-based alias sets do not conflict.
10598 (vect_analyze_data_refs): Remove SMT related code.
10599 * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
10600 (vectorizable_load): Likewise.
10601 * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
10602 (DR_SYMBOL_TAG, DR_VOPS): Remove.
10603 * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
10604 Ignore vops and SMTs.
10605 (dr_analyze_alias): Likewise..
10606 (free_data_ref): Likewise.
10607 (create_data_ref): Likewise.
10608 (analyze_all_data_dependences): Likewise.
10609 (get_references_in_stmt): Adjust.
10610 * tree-flow-inline.h (gimple_aliases_computed_p,
10611 gimple_addressable_vars, gimple_call_clobbered_vars,
10612 gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
10613 factoring_name_p, mark_call_clobbered, clear_call_clobbered,
10614 compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
10615 gimple_mem_ref_stats): Remove.
10616 (gimple_vop): New function.
10617 (op_iter_next_use): Remove vuses and mayuses cases.
10618 (op_iter_next_def): Remove vdefs case.
10619 (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
10620 (clear_and_done_ssa_iter): Do not set removed fields.
10621 (op_iter_init): Likewise. Skip vuse and/or vdef if requested.
10622 Assert we are not iterating over vuses or vdefs if not also
10623 iterating over uses or defs.
10624 (op_iter_init_use): Likewise.
10625 (op_iter_init_def): Likewise.
10626 (op_iter_next_vdef): Remove.
10627 (op_iter_next_mustdef): Likewise.
10628 (op_iter_init_vdef): Likewise.
10629 (compare_ssa_operands_equal): Likewise.
10630 (link_use_stmts_after): Handle vuse operand.
10631 (is_call_used): Use is_call_clobbered.
10632 (is_call_clobbered): Global variables are always call clobbered,
10633 query the call-clobbers bitmap.
10634 (mark_call_clobbered): Ignore global variables.
10635 (clear_call_clobbered): Likewise.
10636 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
10637 virtual operands sanity check.
10638 * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
10639 Remove.
10640 (TARGET_MEM_REF): Remove TMR_TAG operand.
10641 * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
10642 Remove call-clobber related code.
10643 (remove_referenced_var): Likewise. Do not clear mpt or symbol_mem_tag.
10644 (dump_variable): Do not dump SMTs, memory stats, may-aliases or
10645 partitions or escape reason.
10646 (get_single_def_stmt, get_single_def_stmt_from_phi,
10647 get_single_def_stmt_with_phi): Remove.
10648 (dump_referenced_vars): Tidy.
10649 (get_ref_base_and_extent): Allow bare decls.
10650 (collect_dfa_stats): Adjust.
10651 * graphite.c (rename_variables_in_stmt): Adjust.
10652 (graphite_copy_stmts_from_block): Likewise.
10653 (translate_clast): Likewise.
10654 * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
10655 (EXPR_DIES): New.
10656 (translate_vuse_through_block): Use the oracle.
10657 (phi_translate_1): Adjust.
10658 (value_dies_in_block_x): Use the oracle. Cache the outcome
10659 in EXPR_DIES.
10660 (valid_in_sets): Check if the VUSE for
10661 a REFERENCE is available.
10662 (eliminate): Do not remove stmts during elimination,
10663 instead queue and remove them afterwards.
10664 (do_pre): Do not rebuild alias info.
10665 (pass_pre): Run TODO_rebuild_alias before PRE.
10666 * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
10667 * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
10668 (mark_all_v_defs_stmt): Remove.
10669 (mark_all_v_defs_seq): Adjust.
10670 (sra_replace): Likewise.
10671 (scalarize_use): Likewise.
10672 (scalarize_copy): Likewise.
10673 (scalarize_init): Likewise.
10674 (scalarize_ldst): Likewise.
10675 (todoflags): Remove.
10676 (tree_sra): Do not rebuild alias info.
10677 (tree_sra_early): Adjust.
10678 (pass_sra): Run TODO_update_address_taken before SRA.
10679 * tree-predcom.c (set_alias_info): Remove.
10680 (prepare_initializers_chain): Do not call it.
10681 (mark_virtual_ops_for_renaming): Adjust.
10682 (mark_virtual_ops_for_renaming_list): Remove.
10683 (initialize_root_vars): Adjust.
10684 (initialize_root_vars_lm): Likewise.
10685 (prepare_initializers_chain): Likewise.
10686 * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
10687 (may_propagate_copy_into_stmt): Likewise.
10688 (merge_alias_info): Do nothing for now.
10689 (propagate_tree_value_into_stmt): Adjust.
10690 (stmt_may_generate_copy): Likewise.
10691 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
10692 not mark symbols for renaming.
10693 (forward_propagate_addr_expr): Match up push/pop_stmt_changes
10694 with the same statement, make sure to update the new pointed-to one.
10695 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
10696 call statements, do not mark symbols for renaming.
10697 (mark_operand_necessary): Dump something.
10698 (ref_may_be_aliased): New function.
10699 (mark_aliased_reaching_defs_necessary_1): New helper function.
10700 (mark_aliased_reaching_defs_necessary): Likewise.
10701 (mark_all_reaching_defs_necessary_1): Likewise.
10702 (mark_all_reaching_defs_necessary): Likewise.
10703 (propagate_necessity): Do not process virtual PHIs. For
10704 non-aliased loads mark all reaching definitions as necessary.
10705 For aliased loads and stores mark the immediate dominating
10706 aliased clobbers as necessary.
10707 (visited): New global static.
10708 (perform_tree_ssa_dce): Free visited bitmap after propagating
10709 necessity.
10710 (remove_dead_phis): Perform simple dead virtual PHI removal.
10711 (remove_dead_stmt): Properly unlink virtual operands when
10712 removing stores.
10713 (eliminate_unnecessary_stmts): Schedule PHI removal after
10714 stmt removal.
10715 * tree-ssa-ter.c (is_replaceable_p): Adjust.
10716 (process_replaceable): Likewise.
10717 (find_replaceable_in_bb): Likewise.
10718 * tree-ssa.c (verify_ssa_name): Verify all VOPs are
10719 based on the single gimple vop.
10720 (verify_flow_insensitive_alias_info): Remove.
10721 (verify_flow_sensitive_alias_info): Likewise.
10722 (verify_call_clobbering): Likewise.
10723 (verify_memory_partitions): Likewise.
10724 (verify_alias_info): Likewise.
10725 (verify_ssa): Adjust..
10726 (execute_update_addresses_taken): Export. Update SSA
10727 manually. Optimize only when optimizing. Use a local bitmap.
10728 (pass_update_address_taken): Remove TODO_update_ssa, add
10729 TODO_dump_func.
10730 (pass_update_address_taken): Just use TODO_update_address_taken.
10731 (init_tree_ssa): Do not initialize addressable_vars.
10732 (verify_ssa): Verify new VUSE / VDEF properties.
10733 Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
10734 Do not call verify_alias_info.
10735 (delete_tree_ssa): Clear the VUSE, VDEF operands.
10736 Do not free the loaded and stored syms bitmaps. Reset the escaped
10737 and callused solutions. Do not free addressable_vars.
10738 Remove memory-tag related code.
10739 (warn_uninitialized_var): Aliases are always available.
10740 * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
10741 * lambda-code.c (can_put_in_inner_loop): Adjust.
10742 (can_put_after_inner_loop): Likewise.
10743 (perfect_nestify): Likewise.
10744 * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
10745 (vect_gen_widened_results_half): Remove CALL_EXPR handling.
10746 (vectorizable_conversion): Do not mark symbols for renaming.
10747 * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
10748 (expand_call_inline): Unlink the calls virtual operands before
10749 replacing it.
10750 (tree_function_versioning): Do not call update_ssa if we are not
10751 updating clones. Simplify.
10752 * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
10753 (propagate_with_phi): Likewise..
10754 * tree-outof-ssa.c (create_temp): Remove memory tag and call
10755 clobber code. Assert we are not aliased or global.
10756 * tree-flow.h: Include tree-ssa-alias.h
10757 (enum escape_type): Remove.
10758 (struct mem_sym_stats_d): Likewise.
10759 (struct mem_ref_stats_d): Likewise.
10760 (struct gimple_df): Add vop member. Remove global_var,
10761 call_clobbered_vars, call_used_vars, addressable_vars,
10762 aliases_compted_p and mem_ref_stats members. Add syms_to_rename,
10763 escaped and callused members.
10764 (struct ptr_info_def): Remove all members, add points-to solution
10765 member pt.
10766 (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
10767 call_clobbered, escape_mask, mpt and symbol_mem_tag members.
10768 * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
10769 (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
10770 (tree-ssa-alias.o): Likewise.
10771 (toplev.o): Add tree-ssa-alias.h
10772 (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
10773 * gimple.c (gimple_set_bb): Fix off-by-one error.
10774 (is_gimple_reg): Do not handle memory tags.
10775 (gimple_copy): Also copy virtual operands.
10776 Delay updating the statement. Do not reset loaded and stored syms.
10777 (gimple_set_stored_syms): Remove.
10778 (gimple_set_loaded_syms): Likewise.
10779 (gimple_call_copy_skip_args): Copy the virtual operands
10780 and mark the new statement modified.
10781 * tree-ssa-structalias.c (may_alias_p): Remove.
10782 (set_uids_in_ptset): Take the alias set to prune with as
10783 parameter. Fold in the alias test of may_alias_p.
10784 (compute_points_to_sets): Compute whether a ptr is dereferenced
10785 in a local sbitmap.
10786 (process_constraint): Deal with &ANYTHING on the lhs, reject all
10787 other ADDRESSOF constraints on the lhs.
10788 (get_constraint_for_component_ref): Assert that we don't get
10789 ADDRESSOF constraints from the base of the reference.
10790 Properly generate UNKNOWN_OFFSET for DEREF if needed.
10791 (struct variable_info): Remove collapsed_to member.
10792 (get_varinfo_fc): Remove.
10793 (new_var_info): Do not set collapsed_to.
10794 (dump_constraint): Do not follow cycles.
10795 (dump_constraint_graph): Likewise.
10796 (build_pred_graph): Likewise.
10797 (build_succ_graph): Likewise.
10798 (rewrite_constraints): Likewise.
10799 (do_simple_structure_copy): Remove.
10800 (do_rhs_deref_structure_copy): Remove.
10801 (do_lhs_deref_structure_copy): Remove.
10802 (collapse_rest_of_var): Remove.
10803 (do_structure_copy): Re-implement.
10804 (pta_stats): New global variable.
10805 (dump_pta_stats): New function.
10806 (struct constraint_expr): Make offset signed.
10807 (UNKNOWN_OFFSET): Define special value.
10808 (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
10809 (solution_set_expand): New helper function split out from ...
10810 (do_sd_constraint): ... here.
10811 (solution_set_add): Handle UNKNOWN_OFFSET. Handle negative offsets.
10812 (do_ds_constraint): Likewise.
10813 (do_sd_constraint): Likewise. Do not special-case ESCAPED = *ESCAPED
10814 and CALLUSED = *CALLUSED.
10815 (set_union_with_increment): Make inc argument signed.
10816 (type_safe): Remove.
10817 (get_constraint_for_ptr_offset): Handle unknown and negative
10818 constant offsets.
10819 (first_vi_for_offset): Handle offsets before start. Bail
10820 out early for offsets beyond the variable extent.
10821 (first_or_preceding_vi_for_offset): New function.
10822 (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
10823 Together with ESCAPED = *ESCAPED this properly computes reachability.
10824 (find_what_var_points_to): New function.
10825 (find_what_p_points_to): Implement in terms of find_what_var_points_to.
10826 (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
10827 pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
10828 pt_solutions_intersect): New functions.
10829 (compute_call_used_vars): Remove.
10830 (compute_may_aliases): New main entry into PTA computation.
10831 * gimple.h (gimple_p): New typedef.
10832 (struct gimple_statement_base): Remove references_memory_p.
10833 (struct gimple_statement_with_memory_ops_base): Remove
10834 vdef_ops, vuse_ops, stores and loads members. Add vdef and vuse
10835 members.
10836 (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
10837 gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
10838 gimple_set_references_memory): Remove.
10839 (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
10840 gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
10841 New functions.
10842 * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
10843 (verify_expr): Allow RESULT_DECL.
10844 (gimple_duplicate_bb): Do not copy virtual operands.
10845 (gimple_duplicate_sese_region): Adjust.
10846 (gimple_duplicate_sese_tail): Likewise.
10847 (mark_virtual_ops_in_region): Remove.
10848 (move_sese_region_to_fn): Do not call it.
10849 * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
10850 and pass_simple_dse.
10851 (execute_function_todo): Handle TODO_update_address_taken,
10852 call execute_update_addresses_taken for TODO_rebuild_alias.
10853 (execute_todo): Adjust.
10854 (execute_one_pass): Init dump files early.
10855 * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
10856 call-clobbered.
10857 (create_general_new_stmt): Clear vops.
10858 * tree-ssa-reassoc.c (get_rank): Adjust.
10859 * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
10860 symbols for renaming.
10861 * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
10862 (PARAM_AVG_ALIASED_VOPS): Likewise.
10863 * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
10864 (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
7a715bba 10865 * tree-ssa-operands.c: Simplify for new virtual operand representation.
5006671f
RG
10866 (operand_build_cmp, copy_virtual_operands,
10867 create_ssa_artificial_load_stmt, add_to_addressable_set,
10868 gimple_add_to_addresses_taken): Remove public functions.
10869 (unlink_stmt_vdef): New function.
10870
457d1d00
AM
108712009-04-03 Alan Modra <amodra@bigpond.net.au>
10872
10873 * config.gcc (powerpc-*-linux*): Merge variants.
10874
e19da24c 108752009-04-02 Chao-ying Fu <fu@mips.com>
60839f5d 10876 James Grosbach <james.grosbach@microchip.com>
e19da24c
CF
10877
10878 * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
10879 num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
10880 cop0_sp_offset.
10881 (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
10882 keep_interrupts_masked_p, use_debug_exception_return_p.
10883 (mips_attribute_table): Add interrupt, use_shadow_register_set,
10884 keep_interrupts_masked, use_debug_exception_return.
10885 (mips_interrupt_type_p, mips_use_shadow_register_set_p,
10886 mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
10887 New functions.
10888 (mips_function_ok_for_sibcall): Return false for interrupt handlers.
10889 (mips_print_operand): Process COP0 registers to print $0 .. $31
10890 correctly for GAS to process.
10891 (mips_interrupt_extra_call_saved_reg_p): New function.
10892 (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
10893 extra registers.
10894 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
10895 (mips_compute_frame_info): Add supports for interrupt context that
10896 includes doubleword accumulators and COP0 registers.
10897 (mips_for_each_saved_acc): New function.
10898 (mips_for_each_saved_gpr_and_fpr): Change the function name from
10899 mips_for_each_saved_reg.
10900 (mips_save_reg): Save accumulators.
10901 (mips_kernel_reg_p): A new for_each_rtx callback.
10902 (mips_expand_prologue): Support interrupt handlers.
10903 (mips_restore_reg): Restore accumulators.
10904 (mips_expand_epilogue): Support interrupt handlers.
10905 (mips_can_use_return_insn): Return false for interrupt handlers.
10906 (mips_epilogue_uses): New function.
10907 * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
10908 UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
10909 (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
10910 cop0_move): New instructions.
10911 * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
10912 * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
10913 defines.
10914 (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
10915 New defines.
10916 (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
10917 (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
10918 interrupt handlers, we use K0 as the temporary register.
10919 (EPILOGUE_USES): Change to a function call.
10920 * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
10921 handlers, we use K0 as the temporary register.
2ba9daa7 10922
e19da24c
CF
10923 * doc/extend.texi (Function Attributes): Document interrupt,
10924 use_shadow_register_set, keep_interrupts_masked,
10925 use_debug_exception_return for MIPS attributes.
10926
aa1ca044
AM
109272009-04-03 Alan Modra <amodra@bigpond.net.au>
10928
10929 * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
10930 Remove a number of t-files from tmake_file.
10931 * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
10932 * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
10933 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
10934 target_prototype, not TARGET_PROTOTYPE.
10935 (LINK_OS_GNU_SPEC): Define.
10936 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
10937 and darwin-ldoubdle.c.
10938
14fdc613
MM
109392009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
10940
10941 PR driver/39293
10942 * gcc.c (save_temps_flag): Add support for -save-temps=obj.
10943 (cpp_options): Ditto.
10944 (default_compilers): Ditto.
10945 (display_help): Ditto.
10946 (process_command): Ditto.
10947 (do_spec_1): Ditto.
10948 (set_input): Use lbasename instead of duplicate code.
10949 (save_temps_prefix): New static for -save-temps=obj.
10950 (save_temps_length): Ditto.
2ba9daa7 10951
14fdc613
MM
10952 * doc/invoke.texi (-save-temps=obj): Document new variant to
10953 -save-temps switch.
10954
d3aa398e
JL
109552009-04-02 Jeff Law <law@redhat.com>
10956
10957 * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
10958 variable.
10959
83f0ccb8
L
109602009-04-02 H.J. Lu <hongjiu.lu@intel.com>
10961
10962 * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
10963 * configure: Regenerated.
10964
dcb6e951
RAE
109652009-04-02 Rafael Avila de Espindola <espindola@google.com>
10966
10967 * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
10968 share the argument list.
10969
d85478c2
RAE
109702009-04-02 Rafael Avila de Espindola <espindola@google.com>
10971
10972 Merge
10973
10974 2009-02-12 Diego Novillo <dnovillo@google.com>
10975
83f0ccb8
L
10976 * varpool.c (debug_varpool): New.
10977 * cgraph.h (debug_varpool): Declare.
d85478c2 10978
34f42a49
JH
109792009-04-02 Jan Hubicka <jh@suse.cz>
10980
10981 * passes.c (init_optimization_passes): Remove two copies of ehcleanup
10982 pass.
10983
a4747b4a
L
109842009-04-02 H.J. Lu <hongjiu.lu@intel.com>
10985
10986 * config/i386/i386.c (ix86_abi): Move initialization to ...
10987 (override_options): Here.
10988
63a9de54
CB
109892009-04-02 Christian Bruel <christian.bruel@st.com>
10990
10991 * config/sh/sh.c (sh_dwarf_register_span): New function.
10992 (TARGET_DWARF_REGISTER_SPAN): Define.
10993 * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
2ba9daa7 10994
2f0fa28e
IR
109952009-04-02 Ira Rosen <irar@il.ibm.com>
10996
10997 PR tree-optimization/39595
2ba9daa7 10998 * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
2f0fa28e
IR
10999 interleaved loads group is not greater than the SLP group size.
11000
bbf7ce11
RAE
110012009-04-02 Rafael Avila de Espindola <espindola@google.com>
11002
11003 * builtins.c (is_builtin_name): New.
11004 (called_as_built_in): Use is_builtin_name.
11005 * tree.h (is_builtin_name): New.
11006 * varasm.c (incorporeal_function_p): Use is_builtin_name
11007
47e4dfcf
AS
110082009-04-02 Andrew Stubbs <ams@codesourcery.com>
11009
11010 * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
11011
d0940d56
DS
110122009-04-02 Dodji Seketeli <dodji@redhat.com>
11013
11014 PR c++/26693
532bfb0a 11015 * c-decl.c (clone_underlying_type): Move this ...
d0940d56
DS
11016 * c-common.c (set_underlying_type): ... here.
11017 Also, make sure the function properly sets TYPE_STUB_DECL() on
11018 the newly created typedef variant type.
11019 * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
7a715bba
UB
11020 * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
11021 points.
d0940d56 11022
bf1cbdc6
RG
110232009-04-02 Richard Guenther <rguenther@suse.de>
11024
11025 PR tree-optimization/37221
11026 * tree-flow.h (degenerate_phi_result): Declare.
11027 * tree-ssa-dom.c (degenerate_phi_result): Export.
11028 * tree-scalar-evolution.c (analyze_initial_condition): If
11029 the initial condition is defined by a degenerate PHI node
11030 use the degenerate value.
11031
87cfb32c
EB
110322009-04-01 Eric Botcazou <ebotcazou@adacore.com>
11033
11034 PR rtl-optimization/39588
11035 * combine.c (merge_outer_ops): Do not set the constant when this
11036 is not necessary.
11037 (simplify_shift_const_1): Do not modify it either in this case.
11038
bbb6eae8
SB
110392009-04-01 Steven Bosscher <steven@gcc.gnu.org>
11040
11041 * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
11042 tuning is deprecated if -mtune value is set to an Itanium1 variant.
11043
839a3b8a
JJ
110442009-04-01 Janis Johnson <janis187@us.ibm.com>
11045
11046 PR c/29027
11047 * c-lex.c (interpret_float): Default (no suffix) is double.
11048
667e8acb
XDL
110492009-04-1 Xinliang David Li <davidxl@google.com>
11050
11051 * config/i386/i386.c (legitimate_constant_p): Recognize
11052 all one vector constant.
11053
60839f5d 110542009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11055
60839f5d 11056 * config/vax/vax.c: Add #includes to silence warnings.
c4e75102
MT
11057 Change #include order to silence two warnings.
11058
60839f5d 110592009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11060
60839f5d 11061 * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
c4e75102
MT
11062 (ASM_SPEC): Pass -k to the assembler for PIC code.
11063
60839f5d 110642009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11065
60839f5d
EB
11066 * config.gcc: Add vax-*-linux* to the switch.
11067 * config/vax/linux.h: New file. (TARGET_VERSION,
c4e75102
MT
11068 TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
11069
60839f5d 110702009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11071
60839f5d 11072 * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
c4e75102 11073 Use predicate macros instead of GET_CODE() == foo.
60839f5d 11074 * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
c4e75102
MT
11075 ashlsi3, rotrsi3, <unnamed>): Likewise.
11076
60839f5d 110772009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11078
60839f5d 11079 * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
c4e75102 11080 jbbccihi, jbbccisi): Remova trailing whitespace.
60839f5d
EB
11081 * config/vax/constraints.md: Likewise.
11082 * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
11083 * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
11084 * config/vax/predicates.md: Likewise.
11085 * config/vax/vax.c (print_operand_address, vax_output_int_move,
c4e75102 11086 vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
60839f5d
EB
11087 * config/vax/vax.h: Likewise.
11088 * config/vax/vax.md (nonlocal_goto): Likewise.
c4e75102 11089
60839f5d 110902009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11091
60839f5d 11092 * config/vax/vax.c (vax_float_literal, vax_output_int_move)
c4e75102
MT
11093 (indirectable_address_p, adjacent_operands_p): Add spaces around
11094 braces.
60839f5d 11095 * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
c4e75102 11096
60839f5d 110972009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11098
60839f5d 11099 * config/vax/vax.c (legitimate_constant_address_p,
c4e75102
MT
11100 legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
11101 index_term_p, reg_plus_index_p, legitimate_address_p,
11102 vax_mode_dependent_address_p): Update comments to match functions
11103 modified by the recent int->bool conversion.
11104
60839f5d 111052009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11106
60839f5d
EB
11107 * config/vax/builtins.md: Update copyright message.
11108 * config/vax/constraints.md: Likewise.
11109 * config/vax/netbsd-elf.h: Likewise.
11110 * config/vax/predicates.md: Likewise.
11111 * config/vax/vax-protos.h: Likewise.
11112 * config/vax/vax.c: Likewise.
11113 * config/vax/vax.h: Likewise.
11114 * config/vax/vax.md: Likewise.
11115 * config/vax/vax.opt: Likewise.
c4e75102 11116
60839f5d 111172009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 11118
60839f5d 11119 * config/vax/builtins.md (ffssi2, ffssi2_internal,
c4e75102 11120 sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
60839f5d
EB
11121 * config/vax/constraints.md (B, R): Likewise.
11122 * config/vax/predicates.md (external_memory_operand,
c4e75102 11123 nonimmediate_addsub_di_operand): Likewise.
60839f5d
EB
11124 * config/vax/vax.c (vax_output_int_add): Likewise.
11125 * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
c4e75102
MT
11126 untyped_call): Likewise.
11127
60839f5d 111282009-04-01 Matt Thomas <matt@3am-software.com>
c4e75102 11129
7a715bba
UB
11130 * config/vax/predicates.md: New file.
11131 (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
c4e75102
MT
11132 external_const_operand, nonsymbolic_operand, external_memory_operand,
11133 indirect_memory_operand, indexed_memory_operand,
11134 illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
11135 nonimmediate_addsub_di_operand, general_addsub_di_operand): New
11136 predicate.
7a715bba
UB
11137 * config/vax/constraints.md: New file.
11138 (Z0, U06, U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
11139 New constraint.
11140 * config/vax/builtins.md: New file.
11141 (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
11142 jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
11143 jbbccisi): Define.
c4e75102
MT
11144 * config/vax/vax.opt (mqmath): Add option.
11145 * config/vax/vax.md (isfx): Extend with DI.
11146 (VAXintQH, VAXintQHSD): Define.
11147 (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
11148 mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
11149 and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
11150 one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
11151 (movdi): Update constraints and use vax_output_int_move().
11152 (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
11153 movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
11154 pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
11155 nonlocal_goto): New.
11156 (mov<mode>): Extend accepted operand types.
11157 (subdi3_old): Rename from subdi3, change update constraints and use
11158 a new implementation.
60839f5d 11159 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
c4e75102
MT
11160 (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
11161 MOVE_RATIO, CLEAR_RATIO): Define.
11162 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
11163 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
11164 (PRINT_OPERAND): Redefine using a function instead of inlined code.
60839f5d 11165 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
c4e75102
MT
11166 (split_quadword_operands): Make static and really allow variable
11167 splitting.
11168 (print_operand_address): Update for PIC generation.
11169 (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
11170 indexable_address_p, fixup_mathdi_operand,
11171 vax_expand_addsub_di_operands, adjacent_operands_p): New.
11172 (vax_float_literal, legitimate_constant_p,
11173 indirectable_constant_address_p, index_term_p,
11174 reg_plus_index_p): Return bool instead of int.
11175 (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
11176 where needed.
11177 (vax_output_int_move, vax_output_int_add): Extend to allow PIC
11178 generation.
11179 (vax_output_conditional_branch): Indent.
11180 (legitimate_constant_address_p, indirectable_constant_address_p,
11181 indirectable_address_p, nonindexed_address_p, legitimate_address_p,
11182 vax_mode_dependent_address_p): Return bool instead of int, update for
11183 PIC generation.
11184 * config/vax/vax-protos.h (legitimate_constant_address_p,
11185 legitimate_constant_p, legitimate_address_p,
11186 vax_mode_dependent_address_p): Change declaration to bool.
11187 (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
11188 vax_expand_addsub_di_operands, vax_output_int_subtract,
11189 vax_output_movmemsi): Declare.
11190 (split_quadword_operands, vax_float_literal): Delete declaration.
11191 * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
11192 * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
11193 VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
11194 ASM_OUTPUT_DWARF_PCREL): Define.
11195 (ASM_SPEC): Change definition to allow PIC generation.
11196
9332c6eb
L
111972009-04-01 Steve Ellcey <sje@cup.hp.com>
11198
11199 * doc/sourcebuild.texi: Update front-end requirements.
11200
d93e052c
JJ
112012009-04-01 Jakub Jelinek <jakub@redhat.com>
11202
11203 PR target/39226
11204 * config/rs6000/rs6000.md (andsi3_internal5_nomc,
11205 anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
11206 (booldi3_internal3): Use boolean_or_operator instead of
11207 boolean_operator.
11208
6ccb2a4a
JM
112092009-04-01 Joseph Myers <joseph@codesourcery.com>
11210
11211 PR c/39605
11212 * c-decl.c (grokdeclarator): Pedwarn for file-scope array
11213 declarator whose size is not an integer constant expression but
11214 folds to an integer constant, then treat it as a constant
11215 subsequently.
11216
299b87f8
RG
112172009-04-01 Richard Guenther <rguenther@suse.de>
11218
11219 * fold-const.c (fold_plusminus_mult_expr): Do not fold
11220 i * 4 + 2 to (i * 2 + 1) * 2.
11221
b85eb797
JJ
112222009-04-01 Jakub Jelinek <jakub@redhat.com>
11223
11224 PR c/37772
11225 * c-parser.c (c_parser_asm_statement): Skip until close paren and
11226 return if c_parser_asm_string_literal returned NULL.
11227
235e1fe8
NC
112282009-04-01 Nick Clifton <nickc@redhat.com>
11229
11230 * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
11231 already defined.
11232 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
11233 * config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the
11234 other typedefs to avoid conflicts with libgcc2.c. Define labels
11235 to gain 16-bit bit-manipulation functions from libgcc2.c and then
11236 include it.
11237 * config/m32c/m32c-lib2-trapv.c: New file. Define labels
11238 to gain 16-bit trapping arithmetic functions from libgcc2.c and
11239 then include it.
11240
d6868399
RAE
112412009-04-01 Rafael Avila de Espindola <espindola@google.com>
11242
7a715bba
UB
11243 * varasm.c (default_function_rodata_section): Declare DOT as
11244 const char*.
d6868399 11245
73d21f56 112462009-04-01 Kai Tietz <kai.tietz@onevision.com>
60839f5d 11247 Andrey Galkin <agalkin@hypercom.com>
73d21f56
KT
11248
11249 PR/39492
11250 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
11251 Make object_name unique for each process.
11252
03742a9b
JJ
112532009-04-01 Jakub Jelinek <jakub@redhat.com>
11254
11255 PR other/39591
11256 * omp-low.c (remove_exit_barrier): Don't optimize if there are any
11257 addressable variables in the parallel that could go out of scope while
11258 running queued tasks.
11259
4223ff5f
AS
112602009-04-01 Anatoly Sokolov <aesok@post.ru>
11261
11262 * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
11263 (CASE_VALUES_THRESHOLD): Redefine.
11264 * config/avr/avr.c (avr_override_options): Remove initialization of
11265 avr_case_values_threshold variable.
11266 (avr_case_values_threshold): Remove variable. Add new function.
11267 * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
11268 * config/avr/avr.opt (mno-tablejump): Remove option.
11269 * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
11270
e893f6f3
DD
112712009-04-01 DJ Delorie <dj@redhat.com>
11272
11273 * varasm.c (default_function_rodata_section): Don't assume
11274 anything about where the first '.' in the section name is.
11275
b246d100
AM
112762009-04-01 Alan Modra <amodra@bigpond.net.au>
11277
11278 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
11279 rs6000_emit_stack_tie.
11280
d3e37a9e
ILT
112812009-03-31 Ian Lance Taylor <iant@google.com>
11282
11283 * tree-eh.c (tree_remove_unreachable_handlers): Compare
11284 gimple_code with GIMPLE_RESX, not RESX.
11285
c1b61fca
JM
112862009-03-31 Joseph Myers <joseph@codesourcery.com>
11287
11288 * c-common.c (c_get_ident): New.
7a715bba 11289 (c_common_nodes_and_builtins): Call it for type names that may be NULL.
c1b61fca 11290
c2d2ad48
BE
112912009-04-01 Ben Elliston <bje@au.ibm.com>
11292
11293 * config/rs6000/sysv4.opt (msdata): Improve option description.
11294
13d1a6e7
SE
112952009-03-31 Steve Ellcey <sje@cup.hp.com>
11296
11297 * config/ia64/ia64.md (divsf3_internal_lat): Remove.
11298 (divdf3_internal_lat): Remove.
11299 (divxf3_internal_lat): Remove.
11300 (divxf3_internal_thr): Remove.
11301 (divxf): Use divxf3_internal.
11302 * config/ia64/div.md (divsf3_internal_lat): New.
11303 (divdf3_internal_lat): New.
11304 (divxf3_internal): New.
11305
207bf79d
JM
113062009-03-31 Joseph Myers <joseph@codesourcery.com>
11307
11308 PR c/448
11309 * Makefile.in (USE_GCC_STDINT): Define.
11310 (stmp-int-hdrs): Install stdint.h if applicable.
11311 * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
11312 if known.
11313 (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
11314 (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
11315 UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
11316 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
11317 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
11318 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
11319 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
11320 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
11321 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
11322 (c_common_nodes_and_builtins): Initialize
11323 underlying_wchar_type_node. Do not initialize
11324 signed_wchar_type_node or unsigned_wchar_type_node. Initialize
11325 nodes for new types.
11326 (c_stddef_cpp_builtins): Define macros for new types.
11327 * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
11328 Remove.
11329 (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
11330 CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
11331 CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
11332 CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
11333 CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
11334 CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
11335 CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
11336 CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
11337 CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
11338 (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
11339 (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
11340 int16_type_node, int32_type_node, int64_type_node,
11341 uint8_type_node, uint16_type_node, c_uint32_type_node,
11342 c_uint64_type_node, int_least8_type_node, int_least16_type_node,
11343 int_least32_type_node, int_least64_type_node,
11344 uint_least8_type_node, uint_least16_type_node,
11345 uint_least32_type_node, uint_least64_type_node,
11346 int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
11347 int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
11348 uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
11349 uintptr_type_node): Define.
11350 * c-cppbuiltin.c (builtin_define_constants,
11351 builtin_define_type_minmax): New.
11352 (builtin_define_stdint_macros): Define more macros.
11353 (c_cpp_builtins): Define more limit macros.
11354 (type_suffix): New.
11355 (builtin_define_type_max): Define in terms of
11356 builtin_define_type_minmax. Remove is_long parameter. All
11357 callers changed.
11358 * config.gcc (use_gcc_stdint): Define.
11359 (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
11360 Add newlib-stdint.h for generic targets.
11361 * config/glibc-stdint.h, config/newlib-stdint.h,
11362 ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
11363 * config/m32c/m32c.h (UINTPTR_TYPE): Define.
11364 * config/score/score.h (UINTPTR_TYPE): Define.
11365 * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
11366 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
11367 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
11368 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
11369 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
11370 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
11371 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
11372 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
11373 * config/spu/spu.h (STDINT_LONG32): Define.
11374 * configure.ac (use_gcc_stdint): Substitute.
11375 * configure: Regenerate.
11376 * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
11377 __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
11378 __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
11379 __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
11380 __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
11381 __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
11382 __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
11383 __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
11384 __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
11385 __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
11386 __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
11387 __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
11388 __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
11389 __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
11390 __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
11391 __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
11392 __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
11393 __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
11394 __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
11395 __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
11396 __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
11397 * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
11398 INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
11399 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
11400 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
11401 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
11402 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
11403 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
11404 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
11405
ed853664
BS
114062009-03-31 Bernd Schmidt <bernd.schmidt@analog.com>
11407
11408 * loop-iv.c (suitable_set_for_replacement): Renamed from
11409 simplify_using_assignment; changed to return bool and to accept new
11410 args DEST and SRC. Return true iff we find a source/destination pair
11411 that can be used to make a replacement, and fill SRC and DEST if so.
11412 Remove arg ALTERED. Don't deal with altered regs here. All callers
11413 changed.
11414 (simplify_using_initial_values): Deal with altered regs here and track
11415 more precisely the effect they have on the validity of our expression.
11416
1569e190
BS
11417 * loop-iv.c (simplify_using_condition): A condition of the form
11418 (EQ REG CONST) can be used to simply make a substitution.
11419 (simplify_using_initial_values): Keep track of conditions we have seen
11420 and keep using them to simplify new expressions, while applying the
11421 same substitutions to them as to the expression.
11422
1d1eb80c
BS
11423 * simplify-rtx.c (simplify_relational_operation_1): Simplify
11424 (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
11425 GEU/LTU reversed.
11426
28af33b0
BS
11427 * loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers
11428 changed. Use this when trying to improve the upper bound.
11429 Generate the comparison by using simplify_gen_relational.
11430
b30321cd
BS
11431 * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
11432
60081874
BS
11433 * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
11434 functions.
2ba9daa7 11435 (simplify_using_assignment, simplify_using_initial_values): Call
60081874
BS
11436 replace_in_expr to make replacements. Call replace_single_def_regs
11437 once on the initial version of the expression.
11438
bebc6e07
RR
114392009-03-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11440
fcb82ab0 11441 PR target/27237
bebc6e07 11442 * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
2ba9daa7 11443
6b12efe9
RG
114442009-03-31 Richard Guenther <rguenther@suse.de>
11445
11446 PR middle-end/31029
11447 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
11448 equality comparisons. Fold C - X CMP X if C % 2 == 1.
11449
108f6c2f
RG
114502009-03-31 Richard Guenther <rguenther@suse.de>
11451
11452 * tree.h (div_if_zero_remainder): Declare.
11453 * fold-const.c (div_if_zero_remainder): Export.
11454 * tree-ssa-forwprop.c
11455 (forward_propagate_addr_into_variable_array_index): Handle
11456 constant array index addition outside of the variable index.
11457
8f612190
JM
114582009-03-31 Joseph Myers <joseph@codesourcery.com>
11459
11460 PR target/39592
11461 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
11462 define_splits, floatunssi<mode>2): Require x87 conversions from
11463 DImode to be permitted.
11464
47580d22
JM
114652009-03-31 Joseph Myers <joseph@codesourcery.com>
11466
11467 PR preprocessor/15638
11468 * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
11469
ba4d8f9d
RG
114702009-03-31 Richard Guenther <rguenther@suse.de>
11471
11472 PR middle-end/23401
11473 PR middle-end/27810
11474 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
11475 (struct tree_decl_with_vis): Remove gimple_formal_temp member.
11476 * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
11477 a separate statement.
11478 * gimplify.c (pop_gimplify_context): Remove formal temp handling.
11479 (lookup_tmp_var): Likewise.
11480 (is_gimple_formal_tmp_or_call_rhs): Remove.
11481 (is_gimple_reg_or_call_rhs): Rename to ...
11482 (is_gimple_reg_rhs_or_call): ... this.
11483 (is_gimple_mem_or_call_rhs): Rename to ...
11484 (is_gimple_mem_rhs_or_call): ... this.
11485 (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set
11486 DECL_GIMPLE_REG_P only if is_formal is true.
11487 (gimplify_compound_lval): Use is_gimple_reg. Remove workaround
11488 for non-proper post-modify expression gimplification.
11489 (gimplify_self_mod_expr): For post-modify expressions gimplify
11490 the lvalue to a minimal lvalue.
11491 (rhs_predicate_for): Remove formal temp case.
11492 (gimplify_modify_expr_rhs): Likewise.
11493 (gimplify_addr_expr): Use is_gimple_reg.
11494 (gimplify_expr): Remove formal temp cases.
11495 (gimple_regimplify_operands): Likewise.
11496 * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
11497 and FILTER_EXPR like constants.
11498 * gimple.c (walk_gimple_op): Fix val_only initialization, use
11499 is_gimple_reg.
11500 (is_gimple_formal_tmp_rhs): Remove.
11501 (is_gimple_reg_rhs): Remove special casing.
11502 (is_gimple_mem_rhs): Fix.
11503 (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
11504 (is_gimple_formal_tmp_var): Remove.
11505 (is_gimple_formal_tmp_reg): Likewise.
11506 (is_gimple_min_lval): Allow invariant component ref parts.
11507 * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
11508 is_gimple_formal_tmp_reg): Remove declarations.
11509 * tree-cfg.c (verify_expr): Verify that variables with address
11510 taken do not have DECL_GIMPLE_REG_P set.
11511 * tree-mudflap.c (mf_build_check_statement_for): Use
11512 force_gimple_operand instead of gimplify_expr.
11513
8de9b877
AZ
115142009-03-31 Ayal Zaks <zaks@il.ibm.com>
11515
11516 * modulo-sched.c (sms_schedule_by_order): Pass the actual
11517 schedulable rows to compute_split_row.
11518
b5e3caf2
BE
115192009-03-31 Ben Elliston <bje@au.ibm.com>
11520
11521 PR target/31635
11522 * config/rs6000/rs6000.c (rs6000_handle_option): Handle
11523 OPT_mvrsave.
11524
9752c4ad
AM
115252009-03-31 Alan Modra <amodra@bigpond.net.au>
11526
11527 * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
11528 * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
11529 * configure: Regenerate.
11530 * config.in: Regenerate.
11531 * config/rs6000/rs6000.opt (mtls-markers): Add.
11532 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
11533 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
11534 (tls_ld_aix, tls_ld_sysv): Likewise.
11535 (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
11536 (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
11537
b597d1b6
AM
115382009-03-31 Alan Modra <amodra@bigpond.net.au>
11539
11540 * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
11541
a203a221
JH
115422009-03-30 Jan Hubicka <jh@suse.cz>
11543
b597d1b6
AM
11544 * tree-eh.c (make_eh_edges): Set probability 100% to first edge
11545 out of RESX.
11546 (tree_remove_unreachable_handlers): Cleanup EH predecestor
11547 detection and label handling.
a203a221 11548
5b0c0b2c
VM
115492009-03-30 Vladimir Makarov <vmakarov@redhat.com>
11550
11551 * ira-int.h (ira_allocno): Rename left_conflicts_num to
11552 left_conflicts_size.
11553 (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
11554 ALLOCNO_LEFT_CONFLICTS_SIZE.
11555
11556 * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
11557 remove_allocno_from_bucket_and_push,
11558 allocno_spill_priority_compare, push_allocnos_to_stack,
11559 setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
11560 instead of ALLOCNO_LEFT_CONFLICTS_NUM.
11561 (setup_allocno_left_conflicts_num): Ditto. Rename to
11562 setup_allocno_left_conflicts_size.
11563 (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
11564 instead of ALLOCNO_LEFT_CONFLICTS_NUM and
11565 setup_allocno_left_conflicts_size instead of
11566 setup_allocno_left_conflicts_num.
11567
11568 * ira-build.c (ira_create_allocno): Use
11569 ALLOCNO_LEFT_CONFLICTS_SIZE instead of
11570 ALLOCNO_LEFT_CONFLICTS_NUM.
2ba9daa7 11571
9a48a93f
VM
115722009-03-30 Vladimir Makarov <vmakarov@redhat.com>
11573
11574 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
11575 instead of DF_LR_OUT.
11576
11577 * ira-lives.c (process_bb_node_lives): Ditto.
11578
11579 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
11580 instead of DF_LR_{OUT,IN}.
11581
11582 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
11583
11584 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
11585
4c936d4f
JH
115862009-03-30 Jan Hubicka <jh@suse.cz>
11587
11588 * except.c (label_to_region_map): Fix thinko.
11589
f4d9f129
SE
115902009-03-30 Steve Ellcey <sje@cup.hp.com>
11591
11592 PR middle-end/38237
11593 * tree.h (tree_find_value): New declaration.
11594 * tree.c (tree_find_value): New function.
11595 * varasm.c (assemble_external): Avoid duplicate entries on lists.
11596
b3f27c15
JJ
115972009-03-30 Jakub Jelinek <jakub@redhat.com>
11598
11599 PR debug/39563
11600 * c-decl.c (struct c_binding): Add locus field.
11601 (bind): Add locus argument, set locus field from it.
11602 (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
11603 add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
11604 (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
11605 implicitly_declare, undeclared_variable, lookup_label,
11606 declare_label, c_make_fname_decl, c_builtin_function,
11607 c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
11608 bind callers.
11609
ad41bd84 116102009-03-30 H.J. Lu <hongjiu.lu@intel.com>
680e8a00
L
11611
11612 PR target/38781
11613 * config/i386/i386.c (classify_argument): Check total size of
11614 structure.
11615
133f9369
MJ
116162009-03-30 Martin Jambor <mjambor@suse.cz>
11617
11618 * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
11619 IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
11620 IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
11621 respectively.
11622
11623 * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
11624 seen_variable_array_ref while also traversing a union.
11625
11626 * tree-inline.c (optimize_inline_calls): Do not call
11627 cgraph_node_remove_callees.
11628 * cgraphbuild.c (remove_cgraph_callee_edges): New function.
11629 (pass_remove_cgraph_callee_edges): New variable.
11630 * passes.c (init_optimization_passes): Add
11631 pass_remove_cgraph_callee_edges after early inlining and before all
11632 late intraprocedural passes.
11633
11634 * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
11635
1190f2eb
PB
116362009-03-30 Paolo Bonzini <bonzini@gnu.org>
11637
11638 * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
11639 Fix typos in names.
11640
fedc1775
PB
116412009-03-30 Paolo Bonzini <bonzini@gnu.org>
11642
fcb82ab0
UB
11643 * combine.c (simplify_comparison): Use have_insn_for.
11644 * dojump.c (do_jump): Likewise.
fedc1775 11645
65c5ae8b
PB
116462009-03-30 Paolo Bonzini <bonzini@gnu.org>
11647
11648 * config/sparc/sparc.c (sparc_compare_emitted): Remove.
11649 (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
11650 sparc_compare_op0 like sparc_compare_emitted used to be handled.
11651 (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
11652 instead of sparc_compare_emitted.
11653 * config/sparc/sparc.h (sparc_compare_emitted): Remove.
11654 * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
11655 instead of sparc_compare_emitted.
11656
d25aa7ab
PB
116572009-03-30 Paolo Bonzini <bonzini@gnu.org>
11658
11659 * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
11660 enter/exit cfglayout mode.
11661 (pass_partition_block): Require it.
11662 * combine.c (find_single_use, reg_dead_at_p): Use CFG.
11663 (combine_instructions): Track basic blocks instead of labels.
11664 (update_cfg_for_uncondjump): New.
11665 (try_combine): Use it. Update jumps after rescanning.
11666 (pass_combine): Require PROP_cfglayout.
11667 * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
11668
9c9e26f5
PB
116692009-03-30 Paolo Bonzini <bonzini@gnu.org>
11670
fcb82ab0
UB
11671 * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
11672 Provide/destroy PROP_cfglayout respectively.
11673 * gcse.c (pass_jump_bypass, pass_gcse): Require it.
11674 * tree-pass.h (PROP_cfglayout): New.
9c9e26f5 11675
28ddeea1
PB
116762009-03-30 Paolo Bonzini <bonzini@gnu.org>
11677
11678 * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
11679 fold_convert_const_fixed_from_fixed,
11680 fold_convert_const_fixed_from_int,
11681 fold_convert_const_fixed_from_real, fold_negate_const): Do not
11682 set TREE_CONSTANT_OVERFLOW.
11683 * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
11684 * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
11685
ebfd146a
IR
116862009-03-30 Ira Rosen <irar@il.ibm.com>
11687
11688 * tree-vect-loop-manip.c: New file.
11689 * tree-vectorizer.c: Update documentation and included files.
11690 (vect_loop_location): Make extern.
11691 (rename_use_op): Move to tree-vect-loop-manip.c
2ba9daa7
AS
11692 (rename_variables_in_bb, rename_variables_in_loop,
11693 slpeel_update_phis_for_duplicate_loop,
ebfd146a
IR
11694 slpeel_update_phi_nodes_for_guard1,
11695 slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
11696 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
11697 slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
2ba9daa7 11698 set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
ebfd146a
IR
11699 find_loop_location): Likewise.
11700 (new_stmt_vec_info): Move to tree-vect-stmts.c.
11701 (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
11702 get_vectype_for_scalar_type, vect_is_simple_use,
11703 supportable_widening_operation, supportable_narrowing_operation):
11704 Likewise.
11705 (bb_in_loop_p): Move to tree-vect-loop.c.
2ba9daa7
AS
11706 (new_loop_vec_info, destroy_loop_vec_info,
11707 reduction_code_for_scalar_code, report_vect_op,
ebfd146a
IR
11708 vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
11709 (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
11710 (vect_supportable_dr_alignment): Likewise.
11711 * tree-vectorizer.h (tree-data-ref.h): Include.
11712 (vect_loop_location): Declare.
11713 Reorganize function declarations according to the new file structure.
11714 * tree-vect-loop.c: New file.
2ba9daa7 11715 * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
ebfd146a
IR
11716 tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
11717 * tree-vect-data-refs.c: New file.
11718 * tree-vect-patterns.c (timevar.h): Don't include.
11719 * tree-vect-stmts.c: New file.
2ba9daa7 11720 * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
ebfd146a 11721 tree-vect-slp.c, tree-vect-loop.c.
2ba9daa7
AS
11722 * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
11723 tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
ebfd146a
IR
11724 tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
11725 (tree-vect-analyze.o): Remove.
11726 (tree-vect-transform.o): Likewise.
11727 (tree-vect-data-refs.o): Add rule.
2ba9daa7 11728 (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
ebfd146a
IR
11729 tree-vect-slp.o): Likewise.
11730 (tree-vect-patterns.o): Remove redundant dependencies.
11731 (tree-vectorizer.o): Likewise.
11732 * tree-vect-slp.c: New file.
11733
40a1cfba
RW
117342009-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11735
11736 * optc-gen.awk: Warn if an option flag has multiple different
11737 help strings.
11738
a9a7a9a2
SP
117392009-03-30 Sebastian Pop <sebastian.pop@amd.com>
11740
11741 * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
11742 -floop-block): Document dependences on PPL, CLooG and Graphite.
11743
8ce94e44
JM
117442009-03-30 Joseph Myers <joseph@codesourcery.com>
11745
11746 PR rtl-optimization/323
11747 * c-common.c (c_fully_fold, convert_and_check,
11748 c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
11749 (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
11750 * c-common.def (EXCESS_PRECISION_EXPR): New.
11751 * c-cppbuiltin.c (builtin_define_float_constants): Define
11752 constants with enough digits for long double.
11753 * c-lex.c (interpret_float): Interpret constant with excess
11754 precision where appropriate.
11755 * c-opts.c (c_common_post_options): Set
11756 flag_excess_precision_cmdline. Give an error for
11757 -fexcess-precision=standard for C++ for processors where the
11758 option is significant.
11759 * c-parser.c (c_parser_conditional_expression): Handle excess
11760 precision in condition.
11761 * c-typeck.c (convert_arguments): Handle arguments with excess
11762 precision.
11763 (build_unary_op): Move excess precision outside operation.
11764 (build_conditional_expr): Likewise.
11765 (build_compound_expr): Likewise.
11766 (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
11767 (build_modify_expr): Handle excess precision in RHS.
11768 (convert_for_assignment): Handle excess precision in converted
11769 value.
11770 (digest_init, output_init_element, process_init_element): Handle
11771 excess precision in initializer.
11772 (c_finish_return): Handle excess precision in return value.
11773 (build_binary_op): Handle excess precision in operands and add
11774 excess precision as needed for operation.
11775 * common.opt (-fexcess-precision=): New option.
11776 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
11777 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
11778 For standard excess precision, output explicit conversion to and
11779 truncation from XFmode.
11780 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
11781 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
11782 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
11783 define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
11784 define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
11785 floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
11786 divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
11787 *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
11788 *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
11789 define_splits, sqrt<mode>2): Disable where appropriate for
11790 standard excess precision.
11791 * convert.c (convert_to_real): Do not shorten arithmetic to type
11792 for which excess precision would be used.
11793 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
11794 * doc/invoke.texi (-fexcess-precision=): Document option.
11795 (-mfpmath=): Correct index entry.
11796 * flags.h (enum excess_precision, flag_excess_precision_cmdline,
11797 flag_excess_precision): New.
11798 * langhooks.c (lhd_post_options): Set
11799 flag_excess_precision_cmdline.
11800 * opts.c (common_handle_option): Handle -fexcess-precision=.
11801 * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
11802 init_excess_precision): New.
11803 (lang_dependent_init_target): Call init_excess_precision.
11804 * tree.c (excess_precision_type): New.
11805 * tree.h (excess_precision_type): Declare.
11806
1e57bf47
JM
118072009-03-30 Joseph Myers <joseph@codesourcery.com>
11808
11809 PR c/35235
11810 * c-typeck.c (build_component_ref): Do not copy qualifiers from
11811 non-lvalue to component.
11812
148e4216
JM
118132009-03-29 Joseph Myers <joseph@codesourcery.com>
11814
11815 PR preprocessor/34695
11816 * Makefile.in (c-opts.o): Depend on c-tree.h.
11817 * c-common.c: Move down include of diagnostic.h.
11818 (done_lexing, c_cpp_error): New.
11819 * c-common.h (done_lexing): Declare.
11820 * c-decl.c (c_write_global_declarations): Don't check cpp_errors
11821 (parse_in).
11822 * c-opts.c: Include c-tree.h.
11823 (c_common_init_options): Set preprocessor error callback.
11824 (c_common_handle_option): Do not set preprocessor
11825 inhibit_warnings, warnings_are_errors, warn_system_headers,
11826 pedantic_errors or inhibit_warnings flags.
11827 (c_common_post_options): Do not check cpp_errors (parse_in).
11828 (c_common_finish): Do not output dependencies if there were
11829 errors. Do not check return value of cpp_finish.
11830 * c-ppoutput.c (pp_file_change): Set input_location.
11831 * c-tree.h (c_cpp_error): Declare.
11832 * diagnostic.c (diagnostic_set_info_translated): Also initialize
11833 override_column.
11834 (diagnostic_build_prefix): Check override_column.
11835 * diagnostic.h (diagnostic_info): Add override_column field.
11836 (diagnostic_override_column): Define.
11837
2ec5deb5
PB
118382009-03-28 Paolo Bonzini <bonzini@gnu.org>
11839
ba20e309
UB
11840 * c-common.c (c_expand_expr, c_staticp): Remove.
11841 * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
11842 * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
11843 COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
11844 * c-gimplify.c (gimplify_compound_literal_expr,
11845 optimize_compound_literals_in_ctor): Remove.
11846 (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
11847 * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
11848 * c-semantics.c (emit_local_var): Remove.
11849
11850 * langhooks-def.h (lhd_expand_expr): Remove.
11851 * langhooks.c (lhd_expand_expr): Remove.
11852 * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
11853
11854 * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
11855 handling from c-semantics.c; don't call into langhook.
11856 (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
11857 * gimplify.c (gimplify_compound_literal_expr,
11858 optimize_compound_literals_in_ctor): Move from c-gimplify.c.
11859 (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
11860 (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
11861 as was done in c-gimplify.c.
11862 * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
11863 * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
11864 Move from c-common.h.
11865 * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
2ec5deb5
PB
11866
11867 * tree.c (staticp): Do not call langhook.
11868 * langhooks.c (lhd_staticp): Delete.
11869 * langhooks-def.h (lhd_staticp): Delete prototype.
11870 (LANG_HOOKS_STATICP): Delete.
11871 (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
11872
ba20e309
UB
11873 * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
11874 instead of DECL_STMTs.
2ec5deb5 11875
928c19bb
JM
118762009-03-29 Joseph Myers <joseph@codesourcery.com>
11877
11878 PR c/456
11879 PR c/5675
11880 PR c/19976
11881 PR c/29116
11882 PR c/31871
11883 PR c/35198
11884 * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
11885 void_type_node.
11886 (fold_call_expr): Return a NOP_EXPR from folding rather than the
11887 contained expression.
ba20e309 11888 * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
928c19bb
JM
11889 (c_common_truthvalue_conversion): Use c_save_expr. Do not fold
11890 conditional expressions for C.
11891 (decl_constant_value_for_optimization): Move from
ba20e309 11892 decl_constant_value_for_broken_optimization in c-typeck.c. Check
928c19bb
JM
11893 whether optimizing and that the expression is a VAR_DECL not of
11894 array type instead of doing such checks in the caller. Do not
11895 check pedantic. Call gcc_unreachable for C++.
11896 * c-common.def (C_MAYBE_CONST_EXPR): New.
11897 * c-common.h (c_fully_fold, c_save_expr,
11898 decl_constant_value_for_optimization): New prototypes.
11899 (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
11900 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
11901 EXPR_INT_CONST_OPERANDS): Define.
11902 * c-convert.c (convert): Strip nops from expression.
11903 * c-decl.c (groktypename): Take extra parameters expr and
11904 expr_const_operands. Update call to grokdeclarator.
11905 (start_decl): Update call to grokdeclarator. Add statement for
11906 expressions used in type of decl.
11907 (grokparm): Update call to grokdeclarator.
11908 (push_parm_decl): Update call to grokdeclarator.
11909 (build_compound_literal): Add parameter non_const and build a
11910 C_MAYBE_COSNT_EXPR if applicable.
11911 (grokdeclarator): Take extra parameters expr and
11912 expr_const_operands. Track expressions used in declaration
11913 specifiers and declarators. Fold array sizes and track whether
11914 they are constant expressions and whether they are integer
11915 constant expressions.
11916 (parser_xref_tag): Set expr and expr_const_operands fields in
11917 return value.
11918 (grokfield): Update call to grokdeclarator.
11919 (start_function): Update call to grokdeclarator.
11920 (build_null_declspecs): Set expr and expr_const_operands fields in
11921 return value.
11922 (declspecs_add_type): Handle expressions in typeof specifiers.
11923 * c-parser.c (c_parser_declspecs): Set expr and
11924 expr_const_operands fields for declaration specifiers.
11925 (c_parser_enum_specifier): Likewise.
11926 (c_parser_struct_or_union_specifier): Likewise.
11927 (c_parser_typeof_specifier): Likewise. Update call to
11928 groktypename. Fold expression as needed. Return expressions with
11929 type instead of adding statements.
11930 (c_parser_attributes): Update calls to c_parser_expr_list.
11931 (c_parser_statement_after_labels): Fold expression before passing
11932 to objc_build_throw_stmt.
11933 (c_parser_condition): Fold expression.
11934 (c_parser_asm_operands): Fold expression.
11935 (c_parser_conditional_expression): Use c_save_expr. Update call
11936 to build_conditional_expr.
11937 (c_parser_alignof_expression): Update call to groktypename.
11938 (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
11939 original_code. Fold expression argument of va_arg. Create
11940 C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
11941 argument to va_arg. Update calls to groktypename. Fold array
11942 index for offsetof. Verify that first argument to
11943 __builtin_choose_expr has integer type.
11944 (c_parser_postfix_expression_after_paren_type): Update calls to
11945 groktypename and build_compound_literal. Handle expressions with
11946 side effects in type name.
11947 (c_parser_postfix_expression_after_primary): Update call to
11948 c_parser_expr_list. Set original_code for calls to
11949 __builtin_constant_p.
11950 (c_parser_expr_list): Take extra parameter fold_p. Fold
11951 expressions if requested.
11952 (c_parser_objc_type_name): Update call to groktypename.
11953 (c_parser_objc_synchronized_statement): Fold expression.
11954 (c_parser_objc_receiver): Fold expression.
11955 (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
11956 (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
11957 c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
11958 * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
11959 (struct c_typespec): Add elements expr and expr_const_operands.
11960 (struct c_declspecs): Add elements expr and expr_const_operands.
11961 (groktypename, build_conditional_expr, build_compound_literal):
11962 Update prototypes.
11963 (in_late_binary_op): Declare.
11964 * c-typeck.c (note_integer_operands): New function.
11965 (in_late_binary_op): New variable.
11966 (decl_constant_value_for_broken_optimization): Move to c-common.c
11967 and rename to decl_constant_value_for_optimization.
11968 (default_function_array_conversion): Do not strip nops.
11969 (default_conversion): Do not call
11970 decl_constant_value_for_broken_optimization.
11971 (build_array_ref): Do not fold result.
11972 (c_expr_sizeof_expr): Fold operand. Use C_MAYBE_CONST_EXPR for
11973 result when operand is a VLA.
11974 (c_expr_sizeof_type): Update call to groktypename. Handle
11975 expressions included in type name. Use C_MAYBE_CONST_EXPR for
11976 result when operand names a VLA type.
11977 (build_function_call): Update call to build_compound_literal.
11978 Only fold result for calls to __builtin_* functions. Strip
11979 NOP_EXPR from INTEGER_CST returned from such functions. Fold
11980 the function designator.
11981 (convert_arguments): Fold arguments. Update call to
11982 convert_for_assignment.
11983 (build_unary_op): Handle increment and decrement of
11984 C_MAYBE_CONST_EXPR. Move lvalue checks for increment and
11985 decrement earlier. Fold operand of increment and decrement.
11986 Handle address of C_MAYBE_CONST_EXPR. Only fold expression being
11987 built for integer operand. Wrap returns that are INTEGER_CSTs
11988 without being integer constant expressions or that have integer
11989 constant operands without being INTEGER_CSTs.
11990 (lvalue_p): Handle C_MAYBE_CONST_EXPR.
11991 (build_conditional_expr): Add operand ifexp_bcp. Track whether
11992 result is an integer constant expression or can be used in
11993 unevaluated parts of one and avoid folding and wrap as
11994 appropriate. Fold operands before possibly doing -Wsign-compare
11995 warnings.
11996 (build_compound_expr): Wrap result for C99 if operands can be used
11997 in integer constant expressions.
11998 (build_c_cast): Update call to digest_init. Do not ignore
11999 overflow from casting floating-point constants to integers. Wrap
12000 results that could be confused with integer constant expressions,
12001 null pointer constants or floating-point constants.
12002 (c_cast_expr): Update call to groktypename. Handle expressions
12003 included in type name.
12004 (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR. Fold
12005 lhs inside possible SAVE_EXPR. Fold RHS before assignment.
12006 Update calls to convert_for_assignment.
12007 (convert_for_assignment): Take new parameter
12008 null_pointer_constant. Do not strip nops or call
12009 decl_constant_value_for_broken_optimization. Set
12010 in_late_binary_op for conversions to boolean.
12011 (store_init_value): Update call to digest_init.
12012 (digest_init): Take new parameter null_pointer_constant. Do not
12013 call decl_constant_value_for_broken_optimization. pedwarn for
12014 initializers not constant expressions. Update calls to
12015 convert_for_assignment.
12016 (constructor_nonconst): New.
12017 (struct constructor_stack): Add nonconst element.
12018 (really_start_incremental_init, push_init_level, pop_init_level):
12019 Handle constructor_nonconst and nonconst element.
12020 (set_init_index): Call constant_expression_warning for array
12021 designators.
12022 (output_init_element): Fold value. Set constructor_nonconst as
12023 applicable. pedwarn for initializers not constant expressions.
12024 Update call to digest_init. Call constant_expression_warning
12025 where constant initializers are required.
12026 (process_init_element): Use c_save_expr.
12027 (c_finish_goto_ptr): Fold expression.
12028 (c_finish_return): Fold return value. Update call to
12029 convert_for_assignment.
12030 (c_start_case): Fold switch expression.
12031 (c_process_expr_stmt): Fold expression.
12032 (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
ba20e309 12033 ensure statement expression is not evaluated in constant expression.
928c19bb
JM
12034 (build_binary_op): Track whether results are integer constant
12035 expressions or may occur in such, disable folding and wrap results
12036 as applicable. Fold operands for -Wsign-compare warnings unless
12037 in_late_binary_op.
12038 (c_objc_common_truthvalue_conversion): Handle results folded to
12039 integer constants that are not integer constant expressions.
12040 * doc/extend.texi: Document when typeof operands are evaluated,
12041 that condition of __builtin_choose_expr is an integer constant
12042 expression, and more about use of __builtin_constant_p in
12043 initializers.
12044
5babbcc0
RG
120452009-03-29 Richard Guenther <rguenther@suse.de>
12046
12047 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
12048 propagate addresses of array references.
12049
0340f2ba
SB
120502009-03-29 Steven Bosscher <steven@gcc.gnu.org>
12051
12052 * regmove.c (perhaps_ends_bb_p): Remove.
12053 (optimize_reg_copy_1): Don't call perhaps_ends_bb_p. Get basic block
12054 from INSN and check that the main loop stays within that basic block.
12055 (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
12056 (regmove_forward_pass): Split out from regmove_optimize. Use
12057 FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
12058 (regmove_backward_pass): Split out from regmove_optimize. Use
12059 FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
12060 (regmove_optimize): Simplify.
12061
eeae74a1
L
120622009-03-29 H.J. Lu <hongjiu.lu@intel.com>
12063
12064 PR target/39545
12065 * config/i386/i386.c (classify_argument): Ignore flexible array
12066 member in struct and warn ABI change.
12067
a24078b2
L
120682009-03-29 H.J. Lu <hongjiu.lu@intel.com>
12069
12070 * config/i386/i386-protos.h (ix86_agi_dependent): New.
12071
12072 * config/i386/i386.c (ix86_agi_dependent): Rewrite.
12073 (ix86_adjust_cost): Updated.
12074
a8da523f
JH
120752009-03-29 Jan Hubicka <jh@suse.cz>
12076
12077 PR middle-end/28850
12078 * tree-pass.h (pass_cleanup_eh): New function.
12079 (remove_unreachable_regions): Break code handling RTL
12080 to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
12081 that can not be reached by runtime.
12082 (can_be_reached_by_runtime): New function.
12083 (label_to_region_map): New function.
12084 (num_eh_regions): New function.
12085 (rtl_remove_unreachable_regions): New function.
12086 (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
12087 (remove_eh_region): New function.
12088 * except.h: Include sbitmap and vecprim.
12089 (remove_eh_region, remove_unreachable_regions, label_to_region_map,
12090 num_eh_regions): Declare.
12091 * passes.c (init_optimization_passes): Schedule cleanup_eh.
ba20e309 12092 * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
a8da523f
JH
12093 * tree-eh.c (tree_remove_unreachable_handlers): New function.
12094 (tree_empty_eh_handler_p): New function.
12095 (cleanup_empty_eh): New function.
12096 (cleanup_eh): New function.
12097 (pass_cleanup_eh): New function.
12098
98f358e5
JH
120992009-03-29 Jan Hubicka <jh@suse.cz>
12100
12101 * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
12102 for removed regions.
12103
13a9fa44
JH
121042009-03-29 Jan Hubicka <jh@suse.cz>
12105
12106 * except.c (dump_eh_tree): Dump all datastructures.
12107
e38cf733
JH
121082009-03-29 Jan Hubicka <jh@suse.cz>
12109
12110 * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
12111 (duplicate_eh_regions_1): Likewise.
12112 (duplicate_eh_regions): Likewise; cleanup code gorwing the region
12113 vector; call EH verification.
12114 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
12115 Be ready for region being removed.
12116
12802c2b
JH
121172009-03-29 Jan Hubicka <jh@suse.cz>
12118
12119 * bitmap.c (bitmap_last_set_bit): New function.
12120 * bitmap.h (bitmap_last_set_bit): Declare.
12121
4ea80a41
DA
121222009-03-29 David Ayers <ayers@fsfe.org>
12123
12124 PR objc/27377
12125 * c-typeck.c (build_conditional_expr): Emit ObjC warnings
12126 by calling objc_compare_types and surpress warnings about
12127 incompatible C pointers that are compatible ObjC pointers.
2ba9daa7 12128
4ea80a41 121292009-03-29 Adam Nemet <anemet@caviumnetworks.com>
3dc9eaa6
AN
12130
12131 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
12132 call initialize_inline_failed.
12133 (initialize_inline_failed): Move it from here ...
12134 * cgraph.c (initialize_inline_failed): ... to here.
12135 (cgraph_create_edge): Call initialize_inline_failed rather than
12136 setting inline_failed directly.
12137
7fb0ee07
BE
121382009-03-29 Ben Elliston <bje@au.ibm.com>
12139
12140 PR target/32542
12141 * sysv4.opt (msdata): Improve comment.
12142 * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
12143 * sysv4.h (SVR4_ASM_SPEC): Likewise.
12144
0be77bf2
BE
121452009-03-29 Ben Elliston <bje@au.ibm.com>
12146
12147 PR target/30451
12148 * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
12149 load and store attributes.
12150
593812b6
BE
121512009-03-29 Ben Elliston <bje@au.ibm.com>
12152
12153 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
12154 (ix86_init_builtins): Add built-in function __builtin_huge_valq.
12155 (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
12156 * doc/extend.texi (X86 Built-in Functions): Add index entries for
12157 __builtin_infq and __builtin_huge_valq.
12158
8272d11d
AS
121592009-03-28 Anatoly Sokolov <aesok@post.ru>
12160
12161 * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
12162 atmega8m1 devices.
12163 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
12164 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
12165
74fe548b
XDL
121662009-03-28 Xinliang David Li <davidxl@google.com>
12167
2ba9daa7 12168 * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
74fe548b
XDL
12169 (do_dbg_cnt): New function.
12170
33977f81
JH
121712009-03-28 Jan Hubicka <jh@suse.cz>
12172
12173 Merge from pretty-ipa:
12174
12175 2009-03-27 Jan Hubicka <jh@suse.cz>
ba20e309 12176
33977f81
JH
12177 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
12178 * tree-pass.h (function_called_by_processed_nodes_p): Declare.
12179 * passes.c (function_called_by_processed_nodes_p): New.
12180 * ipa-pure-const.c (check_call): Fix handling of operands.
12181 (analyze_function): Dump debug output for skipped bodies.
12182 (local_pure_const): Use function_called_by_processed_nodes_p.
12183 * dwarf2out.c (reference_to_unused): Use output.
12184 * passes.c (do_per_function_toporder): Likewise.
12185
12186 2008-11-12 Jan Hubicka <jh@suse.cz>
12187
12188 * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
12189 * ipa-pure-const.c (funct_state_d): Add can throw field; make
12190 state_set_in_source enum
12191 (check_decl): Ignore memory tags; do not set fake looping flags;
12192 dump diagnostics.
12193 (check_operand, check_tree, check_rhs_var, check_lhs_var,
12194 get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
12195 (check_call, analyze_function): Rewrite.
12196 (check_stmt): New.
12197 (add_new_function): Update call of analyze_function.
12198 (generate_summary): Add call of analyze_function.
12199 (propagate): Propagate can_throw; handle state_set_in_source correctly.
12200 (local_pure_const): New function.
12201 (pass_local_pure_const): New pass.
12202 * ipa-inline.c (inline_transform): Set after_inlining.
12203 * tree-eh.c (stmt_can_throw_external): New.
12204 * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
12205 work with aliasing built.
12206 * tree-flow.h (stmt_can_throw_external): New.
12207 * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
12208 and local pure/const pass in early and late optimization queue.
ba20e309 12209
617f3897
MJ
122102009-03-28 Martin Jambor <mjambor@suse.cz>
12211
12212 * fold-const.c (get_pointer_modulus_and_residue): New parameter
12213 allow_func_align.
12214 (fold_binary): Allow function decl aligment consideration is the
12215 second argument is integer constant one.
12216 * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
12217 (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
12218 with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
12219
fe89fbc5
JH
122202009-03-28 Jan Hubicka <jh@suse.cz>
12221
12222 * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
12223 * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
12224 * function.h (rtl_data): Add nothrow flag.
12225 * except.c (set_nothrow_function_flags): Use crtl->nothrow;
12226 set DECL_NOTHROW for AVAILABLE functions.
12227
574872ff
JJ
122282009-03-28 Jakub Jelinek <jakub@redhat.com>
12229
b3bf8855
JJ
12230 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
12231 following vector keyword has expansion starting with pixel or bool
12232 keyword, expand vector to __vector and pixel or bool to __pixel or
12233 __bool.
12234
574872ff
JJ
12235 PR c++/39554
12236 * opts.c (warning_disallowed_functions, warn_disallowed_functions,
12237 warn_if_disallowed_function_p): Removed.
12238 (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
12239 * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
12240 warning_if_disallowed_function_p.
12241 * flags.h (warn_if_disallowed_function_p,
12242 warn_disallowed_functions): Removed.
12243 * common.opt (Wdisallowed-function-list=): Removed.
12244 * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
12245
b005da11
RG
122462009-03-28 Richard Guenther <rguenther@suse.de>
12247
12248 PR tree-optimization/38723
12249 * tree-ssa-pre.c (compute_avail): Add all default definitions to
12250 the entry block.
12251
1de812a6
JH
122522009-03-28 Jan Hubicka <jh@suse.cz>
12253
12254 * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
12255 test introduced by my previous patch.
12256
fbb789d4
RG
122572009-03-28 Richard Guenther <rguenther@suse.de>
12258
12259 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
12260 the PHIs value undefined.
12261
6f1873a1
JH
122622009-03-28 Jan Hubicka <jh@suse.cz>
12263
12264 * tree-pass.h (pass_fixup_cfg): New pass.
12265 * ipa-inline.c (inline_transform): Set
12266 always_inline_functions_inlined/after_inlining.
12267 * tree-optimize.c (execute_fixup_cfg): Do not set them here.
12268 (pass_fixup_cfg): New pass.
12269 * passes.c (init_optimization_passes): Add fixup_cfg.
12270
17021bc8
RG
122712009-03-28 Richard Guenther <rguenther@suse.de>
12272
12273 PR tree-optimization/38458
12274 * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
12275 argument use the arguments copy-of value.
12276
e8114fba
RG
122772009-03-28 Richard Guenther <rguenther@suse.de>
12278
12279 PR tree-optimization/38180
12280 * tree-ssa-ccp.c (get_default_value): Simplify.
12281 (likely_value): Likewise.
12282 (surely_varying_stmt_p): Properly handle VOP case.
12283 (ccp_initialize): Likewise.
12284 (ccp_fold): Handle propagating through *&.
12285 (fold_const_aggregate_ref): Also handle decls.
12286
257eb6e3
JH
122872009-03-28 Jan Hubicka <jh@suse.cz>
12288
12289 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
12290 * cgraph.h (cgraph_node): Likewise.
12291 * cgraphunit.c (cgraph_process_new_functions): Set process flag.
12292 (cgraph_reset_node): Use process flag.
12293 (cgraph_mark_functions_to_output): Likewise.
12294 (cgraph_expand_function): Likewise.
12295 (cgraph_expand_all_functions): Likewise.
12296 (cgraph_output_in_order): Likewise.
12297 * dwarf2out.c (reference_to_unused): Likewise.
12298 * passes.c do_per_function_toporder): Likewise.
12299
61a05df1
JH
123002009-03-28 Jan Hubicka <jh@suse.cz>
12301
12302 Bring from lto-branch:
ba20e309 12303
61a05df1
JH
12304 2008-09-03 Doug Kwan <dougkwan@google.com>
12305
12306 * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
12307 enums instead of reason strings.
12308 * cgraph.c (cgraph_create_edge): Same.
12309 (cgraph_inline_failed_string): New function.
12310 * cgraph.h (cgraph_inline_failed_t): New enum type.
12311 (cgraph_inline_failed_string): New prototype.
12312 (struct cgraph_edge): Change type of INLINED_FAILED from constant
12313 char pointer to cgraph_inline_failed_t.
12314 (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
12315 (cgraph_default_inline_p): Ditto.
60839f5d 12316 * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
61a05df1
JH
12317 to cgraph_inline_failed_t pointer.
12318 * cif-code.def: New file.
12319 * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
12320 reason string.
12321 (cgraph_check_inline_limits): Change type of REASON to pointer to
12322 cgraph_inline_failed_t. Replace reason strings with enums.
12323 (cgraph_default_inline_p): Ditto.
12324 (cgraph_recursive_inlining_p): Ditto.
12325 (update_caller_keys): Change type of FAILED_REASON to
12326 cgraph_inline_failed_t.
12327 (cgraph_set_inline_failed): Change type of REASON to pointer to
12328 cgraph_inline_failed_t. Call cgraph_inline_failed_string to
12329 convert enums to strings for text output.
12330 (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
12331 to be of type cgraph_inline_failed_t. Replace reason strings with
12332 enums. Call cgraph_inline_failed_string to covert enums
12333 to strings for text output.
12334 (cgraph_decide_inlining): Replace reason strings with enums.
12335 (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
12336 to cgraph_inline_failed_t type. Call cgraph_inline_failed_string
12337 for text output.
12338 * tree-inline.c (expand_call_inline): Change type of REASON
12339 to cgraph_inline_failed_t. Replace reason strings with enums.
12340 Call cgraph_inline_failed_string for text output.
12341 * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
12342 (cgraph.o): Ditto.
12343
144e8aac
JH
123442009-03-28 Jan Hubicka <jh@suse.cz>
12345
12346 * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
12347 cgraph_clone_node): Remove master clone handling.
12348 (cgraph_is_master_clone, cgraph_master_clone): Remove.
12349 * cgraph.h (master_clone): Remove.
12350 (cgraph_is_master_clone, cgraph_master_clone): Remove.
12351 * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
12352 (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
12353
4a371c8d
JH
123542009-03-28 Jan Hubicka <jh@suse.cz>
12355
12356 * cgraph.c (cgraph_function_body_availability): Functions declared
12357 inline are always safe to assume that it is not going to be replaced.
12358
6cdb0ee3
RG
123592009-03-28 Richard Guenther <rguenther@suse.de>
12360
12361 PR tree-optimization/38513
12362 * tree-ssa-pre.c (eliminate): Remove redundant stores.
12363 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
12364 EXC_PTR_EXPR and FILTER_EXPR.
12365 (get_ref_from_reference_ops): Likewise.
12366
8ca1fd76
RG
123672009-03-28 Richard Guenther <rguenther@suse.de>
12368
12369 PR tree-optimization/38968
12370 * tree-vect-analyze.c (vect_compute_data_ref_alignment):
12371 Use FLOOR_MOD_EXPR to compute misalignment.
12372
a254e44d
RG
123732009-03-28 Richard Guenther <rguenther@suse.de>
12374
12375 PR tree-optimization/37795
12376 * tree.h (combine_comparisons): Declare.
12377 * fold-const.c (combine_comparisons): Export.
12378 * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
12379 comparisons.
12380 (ifcombine_iforif): Use combine_comparisons.
12381
a8ee227c
JH
123822009-03-28 Jan Hubicka <jh@suse.cz>
12383
12384 * tree-eh.c (inlinable_call_p): New function.
12385 (make_eh_edges): Use it.
12386 (verify_eh_edges): Use it.
12387 (stmt_can_throw_external, stmt_can_throw_internal): Use it.
12388 * except.c (reachable_next_level): Add inlinable_function argument
12389 (sjlj_find_directly_reachable_regions): Update.
12390 (add_reachable_handler): Do not set saw_any_handlers.
12391 (reachable_next_level): Handle MUST_NOT_THROW more curefully.
12392 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
12393 Add new inlinable call parameter.
12394 (can_throw_internal, can_throw_external): Update.
12395 * except.h (can_throw_internal_1, can_throw_external_1,
12396 foreach_reachable_handler): Update declaration.
12397
52c0e446
JM
123982009-03-28 Joseph Myers <joseph@codesourcery.com>
12399
12400 * config/arm/t-arm-coff, config/h8300/coff.h,
12401 config/i386/i386-aout.h, config/i386/i386-coff.h,
12402 config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
12403 config/pdp11/2bsd.h, config/rs6000/aix41.h,
12404 config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
12405 fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
12406 scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
12407 sys-types.h: Remove.
12408 * Makefile.in: Remove protoize and fixproto support and references
12409 in comments.
12410 (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
12411 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
12412 Remove.
12413 (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
12414 (MOSTLYCLEANFILES): Remove protoize$(exeext) and
12415 unprotoize$(exeext).
12416 (rest.encap): Don't depend on $(STMP_FIXPROTO)
12417 (.PHONY): Don't depend on proto.
12418 (libgcc-support): Don't depend on $(STMP_FIXPROTO).
12419 (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
12420 protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
12421 deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
12422 build/gen-protos.o, build/scan.o, xsys-protos.h,
12423 build/fix-header$(build_exeext), build/fix-header.o,
12424 build/scan-decls.o, fixhdr.ready, stmp-fixproto,
12425 stmp-install-fixproto): Remove.
12426 (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
12427 SYSCALLS.c or fixproto files.
12428 (install-common): Don't install protoize.
12429 (install-headers-tar, install-headers-cpio, install-headers-cp):
12430 Don't depend on $(STMP_FIXPROTO).
12431 (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't
12432 install fixproto files or write out fixproto settings.
12433 (uninstall): Don't uninstall protoize.
12434 * config.gcc (use_fixproto): Remove.
12435 (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
12436 i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
12437 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
12438 * config/m32r/t-linux (STMP_FIXPROTO): Remove.
12439 * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
12440 * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
12441 * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
12442 * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
12443 * config/t-svr4 (FIXPROTO_DEFINES): Remove.
12444 * config/t-vxworks (STMP_FIXPROTO): Remove.
12445 * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
12446 STMP_FIXPROTO): Remove.
12447 * config.in, configure: Regenerate.
12448 * crtstuff.c (gid_t, uid_t): Don't undefine.
12449 * doc/install.texi: Change m68k-coff to m68k-elf in example.
12450 (arm-*-coff, arm-*-aout: Remove target entries.
12451 (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
12452 Remove mention of AIX 4.1.
12453 (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
12454 * doc/invoke.texi (Running Protoize): Remove.
12455 * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
12456 (Protoize Caveats): Remove.
12457 * tsystem.h: Update comments on headers assumed to exist.
12458
20a07f44
VM
124592009-03-27 Vladimir Makarov <vmakarov@redhat.com>
12460
12461 * genautomata.c: Add a new year to the copyright. Add a new
12462 reference.
12463 (struct insn_reserv_decl): Add comments for member bypass_list.
12464 (find_bypass): Remove.
12465 (insert_bypass): New.
12466 (process_decls): Use insert_bypass.
12467 (output_internal_insn_latency_func): Output all bypasses with the
12468 same input insn in one switch case.
12469
12470 * rtl.def (define_bypass): Describe bypass choice.
12471 * doc/md.texi (define_bypass): Ditto.
12472
3a0d06c1
RB
124732009-03-27 Richard Guenther <rguenther@suse.de>
12474
12475 * gimplify.c (mark_addressable): Export.
12476 * tree-flow.h (mark_addressable): Declare.
12477 * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
12478 * tree-ssa.c (verify_phi_args): Verify that address taken
12479 variables have TREE_ADDRESSABLE set.
12480
124812009-03-27 Richard Guenther <rguenther@suse.de>
12482
12483 * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
12484 (build_fold_addr_expr_with_type): ... this. Remove in_fold handling.
12485 Do not mark decls TREE_ADDRESSABLE.
12486 (build_fold_addr_expr): Adjust.
12487 (fold_addr_expr): Remove.
12488 (fold_unary): Use build_fold_addr_expr.
12489 (fold_comparison): Likewise.
12490 (split_address_to_core_and_offset): Likewise.
12491 * coverage.c (tree_coverage_counter_addr): Mark the array decl
12492 TREE_ADDRESSABLE.
12493 * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
12494 (gimplify_modify_expr_to_memcpy): Mark source and destination
12495 addressable.
12496 * omp-low.c (create_omp_child_function): Mark the object decl
12497 TREE_ADDRESSABLE.
12498 (lower_rec_input_clauses): Mark the var we take the address of
12499 TREE_ADDRESSABLE.
12500 (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
12501
2ac26e15
L
125022009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12503
12504 PR middle-end/39315
12505 * cfgexpand.c (expand_one_stack_var_at): Change alignment
12506 limit to MAX_SUPPORTED_STACK_ALIGNMENT.
12507
472c7fbd
RG
125082009-03-27 Richard Guenther <rguenther@suse.de>
12509
12510 PR tree-optimization/39120
12511 * tree-ssa-structalias.c (handle_rhs_call): Fill out return
12512 constraints.
12513 (handle_lhs_call): Process return constraints. Add escape
12514 constraints if necessary.
12515 (handle_const_call): Fill out return constraints. Make nested
12516 case more precise. Avoid consttmp if possible.
12517 (handle_pure_call): Fill out return constraints. Avoid
12518 callused if possible.
12519 (find_func_aliases): Simplify call handling.
12520
125212009-03-27 Richard Guenther <rguenther@suse.de>
12522
12523 PR tree-optimization/39120
12524 * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
12525 as a representative.
12526 (solve_graph): Do propagate CALLUSED.
12527 (handle_pure_call): Use a scalar constraint from CALLUSED for
12528 the return value.
12529 (find_what_p_points_to): CALLUSED shall not appear in poins-to
12530 solutions.
12531
d9223014
L
125322009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12533
12534 PR c/39323
12535 * c-common.c (handle_aligned_attribute): Properly check alignment
12536 overflow. Use (1U << i) instead of (1 << i).
12537
ba20e309 12538 * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
d9223014
L
12539
12540 * expr.h (get_mem_align_offset): Updated.
12541
12542 * tree.h (tree_decl_common): Change align to "unsigned int" and
12543 move it before pointer_alias_set.
12544
689b689c
L
125452009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12546 Jakub Jelinek <jakub@redhat.com>
12547
12548 PR target/38034
12549 * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
12550 gr_register_operand with gr_reg_or_0_operand.
12551 (cmpxchg_rel_di): Likewise.
12552 (sync_lock_test_and_set<mode>): Likewise.
12553
c619e982
L
125542009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12555
12556 * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
12557 (true_regnum): Likewise.
12558
12559 * rtlanal.c (subreg_info): Moved to ...
12560 * rtl.h (subreg_info): Here. New.
12561 (subreg_get_info): New.
12562
12563 * rtlanal.c (subreg_get_info): Make it extern.
12564
51212b32
L
125652009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12566
12567 PR target/39472
12568 * config/i386/i386.c (ix86_abi): New.
12569 (override_options): Handle -mabi=.
ba20e309 12570 (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
51212b32
L
12571 (ix86_call_abi_override): Likewise.
12572 (init_cumulative_args): Likewise.
12573 (function_arg_advance): Likewise.
12574 (function_arg_64): Likewise.
12575 (function_arg): Likewise.
12576 (ix86_pass_by_reference): Likewise.
12577 (ix86_function_value_regno_p): Likewise.
12578 (ix86_build_builtin_va_list_abi): Likewise.
12579 (setup_incoming_varargs_64): Likewise.
12580 (is_va_list_char_pointer): Likewise.
12581 (ix86_init_machine_status): Likewise.
ba20e309 12582 (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
51212b32
L
12583 (ix86_function_type_abi): Return enum calling_abi. Rewrite
12584 for 64bit. Replace DEFAULT_ABI with ix86_abi.
ba20e309 12585 (ix86_function_abi): Make it static and return enum calling_abi.
51212b32
L
12586 (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI
12587 with ix86_abi.
12588 (ix86_fn_abi_va_list): Updated.
12589
12590 * config/i386/i386.h (ix86_abi): New.
12591 (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
12592 (CONDITIONAL_REGISTER_USAGE): Likewise.
12593 (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
12594 (machine_function): Likewise.
12595
12596 * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
12597 with ix86_abi.
12598 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
12599 (STACK_BOUNDARY): Likewise.
12600 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
12601
12602 * config/i386/i386.opt (mabi=): New.
12603
12604 * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
12605 return enum calling_abi.
12606 (ix86_function_type_abi): Likewise.
12607 (ix86_function_abi): Removed.
12608
12609 * doc/invoke.texi: Document -mabi= option for x86.
12610
7338ea63
KG
126112009-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12612
12613 * builtins.c (real_dconstp): Delete.
12614 (fold_builtin_logarithm): Remove inaccurate log(e) special case.
12615
68599f33
DS
126162009-03-27 Dodji Seketeli <dodji@redhat.com>
12617 Jakub Jelinek <jakub@redhat.com>
12618
12619 PR debug/37959
12620 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
12621 (gen_subprogram_die): When a function is explicit, generate the
12622 DW_AT_explicit attribute.
12623 * langhooks.h (struct lang_hooks_for_decls): Add
12624 function_decl_explicit_p langhook.
12625 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
12626 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
12627
9f5e9983
JJ
126282009-03-27 Jakub Jelinek <jakub@redhat.com>
12629
64d7685c
JJ
12630 * builtins.c (fold_builtin_memory_op): Optimize memmove
12631 into memcpy if we can prove source and destination don't overlap.
12632
9f5e9983
JJ
12633 * tree-inline.c: Include gt-tree-inline.h.
12634 (clone_fn_id_num): New variable.
12635 (clone_function_name): New function.
12636 (tree_function_versioning): Use it.
12637 * Makefile.in (GTFILES): Add tree-inline.c.
12638
e54d52a8
MM
126392009-03-27 Mark Mitchell <mark@codesourcery.com>
12640
12641 * BASE-VER: Change to 4.5.0.
12642
e9d51dc6
XDL
126432009-03-27 Xinliang David Li <davidxl@google.com>
12644
12645 PR tree-optimization/39557
12646 * tree-ssa.c (warn_uninitialized_vars): free postdom info.
12647
4577cea1
XDL
126482009-03-27 Xinliang David Li <davidxl@google.com>
12649
12650 PR tree-optimization/39548
2ba9daa7 12651 * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
4577cea1
XDL
12652 candidate check.
12653
0f7464f4
L
126542009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12655
12656 * c-common.c (pointer_int_sum): Use %wd on return from
12657 tree_low_cst.
12658
a8847a7f
L
126592009-03-27 H.J. Lu <hongjiu.lu@intel.com>
12660
12661 * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
12662 on return from tree_low_cst.
12663
b0957daf
AP
126642009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com>
12665
12666 PR c++/36799
ba20e309
UB
12667 * ginclude/stdarg.h (va_copy): Define also for
12668 __GXX_EXPERIMENTAL_CXX0X__.
b0957daf 12669
a5f805df
MLI
126702009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
12671
12672 PR c++/35652
12673 * builtins.h (c_strlen): Do not warn here.
12674 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
12675 * c-common.c (pointer_int_sum): Take an explicit location.
12676 Warn about offsets out of bounds.
12677 * c-common.h (pointer_int_sum): Adjust declaration.
12678
6f401211
RW
126792009-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12680
a5f805df
MLI
12681 * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
12682 markup glitch.
6f401211 12683
5a59b39e
JJ
126842009-03-26 Jakub Jelinek <jakub@redhat.com>
12685
12686 PR c++/39554
12687 * opts.c (warn_if_disallowed_function_p): Don't assume
12688 get_callee_fndecl must return non-NULL.
12689
d5f89b53
VM
126902009-03-26 Vladimir Makarov <vmakarov@redhat.com>
12691
12692 PR rtl-optimization/39522
12693 * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
12694 when reg_reloaded_valid is set.
12695
61238a79
UW
126962009-03-26 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12697
12698 * config/spu/divv2df3.c: New file.
12699 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
12700 (DPBIT_FUNCS): Filter out _div_df.
12701
03f8829b
BS
127022009-03-26 Bernd Schmidt <bernd.schmidt@analog.com>
12703
12704 * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
12705 a jump insn, count that jump in the distance to the loop start.
12706
9fdcdc74
KK
127072009-03-25 Kaz Kojima <kkojima@gcc.gnu.org>
12708
12709 PR target/39523
12710 * config/sh/sh.c (calc_live_regs): Fix condition for global
12711 registers except PIC_OFFSET_TABLE_REGNUM.
12712
46994828
KT
127132009-03-25 Kai Tietz <kai.tietz@onevision.com>
12714
12715 PR/39518
12716 * doc/invoke.texi (-mconsole): New.
12717 (-mcygwin): New.
12718 (-mno-cygwin): New.
12719 (-mdll): New.
12720 (-mnop-fun-dllimport): New.
12721 (-mthread): New.
12722 (-mwin32): New.
12723 (-mwindows): New.
12724 (sub section "i386 and x86-64 Windows Options"): New.
12725
60839f5d 127262009-03-25 Ralf Corsépius <ralf.corsepius@rtems.org>
370017b4
RC
12727
12728 * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
12729 * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
12730
ae560440
RG
127312009-03-25 Richard Guenther <rguenther@suse.de>
12732
12733 PR middle-end/39497
12734 * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
12735 of -Wno-error.
12736
cd510f15
AM
127372009-03-25 Andrey Belevantsev <abel@ispras.ru>
12738
12739 * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
12740 neither of haifa/selective schedulers are working.
12741
44ab0f0e
RW
127422009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12743
12744 * doc/invoke.texi (Debugging Options): Fix description of
12745 -fno-merge-debug-strings.
12746
ad9646c7
HPN
127472009-03-24 Hans-Peter Nilsson <hp@axis.com>
12748
e6142656
HPN
12749 * config/cris/libgcc.ver: New version-script.
12750 * config/cris/t-linux (SHLIB_MAPFILES): Use it.
12751
ad9646c7
HPN
12752 * configure.ac <GAS features, nop mnemonic>: Add pattern
12753 crisv32-*-* for "nop".
ba20e309 12754 <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
ad9646c7
HPN
12755 * configure: Regenerate.
12756
09ac4473
IR
127572009-03-24 Ira Rosen <irar@il.ibm.com>
12758
12759 PR tree-optimization/39529
12760 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
12761 mark_sym_for_renaming for the tag copied to the new vector
12762 pointer.
12763
d94a427e
AL
127642009-03-24 Arthur Loiret <aloiret@debian.org>
12765
ba20e309 12766 * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
d94a427e
AL
12767 * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
12768 EXTRA_SPEC_FUNCTIONS.
12769 (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
12770 * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
12771 * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
12772 -march and -mtune options.
12773
60839f5d 127742009-03-24 Ralf Corsépius <ralf.corsepius@rtems.org>
722d07aa
RC
12775
12776 * config/m68k/t-rtems: Add m5329 multilib.
12777
603f5959
DS
127782009-03-24 Dodji Seketeli <dodji@redhat.com>
12779 Jakub Jelinek <jakub@redhat.com>
12780
12781 PR debug/39524
12782 * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
12783 nodes.
12784
c5cdb03f
JJ
127852009-03-23 Jakub Jelinek <jakub@redhat.com>
12786
12787 PR c/39495
12788 * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
12789 instead of c_parser_expression_conv, if original_code isn't one of the
12790 4 allowed comparison codes, fail.
12791
3691626c
RG
127922009-03-23 Richard Guenther <rguenther@suse.de>
12793
12794 * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
12795 * tree.h (struct tree_type): Likewise.
12796 * reload.h (struct insn_chain): Likewise.
12797 * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
12798 * function.h (struct function): Likewise.
12799 * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
12800
88ccb72a
JJ
128012009-03-23 Jakub Jelinek <jakub@redhat.com>
12802
12803 PR tree-optimization/39516
12804 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
12805
60839f5d 128062009-03-23 Bingfeng Mei <bmei@broadcom.com>
a583a67e 12807
2ba9daa7 12808 * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
a583a67e
BM
12809 should be set true if BITS_PER_WORD of target is bigger than 32
12810
f82162f8
HPN
128112009-03-22 Hans-Peter Nilsson <hp@axis.com>
12812
12813 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
12814 Translate -B-options to -rpath-link. Correct existing
12815 rpath-link and conditionalize on !nostdlib.
12816
048fd785
RW
128172009-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12818
12819 * doc/extend.texi (Function Attributes, Variable Attributes):
12820 Fix typos.
12821 * doc/invoke.texi (Debugging Options, Optimize Options)
12822 (i386 and x86-64 Options, MCore Options): Likewise.
12823
6e75c1a9
JJ
128242009-03-20 Jakub Jelinek <jakub@redhat.com>
12825
12826 PR debug/37890
12827 * dwarf2out.c (gen_namespace_die): Add context_die argument and use
12828 it for block local namespace aliases.
12829 (gen_decl_die): Pass context_die to gen_namespace_die.
12830
ea1199ee
JJ
128312009-03-19 Jakub Jelinek <jakub@redhat.com>
12832
12833 PR c/39495
12834 * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
12835 minimum or maximum value.
12836
58929c10
AO
128372009-03-19 Alexandre Oliva <aoliva@redhat.com>
12838
12839 * reginfo.c (globalize_reg): Recompute derived reg sets.
12840
60839f5d 128412009-03-19 Ozkan Sezer <sezeroz@gmail.com>
234952b3
OS
12842
12843 PR target/39063
12844 * libgcc2.c (mprotect): Do not use signed arguments for
12845 VirtualProtect, use DWORD arguments. Also fix the 'may
12846 be used uninitialized' warning for the np variable.
12847
f57c2f04
JJ
128482009-03-19 Jakub Jelinek <jakub@redhat.com>
12849
12850 PR target/39496
12851 * config/i386/i386.c (ix86_function_regparm): Don't optimize local
12852 functions using regparm calling conventions when not optimizing.
12853 (ix86_function_sseregparm): Similarly for sseregparm calling
12854 conventions.
12855
9e517d61
LF
128562009-03-19 Li Feng <nemokingdom@gmail.com>
12857
12858 PR middle-end/39500
12859 * tree-data-ref.c (analyze_subscript_affine_affine): There is no
12860 dependence if the first conflict is after niter iterations.
12861
8ef20026
HPN
128622009-03-19 Hans-Peter Nilsson <hp@axis.com>
12863
12864 PR middle-end/38609
12865 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
12866 functions with dynamic stack-pointer adjustments.
12867
64e4a1a6
BE
128682009-03-19 Ben Elliston <bje@au.ibm.com>
12869
12870 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
12871 option; change to -msdata=data.
12872
9a0f3e86
RW
128732009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12874
12875 * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
12876 and -fopenmp.
12877
09bc5979
EB
128782009-03-18 Eric Botcazou <ebotcazou@adacore.com>
12879
12880 PR target/35180
12881 * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
12882
332459cd
SL
128832009-03-18 Sandra Loosemore <sandra@codesourcery.com>
12884
12885 * doc/invoke.texi (Code Gen Options): Expand discussion of
12886 -fno-common.
12887
8f5929e1
JJ
128882009-03-18 Jakub Jelinek <jakub@redhat.com>
12889
12890 * dse.c (struct group_info): Reorder fields for 64-bit hosts.
12891 * matrix-reorg.c (struct matrix_info): Likewise.
12892 * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
12893 * rtl.h (struct mem_attrs): Likewise.
12894 * df.h (struct df): Likewise.
12895 * tree-data-ref.h (struct data_dependence_relation): Likewise.
12896 * ira-int.h (struct ira_allocno): Likewise.
12897 * df-scan.c (struct df_collection_rec): Likewise.
12898 * ira.c (struct equivalence): Likewise.
12899 * function.c (struct temp_slot): Likewise.
12900 * cfgloop.h (struct loop): Likewise.
12901
d130d647
JJ
12902 PR debug/39485
12903 * function.c (use_register_for_decl): When not optimizing, disregard
12904 register keyword for variables with types containing methods.
12905
9968d233
SP
129062009-03-18 Sebastian Pop <sebastian.pop@amd.com>
12907
12908 PR middle-end/39447
12909 * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
12910 (is_simple_operand): Call contains_component_ref_p before calling data
12911 reference analysis that would fail on COMPONENT_REFs.
12912
12913 * tree-vrp.c (search_for_addr_array): Fix formatting.
12914
69484bfd
RG
129152009-03-18 Richard Guenther <rguenther@suse.de>
12916
12917 * tree-vect-transform.c (vect_loop_versioning): Fold the
12918 generated comparisons.
12919 * tree-vectorizer.c (set_prologue_iterations): Likewise.
12920 (slpeel_tree_peel_loop_to_edge): Likewise.
12921
66811228
RW
129222009-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12923
0631b69f
RW
12924 PR middle-end/37805
12925 * opts.c (print_specific_help): In addition to `undocumented',
12926 accept `separate' and `joined' flags if passed alone. Describe
12927 output by the first matched one of those.
12928 (common_handle_option): Skip over empty strings.
12929 * gcc.c (display_help): Fix help string for `--help='.
12930 * doc/invoke.texi (Option Summary, Overall Options): With
12931 `--help=', classes and qualifiers can both be repeated, but
12932 only the latter can be negated. One should not pass only
12933 negated qualifiers. Fix markup and examples.
12934
66811228
RW
12935 Revert
12936 2008-10-14 Jakub Jelinek <jakub@redhat.com>
12937 PR middle-end/37805
12938 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
12939 and -fhelp=separate.
12940
3c072c6b
JY
129412009-03-17 Jing Yu <jingyu@google.com>
12942
12943 PR middle-end/39378
80c65208
JY
12944 * function.h (struct rtl_data): Move is_thunk from here...
12945 (struct function): ...to here.
12946 * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
3c072c6b
JY
12947 * varasm.c (assemble_start_function): Change is_thunk from crtl to
12948 cfun.
80c65208
JY
12949 * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
12950 cfun.
12951 (alpha_does_function_need_gp, alpha_start_function): Likewise.
12952 (alpha_output_function_end_prologue): Likewise.
12953 (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
12954 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
12955 (rs6000_output_function_epilogue): Likewise.
12956 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
3c072c6b 12957
9ade279b
UB
129582009-03-17 Uros Bizjak <ubizjak@gmail.com>
12959
12960 PR target/39482
12961 * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
12962 from different units in a single alternative.
12963 (*truncdfsf_i387): Ditto.
12964 (*truncxfsf2_mixed): Ditto.
12965 (*truncxfdf2_mixed): Ditto.
12966
16e60c17
JJ
129672009-03-17 Jakub Jelinek <jakub@redhat.com>
12968
98381eb4
JJ
12969 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
12970 non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
12971
df5deb18
JJ
12972 PR debug/39474
12973 * tree-ssa-live.c (remove_unused_locals): Don't remove local
12974 unused non-artificial variables when not optimizing.
12975
a3f596ba
JJ
12976 PR debug/39471
12977 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
12978 DW_TAG_imported_module even if decl is IMPORTED_DECL with
12979 NAMESPACE_DECL in its DECL_INITIAL.
12980
6b2b8871
JJ
12981 PR middle-end/39443
12982 * optabs.c (set_user_assembler_libfunc): New function.
12983 * expr.h (set_user_assembler_libfunc): New prototype.
12984 * c-common.c: Include libfuncs.h.
12985 (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
12986 for memcmp, memset, memcpy, memmove and abort.
12987 * Makefile.in (c-common.o): Depend on libfuncs.h.
12988
16e60c17
JJ
12989 PR debug/39412
12990 * dwarf2out.c (gen_inlined_enumeration_type_die,
12991 gen_inlined_structure_type_die, gen_inlined_union_type_die,
12992 gen_tagged_type_instantiation_die): Removed.
12993 (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
12994 do nothing.
12995
4d936aca
JJ
129962009-03-17 Janis Johnson <janis187@us.ibm.com>
12997
12998 PR testsuite/38526
12999 * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
13000 its use.
13001 (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
13002 (check-parallel-%): Ditto.
13003 (check-consistency): Ditto.
13004
4e9b2e50
KT
130052009-03-17 Kai Tietz <kai.tietz@onevision.com>
13006
13007 * ipa-struct-reorg.c (create_general_new_stmt): Initialize
13008 local variable rhs by NULL_TREE.
13009
21440b2d
L
130102009-03-17 H.J. Lu <hongjiu.lu@intel.com>
13011
13012 PR target/39477
9ade279b 13013 * doc/extend.texi: Correct register behavior for regparm on Intel 386.
21440b2d 13014
d8905c6a
L
130152009-03-17 H.J. Lu <hongjiu.lu@intel.com>
13016
13017 PR target/39476
9ade279b 13018 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
d8905c6a
L
13019
130202009-03-17 H.J. Lu <hongjiu.lu@intel.com>
435a61d3
L
13021
13022 PR target/39473
13023 * config/i386/i386.c (ix86_expand_call): Check extra clobbers
13024 for ms->sysv ABI calls only in 64bit mode.
13025
13026 * config/i386/i386.md (untyped_call): Support 32bit.
13027
cdcabece
L
130282009-03-16 H.J. Lu <hongjiu.lu@intel.com>
13029
13030 * doc/extend.texi: Replace x86_65 with x86_64.
13031
97b4ba9f
JJ
130322009-03-16 Jakub Jelinek <jakub@redhat.com>
13033
13034 PR tree-optimization/39455
13035 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
13036 mismatches for POINTER_TYPE_P (type).
13037 (number_of_iterations_le): Likewise.
13038
60839f5d 130392009-03-16 Hariharan Sandanagobalane <hariharan@picochip.com>
83c191e1
HS
13040
13041 * config/picochip/picochip.c: Removed profiling support.
13042 * config/picochip/picochip.md: Removed profiling instruction.
13043 * config/picochip/picochip.h: Removed profiling builtin.
13044
f38095f3
JM
130452009-03-16 Joseph Myers <joseph@codesourcery.com>
13046
13047 * doc/install.texi (--with-host-libstdcxx): Document.
13048
2cb4817b
AS
130492009-03-14 Anatoly Sokolov <aesok@post.ru>
13050
13051 PR target/34299
13052 * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
13053 generate a warning if the function name does not begin with
13054 "__vector" and the function has either the 'signal' or 'interrupt'
13055 attribute, from here to ...
13056 (avr_declare_function_name): ...here. New function.
13057 * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
13058 * config/avr/avr-protos.h (avr_declare_function_name): Declare.
13059
39b2ac74
JJ
130602009-03-14 Jakub Jelinek <jakub@redhat.com>
13061
13062 PR bootstrap/39454
13063 * cse.c (fold_rtx): Don't modify original const_arg1 when
13064 canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
13065 separate variable instead.
13066 * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
13067 from out of range shift counts.
13068 (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
13069
ad41bd84 130702009-03-13 Catherine Moore <clm@codesourcery.com>
f7a82dee 13071
60839f5d 13072 * config/i386/x-mingw32 (host-mingw32.o): Replace
f7a82dee
CM
13073 diagnostic.h with $(DIAGNOSTIC_H).
13074
ad41bd84 130752009-03-12 Jakub Jelinek <jakub@redhat.com>
03a18198
JJ
13076
13077 PR target/39431
13078 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
13079 predicate.
13080 * config/i386/sync.md (sync_compare_and_swap<mode>,
13081 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
13082 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
13083 into a register.
13084 (sync_double_compare_and_swapdi_pic,
13085 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
13086 cmpxchg8b_pic_memory_operand instead of just memory_operand.
13087
122c59c7
L
130882009-03-12 H.J. Lu <hongjiu.lu@intel.com>
13089
13090 PR target/39445
9ade279b 13091 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
122c59c7 13092
cec8874f
L
130932009-03-12 H.J. Lu <hongjiu.lu@intel.com>
13094
13095 PR target/39327
13096 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
13097 (avx_addsubv4df3): Likewise.
13098 (*avx_addsubv4sf3): Likewise.
13099 (sse3_addsubv4sf3): Likewise.
13100
bbb52802
L
131012009-03-12 H.J. Lu <hongjiu.lu@intel.com>
13102
13103 PR target/38824
9ade279b 13104 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
bbb52802 13105
a812fb07
VM
131062009-03-12 Vladimir Makarov <vmakarov@redhat.com>
13107
13108 PR debug/39432
13109 * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
13110 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
13111 registers for allocnos created from user-defined variables.
13112
4caab5ba
UW
131132009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13114
13115 PR target/39181
13116 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
13117 of non-integer mode as well.
13118
498e51ca
AN
131192009-03-11 Adam Nemet <anemet@caviumnetworks.com>
13120
13121 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
13122 for functions for which the parameter types are unknown.
13123
9bfaf89d
JJ
131242009-03-11 Jakub Jelinek <jakub@redhat.com>
13125
13126 PR target/39137
9ade279b 13127 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
9bfaf89d
JJ
13128 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
13129 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
13130 * config/i386/i386.c (ix86_local_alignment): For
13131 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
13132 long long variables on the stack to avoid dynamic realignment.
13133 Allow the first argument to be a decl rather than type.
13134 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
13135
18a3bdcb
NC
131362009-03-11 Nick Clifton <nickc@redhat.com>
13137
13138 PR target/5362
40190a76
NC
13139 * config/mcore/mcore.opt: Remove deprecated m4align and m8align
13140 options.
13141 Add description to mno-lsim option.
13142 * config/mcore/mcore.h: Remove comment about deprecated m4align
13143 option.
13144 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
13145 * doc/invoke.texi: Add description of mno-lsim and
13146 mstack-increment options.
13147
18a3bdcb
NC
13148 * config/fr30/fr30.opt: Document the -mno-lsim option.
13149 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
13150 and -mno-lsim options.
13151
dc215785
UW
131522009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13153
13154 * fold-const.c (fold_comparison): Only call fold_inf_compare
13155 if the mode supports infinities.
13156
7716876b
JM
131572009-03-11 Jason Merrill <jason@redhat.com>
13158
13159 PR debug/39086
13160 * tree-nrv.c (tree_nrv): Don't do this optimization if the front
13161 end already did. Notice GIMPLE_CALL modifications of the result.
13162 Don't copy debug information from an ignored decl or a decl from
13163 another function.
13164
ddef83d2
RG
131652009-03-10 Richard Guenther <rguenther@suse.de>
13166 Nathan Froyd <froydnj@codesourcery.com>
13167
13168 PR middle-end/37850
9ade279b 13169 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
ddef83d2
RG
13170 (__divMODE3): Likewise.
13171
9a9ba8d9
JJ
131722009-03-09 Jakub Jelinek <jakub@redhat.com>
13173
13174 PR tree-optimization/39394
13175 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
13176 DECL_SIZE_UNIT of variable length FIELD_DECLs.
13177
929b7fc3
AK
131782009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13179
13180 * recog.c (verfiy_changes): Disallow renaming of hard regs in
13181 inline asms for register asm ("") declarations.
13182
1803581d
EB
131832009-03-09 Eric Botcazou <ebotcazou@adacore.com>
13184
13185 * fold-const.c (fold_unary): Fix comment.
13186
8454d27e
JH
131872009-03-07 Jan Hubicka <jh@suse.cz>
13188
13189 PR target/39361
969a5433
JJ
13190 * tree-inline.c (setup_one_parameter): Do replacement of const
13191 argument by constant in SSA form.
8454d27e 13192
3a695389
UW
131932009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13194
13195 PR middle-end/38028
13196 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
13197 determine alignment passed to assign_stack_local.
13198 (assign_parms_unsplit_complex): Likewise.
13199 * except.c (sjlj_build_landing_pads): Likewise.
13200
9f0e7885
JJ
132012009-03-06 Jakub Jelinek <jakub@redhat.com>
13202
65401a0b
JJ
13203 PR middle-end/39360
13204 * tree-flow.h (add_referenced_var): Return bool instead of void.
13205 * tree-dfa.c (add_referenced_var): Return result of
13206 referenced_var_check_and_insert call.
13207 * tree-inline.c (expand_call_inline): Call add_referenced_var instead
13208 of referenced_var_check_and_insert.
13209
9f0e7885 13210 PR debug/39372
9ade279b 13211 * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
9f0e7885
JJ
13212 (gen_variable_die): Emit DW_AT_location on abstract static variable's
13213 DIE, don't emit it if abstract origin already has it.
13214 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
13215 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
13216
3b664bd1
JBG
132172009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
13218
ba20e309 13219 * genpreds.c (needs_variable): Fix parentheses at variable name
3b664bd1
JBG
13220 detection.
13221 (write_tm_constrs_h): Indent generated code.
13222
d8f8ca80
RR
132232009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
13224
13225 * doc/extend.texi (Function Attributes): Add documentation
13226 for isr attributes.
13227
6c3d550c
JJ
132282009-03-06 Jakub Jelinek <jakub@redhat.com>
13229
13230 PR debug/39387
13231 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
13232 take locus from its DECL_SOURCE_LOCATION instead of input_location.
13233
f9e96751
BS
132342009-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
13235
13236 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
13237 the loop as bad.
13238
ee0ee7e2
JJ
132392009-03-05 Jakub Jelinek <jakub@redhat.com>
13240
13241 PR debug/39379
13242 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
13243 with blocks containing IMPORTED_DECLs in BLOCK_VARS.
13244
6c6094f1
UB
132452009-03-05 Uros Bizjak <ubizjak@gmail.com>
13246
13247 * config/i386/i386.md (R8_REG, R9_REG): New constants.
13248 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
13249 constants instead of magic numbers.
13250 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
13251 (QI_REG_P): Ditto.
13252 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
13253 (x86_64_ms_abi_int_parameter_registers): Ditto.
13254 (x86_64_int_return_registers): Ditto.
09f8a8d3 13255 (ix86_maybe_switch_abi): Ditto.
6c6094f1
UB
13256 (ix86_expand_call): Ditto for clobbered_registers array.
13257 (ix86_hard_regno_mode_ok): Ditto.
13258 (x86_extended_QIreg_mentioned_p): Ditto.
13259
b267bd41
R
132602009-03-05 J"orn Rennecke <joern.rennecke@arc.com>
13261
6c6094f1 13262 PR tree-optimization/39349
1f3ad3f0
R
13263 * cse.c (cse_insn): Fix loop to stop at VOIDmode.
13264
b267bd41
R
13265 * combine.c (gen_lowpart_for_combine): Use omode when generating
13266 clobber.
13267
1242bc9d
R
132682009-03-04 J"orn Rennecke <joern.rennecke@arc.com>
13269
6c6094f1 13270 PR rtl-optimization/39235
1242bc9d
R
13271 * loop-iv.c (get_simple_loop_desc): Use XCNEW.
13272
48f03606
ZD
132732009-03-04 Zdenek Dvorak <ook@ucw.cz>
13274
13275 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
13276
b505e785
RG
132772009-03-04 Richard Guenther <rguenther@suse.de>
13278
13279 PR tree-optimization/39362
13280 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
13281 that occur in abnormal PHIs should be varying.
13282
f017bf5e
ZD
132832009-03-04 Zdenek Dvorak <ook@ucw.cz>
13284
13285 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
13286 Extend comments.
13287 (simple_iv): Take loop as an argument instead of statement.
13288 * tree-scalar-evolution.h (simple_iv): Declaration changed.
13289 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
13290 to simple_iv.
13291 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
13292 Ditto.
13293 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
13294 * matrix-reorg.c (analyze_transpose): Ditto.
13295 * tree-data-ref.c (dr_analyze_innermost): Ditto.
13296 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
13297 * tree-predcom.c (ref_at_iteration): Ditto.
13298 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
13299
6a66f28e
RG
133002009-03-04 Richard Guenther <rguenther@suse.de>
13301
13302 PR tree-optimization/39358
13303 * tree-ssa-structalias.c (do_sd_constraint): Fix check for
13304 escaped_id and callused_id.
13305 (solve_graph): Likewise.
13306
57e454ee
RG
133072009-03-04 Richard Guenther <rguenther@suse.de>
13308
13309 PR tree-optimization/39339
13310 * tree-sra.c (try_instantiate_multiple_fields): Make it
13311 no longer ICE on the above.
13312
a6fe9ed4
JM
133132009-03-03 Joseph Myers <joseph@codesourcery.com>
13314
13315 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
13316 that fits within Pmode.
13317
dc672951
SE
133182009-03-03 Steve Ellcey <sje@cup.hp.com>
13319
13320 PR middle-end/10109
13321 * tm.texi (LIBCALL_VALUE): Update description.
13322
8b9d598f
SE
133232009-03-03 Steve Ellcey <sje@cup.hp.com>
13324
13325 PR middle-end/34443
13326 * doc/extend.texi (section): Update description.
13327
13e4e36e
L
133282009-03-03 H.J. Lu <hongjiu.lu@intel.com>
13329
13330 PR middle-end/39345
13331 * tree-inline.c (remapped_type): New.
13332 (can_be_nonlocal): Call remapped_type instead of remap_type.
13333
067dd3c9
JJ
133342009-03-03 Jakub Jelinek <jakub@redhat.com>
13335
13336 PR fortran/39354
13337 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
13338 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
13339
9bd9f738
RG
133402009-03-03 Richard Guenther <rguenther@suse.de>
13341
13342 PR middle-end/39272
13343 * tree.c (tree_nonartificial_location): New function.
13344 * tree.h (tree_nonartificial_location): Declare.
13345 * builtins.c (expand_builtin_memory_chk): Provide location
13346 of the call location for artificial function pieces.
13347 (maybe_emit_chk_warning): Likewise.
13348 (maybe_emit_sprintf_chk_warning): Likewise.
13349 (maybe_emit_free_warning): Likewise.
13350 * expr.c (expand_expr_real_1): Likewise.
13351
f07049c8
JJ
133522009-03-03 Jakub Jelinek <jakub@redhat.com>
13353
13354 PR tree-optimization/39343
13355 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
13356 COMPONENT_REF t has ARRAY_TYPE.
13357
7d4fba4a
SP
133582009-03-02 Sebastian Pop <sebastian.pop@amd.com>
13359
13360 PR middle-end/39335
13361 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
13362 when the type precision of the induction variable should be
13363 larger than the type precision of nit.
13364 (gen_parallel_loop): Update use of canonicalize_loop_ivs.
13365 * graphite.c (graphite_loop_normal_form): Same.
13366 * tree-flow.h (canonicalize_loop_ivs): Update declaration.
13367
78168632
UB
133682009-03-02 Uros Bizjak <ubizjak@gmail.com>
13369
13370 * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
13371 (*call_1_rex64_ms_sysv): Use named constants instead of magic
6c6094f1 13372 numbers to describe clobbered registers.
78168632 13373 (*call_value_0_rex64_ms_sysv): Ditto.
6c6094f1
UB
13374 * config/i386/mmx.md (mmx_emms): Ditto.
13375 (mmx_femms): Ditto.
78168632 13376
63553059
RS
133772009-03-02 Richard Sandiford <rdsandiford@googlemail.com>
13378
13379 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
13380 of ABI_64.
13381
500a1f85
UW
133822009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13383
13384 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
13385 (spu_section_type_flags): New function.
13386
962aae34
UB
133872009-03-02 Uros Bizjak <ubizjak@gmail.com>
13388
13389 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
13390 reg_class_contents of FLOAT_REGS into a temporary.
13391
6dfb529c 133922009-03-02 Richard Guenther <rguenther@suse.de>
962aae34 13393 Ira Rosen <irar@il.ibm.com>
6dfb529c
RG
13394
13395 PR tree-optimization/39318
13396 * tree-vect-transform.c (vectorizable_call): Transfer the EH region
13397 information to the vectorized statement.
13398
6b5629db
UB
133992009-03-01 Uros Bizjak <ubizjak@gmail.com>
13400
434426d2
UB
13401 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
13402 variable. Use defined names instead of magic constants for REX SSE
13403 registers.
6b5629db 13404
14e5b285
RG
134052009-03-01 Richard Guenther <rguenther@suse.de>
13406
13407 PR tree-optimization/39331
13408 * omp-low.c (lower_send_shared_vars): Do not receive new
13409 values for the reference of DECL_BY_REFERENCE parms or results.
13410
526d73ab
JH
134112009-03-01 Jan Hubicka <jh@suse.cz>
13412
13413 PR debug/39267
13414 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
13415 BLOCK_NONLOCALIZED_VAR): New macros.
13416 (tree_block): Add nonlocalized_vars.
f4ea99bd
EB
13417 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
13418 gen_decl_die): Add origin argument. Allow generation of die with
13419 origin at hand only.
526d73ab 13420 (gen_member_die, gen_type_die_with_usage, force_decl_die,
f4ea99bd
EB
13421 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
13422 of gen_*.
526d73ab
JH
13423 (gen_block_die): Fix checking for unused blocks.
13424 (process_scope_var): Break out from .... ; work with origins only.
13425 (decls_for_scope) ... here; process nonlocalized list.
13426 (dwarf2out_ignore_block): Look for nonlocalized vars.
f4ea99bd
EB
13427 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
13428 vars.
526d73ab
JH
13429 (dump_scope_block): Dump them.
13430 * tree-inline.c (remap_decls): Handle nonlocalized vars.
13431 (remap_block): Likewise.
13432 (can_be_nonlocal): New predicate.
13433 (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
13434
7a9d3fe8
RW
134352009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13436
13437 * configure: Regenerate.
13438
b3cdf3cb
RW
134392009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13440
a16d1645 13441 * optc-gen.awk: No need to duplicate option flags twice.
9ade279b 13442 Reuse help texts for duplicate options which do not have any.
a16d1645 13443
1156c176
RW
13444 * gcc.c (display_help): Document --version.
13445
033505fc
RW
13446 * gcc.c (main): If print_help_list and verbose_flag, ensure
13447 driver output comes before subprocess output.
13448
4d077054
RW
13449 * optc-gen.awk: Assign all remaining fields to help string,
13450 space-separated, for multi-line help in *.opt.
13451
a072f1cf
RW
13452 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
13453 -Wno-pedantic-ms-format is for MinGW targets only.
13454
b3cdf3cb
RW
13455 * doc/options.texi (Option file format): Fix bad indentation,
13456 restoring dropped sentence.
13457
a3aadcc5
JH
134582009-02-28 Jan Hubicka <jh@suse.cz>
13459
13460 * tree-inline.c (tree_function_versioning): Output debug info.
13461
1cf5abb3
JH
134622009-02-28 Jan Hubicka <jh@suse.cz>
13463
13464 PR debug/39267
13465 * tree-inline.c (setup_one_parameter): Do not copy propagate
13466 arguments when not optimizing.
13467
c4d3f42f
L
134682009-02-28 H.J. Lu <hongjiu.lu@intel.com>
13469
13470 PR target/39327
13471 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
13472 (avx_addsubv4df3): Likewise.
13473 (*avx_addsubv4sf3): Likewise.
13474 (sse3_addsubv4sf3): Likewise.
13475 (*avx_addsubv2df3): Likewise.
13476 (sse3_addsubv2df3): Likewise.
13477 (avx_unpckhps256): Correct item selectors.
13478 (avx_unpcklps256): Likewise.
13479 (avx_unpckhpd256): Likewise.
13480 (avx_unpcklpd256): Likewise.
13481
eb50f5f4
JH
134822009-02-28 Jan Hubicka <jh@suse.cz>
13483
13484 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
13485 static vars.
13486 (copy_arguments_for_versioning): If var is declared don't declare it.
13487 (tree_function_versioning): First setup substitutions and then copy
13488 args.
13489
26140130
JH
134902009-02-27 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
cff7525f
JH
135042009-02-27 Jan Hubicka <jh@suse.cz>
13505
13506 PR debug/39267
13507 * tree.h (TREE_PROTECTED): Fix comment.
13508 (BLOCK_HANDLER_BLOCK): Remove.
13509 (struct tree_block): Remove handler_block add body_block.
13510 (inlined_function_outer_scope_p): New.
13511 (is_body_block): Remove.
13512 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
13513 * dwarf2out.c (is_inlined_entry_point): Remove.
13514 (add_high_low_attributes): Use inlined_function_outer_scope_p.
f10a1c6c
EB
13515 (gen_block_die): Use is_inlined_entry_point check. Remove body block
13516 code.
cff7525f
JH
13517 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
13518 * gimplify.c (gimplify_expr): Gimplify body blocks.
f10a1c6c
EB
13519 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
13520 block with multiple subblocks.
cff7525f
JH
13521 (dump_scope_block): Prettier output; dump more flags and info.
13522 (dump_scope_blocks): New.
13523 (remove_unused_locals): Use dump_scope_blocks.
13524 * tree-flow.h (dump_scope_blocks): Declare.
13525 * tree-cfg.c (execute_build_cfg): Dump scope blocks.
13526 * stmt.c (is_body_block): Remove.
13527 * tree-inline.c (remap_block): Copy BODY_BLOCK info.
13528 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
13529
c20993b9
SP
135302009-02-27 Sebastian Pop <sebastian.pop@amd.com>
13531
13532 PR middle-end/39308
2ba9daa7 13533 * graphite.c (graphite_loop_normal_form): Do not call
c20993b9
SP
13534 number_of_iterations_exit from a gcc_assert.
13535
e3cba5e5
AK
135362009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13537
60839f5d 13538 * config/s390/s390.c (s390_swap_cmp): Look for conditional
e3cba5e5
AK
13539 jumps if COND is NULL.
13540 (find_cond_jump): New function.
13541 (s390_z10_optimize_cmp): Handling for reg-reg compares added.
60839f5d 13542 * config/s390/s390.md: Remove z10_cobra attribute value.
e3cba5e5 13543
9dadeeb8
UB
135442009-02-26 Uros Bizjak <ubizjak@gmail.com>
13545
13546 * config/alpha/alpha.h (alpha_expand_mov): Return false if
13547 force_const_mem returns NULL_RTX.
13548
625d3251
EB
135492009-02-26 Jan Hubicka <jh@suse.cz>
13550
13551 PR debug/39267
13552 * cgraph.h (varpool_output_debug_info): Remove.
13553 * cgraphunit.c (varpool_output_debug_info): Remove.
13554 * dwarf2out.c (deferred_locations_struct): New struct
13555 (deferred_locations): New type.
13556 (deferred_locations_list): New static var.
13557 (deffer_location): New function.
13558 (gen_variable_die): Use it.
13559 (decls_for_scope): Output info on local static vars.
13560 (dwarf2out_finish): Process deferred locations.
13561 * varpool.c (varpool_output_debug_info): Remove.
13562
38432148 135632009-02-25 H.J. Lu <hongjiu.lu@intel.com>
8592acaf
L
13564
13565 PR rtl-optimization/39241
13566 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
13567 to subreg_offset_representable_p.
13568
62d049cf
PB
135692009-02-25 Paolo Bonzini <bonzini@gnu.org>
13570
13571 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
13572 execute function prototype. Get f and nregs from max_reg_num
13573 and get_insns. Remove the first backward pass as it's dead,
13574 guard the forward pass by flag_expensive_optimizations.
13575 (rest_of_handle_regmove): Delete.
13576 (pass_regmove): Replace it with regmove_optimize.
13577
f618d33e
MJ
135782009-02-25 Martin Jambor <mjambor@suse.cz>
13579
13580 PR tree-optimization/39259
13581 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
6c6094f1 13582 calls_alloca function flags.
f618d33e
MJ
13583 (copy_bb): Set calls_setjmp and alls_alloca function flags if such
13584 calls are detected.
13585
c8a05f7c
PB
135862009-02-25 Paolo Bonzini <bonzini@gnu.org>
13587
13588 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
13589 flags_set_1_rtx, flags_set_1_set): Delete.
13590 (regmove_optimize): Do not call mark_flags_life_zones.
13591
6d2538f5
JB
135922009-02-24 Julian Brown <julian@codesourcery.com>
13593
13594 PR target/35965
13595 * config/arm/arm.c (require_pic_register): Only set
13596 cfun->machine->pic_reg once per function.
13597
a2fa6772
SL
135982009-02-24 Sandra Loosemore <sandra@codesourcery.com>
13599
13600 * doc/invoke.texi (Link Options): Document an easier way to pass
9dadeeb8 13601 options that take arguments to the GNU linker using -Xlinker and -Wl.
a2fa6772 13602
5472de36
SE
136032009-02-24 Steve Ellcey <sje@cup.hp.com>
13604
13605 PR target/33785
13606 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
13607
844216f3
RG
136082009-02-24 Richard Guenther <rguenther@suse.de>
13609
13610 PR debug/39285
13611 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
13612
71adbef3 136132009-02-24 Richard Guenther <rguenther@suse.de>
8592acaf 13614 Zdenek Dvorak <ook@ucw.cz>
71adbef3
RG
13615
13616 PR tree-optimization/39233
13617 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
13618 from converting them to a generic type.
13619
f1a558e0
SP
136202009-02-23 Sebastian Pop <sebastian.pop@amd.com>
13621
13622 PR tree-optimization/39260
13623 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
13624 contains a condition with a real type.
13625 (build_scop_conditions_1): Conditions are always last_stmt of a bb.
13626
d8028f2c
JM
136272009-02-23 Jason Merrill <jason@redhat.com>
13628
13629 PR c++/38880
13630 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
13631 narrowing_initializer_constant_valid_p.
2ba9daa7 13632 (narrowing_initializer_constant_valid_p): Don't return
d8028f2c
JM
13633 null_pointer_node for adding a pointer to itself.
13634
9283b513
JH
136352009-02-23 Jan Hubicka <jh@suse.cz>
13636
13637 PR c/12245
9dadeeb8
UB
13638 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
13639 resizing.
9283b513 13640
61e04322
JH
136412009-02-23 Jan Hubicka <jh@suse.cz>
13642
9dadeeb8
UB
13643 PR tree-optimization/37709
13644 * tree.c (block_ultimate_origin): Move here from dwarf2out.
13645 * tree.h (block_ultimate_origin): Declare.
13646 * dwarf2out.c (block_ultimate_origin): Move to tree.c
61e04322
JH
13647 * tree-ssa-live.c (remove_unused_scope_block_p):
13648 Eliminate blocks containig no instructions nor live variables nor
13649 nested blocks.
13650 (dump_scope_block): New function.
13651 (remove_unused_locals): Enable removal of dead blocks by default;
9dadeeb8 13652 enable dumping at TDF_DETAILS.
61e04322 13653
38432148 136542009-02-21 H.J. Lu <hongjiu.lu@intel.com>
5339d3ea
L
13655
13656 * config/i386/i386.c (classify_argument): Don't allow COImode
13657 and OImode.
13658 (function_arg_advance_32): Don't allow OImode.
13659 (function_arg_32): Likewise.
13660 (function_value_32): Likewise.
13661 (return_in_memory_32): Likewise.
13662 (function_arg_64): Remove OImode comment.
13663
38432148 136642009-02-21 H.J. Lu <hongjiu.lu@intel.com>
f161e158
L
13665
13666 PR target/39261
13667 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
13668 ix86_expand_vector_set for V4DImode in 64bit mode only.
13669 (ix86_expand_vector_init_one_var): Likewise.
13670
dcd739a6
SP
136712009-02-21 Sebastian Pop <sebastian.pop@amd.com>
13672
13673 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
13674
6c3b938d
RS
136752009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
13676
8e361f23 13677 PR bootstrap/39257
6c3b938d
RS
13678 * loop-iv.c: Revert last change.
13679 * emit-rtl.c: Likewise.
13680
38432148 136812009-02-21 H.J. Lu <hongjiu.lu@intel.com>
4c64d3dd
L
13682
13683 PR target/39256
13684 * config/i386/i386.c (type_natural_mode): Remove an extra
13685 space in the warning message.
13686 (function_value_32): Handle 32-byte vector modes.
13687 (return_in_memory_32): Likewise.
13688
2ec62529
RS
136892009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
13690
13691 * loop-iv.c (truncate_value): New function.
13692 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
13693 of lowpart_subreg.
13694 (lowpart_subreg): Move to...
13695 * emit-rtl.c: ...here.
13696
ecb8c3cc 136972009-02-21 Danny Smith <dannysmith@users.sourceforge.net>
f814e489 13698
ecb8c3cc
DS
13699 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
13700 accidental and undocumented change at revision 140860.
13701
ae46a823
JM
137022009-02-21 Joseph Myers <joseph@codesourcery.com>
13703
13704 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
13705 take gimple_seq * arguments.
13706 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
13707 types_compatible_p langhook.
13708
07d8efe3 137092009-02-20 Mark Mitchell <mark@codesourcery.com>
f814e489 13710 Joseph Myers <joseph@codesourcery.com>
07d8efe3
MM
13711
13712 * config/arm/arm.c (arm_builtin_va_list): New function.
13713 (arm_expand_builtin_va_start): Likewise.
13714 (arm_gimplify_va_arg_expr): Likewise.
13715 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
13716 (TARGET_BUILD_BUILTIN_VA_START): Likewise.
13717 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
13718 (va_list_type): New variable.
13719 (arm_mangle_type): Mangle va_list_type appropriately.
13720
b1fb9f56
JJ
137212009-02-20 Jakub Jelinek <jakub@redhat.com>
13722
13723 PR middle-end/39157
13724 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
13725 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
13726 * params.def (loop-invariant-max-bbs-in-loop): New parameter.
13727 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
13728 parameter to 1000 for -O1 by default.
13729 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
13730 parameter.
13731 * loop-invariant.c: Include params.h.
13732 (move_loop_invariants): Don't call move_single_loop_invariants on
13733 very large loops.
13734
5bc0807c
JM
137352009-02-20 Jaka Mocnik <jaka@xlab.si>
13736
13737 * calls.c (emit_library_call_value_1): Use slot_offset instead of
13738 offset when calculating bounds for indexing stack_usage_map. Fixes
13739 a buffer overflow with certain target setups.
13740
c69cd1f5
JJ
137412009-02-20 Jakub Jelinek <jakub@redhat.com>
13742
13743 PR target/39240
13744 * calls.c (expand_call): Clear try_tail_call if caller and callee
13745 disagree in promotion of function return value.
13746
09812622
JJ
137472009-02-19 Jakub Jelinek <jakub@redhat.com>
13748
13749 PR target/39175
13750 * c-common.c (c_determine_visibility): If visibility changed and
13751 DECL_RTL has been already set, call make_decl_rtl to update symbol
13752 flags.
13753
68017cb4
L
137542009-02-19 H.J. Lu <hongjiu.lu@intel.com>
13755
13756 PR c++/39188
13757 * varasm.c (assemble_variable): Don't check DECL_NAME when
13758 globalizing a variable.
13759
ab4194da
JM
137602009-02-19 Joseph Myers <joseph@codesourcery.com>
13761
13762 PR c/38483
13763 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
13764 expression before any __builtin_trap call.
13765 * c-typeck.c (build_function_call): Convert and check function
13766 arguments before generating a call to a trap. Evaluate the
13767 function arguments before the trap.
13768
6b67572e
UB
137692009-02-19 Uros Bizjak <ubizjak@gmail.com>
13770
13771 PR target/39228
13772 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
13773 (UNSPEC_FXAM_MEM): New unspec.
13774 (fxam<mode>2_i387_with_temp): New insn and split pattern.
13775 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
13776 memory using fxam<mode>2_i387_with_temp to remove excess precision.
13777
9e39dba6
RG
137782009-02-19 Richard Guenther <rguenther@suse.de>
13779
13780 PR tree-optimization/39207
13781 PR tree-optimization/39074
13782 * tree-ssa-structalias.c (storedanything_id, var_storedanything,
13783 storedanything_tree): New.
13784 (do_ds_constraint): Simplify ANYTHING shortcutting. Update
6b67572e 13785 the STOREDANYTHING solution if the lhs solution contains ANYTHING.
9e39dba6
RG
13786 (build_succ_graph): Add edges from STOREDANYTHING to all
13787 non-direct nodes.
13788 (init_base_vars): Initialize STOREDANYTHING.
13789 (compute_points_to_sets): Free substitution info after
13790 building the succ graph.
13791 (ipa_pta_execute): Likewise.
13792
13793 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
13794 field.
13795 (do_ds_constraint): Do not add to special var or non-pointer
13796 field solutions.
13797 (type_could_have_pointers): Split out from ...
13798 (could_have_pointers): ... here. For arrays use the element type.
13799 (create_variable_info_for): Initialize may_have_pointers.
13800 (new_var_info): Likewise.
13801 (handle_lhs_call): Make the HEAP variable unknown-sized.
13802 (intra_create_variable_infos): Use a type with pointers for
13803 PARM_NOALIAS, make it unknown-sized.
13804
fd7b2603
L
138052009-02-18 H.J. Lu <hongjiu.lu@intel.com>
13806
13807 PR target/39224
6b67572e 13808 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
fd7b2603 13809
98b80692
JM
138102009-02-18 Jason Merrill <jason@redhat.com>
13811
13812 PR target/39179
13813 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
13814 value if DECL_EXTERNAL.
13815 * tree-sra.c (sra_walk_gimple_assign): Likewise.
13816 * target.h (gcc_target::binds_local_p): Clarify "module".
13817 * tree.h (TREE_PUBLIC): Clarify "module".
13818
0705d3f4
L
138192009-02-17 Xuepeng Guo <xuepeng.guo@intel.com>
13820
13821 PR target/38891
13822 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
13823 initialization for MS_ABI prior to the hunk of !TARGET_MMX.
13824
bce08d50
L
138252009-02-17 H.J. Lu <hongjiu.lu@intel.com>
13826
13827 PR target/39082
13828 * c.opt (Wabi): Support C and ObjC.
13829 (Wpsabi): New.
13830
13831 * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
13832
13833 * config/i386/i386.c (classify_argument): Warn once about the ABI
13834 change when passing union with long double.
13835
13836 * doc/invoke.texi: Update -Wabi for warning psABI changes.
13837
5600f233
JM
138382009-02-18 Joseph Myers <joseph@codesourcery.com>
13839
13840 PR c/35447
13841 * c-parser.c (c_parser_compound_statement): Always enter and leave
13842 a scope.
13843
8cd01fe6
JDA
138442009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13845
13846 PR target/34587
13847 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
13848
418df9d7
JJ
138492009-02-18 Jakub Jelinek <jakub@redhat.com>
13850
13851 PR tree-optimization/36922
13852 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
13853 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
13854 Likewise.
13855
082d2ebb
RS
138562009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
13857
13858 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
13859 to 0 for EABI64.
13860
17de576c
RS
138612009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
13862
13863 * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
13864
6d8d5435
RS
138652009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
13866
13867 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
13868 tree sharing.
13869
e69ff910
RB
138702009-02-17 Ruan Beihong <ruanbeihong@gmail.com>
13871 Richard Sandiford <rdsandiford@googlemail.com>
13872
13873 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
13874 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
13875 (loongson_biadd): ...this.
13876
6b24ee26
RG
138772009-02-17 Richard Guenther <rguenther@suse.de>
13878
13879 PR tree-optimization/39202
13880 * tree-ssa-structalias.c (do_structure_copy): Before collapsing
13881 a var make sure to follow existing collapses.
13882
91ab2c86
RG
138832009-02-17 Richard Guenther <rguenther@suse.de>
13884
13885 PR middle-end/39214
13886 * langhooks.c (lhd_print_error_function): Check for NULL block.
13887
73a63870
RG
138882009-02-17 Richard Guenther <rguenther@suse.de>
13889
13890 PR tree-optimization/39204
13891 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
13892 of the PHI arg.
13893
0e08f686
UB
138942009-02-17 Uros Bizjak <ubizjak@gmail.com>
13895
13896 * config/soft-fp/double.h: Update from glibc CVS.
13897
a60b7ddb
RG
138982009-02-17 Richard Guenther <rguenther@suse.de>
13899
13900 PR tree-optimization/39207
13901 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
13902 strict-aliasing warnings for pointers pointing to NULL.
13903
a47e20fd
JM
139042009-02-16 Joseph Myers <joseph@codesourcery.com>
13905
13906 PR c/35446
13907 * c-parser.c (c_parser_braced_init): Call pop_init_level when
13908 skipping until next close brace.
13909
50aab7dc
L
139102009-02-16 H.J. Lu <hongjiu.lu@intel.com>
13911
13912 PR target/37049
13913 * config/i386/i386.c (ix86_expand_push): Set memory alignment
13914 to function argument boundary.
13915
68e53db0
HS
139162009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com>
13917
13918 * config/picochip/picochip.md (lea_add): Allow any nonimmediate
13919 in the lea_add. Reload eventually constraints it properly.
0d50d55a 13920 * config/picochip/constraints.md: Remove the target constraint
68e53db0
HS
13921 "b", since it is not needed anymore.
13922
09e361bb
JJ
139232009-02-16 Jakub Jelinek <jakub@redhat.com>
13924
13925 * gthr-dce.h: Uglify function parameter and local variable names.
13926 * gthr-gnat.h: Likewise.
13927 * gthr-mipssde.h: Likewise.
13928 * gthr-nks.h: Likewise.
13929 * gthr-posix95.h: Likewise.
13930 * gthr-posix.h: Likewise.
13931 * gthr-rtems.h: Likewise.
13932 * gthr-single.h: Likewise.
13933 * gthr-solaris.h: Likewise.
13934 * gthr-tpf.h: Likewise.
13935 * gthr-vxworks.h: Likewise.
13936 * gthr-win32.h: Likewise.
13937
47f5a48f
L
139382009-02-15 H.J. Lu <hongjiu.lu@intel.com>
13939
13940 PR target/39196
13941 * config/i386/i386.md: Restrict the new peephole2 to move
13942 between MMX/SSE registers.
13943
68c9ab45
RG
139442009-02-15 Richard Guenther <rguenther@suse.de>
13945
13946 Revert
13947 2009-02-13 Richard Guenther <rguenther@suse.de>
13948
13949 * configure.ac: Enable LFS.
13950 * configure: Re-generate.
13951 * config.in: Likewise.
13952
d7815554
UW
139532009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13954
13955 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
13956 spu_srqwbyte, spu_srqwbytebc): Define.
13957 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
13958 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
13959 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
13960 "shrqby_<mode>"): New insn-and-split patterns.
13961 * config/spu/spu.c (expand_builtin_args): Determine and return
13962 number of operands using spu_builtin_description data.
13963 (spu_expand_builtin_1): Use it.
13964
c208436c
SE
139652009-02-13 Steve Ellcey <sje@cup.hp.com>
13966
13967 PR target/38056
13968 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
13969 TARGET_CONST_GP.
13970
c2e7ba7e
L
139712009-02-13 H.J. Lu <hongjiu.lu@intel.com>
13972
13973 PR target/39149
13974 * config/i386/i386.c (override_options): Correct warning
6c6094f1 13975 messages for -malign-loops, -malign-jumps and -malign-functions.
c2e7ba7e 13976
72f4e3a7
L
139772009-02-13 H.J. Lu <hongjiu.lu@intel.com>
13978
13979 PR target/39152
13980 * config/i386/i386.md: Restrict the new peephole2 to move
13981 between the general purpose registers.
13982
53f648e2
L
139832009-02-13 H.J. Lu <hongjiu.lu@intel.com>
13984
13985 PR target/39162
13986 * config/i386/i386.c (type_natural_mode): Add a new argument.
6b67572e 13987 Return the original mode and warn ABI change if vector size is 32byte.
53f648e2
L
13988 (function_arg_advance): Updated.
13989 (function_arg): Likewise.
13990 (ix86_function_value): Likewise.
13991 (ix86_return_in_memory): Likewise.
13992 (ix86_sol10_return_in_memory): Likewise.
13993 (ix86_gimplify_va_arg): Likewise.
13994 (function_arg_32): Don't warn ABX ABI change here.
13995 (function_arg_64): Likewise.
13996
38432148 139972009-02-13 Bernd Schmidt <bernd.schmidt@analog.com>
b1c92d54
BS
13998
13999 * loop-iv.c (implies_p): In the final case, test that operands 0
14000 of the two comparisons match.
14001
dd2139e7
BS
14002 * config/bfin/bfin.c (find_prev_insn_start): New function.
14003 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
14004 (find_next_insn_start): Move.
14005
601b3e1a
RG
140062009-02-13 Richard Guenther <rguenther@suse.de>
14007
14008 * configure.ac: Enable LFS.
14009 * configure: Re-generate.
14010 * config.in: Likewise.
14011
f007042e
JM
140122009-02-13 Joseph Myers <joseph@codesourcery.com>
14013
14014 PR c/35444
14015 * c-parser.c (c_parser_parms_list_declarator): Discard pending
14016 sizes on syntax error after some arguments have been parsed.
14017
3f238e8b
JJ
140182009-02-12 Jakub Jelinek <jakub@redhat.com>
14019
14020 * doc/invoke.texi (-fira): Remove.
14021
328e13b7
L
140222009-02-12 H.J. Lu <hongjiu.lu@intel.com>
14023
14024 * caller-save.c: Replace regclass.c with reginfo.c in comments.
14025 * recog.c: Likewise.
14026 * rtl.h: Likewise.
14027
c252db20
L
140282009-02-12 Uros Bizjak <ubizjak@gmail.com>
14029
14030 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
14031 (umul_ppmm): Likewise.
14032 (count_leading_zeros): Likewise.
14033 (count_trailing_zeros): Likewise.
14034 (UMUL_TIME): Likewise.
14035
140362009-02-12 H.J. Lu <hongjiu.lu@intel.com>
14037
ba181049
UB
14038 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
14039 soft-fp/t-softfp to tmake_file.
c252db20
L
14040
14041 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
ba181049
UB
14042 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
14043 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
14044 IA64_BUILTIN_INFQ]: New.
c252db20
L
14045 (ia64_init_builtins): Initialize __builtin_infq,
14046 __builtin_fabsq and __builtin_copysignq if not HPUX.
14047 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
14048 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
14049
14050 * config/ia64/lib1funcs.asm (__divtf3): Define only if
14051 SHARED is defined.
14052 (__fixtfti): Likewise.
14053 (__fixunstfti): Likewise.
14054 (__floattitf): Likewise.
14055
14056 * config/ia64/libgcc-glibc.ver: New.
14057 * config/ia64/t-fprules-softfp: Likewise.
14058 * config/ia64/sfp-machine.h: Likewise.
14059
14060 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
14061 (LIBGCC2_TF_CEXT): Likewise.
14062 (TF_SIZE): Likewise.
14063 (TARGET_INIT_LIBFUNCS): Likewise.
14064
ba181049 14065 * config/ia64/t-glibc (SHLINB_MAPFILES):
6b67572e 14066 Add $(srcdir)/config/ia64/libgcc-glibc.ver.
c252db20 14067
f13eae6a
L
140682009-02-12 H.J. Lu <hongjiu.lu@intel.com>
14069
14070 * config/i386/i386.c (construct_container): Rewrite processing
14071 BLKmode with X86_64_SSE_CLASS.
14072
12019aec
L
140732009-02-12 Paolo Bonzini <bonzini@gnu.org>
14074
14075 PR target/39152
14076 * config/i386/i386.md: Replace simplify_replace_rtx with
14077 replace_rtx in the new peephole2.
14078
28c11eb3
NS
140792009-02-12 Nathan Sidwell <nathan@codesourcery.com>
14080
14081 * doc/invoke.texi (Optimize Options): Stop claiming inlining and
14082 loop unrolling do not happen at -O2.
14083
c7b94907
MM
140842009-02-12 Michael Matz <matz@suse.de>
14085
14086 * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
14087
61e98967
JJ
140882009-02-12 Jakub Jelinek <jakub@redhat.com>
14089
14090 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
14091 for -g3.
14092
a2a237b5
BE
140932009-02-12 Ben Elliston <bje@au.ibm.com>
14094
14095 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
14096 patterns when updating the back chain. Missed in the 2009-02-10
14097 change.
14098
853eda8d
JJ
140992009-02-11 Janis Johnson <janis187@us.ibm.com>
14100
14101 * doc/extend.texi (Decimal Floating Types): Update identifier of
14102 draft TR and list of missing support.
14103
3ad6b266
JJ
141042009-02-11 Jakub Jelinek <jakub@redhat.com>
14105
14106 PR middle-end/39154
14107 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
14108 bit to variable length decl's flags, add it also to its
14109 pointer replacement variable.
14110
b058b753
UB
141112009-02-11 Uros Bizjak <ubizjak@gmail.com>
14112 Jakub Jelinek <jakub@redhat.com>
14113
14114 PR target/39118
14115 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
14116 (memory_blockage): New expander.
14117 (*memory_blockage): New insn pattern.
14118 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
14119 instead of general blockage at the end of function prologue when
14120 frame pointer is used to access red zone area. Do not emit blockage
14121 when profiling, it is emitted in generic code.
14122 (ix86_expand_epilogue): Emit memory_blockage at the beginning of
14123 function epilogue when frame pointer is used to access red zone area.
14124
bab64f23
PB
141252009-02-11 Paolo Bonzini <bonzini@gnu.org>
14126
0ce6dcfa 14127 PR target/38824
bab64f23
PB
14128 * config/i386/i386.md: Add two new peephole2 to avoid mov followed
14129 by arithmetic with memory operands.
14130 * config/i386/predicates.md (commutative_operator): New.
14131
8fd94bda
JJ
141322009-02-10 Janis Johnson <janis187@us.ibm.com>
14133
14134 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
14135 bulleted lists.
14136
794511d2
EB
141372009-02-10 Eric Botcazou <ebotcazou@adacore.com>
14138
14139 * alias.h (record_alias_subset): Declare.
14140 * alias.c (record_alias_subset): Make global.
14141
6da7fc87
NC
141422009-02-10 Nick Clifton <nickc@redhat.com>
14143
14144 * tree-parloops.c: Change license to GPLv3.
14145 * ipa-struct-reorg.c: Change license to GPLv3.
14146 * ipa-struct-reorg.h: Change license to GPLv3.
14147
a03813c8
SE
141482009-02-10 Steve Ellcey <sje@cup.hp.com>
14149
14150 PR c/39084
14151 * c-decl.c (start_struct): Return NULL on error.
14152
fc3103e7
JJ
141532009-02-10 Jakub Jelinek <jakub@redhat.com>
14154
9b43d37b
JJ
14155 PR middle-end/39124
14156 * cfgloopmanip.c (remove_path): Call remove_bbs after
14157 cancel_loop_tree, not before it.
14158
fc3103e7 14159 PR target/39139
b058b753 14160 * function.h (struct function): Add has_local_explicit_reg_vars bit.
fc3103e7
JJ
14161 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
14162 VAR_DECLs were seen.
14163 * tree-ssa-live.c (remove_unused_locals): Recompute
14164 cfun->has_local_explicit_reg_vars.
14165 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
14166 copies or clearings if cfun->has_local_explicit_reg_vars.
14167
dbf9ee15
UB
141682009-02-10 Uros Bizjak <ubizjak@gmail.com>
14169
14170 PR target/39118
14171 * config/i386/i386.c (expand_prologue): Emit blockage at the end
14172 of function prologue when frame pointer is used to access
14173 red zone area.
14174
bdec4dc7
RG
141752009-02-10 Richard Guenther <rguenther@suse.de>
14176
14177 PR middle-end/39127
14178 * gimplify.c (gimple_regimplify_operands): Always look if
14179 we need to create a temporary.
14180
7cae94fc
RG
141812009-02-10 Richard Guenther <rguenther@suse.de>
14182
14183 PR tree-optimization/39132
14184 * tree-loop-distribution.c (todo): New global var.
14185 (generate_memset_zero): Trigger TODO_rebuild_alias.
14186 (tree_loop_distribution): Return todo.
14187
a8800687
L
141882009-02-10 H.J. Lu <hongjiu.lu@intel.com>
14189
14190 PR target/39119
14191 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
14192 (x86_64_reg_class_name): Removed.
14193 (classify_argument): Return 0 if bytes > 32. Return 0 if the
14194 first one isn't X86_64_SSE_CLASS or any other ones aren't
14195 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn
14196 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
14197 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS
14198 and 3 X86_64_SSEUP_CLASS.
14199 (construct_container): Remove X86_64_AVX_CLASS. Handle 4
14200 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
14201
d4bacef0
BE
142022009-02-10 Ben Elliston <bje@au.ibm.com>
14203
14204 * config/rs6000/rs6000.md (allocate_stack): Always use an update
14205 form instruction to update the stack back chain word, even if the
14206 user has disabled the generation of update instructions.
14207 (movdi_<mode>_update_stack): New.
14208 (movsi_update_stack): Likewise.
14209 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
14210 always use an update form instruction to update the stack back
14211 chain word.
14212
01d7d2f3
SP
142132009-02-09 Sebastian Pop <sebastian.pop@amd.com>
14214
14215 PR middle-end/38953
b058b753
UB
14216 * graphite.c (if_region_set_false_region): After moving a region in
14217 the false branch of a condition, remove the empty dummy basic block.
01d7d2f3
SP
14218 (gloog): Remove wrong fix for PR38953.
14219
e41e2ab4
UW
142202009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14221
14222 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
14223 generation due to implicit sign extension.
14224
4bb07c5d
EB
142252009-02-09 Eric Botcazou <ebotcazou@adacore.com>
14226
14227 PR middle-end/38981
14228 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
14229 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
14230
f060a261
RG
142312009-02-09 Richard Guenther <rguenther@suse.de>
14232
14233 PR middle-end/35202
14234 * convert.c (convert_to_real): Disable (float)fn((double)x)
14235 to fnf(x) conversion if errno differences may occur and
14236 -fmath-errno is set.
14237
5a7e237c
AS
142382009-02-07 Anatoly Sokolov <aesok@post.ru>
14239
14240 * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
14241 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
14242 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
14243
feab5a67
JM
142442009-02-06 Joseph Myers <joseph@codesourcery.com>
14245
14246 PR c/35434
14247 * c-common.c (handle_alias_attribute): Disallow attribute for
14248 anything not a FUNCTION_DECL or VAR_DECL.
14249
90ef2296
JJ
142502009-02-06 Janis Johnson <janis187@us.ibm.com>
14251
14252 PR c/39035
14253 * real.c (do_compare): Special-case compare of zero against
14254 decimal float value.
14255
1de2c900
JM
142562009-02-06 Joseph Myers <joseph@codesourcery.com>
14257
14258 PR c/36432
14259 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
14260 as indicating flexible array members unless the field itself is
14261 being declarared as the incomplete array.
14262
e901811a
JH
142632009-02-06 Jan Hubicka <jh@suse.cz>
14264
14265 PR tree-optimization/38844
14266 * ipa-inline.c (try_inline): Stop inlining recursion when edge
14267 is already inlined.
14268
3cfa762b
RG
142692009-02-06 Richard Guenther <rguenther@suse.de>
14270
14271 PR middle-end/38977
14272 * tree-cfg.c (need_fake_edge_p): Force a fake edge for
14273 fork because we may expand it as __gcov_fork.
14274
8506528c
NC
142752009-02-06 Nick Clifton <nickc@redhat.com>
14276
dbf9ee15 14277 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
8506528c 14278
85169114
PB
142792009-02-06 Paolo Bonzini <bonzini@gnu.org>
14280
14281 PR tree-optimization/35659
14282 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
14283 vn_phi_eq): Shortcut if hashcode does not match.
14284 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
14285 NULL operands.
14286 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
14287 and avoid iterative_hash_expr.
14288 (FOR_EACH_VALUE_ID_IN_SET): New.
14289 (value_id_compare): Remove.
14290 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
14291 sort expressions by value id.
14292
6d39673d
KK
142932009-02-05 Kaz Kojima <kkojima@gcc.gnu.org>
14294
14295 PR target/38991
14296 * config/sh/predicates.md (general_movsrc_operand): Don't check
14297 the subreg of system registers here.
14298
e6e1c050
JJ
142992009-02-05 Jakub Jelinek <jakub@redhat.com>
14300
14301 PR c++/39106
14302 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
14303 on the copied decl.
14304
65a74b5d
PB
143052009-02-05 Paolo Bonzini <bonzini@gnu.org>
14306
14307 PR rtl-optimization/39110
14308 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
14309 addresses, not aligned ones.
14310
08e14b2a
DB
143112009-02-05 Daniel Berlin <dberlin@dberlin.org>
14312 Richard Guenther <rguenther@suse.de>
14313
14314 PR tree-optimization/39100
14315 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
14316 comment says and add edges.
14317
5006381c
JM
143182009-02-05 Joseph Myers <joseph@codesourcery.com>
14319
14320 PR c/35435
14321 * c-common.c (handle_tls_model_attribute): Ignore attribute for
14322 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
14323
2ba9daa7 143242009-02-04 Tobias Grosser <grosser@fim.uni-passau.de>
b0789219
TG
14325
14326 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
14327 sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
14328 register_bb_in_sese, new_sese, free_sese): Moved.
14329 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
14330 outermost_loop_in_scop, build_scop_iteration_domain,
14331 expand_scalar_variables_ssa_name, get_vdef_before_scop,
14332 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
14333 Use loop_in_sese_p instead of loop_in_scop_p.
14334 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
14335 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
14336 (scopdet_basic_block_info): Fix bug in scop detection.
14337 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
14338 eq_loop_to_cloog_loop): Remove.
14339 (nb_loops_around_loop_in_scop, nb_loop
14340 ref_nb_loops): Moved here...
14341 * graphite.h (ref_nb_loops): ... from here.
14342 (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
14343 (loop_domain_dim, loop_iteration_vector_dim): Remove.
14344 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
14345 * testsuite/gcc.dg/graphite/scop-19.c: New
14346
48e8382e
PB
143472009-02-04 Paolo Bonzini <bonzini@gnu.org>
14348 Hans-Peter Nilsson <hp@axis.com>
14349
14350 PR rtl-optimization/37889
14351 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
14352 Move offset handling from PLUS to before the switch. Use new
14353 arguments when considering SYMBOL_REFs too.
14354 (rtx_addr_can_trap_p): Pass dummy offset and size.
14355 (enum may_trap_p_flags): Remove.
14356 (may_trap_p_1): Pass size from MEM_SIZE.
14357
14358 PR rtl-optimization/38921
14359 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
14360 * rtl.h (may_trap_after_code_motion_p): Delete prototype.
14361 * rtlanal.c (may_trap_after_code_motion_p): Delete.
14362 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
14363
69349ea5
L
143642009-02-04 H.J. Lu <hongjiu.lu@intel.com>
14365
14366 AVX Programming Reference (January, 2009)
14367 * config/i386/sse.md (*vpclmulqdq): New.
14368
b545e411
JJ
143692009-02-04 Jakub Jelinek <jakub@redhat.com>
14370
14371 PR tree-optimization/38977
14372 PR gcov-profile/38292
bf9b2cc9 14373 * calls.c (special_function_p): Disregard __builtin_ prefix.
b545e411 14374
5b43bf05
HS
143752009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com>
14376
14377 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
14378 non-indexable addresses even before reload.
14379
062c4bb3
JM
143802009-02-03 Joseph Myers <joseph@codesourcery.com>
14381
14382 PR c/29129
14383 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
14384 as having variable size. Do not give an error for unnamed
14385 parameters with [*] declarators. Give a warning for type names
14386 with [*] declarators and mark them as variable size.
14387 * c-parser.c (c_parser_sizeof_expression): Do not give an error
14388 for sizeof applied to [*] type names.
14389
6175f578
AP
143902009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
14391
14392 PR C++/36607
14393 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
14394
d4f4bc84
JJ
143952009-02-03 Jakub Jelinek <jakub@redhat.com>
14396
14397 * gcc.c (process_command): Update copyright notice dates.
14398 * gcov.c (print_version): Likewise.
14399 * gcov-dump.c (print_version): Likewise.
14400 * mips-tfile.c (main): Likewise.
14401 * mips-tdump.c (main): Likewise.
14402
f6294de7
JM
144032009-02-03 Joseph Myers <joseph@codesourcery.com>
14404
14405 PR c/35433
14406 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
14407 for composite type involving a zero-length array type.
14408
754ccf7c
JJ
144092009-02-03 Jakub Jelinek <jakub@redhat.com>
14410
70f16287
JJ
14411 PR target/35318
14412 * function.c (match_asm_constraints_1): Skip over
14413 initial optional % in the constraint.
14414
754ccf7c
JJ
14415 PR inline-asm/39059
14416 * c-parser.c (c_parser_postfix_expression): If fixed point is not
14417 supported, don't accept FIXED_CSTs.
14418 * c-decl.c (finish_declspecs): Error if fixed point is not supported
14419 and _Sat is used without _Fract/_Accum. Set specs->type to
14420 integer_type_node for cts_fract/cts_accum if fixed point is not
14421 supported.
14422
965fdadf
CM
144232009-02-02 Catherine Moore <clm@codesourcery.com>
14424
dbf9ee15 14425 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
965fdadf 14426
2e8a796f
RS
144272009-02-02 Richard Sandiford <rdsandiford@googlemail.com>
14428
14429 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
14430 (ABI_HAS_64BIT_SYMBOLS): Use it.
14431 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
14432
e0079468
PB
144332009-02-02 Paul Brook <paul@codesourcery.com>
14434
14435 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
14436
eca72963
JJ
144372009-02-02 Jakub Jelinek <jakub@redhat.com>
14438
14439 PR inline-asm/39058
14440 * recog.h (asm_operand_ok): Add constraints argument.
14441 * recog.c (asm_operand_ok): Likewise. If it is set, for digits
14442 recurse on matching constraint.
14443 (check_asm_operands): Pass constraints as 3rd argument to
14444 asm_operand_ok. Don't look up matching constraint here.
14445 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
14446 to asm_operand_ok.
14447
b5bde9ff
BE
144482009-02-02 Ben Elliston <bje@au.ibm.com>
14449
14450 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
14451 TARGET_NARROW_VOLATILE_BITFIELD macro names.
14452
30f3e427
JDA
144532009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14454
be7659ba
JDA
14455 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
14456 information. Remove some obsolete information. Reorganize.
14457
30f3e427
JDA
14458 * config/pa/fptr.c: Revert license to GPL 2.
14459 * config/pa/milli64.S: Likewise.
14460
3cbfaf98
DK
144612009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
14462
14463 PR target/38904
14464 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass
14465 LIBRARY name in, instead of hard-coding it.
14466 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an
14467 extra target make frag to tmake_files according to EH model.
14468 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
14469 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target
14470 frags that define makefile variable EH_MODEL appropriately.
14471 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment.
14472 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or
14473 to "-sjlj" according to type of EH configured.
14474 (LIBGCC_SONAME): Concatenate it to shared library base name.
14475 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or
14476 to "_sjlj" according to type of EH configured.
14477 (LIBGCC_SONAME): Concatenate it to shared library base name.
14478 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL.
14479 (SHLIB_LINK): Add missing semicolon to if-else construct.
14480 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
14481 string value of "pe_dll" command-line option.
14482 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper.
14483 (SHLIB_SONAME): Use it when overriding t-cygming default.
14484 (SHLIB_IMPLIB): Override t-cygming default.
14485 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
14486 string value of "pe_dll" command-line option.
14487
8d0b6068
DK
144882009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
14489
14490 PR target/38952
14491 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
bf9b2cc9 14492 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
8d0b6068 14493
14c28276
RG
144942009-01-31 Richard Guenther <rguenther@suse.de>
14495
14496 PR tree-optimization/38937
14497 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
14498 computing the transitive closure.
14499
5f4d82c2
RG
145002009-01-30 Richard Guenther <rguenther@suse.de>
14501
14502 PR tree-optimization/39041
14503 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
14504 Propagate variable indices only if the types match for this stmt.
14505
d0728ae0
JJ
145062009-01-30 Jakub Jelinek <jakub@redhat.com>
14507
14508 PR target/39013
14509 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
14510 inline but never defined.
14511
6b67572e 145122009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com>
9fec758d
WG
14513
14514 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
14515 (*insv_h_di_reg_extimm): New insn.
14516 (*insv_l<mode>_reg_extimm): New insn.
14517
145182009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
9e8be1e4
HS
14519
14520 * config/picochip/picochip.c (flag_conserve_stack): set
14521 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
14522 fconserve-stack. Reduce call-overhead used by inliner.
14523
9fec758d 145242009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
df9198ab
HS
14525
14526 PR/38157
14527 * common.opt (flag_conserve_stack): Initialised to zero.
14528
7f1c539c
KT
145292009-01-30 Kai Tietz <kai.tietz@onevision.com>
14530
14531 PR/39002
14532 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
14533 (ix86_expand_epilogue): Take nsseregs in account to use proper restore
14534 method.
14535
3631be48
L
145362009-01-29 H.J. Lu <hongjiu.lu@intel.com>
14537
14538 * ira-color.c (allocno_reload_assign): Update comments.
14539 * regmove.c (regmove_optimize): Likewise.
14540
14541 * ra.h: Removed.
14542
416ac4d4
RM
145432009-01-29 Robert Millan <rmh@aybabtu.com>
14544
60839f5d
EB
14545 * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
14546 * config/i386/kopensolaris-gnu.h: New file. Undefine
416ac4d4 14547 `MD_UNWIND_SUPPORT'.
60839f5d 14548 * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
416ac4d4 14549
d5e54bc1
KH
145502009-01-29 Kazu Hirata <kazu@codesourcery.com>
14551
14552 PR tree-optimization/39007
14553 * tree-loop-distribution.c (generate_builtin): Use
14554 recompute_dominator to compute the immediate dominator of the
14555 basic block just after the loop.
14556
38432148 145572009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
e9e077fa
RO
14558
14559 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
14560 (ASM_OUTPUT_DWARF_PCREL): Define.
14561
38432148 145622009-01-29 Vladimir Makarov <vmakarov@redhat.com>
2af2dbdc
VM
14563
14564 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
14565 * doc/passes.texi: Remove entries about regclass, local-alloc, and
14566 global. Modify entries about regmove and IRA.
14567
14568 * ra-conflict.c: Remove the file.
14569
14570 * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
14571
14572 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
14573 (pass_regclass_init): Rename to pass_reginfo_init.
14574
14575 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
14576
14577 * toplev.h (flag_ira): Remove.
14578
14579 * caller-save.c (setup_save_areas): Remove flag_ira.
14580
bf9b2cc9 14581 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
2af2dbdc
VM
14582
14583 * global.c: Remove the file.
14584
ba20e309 14585 * opts.c (decode_options): Remove flag_ira.
2af2dbdc
VM
14586
14587 * hard-reg-set.h (losing_caller_save_reg_set): Remove.
14588
14589 * regmove.c: Modify file description.
14590 (find_use_as_address, try_auto_increment): Define them only if
14591 AUTO_INC_DEC is defined.
14592 (replacement_quality, replace_in_call_usage, fixup_match_1,
14593 stable_and_no_regs_but_for_p): Remove.
14594 (reg_set_in_bb): Make it static.
14595 (regmove_optimize): Remove flag_ira and code which worked for
14596 !flag_ira.
14597
14598 * local-alloc.c: Remove the file.
14599
14600 * common.opt (fira): Remove.
14601
14602 * ira.c: Include except.h.
14603 (eliminable_regset): Move from global.c.
14604 (mark_elimination): Ditto. Remove flag_ira.
14605 (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
14606 equiv_mem_modified, validate_equiv_mem_from_store,
14607 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
14608 contains_replace_regs, memref_referenced_p, memref_used_between_p,
14609 no_equiv, recorded_label_ref): Move from local-alloc.c.
14610 (update_equiv_regs): Ditto. Make it static.
14611 (print_insn_chain, print_insn_chains): Move it from global.c.
bf9b2cc9 14612 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira.
2af2dbdc
VM
14613 (build_insn_chain): Ditto. Make it static.
14614 (ra_init_live_subregs): Move from ra-conflict.c. Make it static.
14615 Rename to init_live_subregs.
14616 (gate_ira): Remove flag_ira.
14617
14618 * regclass.c: Rename reginfo.c. Change file description.
14619 (FORBIDDEN_INC_DEC_CLASSES): Remove.
dbf9ee15 14620 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
2af2dbdc
VM
14621 (init_reg_sets_1): Remove code for evaluation of
14622 reg_class_superclasses and losing_caller_save_reg_set.
14623 (init_regs): Remove init_reg_autoinc.
14624 (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
14625 ok_for_base_p_nonstrict): Remove.
bf9b2cc9 14626 (regclass_init): Rename to reginfo_init. Don't initialize init_cost.
2af2dbdc
VM
14627 (pass_regclass_init): Rename to pass_reginfo_init. Modify
14628 corresponding entries.
14629 (dump_regclass, record_operand_costs, scan_one_insn,
14630 init_reg_autoinc, regclass, record_reg_classes, copy_cost,
14631 record_address_regs, auto_inc_dec_reg_p): Remove.
14632 (gt-regclass.h): Rename to gt-reginfo.h.
14633
14634 * rtl.h (dump_global_regs, retry_global_alloc,
bf9b2cc9 14635 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
2af2dbdc
VM
14636
14637 * Makefile.in (RA_H): Remove.
14638 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
14639 Rename regclass.o to reginfo.o.
14640 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to
14641 gt-reginfo.h.
14642 (global.o, local-alloc.o, ra-conflict.o): Remove entries.
14643 (GTFILES): Rename regclass.c to reginfo.c.
14644
14645 * passes.c (init_optimization_passes): Remove pass_local_alloc and
bf9b2cc9 14646 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init.
2af2dbdc
VM
14647
14648 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
14649 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
14650 Remove flag_ira.
6b67572e 14651 (finish_spills): Ditto. Remove code for !flag_ira.
2ba9daa7 14652
c95b2534 146532009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
00b251a0
KZ
14654
14655 PR middle-end/35854
14656 * doc/invoke.texi (rtl debug options): Complete rewrite.
14657 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
14658 to auto_inc_dec".
14659 * mode-switching.c (pass_mode_switching): Rename pass from
14660 "mode-sw" to "mode_sw".
14661 * except.c (pass_convert_to_eh_ranges): Rename pass from
14662 "eh-ranges" to "eh_ranges".
14663 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
14664 to "subreg1".
2ba9daa7
AS
14665
14666
72a54528
AM
146672009-01-29 Andrey Belevantsev <abel@ispras.ru>
14668 Alexander Monakov <amonakov@ispras.ru>
14669
14670 PR middle-end/38857
14671 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
14672 register.
14673 (move_exprs_to_boundary): Change return type and pass through
14674 should_move from move_op. Relax assert. Update usage ...
14675 (schedule_expr_on_boundary): ... here. Use should_move instead of
14676 cant_move.
14677 (move_op_orig_expr_found): Indicate that insn was disconnected from
14678 stream.
14679 (code_motion_process_successors): Do not call after_merge_succs
14680 callback if original expression was not found when traversing any of
14681 the branches.
14682 (code_motion_path_driver): Change return type. Update prototype.
14683 (move_op): Update comment. Add a new parameter (should_move). Update
14684 prototype. Set *should_move based on indication provided by
14685 move_op_orig_expr_found.
14686
001b9eb6
PH
146872009-01-28 Pat Haugen <pthaugen@us.ibm.com>
14688
14689 * doc/invoke.texi (avoid-indexed-addresses): Document new option.
14690 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
14691 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
14692 * config/rs6000/rs6000.c (rs6000_override_options): Default
14693 avoid-indexed-addresses on for Power6, off for everything else.
14694 (avoiding_indexed_address_p): New function.
14695 (rs6000_legitimize_address): Use it.
14696 (rs6000_legitimate_address): Likewise.
14697 * config/rs6000/rs6000.md (movXX_updateX): Likewise
14698
59dc4898
KH
146992009-01-28 Kazu Hirata <kazu@codesourcery.com>
14700
14701 PR tree-optimization/38997
14702 * tree-loop-distribution.c (generate_memset_zero): Use
14703 POINTER_PLUS_EXPR for a pointer addition.
14704
07da44ab
AK
147052009-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
14706
14707 * config/s390/s390.md (bswap<mode>2): New pattern added.
14708
cdc15d23
WG
147092009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
14710
14711 * config/s390/s390.md (*tls_load_31): Added type attribute.
14712
d46f24b6
WG
147132009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
14714
14715 * config/s390/s390.md: Fix a few comments.
14716
729e750f
WG
147172009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
14718
14719 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
14720 (*tm<mode>_full): Fixed z10prop attribute.
14721 (*tst<mode>_extimm): Fixed z10prop attribute.
14722 (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
14723 (*tstqiCCT_cconly): Fixed z10prop attribute.
14724 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
14725 (*movsi_larl): Fixed z10prop attribute.
14726 (*movsi_zarch): Fixed z10prop attribute.
14727 (*movsi_eas): Fixed z10prop attribute.
14728 (*movhi): Fixed z10prop attribute.
14729 (*movqi): Fixed z10prop attribute.
14730 (*movstrictqi): Fixed z10prop attribute.
14731 (*mov<mode>): Fixed z10prop attribute.
14732 (*movcc): Fixed z10prop attribute.
14733 (*sethighpartdi_64): Fixed z10prop attribute.
14734 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
14735 (*negdi2_sign_cc): Fixed z10prop attribute.
14736 (*negdi2_sign): Fixed z10prop attribute.
14737 (*absdi2_sign_cc): Fixed z10prop attribute.
14738 (*absdi2_sign): Fixed z10prop attribute.
14739 (*negabsdi2_sign_cc): Fixed z10prop attribute.
14740 (*negabsdi2_sign): Fixed z10prop attribute.
14741 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
14742 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
14743 (doloop_si64): Fixed z10prop attribute.
14744 (doloop_si31): Fixed z10prop attribute.
14745 (doloop_long): Fixed z10prop attribute.
14746 (indirect_jump): Fixed z10prop attribute.
14747 (nop): Fixed z10prop attribute.
14748 (main_base_64): Fixed z10prop attribute.
14749 (reload_base_64): Fixed z10prop attribute.
14750
c7789bfb
JJ
147512009-01-28 Jakub Jelinek <jakub@redhat.com>
14752
14753 PR rtl-optimization/38740
6b67572e
UB
14754 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
14755 if !optimize.
c7789bfb
JJ
14756 * config/mips/mips.c (mips_reorg): Likewise.
14757
de081cfd
RG
147582009-01-28 Richard Guenther <rguenther@suse.de>
14759
14760 PR tree-optimization/38926
14761 * tree-ssa-pre.c (add_to_value): Assert we add only expressions
14762 with the correct value id to a value.
14763 (do_regular_insertion): Use the value number of edoubleprime
14764 for the value number of the expr.
14765
14766 Revert
14767 2008-08-21 Richard Guenther <rguenther@suse.de>
bf9b2cc9 14768
d748c406
UB
14769 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
14770 a PHI ask VN if it is already available.
14771 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
14772 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
de081cfd 14773
a9d386a1
JJ
147742009-01-28 Jakub Jelinek <jakub@redhat.com>
14775
14776 PR middle-end/38934
14777 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
14778 set to varying whenever max has TREE_OVERFLOW set, similarly
14779 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
14780
97a170cd
RG
147812009-01-28 Richard Guenther <rguenther@suse.de>
14782
14783 PR middle-end/38908
14784 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
14785 uninitialized aggregate uses in call arguments.
14786
89ebafc6
PB
147872009-01-28 Paolo Bonzini <bonzini@gnu.org>
14788
14789 PR tree-optimization/38984
14790 * tree-ssa-structalias.c (get_constraints_for_1): Do not use
14791 the nothing_id variable if -fno-delete-null-pointer-checks.
14792
bef3c57b
UB
147932009-01-28 Uros Bizjak <ubizjak@gmail.com>
14794
14795 PR target/38988
14796 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
14797 (set_got_offset_rex64): Ditto.
14798
0c6390fa
L
147992009-01-27 H.J. Lu <hongjiu.lu@intel.com>
14800
14801 PR target/38941
14802 * doc/extend.texi: Improve local variable with asm reg.
14803
bee6fa6d
AN
148042009-01-27 Adam Nemet <anemet@caviumnetworks.com>
14805
14806 * c.opt (Wpacked-bitfield-compat): Change init value to -1.
14807 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
14808 was not supplied then set warn_packed_bitfield_compat to the
14809 default value of 1.
14810 * stor-layout.c (place_field): Check warn_packed_bitfield_compat
14811 against 1.
14812
b5c3dfbb
RG
148132009-01-27 Richard Guenther <rguenther@suse.de>
14814
14815 PR tree-optimization/38503
14816 * cfgexpand.c (expand_gimple_basic_block): Ignore
14817 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
14818 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
14819 variables that cannot have TBAA applied.
14820 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
14821 statements.
14822
d748c406 148232009-01-27 Uros Bizjak <ubizjak@gmail.com>
576de5cb
UB
14824
14825 PR middle-end/38969
14826 * calls.c (initialize_argument_information): Do not wrap complex
14827 arguments in SAVE_EXPR.
14828
9112bb38
AT
148292009-01-26 Andreas Tobler <a.tobler@schweiz.org>
14830
14831 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
5efb79fc 14832 (INSTALL_LIBGCC): Revert typo commit.
9112bb38 14833
4757704f
RG
148342009-01-26 Richard Guenther <rguenther@suse.de>
14835
14836 PR tree-optimization/38745
14837 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
14838 from special handling.
14839
e3e6cff4
RG
148402009-01-26 Richard Guenther <rguenther@suse.de>
14841
14842 PR tree-optimization/38745
14843 * tree-ssa.c (execute_update_addresses_taken): Do not include
14844 variables that cannot possibly be a register in not_reg_needs.
14845 Do not clear TREE_ADDRESSABLE on vars that may not become
14846 registers.
14847 * tree-ssa.c (update_alias_info_1): Include those in the set
14848 of addressable vars.
14849
dc874b53
RG
148502009-01-26 Richard Guenther <rguenther@suse.de>
14851
14852 PR middle-end/38851
14853 * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
14854 * tree-ssa-dse.c: Include langhooks.h
14855 (execute_simple_dse): Remove stores with zero size.
14856
849421a3
JJ
148572009-01-24 Jakub Jelinek <jakub@redhat.com>
14858
14859 PR c/38957
14860 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
14861 as PLUS_EXPR.
14862
82f70421
JB
148632009-01-24 Julian Brown <julian@codesourcery.com>
14864
14865 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
14866 config/arm/linux-atomic.c.
14867 * config/arm/linux-atomic.c: New.
14868
863412d6
EB
148692009-01-24 Eric Botcazou <ebotcazou@adacore.com>
14870
14871 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
14872 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
14873 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
14874
8c684300
L
148752009-01-24 H.J. Lu <hongjiu.lu@intel.com>
14876
14877 PR c/38938
93f1527a 14878 * c-opts.c (c_common_handle_option): Update warn_pointer_sign
8c684300
L
14879 properly.
14880
b840fb02
SP
148812009-01-24 Sebastian Pop <sebastian.pop@amd.com>
14882
14883 PR tree-optimization/38953
14884 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
14885 (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
14886 (gloog): Split the exit of the scop when the scop exit is a loop exit.
14887 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
14888 changed the CFG.
14889
ecee559f
PB
148902009-01-24 Paul Brook <paul@codesourcery.com>
14891
14892 * config/arm/neon.md (neon_type): Move to arm.md.
14893 (neon_mov<VSTRUCT>): Add neon_type attribute.
14894 * config/arm/arm.md (neon_type): Move to here.
14895 (conds): Add "unconditioal" and use as default for NEON insns.
14896
61ad0914
BE
148972009-01-24 Ben Elliston <bje@au.ibm.com>
14898
14899 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
14900 void *' warning from -Wc++-compat.
14901 * Makefile.in (dominance.o-warn): Remove.
14902
38432148 149032009-01-23 Paolo Bonzini <bonzini@gnu.org>
9bacafeb
PB
14904
14905 PR tree-optimization/38932
14906 * fold-const.c (fold_unary_ignore_overflow): New.
14907 * tree.h (fold_unary_ignore_overflow): Declare.
14908 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
14909 * tree-ssa-sccvn.c (visit_reference_op_load,
14910 simplify_unary_expression): Likewise.
14911
2cd36c22
AN
149122009-01-22 Adam Nemet <anemet@caviumnetworks.com>
14913
14914 * c-decl.c (finish_struct): Move code to set DECL_PACKED after
14915 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields
14916 regardless of their type.
14917 * c-common.c (handle_packed_attribute): Don't ignore packed on
14918 bitfields.
14919 * c.opt (Wpacked-bitfield-compat): New warning option.
14920 * stor-layout.c (place_field): Warn if offset of a field changed.
14921 * doc/extend.texi (packed): Mention the ABI change.
14922 * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
14923 (Warning Options): Add it to the list.
14924
e4e624ab
L
149252009-01-22 H.J. Lu <hongjiu.lu@intel.com>
14926
14927 * c-opts.c (c_common_post_options): Fix a typo in comments.
14928
d0ea0759
SE
149292009-01-22 Steve Ellcey <sje@cup.hp.com>
14930
14931 PR middle-end/38615
14932 * gimplify.c (gimplify_init_constructor): Fix promotion of const
14933 variables to static.
14934 * doc/invoke.texi (-fmerge-all-constants): Update description.
14935
87673f84
UB
149362009-01-22 Uros Bizjak <ubizjak@gmail.com>
14937
14938 PR target/38931
14939 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
14940 (*movdi_1_rex64): Use type "mmx" for alternative 5.
14941
96339268
RE
149422009-01-22 Richard Earnshaw <rearnsha@arm.com>
14943
14944 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
14945 a word boundary.
14946 (LOCAL_ALIGNMENT): Similarly.
14947
442dc742 149482009-01-22 Mark Shinwell <shinwell@codesourcery.com>
87673f84 14949 Joseph Myers <joseph@codesourcery.com>
442dc742
MS
14950
14951 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
14952 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
14953 * config/arm/arm-tune.md: Regenerate.
14954 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
14955 -march=iwmmxt2.
14956
9b34732e
MS
149572009-01-22 Mark Shinwell <shinwell@codesourcery.com>
14958
14959 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
14960 version number to five.
14961
03c2a308
DS
149622009-01-22 Dodji Seketeli <dodji@redhat.com>
14963
14964 PR c++/38930
ba20e309 14965 * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
03c2a308
DS
14966 * c-common.c (set_underlying_type): Likewise.
14967 (is_typedef_decl ): Likewise
14968 * tree.h: Likewise
14969 (set_underlying_type): Likewise.
14970 (is_typedef_type): Likewise.
14971
1240d76e
VM
149722009-01-21 Vladimir Makarov <vmakarov@redhat.com>
14973
14974 PR middle-end/38587
14975 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
14976 crossing setjmps.
14977
b8a1087d
DK
149782009-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
14979
14980 PR bootstrap/37660
14981 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro.
14982 (LIBGCC_SPEC): Don't define.
14983 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC.
14984
435da628
UB
149852009-01-21 Uros Bizjak <ubizjak@gmail.com>
14986
14987 PR rtl-optimization/38879
14988 * alias.c (base_alias_check): Unaligned access via AND address can
14989 alias all surrounding object types except those with sizes equal
14990 or wider than the size of unaligned access.
14991
d597b3ce
DS
149922009-01-21 Dodji Seketeli <dodji@redhat.com>
14993
14994 PR c++/26693
ba20e309 14995 * c-decl.c (clone_underlying_type): Move this ...
d597b3ce 14996 * c-common.c (set_underlying_type): ... here.
435da628 14997 Also, make sure the function properly sets TYPE_STUB_DECL() on
d597b3ce
DS
14998 the newly created typedef variant type.
14999 (is_typedef_decl ): New entry point.
15000 * tree.h: Added a new member member_types_needing_access_check to
15001 struct tree_decl_non_common.
15002 (set_underlying_type): New entry point.
15003 (is_typedef_type): Likewise.
15004
71a6fe66
BM
150052009-01-21 Bingfeng Mei <bmei@broadcom.com>
15006
15007 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
15008 Check whether two instructions have memory references that
15009 belong to conflicting alias sets. walk_mems_1 and walk_mems_2
15010 are helper functions for traversing.
15011 * alias.h (insn_alias_sets_confilict_p): New prototypes.
15012 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
15013 not to draw dependency edge for instructions with non-conflicting
15014 alias sets.
15015
5a248274
JM
150162009-01-20 Joseph Myers <joseph@codesourcery.com>
15017
15018 PR other/38758
6b67572e
UB
15019 * longlong.h: Update copyright years. Use soft-fp license notice.
15020 Sync __clz_tab declaration with glibc.
5a248274 15021
4b84f3de
SE
150222009-01-20 Steve Ellcey <sje@cup.hp.com>
15023
15024 PR target/30687
15025 * doc/extend.texi (syscall_linkage): New.
15026 (version_id): Modify.
15027
37348bf1 150282009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
435da628 15029 Richard Guenther <rguenther@suse.de>
37348bf1
AP
15030
15031 PR tree-optimization/38747
15032 PR tree-optimization/38748
15033 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
15034 conversion if the base address is an indirect reference and the
15035 aliasing sets could cause issues.
15036
d0a58904
SP
150372009-01-20 Sebastian Pop <sebastian.pop@amd.com>
15038
2ba9daa7 15039 * common.opt (fgraphite, fgraphite-identity): Add comment for
d0a58904
SP
15040 explaining why these options are not documented.
15041
71e7afb2
SP
150422009-01-20 Sebastian Pop <sebastian.pop@amd.com>
15043
15044 * graphite.c (stmt_simple_for_scop_p): Also handle cases when
15045 gimple_call_lhs is NULL.
15046
38432148 150472009-01-20 Paolo Bonzini <bonzini@gnu.org>
09efeca1
PB
15048
15049 PR target/38868
15050 * emit-rtl.c (adjust_address_1): Make sure memref is never
15051 overwritten.
15052
cbb8dee3
BE
150532009-01-20 Ben Elliston <bje@au.ibm.com>
15054
15055 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
435da628 15056 const qualifier from arg parameter. Remove unnecessary cast to char *.
cbb8dee3
BE
15057 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
15058 const qualifier from arg 2.
15059
72c66596
IS
150602009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
15061
435da628 15062 * config/darwin.h: Add static-libgfortran to LINK_SPEC.
72c66596 15063
f68211cd
VM
150642009-01-19 Vladimir Makarov <vmakarov@redhat.com>
15065
15066 PR c/38869
15067 * rtl.h (reinit_regs): New prototype.
15068 * regclass.c: Include ira.h.
15069 (reinit_regs): New.
15070 * Makefile.in (regclass.o): Add ira.h.
15071 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
15072
6e4f1168
L
150732009-01-18 H.J. Lu <hongjiu.lu@intel.com>
15074
15075 PR target/38736
15076 * c-common.c (handle_aligned_attribute): Use
15077 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
15078 default alignment value.
15079
15080 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
15081
15082 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
15083 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
15084
15085 * doc/extend.texi: Update __attribute__ ((aligned)). Document
15086 __BIGGEST_ALIGNMENT__.
15087
15088 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
15089
890065bf
RG
150902009-01-18 Richard Guenther <rguenther@suse.de>
15091
15092 PR tree-optimization/38819
15093 * tree-flow.h (operation_could_trap_helper_p): Declare.
15094 * tree-eh.c (operation_could_trap_helper_p): Export.
15095 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
15096 * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
15097 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
15098 are about to insert a possibly trapping instruction and fail
15099 in this case.
15100
a729d731
AS
151012009-01-18 Andreas Schwab <schwab@suse.de>
15102
15103 * doc/install.texi (Configuration): Remove obsolete paragraph
15104 about use of --with-gnu-ld with --with-gnu-as.
15105
a640c13b
KH
151062009-01-18 Kazu Hirata <kazu@codesourcery.com>
15107
15108 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
15109 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
15110 Follow spelling conventions.
15111
dba2cc0c
BE
151122009-01-18 Ben Elliston <bje@au.ibm.com>
15113
15114 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
15115 C++ warning about implicit conversion from void * to struct
15116 bitmap_head_def *.
15117 (bitmap_obstack_free): Likewise for bitmap_element *.
bc127c63 15118 * Makefile.in (bitmap.o-warn): Remove.
dba2cc0c 15119
2207a498
DK
151202009-01-17 Dave Korn <dave.korn.cygwin@gmail.com>
15121
15122 * Makefile.in (BACKENDLIBS): Reorder to match dependencies.
15123
8137e465
SP
151242009-01-17 Sebastian Pop <sebastian.pop@amd.com>
15125 Tobias Grosser <tobi.grosser@amd.com>
15126
15127 * graphite.c (graphite_trans_scop_block): Do not block single
15128 nested loops.
15129
5be1c58c
AO
151302009-01-16 Alexandre Oliva <aoliva@redhat.com>
15131
15132 * ebitmap.h (ebitmap_iter_init): Initialize all fields.
15133 * ipa-struct-reorg.c (gen_struct_type): Replace known-true
15134 test with assertion.
15135
786ce82d
RG
151362009-01-16 Richard Guenther <rguenther@suse.de>
15137
15138 PR tree-optimization/38835
15139 PR middle-end/36227
15140 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
15141 and INT + PTR -> (INT)(PTR p+ INT) folding.
15142 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
15143
c1cb09ad
AN
151442009-01-16 Adam Nemet <anemet@caviumnetworks.com>
15145
15146 PR target/38554
15147 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
15148 the subreg from a lowpart subreg if it is also casting the value.
15149
bcab4e19
SP
151502009-01-16 Sebastian Pop <sebastian.pop@amd.com>
15151 Tobias Grosser <tobi.grosser@amd.com>
15152
15153 * graphite.c (compare_prefix_loops): New.
15154 (build_scop_canonical_schedules): Rewritten.
15155 (graphite_transform_loops): Move build_scop_canonical_schedules
15156 after build_scop_iteration_domain.
15157
0b040072
SP
151582009-01-16 Sebastian Pop <sebastian.pop@amd.com>
15159 Tobias Grosser <tobi.grosser@amd.com>
15160
2ba9daa7 15161 * graphite.c (add_conditions_to_domain): Add the loops to
0b040072
SP
15162 the dimension of the iteration domain. Do copy the domain
15163 only when it exists.
15164 (build_scop_conditions_1): Do not call add_conditions_to_domain.
15165 (add_conditions_to_constraints): New.
15166 (can_generate_code_stmt, can_generate_code): Removed.
15167 (gloog): Do not call can_generate_code.
15168 (graphite_transform_loops): Call add_conditions_to_constraints
15169 after building the iteration domain.
15170
56c6a499
JJ
151712009-01-16 Jakub Jelinek <jakub@redhat.com>
15172
15173 PR tree-optimization/38789
15174 * tree-ssa-threadedge.c
15175 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
15176 __builtin_constant_p.
15177
c95b2534 151782009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com>
cd3f1729
KZ
15179
15180 * dce.c (delete_unmarked_insns): Reversed the order that insns are
15181 examined before deleting them.
2ba9daa7 15182
c433cb14
RE
151832009-01-16 Richard Earnshaw <rearnsha@arm.com>
15184
15185 * function.c (aggregate_value_p): Correctly extract the function
15186 type from CALL_EXPR_FN lookup.
15187
c95b2534 151882009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com>
27d62fa4
HS
15189
15190 * config/picochip/picochip.c (picochip_override_options): Revert
15191 CFI asm flag disable commited previously.
15192
c77bb78f
SP
151932009-01-15 Sebastian Pop <sebastian.pop@amd.com>
15194 Tobias Grosser <tobi.grosser@amd.com>
15195 Jan Sjodin <jan.sjodin@amd.com>
15196
15197 * graphite.c (scan_tree_for_params): On substractions negate
15198 all the coefficients of the term.
15199 (clast_to_gcc_expression_red): New. Handle reduction expressions
15200 of more than two operands.
15201 (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
15202 (get_vdef_before_scop): Handle also the case of default definitions.
15203
574af2d6
RS
152042009-01-15 Richard Sandiford <rdsandiford@googlemail.com>
15205
15206 * caller-save.c (add_used_regs_1, add_used_regs): New functions.
15207 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
15208 Also use them when walking CALL_INSN_FUNCTION_USAGE.
15209
e939805b
L
152102009-01-15 H.J. Lu <hongjiu.lu@intel.com>
15211 Joey Ye <joey.ye@intel.com>
15212
15213 PR middle-end/37843
15214 * cfgexpand.c (expand_stack_alignment): Don't update stack
15215 boundary nor check incoming stack boundary here.
15216 (gimple_expand_cfg): Update stack boundary and check incoming
15217 stack boundary here.
15218
c95b2534 152192009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com>
750900db 15220
435da628 15221 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
2ba9daa7 15222
0196c95e
JJ
152232009-01-14 Jakub Jelinek <jakub@redhat.com>
15224
15225 PR rtl-optimization/38245
15226 * calls.c (expand_call): Add stack arguments to
15227 CALL_INSN_FUNCTION_USAGE even for pure calls (when
15228 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
15229 in regs and partially in memory or BLKmode arguments.
15230 (emit_library_call_value_1): Add stack arguments to
15231 CALL_INSN_FUNCTION_USAGE even for pure calls (when
15232 ACCUMULATE_OUTGOING_ARGS).
15233 * dce.c: Include tm_p.h.
15234 (find_call_stack_args): New function.
15235 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
15236 argument.
15237 (mark_insn): Call find_call_stack_args for CALL_Ps.
15238 (prescan_insns_for_dce): Walk insns backwards in bb rather than
15239 forwards. Allocate and free arg_stores bitmap if needed, pass it
15240 down to deletable_insn_p, don't mark stores set in arg_stores
15241 bitmap, clear the bitmap at the beginning of each bb.
15242 * Makefile.in (dce.o): Depend on $(TM_P_H).
15243
6df6bcfa
MM
152442009-01-14 Michael Meissner <gnu@the-meissners.org>
15245
15246 PR target/22599
435da628
UB
15247 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
15248 to make sure the insn is a conditional test (bug 22599). Reformat a
15249 few long lines.
6df6bcfa 15250
765ec70c
SP
152512009-01-14 Sebastian Pop <sebastian.pop@amd.com>
15252
15253 PR middle-end/38431
15254 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
15255 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
15256 (gloog): Do not call cleanup_tree_cfg.
2ba9daa7 15257 (graphite_transform_loops): Call cleanup_tree_cfg after all
765ec70c
SP
15258 scops have been code generated.
15259
7de2b688
BS
152602009-01-14 Basile Starynkevitch <basile@starynkevitch.net>
15261 * doc/gty.texi (Invoking the garbage collector): Added new node
15262 and section documenting ggc_collect.
15263
10bd6c5c
RG
152642009-01-14 Richard Guenther <rguenther@suse.de>
15265
15266 PR tree-optimization/38826
15267 PR middle-end/38477
15268 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
15269 initialization notes only if we actually emitted a warning.
15270 (intra_create_variable_infos): Add constraints for a result decl
15271 that is passed by hidden reference.
15272 (build_pred_graph): Mark all related variables non-direct on
15273 address-taking.
15274
9c7c70ee
NC
152752009-01-14 Nick Clifton <nickc@redhat.com>
15276
15277 * ira-conflicts.c: Include addresses.h for the definition of
15278 base_reg_class.
435da628
UB
15279 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
15280 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
9c7c70ee 15281
cf0c2a60
VM
152822009-01-13 Vladimir Makarov <vmakarov@redhat.com>
15283
15284 PR target/38811
15285 * Makefile.in (ira-lives.o): Add except.h.
15286
15287 * ira-lives.c: Include except.h.
15288 (process_bb_node_lives): Process can_throw_internal.
15289
d3302fd3
JJ
152902009-01-13 Jakub Jelinek <jakub@redhat.com>
15291
15292 PR rtl-optimization/38774
15293 * combine.c (simplify_set): When undoing cc_use change, don't do
15294 PUT_CODE on the newly created comparison, but instead put back the
15295 old comparison.
15296
7ab23fd0
JM
152972009-01-13 Joseph Myers <joseph@codesourcery.com>
15298
15299 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
15300 values. Remove duplicate arm8 entry.
15301
f9344488
SP
153022009-01-13 Sebastian Pop <sebastian.pop@amd.com>
15303
15304 PR tree-optimization/38786
15305 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
15306 the SSA_NAME case of expand_scalar_variables_expr.
15307 Set the type of an expression to the type of its assign statement.
15308 (expand_scalar_variables_expr): Also gather the scalar computation
15309 used to index the memory access. Do not pass loop_p.
15310 Fix comment. Stop recursion on tcc_constant or tcc_declaration.
15311 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
bef3c57b
UB
15312 the gimple_stmt_iterator where it inserts new code.
15313 Do not pass loop_p.
f9344488
SP
15314 (copy_bb_and_scalar_dependences): Do not pass loop_p.
15315 (translate_clast): Update call to copy_bb_and_scalar_dependences.
15316
2d8bb84d
SP
153172009-01-13 Sebastian Pop <sebastian.pop@amd.com>
15318
15319 * graphite.h (debug_value): Removed.
15320 * graphite.c (debug_value): Removed.
15321
ff128632
RE
153222009-01-13 Richard Earnshaw <rearnsha@arm.com>
15323
435da628
UB
15324 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
15325 ldrd/strd with two 32-bit instructions.
ff128632 15326
d5a0a47b
RE
153272009-01-13 Richard Earnshaw <rearnsha@arm.com>
15328
435da628
UB
15329 * config/arm/arm.c (struct processors): Pass for speed down into
15330 cost helper functions.
d5a0a47b
RE
15331 (const_ok_for_op): Handle COMPARE and inequality nodes.
15332 (arm_rtx_costs_1): Rewrite.
15333 (arm_size_rtx_costs): Update prototype.
15334 (arm_rtx_costs): Pass speed down to helper functions.
15335 (arm_slowmul_rtx_costs): Rework cost calculations.
15336 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
15337 (arm_9e_rtx_costs): Likewise.
15338
26d5bf5b
UB
153392009-01-13 Uros Bizjak <ubizjak@gmail.com>
15340
15341 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
435da628 15342 relocations of local symbols wider than UNITS_PER_WORD are not valid.
26d5bf5b
UB
15343 (alpha_legitimize_address): Do not split local symbols wider than
15344 UNITS_PER_WORD into HIGH/LO_SUM parts.
15345
5d14e3d5
DS
153462009-01-13 Danny Smith <dannysmith@users.sourceforge.net>
15347
15348 PR bootstrap/38580
15349 * gcc.c (process_command): Replace call to execvp with calls
15350 to pex_one and exit.
15351
33faafca
AS
153522009-01-03 Anatoly Sokolov <aesok@post.ru>
15353
15354 PR target/29141
15355 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
15356 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
15357 variant for devices with 3-byte PC.
ba20e309 15358 (__tablejump_elpm__): New.
33faafca 15359
634b5df5
JJ
153602009-01-12 Jakub Jelinek <jakub@redhat.com>
15361
15362 PR c/32041
15363 * c-parser.c (c_parser_postfix_expression): Allow `->' in
15364 offsetof member-designator, handle it as `[0].'.
15365
2842bb86
JDA
153662009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15367
15368 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
15369 function when not using named sections on targets with named sections
15370 if branch distance is less than 262132.
15371
76ee70f6
RE
153722009-01-12 Richard Earnshaw <rearnsha@arm.com>
15373
15374 * combine.c (combine_instructions): Recompute
15375 optimize_this_for_speed_p for each BB in the main combine loop.
15376
f56e675d
TB
153772009-01-12 Tomas Bily <tbily@suse.cz>
15378
15379 PR middlend/38385
26d5bf5b
UB
15380 * tree-loop-distribution.c (prop_phis): New function.
15381 (generate_builtin): Call prop_phis.
15382 * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
f56e675d 15383
c2152239
JJ
153842009-01-12 Jakub Jelinek <jakub@redhat.com>
15385
15386 PR tree-optimization/38807
15387 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
15388 gimple_visited_p unless stmt is GIMPLE_ASSIGN.
15389
0e510b3e
AN
153902009-01-11 Adam Nemet <anemet@caviumnetworks.com>
15391
15392 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
15393 subreg of op0 to the original op0.
15394
c95b2534 153952009-01-11 Laurent GUERBY <laurent@guerby.net>
10270471
LG
15396
15397 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
2ba9daa7 15398
53a7ff9a
MS
153992009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
15400
15401 PR debug/7055
60839f5d 15402 * mips-tfile.c (parse_def): Fix parsing of def strings
53a7ff9a
MS
15403 starting with digits.
15404
b3a796bc
JJ
154052009-01-10 Jakub Jelinek <jakub@redhat.com>
15406
15407 PR target/38695
15408 * config/arm/arm.c (arm_is_long_call_p): Don't call
15409 arm_function_in_section_p if decl isn't a FUNCTION_DECL.
15410
b21b850e
SB
154112009-01-09 Steven Bosscher <steven@gcc.gnu.org>
15412
15413 * regrename.c (regrename_optimize): Fix dumping.
15414 (find_oldest_value_reg): Preserve REG_POINTER.
15415 (copy_hardreg_forward_1): Likewise.
15416
e0e10d3a
DN
154172009-01-09 Diego Novillo <dnovillo@google.com>
15418
bf9b2cc9 15419 * gimple.h (struct gimple_statement_base) <uid>: Document
e0e10d3a
DN
15420 the restrictions on its use.
15421 (gimple_uid): Tidy.
15422 (gimple_set_uid): Tidy.
15423
c9da2ae8
JJ
154242009-01-09 Jakub Jelinek <jakub@redhat.com>
15425
15426 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
15427 zero guard even if align_bytes != 0 and count is smaller than
15428 size_needed.
15429
38432148 154302009-01-09 Vladimir Makarov <vmakarov@redhat.com>
a174c19c
VM
15431
15432 PR rtl-optimization/38495
26d5bf5b 15433 * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
a174c19c
VM
15434 (add_range_and_copies_from_move_list): Print all added ranges.
15435 Add ranges to memory optimized destination.
15436
260fda3d
JJ
154372009-01-09 Jakub Jelinek <jakub@redhat.com>
15438
6f6278ad
JJ
15439 PR target/38686
15440 PR target/38708
15441 * config/i386/i386.c (override_options): Reject
15442 -mstringop-strategy=rep_8byte with -m32.
15443 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
15444 to 1. Do count comparison against epilogue_size_needed at compile
15445 time even when count_exp was constant forced into register. For
15446 size_needed don't jump to epilogue, instead just avoid aligning
15447 and invoke the body algorithm. If need_zero_guard, add zero guard
15448 even if count is non-zero, but smaller than size_needed + number of
15449 bytes that could be stored for alignment.
15450 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
15451 to 1. If need_zero_guard, add zero guard even if count is non-zero,
15452 but smaller than size_needed + number of bytes that could be stored
15453 for alignment. Compare size_needed with epilogue_size_needed instead
15454 of desired_align - align, don't adjust size_needed, pass
15455 epilogue_size_needed to the epilogue expanders.
15456
260fda3d 15457 PR c/35742
26d5bf5b 15458 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
260fda3d 15459
67b846fa
JDA
154602009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15461
15462 * pa.c (last_address): Change to unsigned.
15463 (update_total_code_bytes): Change argument to unsigned. Don't
15464 check if insn addresses are set.
15465 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
15466 addresses are not set.
15467 (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
15468
91c82473
NC
154692009-01-09 Nick Clifton <nickc@redhat.com>
15470
15471 * config/sh/symbian.c: Replace uses of DECL_INLINE with
15472 DECL_DECLARED_INLINE_P.
15473
4017e262
JJ
154742009-01-09 Jakub Jelinek <jakub@redhat.com>
15475
0a49e5c2
JJ
15476 PR middle-end/38347
15477 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
15478 GET_MODE (op0) in operand_subword_force calls.
15479
4017e262
JJ
15480 PR middle-end/38771
15481 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
15482 fold_convert arg0 operands to TREE_TYPE (op0) first.
15483
7cd06356
VM
154842009-01-08 Vladimir Makarov <vmakarov@redhat.com>
15485
15486 * params.def (ira-max-conflict-table-size): Decrease default value
15487 to 1000.
15488
96867bbd
JJ
154892009-01-08 Jakub Jelinek <jakub@redhat.com>
15490
15491 PR tree-optimization/37031
15492 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
15493 on parameter_set.
15494 (build_access_matrix): Reserve correct size for AM_MATRIX vector,
15495 allocate it using gc instead of heap, use VEC_quick_push instead of
15496 VEC_safe_push.
15497 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
15498 instead of heap, use VEC_quick_push instead of VEC_safe_push.
15499 * tree-data-ref.h (struct access_matrix): Change matrix to gc
15500 allocated vector from heap allocated.
15501 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
15502 * tree-loop-linear.c (linear_transform_loops): Allocate nest
15503 vector only after perfect_loop_nest_depth call.
15504
68f61c3d
SP
155052009-01-08 Sebastian Pop <sebastian.pop@amd.com>
15506 Jan Sjodin <jan.sjodin@amd.com>
15507
15508 PR tree-optimization/38559
15509 * graphite.c (debug_value, copy_constraint,
15510 swap_constraint_variables, scale_constraint_variable, ): New.
15511 (get_lower_bound, get_upper_bound): Removed.
15512 (graphite_trans_bb_strip_mine): Clean up this code that works
15513 only for constant number of iterations. Fully copy upper and
15514 lower bound constraints, not only the constant part of them.
15515 * graphite.h (debug_value): Declared.
15516
82567e33
IR
155172009-01-08 Ira Rosen <irar@il.ibm.com>
15518
15519 PR tree-optimization/37194
15520 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
2ba9daa7 15521 Don't add the cost of cost model guard in prologue to scalar
82567e33
IR
15522 outside cost in case of known number of iterations.
15523
7da13f1d
NF
155242009-01-07 Nathan Froyd <froydnj@codesourcery.com>
15525 Alan Modra <amodra@bigpond.net.au>
15526
15527 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
15528 non-word-aligned REG+CONST addressing.
15529
c0f64575
UB
155302009-01-07 Uros Bizjak <ubizjak@gmail.com>
15531
15532 PR target/38706
15533 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
15534 free_after_compilation when outputting a thunk.
15535 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
15536 Do not call free_after_compilation here.
15537
301b6a4e
UB
155382009-01-07 Uros Bizjak <ubizjak@gmail.com>
15539
15540 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
301b6a4e
UB
15541 (ix86_valid_target_attribute_inner_p): Ditto.
15542
6a114766
JS
155432009-01-07 Jan Sjodin <jan.sjodin@amd.com>
15544
15545 PR tree-optimization/38492
15546 PR tree-optimization/38498
15547 * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
15548 * tree-chrec.h (scev_is_linear_expression): Declared.
15549 * graphite.c (graphite_cannot_represent_loop_niter): New.
15550 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
15551 (graphite_loop_normal_form): Use gcc_assert.
15552 (scan_tree_for_params): Use CASE_CONVERT.
15553 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
15554 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
15555 Use gcc_assert. Discard scops that contain unhandled cases.
15556 (build_scop_conditions): Return a boolean status for unhandled cases.
15557 (strip_mine_profitable_p): Print the loop number, not its depth.
15558 (is_interchange_valid): Pass the depth of the loop nest, don't
15559 recompute it wrongly.
15560 (graphite_trans_bb_block): Same.
15561 (graphite_trans_bb_block): Print tentative of loop blocking.
15562 (graphite_trans_scop_block): Do not print that the loop has been
15563 blocked.
15564 (graphite_transform_loops): Do not handle scops that contain condition
15565 scalar phi nodes.
15566
65b82caa
L
155672009-01-07 H.J. Lu <hongjiu.lu@intel.com>
15568
15569 AVX Programming Reference (December, 2008)
15570 * config/i386/avxintrin.h (_mm256_stream_si256): New.
15571 (_mm256_stream_pd): Likewise.
15572 (_mm256_stream_ps): Likewise.
15573
15574 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
15575 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
15576 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
15577 (bdesc_special_args): Add __builtin_ia32_movntdq256,
15578 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
15579 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
15580 (ix86_expand_special_args_builtin): Likewise.
15581
15582 * config/i386/sse.md (AVXMODEDI): New.
15583 (avx_movnt<mode>): Likewise.
15584 (avx_movnt<mode>): Likewise.
15585 (<sse>_movnt<mode>): Remove AVX support.
15586 (sse2_movntv2di): Likewise.
15587
cef158f9
RG
155882009-01-07 Richard Guenther <rguenther@suse.de>
15589
15590 PR middle-end/38751
15591 * fold-const.c (extract_muldiv): Remove obsolete comment.
15592 (fold_plusminus_mult_expr): Undo MINUS_EXPR
15593 to PLUS_EXPR canonicalization for the canonicalization.
15594
246cb5be
GP
155952009-01-07 Gerald Pfeifer <gerald@pfeifer.com>
15596
15597 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
15598 hosted cross-compilers generating less efficient code.
15599
84b9b872
RS
156002009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
15601
15602 * function.h (rtl_data): Add a dbr_scheduled_p field.
15603 * reorg.c (dbr_schedule): Set it.
15604 (gate_handle_delay_slots): Check it.
15605 * config/mips/mips.c (mips_base_delayed_branch): Delete.
15606 (mips_reorg): Check flag_delayed_branch instead of
15607 mips_base_delayed_branch.
15608 (mips_override_options): Don't set mips_base_delayed_branch
15609 or flag_delayed_branch.
15610
ace984c8
RS
156112009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
15612
15613 PR rtl-optimization/38426.
15614 * ira.c (ira): Set current_function_is_leaf earlier.
15615
7ad7809b
JJ
156162009-01-06 Jakub Jelinek <jakub@redhat.com>
15617
15618 PR rtl-optimization/38722
15619 * combine.c (try_combine): Don't modify PATTERN (i3) and notes
15620 too early, only set a flag and modify after last possible
15621 undo_all point.
15622
c52ec948
JJ
156232009-01-06 Janis Johnson <janis187@us.ibm.com>
15624
15625 PR c/34252
15626 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
15627 * real.c (decimal_single_format): Correct values of emin and emax.
15628 (decimal_double_format): Ditto.
15629 (decimal_quad_format): Ditto.
15630 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
15631 computation of DECnn_MIN and DECnn_MAX for corrected values of
15632 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of
15633 __DECnn_MIN__, and adjust its computation for the corrected value
15634 of emin.
15635
300240e1
JH
156362009-01-06 Jan Hubicka <jh@suse.cz>
15637
15638 PR target/38744
435da628 15639 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
300240e1 15640
271c069e
GP
156412009-01-06 Gerald Pfeifer <gerald@pfeifer.com>
15642
15643 * doc/contrib.texi (Contributors): Slightly adjust the end note.
15644 Add Robert Clark to the list of testers.
15645
64e4c301 156462009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 15647 Kai Tietz <kai.tietz@onevision.com>
64e4c301 15648
435da628
UB
15649 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
15650 * config/i386/i386.c (ix86_expand_call): Add clobbers.
64e4c301 15651
7650b83e 156522009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 15653 Kai Tietz <kai.tietz@onevision.com>
7650b83e 15654
435da628
UB
15655 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
15656 for w64 ABI.
15657 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
7650b83e
JH
15658 (ix86_nsaved_regs): Count only general purpose regs.
15659 (ix86_nsaved_sseregs): New.
15660 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
15661 to 16 for w64; compute padding and size of sse reg save area.
301b6a4e
UB
15662 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
15663 general purpose regs.
7650b83e
JH
15664 (ix86_emit_save_sse_regs_using_mov): New.
15665 (ix86_expand_prologue): Save SSE regs if needed.
15666 (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
15667 (ix86_emit_restore_sse_regs_using_mov): New.
15668 (ix86_expand_epilogue): Save SSE regs if needed.
15669
9aa5c1b2 156702009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 15671 Kai Tietz <kai.tietz@onevision.com>
9aa5c1b2 15672
435da628
UB
15673 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
15674 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
15675 functions when accumulate outgoing args is off.
9aa5c1b2 15676
f7556aae
L
156772009-01-06 H.J. Lu <hongjiu.lu@intel.com>
15678
15679 PR bootstrap/38742
15680 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
15681 before using pseudos_have_intersected_live_ranges_p.
15682
15683 * ira-int.h (ira_assert): Always define.
15684
e47b7d04
L
156852009-01-06 H.J. Lu <hongjiu.lu@intel.com>
15686
15687 AVX Programming Reference (December, 2008)
15688 * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
15689 (_mm256_permute2_pd): Likewise.
15690 (_mm_permute2_ps): Likewise.
15691 (_mm256_permute2_ps): Likewise.
15692 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
15693 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
15694
15695 * config/i386/i386.c (ix86_builtins): Remove
15696 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
15697 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
15698 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
15699 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
15700 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
15701 (bdesc_args): Remove __builtin_ia32_vpermil2pd,
15702 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
15703 __builtin_ia32_vpermil2ps256.
15704 (ix86_init_mmx_sse_builtins): Updated.
15705 (ix86_expand_args_builtin): Likewise.
15706
44b86471
JDA
157072009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15708
e47b7d04
L
15709 * pa.c (output_call): Relocate non-jump insns in the delay slot of
15710 long absolute calls when generating PA 2.0 code.
44b86471 15711
311aab06
VM
157122009-01-05 Vladimir Makarov <vmakarov@redhat.com>
15713
15714 PR rtl-optimization/38583
15715 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
15716
15717 * params.def (ira-max-conflict-table-size): New.
15718
15719 * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
2ba9daa7 15720
311aab06 15721 * ira.h (ira_conflicts_p): New external definition.
2ba9daa7 15722
311aab06
VM
15723 * ira-conflicts.c (build_conflict_bit_table): Do not build too big
15724 table. Report this. Return result of building.
15725 (ira_build_conflicts): Use ira_conflicts_p. Check result of
15726 building conflict table.
15727
301b6a4e 15728 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
311aab06 15729 (ira_color): Use ira_conflicts_p.
2ba9daa7 15730
311aab06
VM
15731 * global.c: Include ira.h.
15732 (pseudo_for_reload_consideration_p, build_insn_chain): Use
15733 ira_conflicts_p.
15734
15735 * Makefile.in (global.o): Add ira.h.
2ba9daa7 15736
311aab06
VM
15737 * ira-build.c (mark_all_loops_for_removal,
15738 propagate_some_info_from_allocno): New.
15739 (remove_unnecessary_allocnos): Call
15740 propagate_some_info_from_allocno.
15741 (remove_low_level_allocnos): New.
15742 (remove_unnecessary_regions): Add parameter. Call
15743 mark_all_loops_for_removal and remove_low_level_allocnos. Pass
15744 parameter to remove_unnecessary_regions.
15745 (ira_build): Remove all regions but root if the conflict table was
15746 not built. Update conflict hard regs for allocnos crossing calls.
15747
15748 * ira.c (ira_conflicts_p): New global.
15749 (ira): Define and use ira_conflicts_p.
15750
15751 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
15752 count_spilled_pseudo, find_reg, alter_reg, finish_spills,
301b6a4e 15753 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
2ba9daa7 15754
5641785f
BE
157552009-01-06 Ben Elliston <bje@au.ibm.com>
15756
15757 * gengtype-lex.l (YY_NO_INPUT): Define.
15758
e4e5261f
AP
157592009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
15760
15761 PR c/34911
5641785f
BE
15762 * c-common.c (handle_vector_size_attribute): Also reject
15763 BOOLEAN_TYPE types.
e4e5261f 15764
7b10257f
SP
157652009-01-05 Sebastian Pop <sebastian.pop@amd.com>
15766
15767 PR tree-optimization/38492
15768 * graphite.c (rename_map_elt, debug_rename_elt,
301b6a4e
UB
15769 debug_rename_map_1, debug_rename_map, new_rename_map_elt,
15770 rename_map_elt_info, eq_rename_map_elts,
15771 get_new_name_from_old_name, bb_in_sese_p): Moved around.
7b10257f
SP
15772 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
15773 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
15774 (sese_build_livein_liveouts): New.
15775 (new_sese, free_sese): New.
15776 (new_scop): Call new_sese.
15777 (free_scop): Call free_sese.
15778 (rename_variables_from_edge, rename_phis_end_scop): Removed.
15779 (register_old_new_names): Renamed register_old_and_new_names.
15780 (register_scop_liveout_renames, add_loop_exit_phis,
15781 insert_loop_close_phis, struct igp,
15782 default_liveout_before_guard, add_guard_exit_phis,
15783 insert_guard_phis, copy_renames): New.
15784 (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
15785 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
15786 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
15787 (scop_adjust_phis_for_liveouts): New.
15788 (gloog): Call scop_adjust_phis_for_liveouts.
15789
15790 * graphite.h (struct sese): Documented. Added fields liveout,
301b6a4e 15791 num_ver and livein.
7b10257f
SP
15792 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
15793 (new_sese, free_sese, sese_build_livein_liveouts): Declared.
15794 (struct scop): Added field liveout_renames.
15795 (SCOP_LIVEOUT_RENAMES): New.
15796
9761fcc7
HJ
157972009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
15798
15799 PR tree-optimization/38510
15800 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
15801 (translate_clast): Call recompute_all_dominators before
15802 graphite_verify.
15803 (gloog): Call recompute_all_dominators before graphite_verify.
15804
158052009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
c95b2534 15806 Jan Sjodin <jan.sjodin@amd.com>
9761fcc7
HJ
15807
15808 PR tree-optimization/38500
15809 * graphite.c (create_sese_edges): Call fix_loop_structure after
15810 splitting blocks.
15811
c95b2534 158122009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
48a01864
JS
15813
15814 * config.gcc: Add m32r*-*-rtems*.
15815 * config/m32r/rtems.h: New file.
15816
fc0cd180
BE
158172009-01-05 Ben Elliston <bje@au.ibm.com>
15818
15819 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
15820 (.po.pox): Likewise.
15821 (po/gcc.pot): Likewise.
15822
3106d8e5
DM
158232009-01-04 David S. Miller <davem@davemloft.net>
15824
15825 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
15826 (STARTING_FRAME_OFFSET): Always set to zero.
15827
0009b473
RS
158282009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
15829
15830 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
15831 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
15832 fixed-point types, and vectors of the same.
15833
4f24c6d6
RS
158342009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
15835
15836 * config/mips/sync.md (*mb_barrier): Rename to...
15837 (*memory_barrier): ...this.
15838
1df48f5c
JW
158392009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com>
15840
15841 * doc/extend.texi (Function Attributes): Move @cindex after @item
eefe5da0 15842 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
1df48f5c
JW
15843 and put in alphabetical order. Fix 'target' name and put in order.
15844 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
15845 typos.
15846
1a8c13b3
UB
158472009-01-04 Uros Bizjak <ubizjak@gmail.com>
15848
15849 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
15850 (memory_barrier): Expand as unspec instead of unspec_volatile.
15851 Remove mem:BLK from insn operands. Use Pmode scratch register.
15852 (*memory_barrier): Define as unspec instead of unspec_volatile.
15853 Use (match_dup 0) as input operand.
15854
15855 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
15856 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
15857 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
15858 scratch register. Remove operand 1.
15859 (*stbar): Define as unspec instead of unspec_volatile.
15860 Use (match_dup 0) as input operand, remove (const_int 8).
15861 (*membar): Define as unspec instead of unspec_volatile.
15862 Use (match_dup 0) as input operand, remove input operand 2.
15863
15864 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
15865 (memory_barrier): Expand as unspec instead of unspec_volatile.
15866 Remove mem:BLK from insn operands. Use Pmode scratch register.
15867 (*memory_barrier): Define as unspec instead of unspec_volatile.
15868 Use (match_dup 0) as input operand.
15869
15870 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
15871 Remove mem:BLK from insn operands. Use Pmode scratch register.
15872 Set volatile flag on operand 0.
15873 (*memory_barrier): New insn pattern.
15874
15875 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
15876 insn operands.
15877 (*memory_barrier): Use (match_dup 0) as input operand.
15878
15879 * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
15880 Remove mem:BLK from insn operands. Use Pmode scratch register.
15881 Set volatile flag on operand 0.
301b6a4e 15882 (*mb_internal): New insn pattern.
1a8c13b3
UB
15883
15884 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
15885
fb0703f7
SB
158862009-01-04 Steven Bosscher <steven@gcc.gnu.org>
15887
15888 PR middle-end/38586
15889 * function.c (struct temp_slot): Move to the section of the file
15890 that deals with temp slots. Remove field 'address'.
15891 (temp_slot_address_table): New hash table of address -> temp slot.
15892 (struct temp_slot_address_entry): New struct, items for the table.
15893 (temp_slot_address_compute_hash, temp_slot_address_hash,
15894 temp_slot_address_eq, insert_temp_slot_address): Support functions
15895 for the new table.
15896 (find_temp_slot_from_address): Rewrite to use the new hash table.
15897 (remove_unused_temp_slot_addresses): Remove addresses of temp
15898 slots that have been made available.
15899 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
15900 worker function for remove_unused_temp_slot_addresses.
15901 (assign_stack_temp_for_type): Don't clear the temp slot address list.
15902 Add the temp slot address to the address -> temp slot map.
15903 (update_temp_slot_address): Update via insert_temp_slot_address.
15904 (free_temp_slots): Call remove_unused_temp_slot_addresses.
15905 (pop_temp_slots): Likewise.
15906 (init_temp_slots): Allocate the address -> temp slot map, or empty
15907 the map if it is already allocated.
15908 (prepare_function_start): Initialize temp slot processing.
15909
b5a430f3
SB
159102009-01-04 Steven Bosscher <steven@gcc.gnu.org>
15911
15912 PR middle-end/38584
15913 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
15914 Calculate the size of all stack vars assuming no packing of stack
15915 vars will happen, replacing a quadratic algorithm with a linear one.
15916
5d560619
JJ
159172009-01-03 Jakub Jelinek <jakub@redhat.com>
15918
15919 PR target/38707
15920 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
15921 can't be used.
15922
953a7caa
DN
159232009-01-03 Diego Novillo <dnovillo@google.com>
15924
15925 * doc/contrib.texi: Update contributions.
15926
5f26a230
JJ
159272009-01-03 Jakub Jelinek <jakub@redhat.com>
15928
493aa551
JJ
15929 PR c++/38705
15930 * builtins.c (fold_builtin_memory_op): Give up if either operand
15931 is volatile. Set srctype or desttype to non-qualified version
15932 of the other type.
15933
5f26a230
JJ
15934 PR c/38700
15935 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
15936 and FUNCTION_DECLs.
15937
c95b2534 159382009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
fafe34f9
KZ
15939
15940 PR rtl-optimization/35805
15941 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
15942 problem if fast dce is able to remove any instructions.
15943 * dce.c (dce_process_block): Fix dump message.
2ba9daa7 15944
0b355794
MM
159452009-01-02 Mark Mitchell <mark@codesourcery.com>
15946
15947 PR 33649
15948 * tree-ssa-pre.c (compute_antic): Correct loop bounds.
15949
0cf0d02b
JJ
159502009-01-02 Jakub Jelinek <jakub@redhat.com>
15951
15952 PR middle-end/38690
15953 * tree-flow.h (op_code_prio, op_prio): New prototypes.
15954 * tree-pretty-print.c (op_code_prio): New function.
15955 (op_prio): No longer static. Use op_code_prio.
15956 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
15957 Use op_prio and op_code_prio to determine if () should be
15958 printed around operand(s) or not.
15959
15960 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
15961 dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
15962 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
15963 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
15964 pp_character instead of pp_string for single letter printing.
15965
e3606f3b
RS
159662009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
15967
15968 * doc/extend.texi: Fix '#pragma GCC option' typo.
15969
c95b2534 159702009-01-02 Richard Guenther <rguenther@suse.de>
00f39bd5 15971
a5f061dc
RG
15972 * doc/install.texi (--enable-checking): Mention different
15973 default for stage1.
15974 (--enable-stage1-checking): Document.
00f39bd5 15975
26de0bcb
AP
159762009-01-01 Andrew Pinski <pinskia@gmail.com>
15977
15978 PR middle-end/30142
15979 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
15980 case to be an error.
15981
7a7d8fab
BE
159822009-01-02 Ben Elliston <bje@au.ibm.com>
15983
15984 * config/fp-bit.h (pack_d): Constify argument.
15985 * config/fp-bit.c (makenan): Constify return type. Remove casts.
15986 (isnan): Constify argument.
15987 (isinf): Likewise.
15988 (iszero): Likewise.
15989 (pack_d): Likewise.
15990 (_fpadd_parts): Constify return type.
15991 (_fpmul_parts): Likewise.
15992 (_fpdiv_parts): Likewise.
15993
b295aee2
JJ
159942009-01-01 Jakub Jelinek <jakub@redhat.com>
15995
15996 PR c/36489
15997 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only
15998 warn about overwriting initializer with side-effects or
15999 -Woverride-init if !IMPLICIT.
16000 (output_init_element): Likewise. Pass IMPLICIT down to
16001 add_pending_init.
16002 (process_init_element): Add IMPLICIT argument. Pass it down
16003 to output_init_element.
16004 (push_init_element, pop_init_level, set_designator): Adjust
16005 process_init_element callers.
16006 (set_nonincremental_init, set_nonincremental_init_from_string):
16007 Adjust add_pending_init callers.
16008 (output_pending_init_elements): Adjust output_init_element callers.
16009 * c-tree.h (process_init_element): Adjust prototype.
16010 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
16011 process_init_element callers.
ad41bd84
JM
16012
16013\f
16014Copyright (C) 2009 Free Software Foundation, Inc.
16015
16016Copying and distribution of this file, with or without modification,
16017are permitted in any medium without royalty provided the copyright
16018notice and this notice are preserved.